Implement create Plan for the OpenStack client
Change-Id: If6e0ad80868f6c1c8af17b1445f7e231a21a754f
This commit is contained in:
parent
ee470b9dd2
commit
531be10588
@ -24,11 +24,30 @@ class CreateManagementPlan(show.ShowOne):
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(CreateManagementPlan, self).get_parser(prog_name)
|
||||
|
||||
parser.add_argument(
|
||||
'name',
|
||||
help="Name of the plan being created."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'-d', '--description',
|
||||
help='A textual description of the plan.')
|
||||
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)" % parsed_args)
|
||||
|
||||
client = self.app.client_manager.management
|
||||
|
||||
plan = client.plans.create(
|
||||
name=parsed_args.name,
|
||||
description=parsed_args.description
|
||||
)
|
||||
|
||||
return self.dict2columns(plan.to_dict())
|
||||
|
||||
|
||||
class DeleteManagementPlan(command.Command):
|
||||
"""Delete a Management Plan."""
|
||||
|
@ -14,20 +14,26 @@ import mock
|
||||
from openstackclient.tests import utils
|
||||
|
||||
|
||||
def _create_mock(**kwargs):
|
||||
mock_plan = mock.Mock()
|
||||
mock_plan.configure_mock(**kwargs)
|
||||
mock_plan.to_dict.return_value = kwargs
|
||||
return mock_plan
|
||||
|
||||
|
||||
mock_roles = [
|
||||
mock.Mock(uuid="UUID1", version=1, description="Mock Role 1"),
|
||||
mock.Mock(uuid="UUID2", version=2, description="Mock Role 2"),
|
||||
_create_mock(uuid="UUID1", name="Role 1 Name", version=1,
|
||||
description="Mock Role 1"),
|
||||
_create_mock(uuid="UUID2", name="Role 2 Name", version=2,
|
||||
description="Mock Role 2"),
|
||||
]
|
||||
mock_roles[0].configure_mock(name="Role 1 Name")
|
||||
mock_roles[1].configure_mock(name="Role 2 Name")
|
||||
|
||||
mock_plans = [
|
||||
mock.Mock(uuid="UUID1", description="Plan 1",
|
||||
roles=mock_roles),
|
||||
mock.Mock(uuid="UUID2", description="Plan 2", roles=[]),
|
||||
_create_mock(uuid="UUID1", name="Plan 1 Name", description="Plan 1",
|
||||
roles=mock_roles),
|
||||
_create_mock(uuid="UUID2", name="Plan 2 Name", description="Plan 2",
|
||||
roles=[])
|
||||
]
|
||||
mock_plans[0].configure_mock(name="Plan 1 Name")
|
||||
mock_plans[1].configure_mock(name="Plan 2 Name")
|
||||
|
||||
|
||||
class TestManagement(utils.TestCommand):
|
||||
|
@ -30,12 +30,41 @@ class TestCreateManagementPlan(TestPlans):
|
||||
self.cmd = plan.CreateManagementPlan(self.app, None)
|
||||
|
||||
def test_create_plan(self):
|
||||
arglist = []
|
||||
verifylist = []
|
||||
arglist = ["Plan 2 Name", '-d', 'Plan 2']
|
||||
verifylist = [
|
||||
('name', "Plan 2 Name"),
|
||||
('description', "Plan 2"),
|
||||
]
|
||||
|
||||
self.management_mock.plans.create.return_value = fakes.mock_plans[1]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
self.cmd.take_action(parsed_args)
|
||||
result = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.assertEqual([
|
||||
('description', 'name', 'roles', 'uuid'),
|
||||
('Plan 2', 'Plan 2 Name', [], 'UUID2')
|
||||
], list(result)
|
||||
)
|
||||
|
||||
def test_create_plan_no_description(self):
|
||||
arglist = ["Plan1Name", ]
|
||||
verifylist = [
|
||||
('name', "Plan1Name"),
|
||||
('description', None),
|
||||
]
|
||||
|
||||
self.management_mock.plans.create.return_value = fakes.mock_plans[0]
|
||||
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
result = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.assertEqual([
|
||||
('description', 'name', 'roles', 'uuid'),
|
||||
('Plan 1', 'Plan 1 Name', fakes.mock_roles, 'UUID1')
|
||||
], list(result))
|
||||
|
||||
|
||||
class TestDeleteManagementPlan(TestPlans):
|
||||
|
Loading…
x
Reference in New Issue
Block a user