Merge "Allow baymodel name when bay is created"

This commit is contained in:
Jenkins
2015-03-28 02:20:46 +00:00
committed by Gerrit Code Review
3 changed files with 22 additions and 14 deletions

View File

@@ -73,24 +73,26 @@ class TestCommandLineArgument(utils.TestCase):
self._unrecognized_arg_error)
self.assertFalse(mock_list.called)
@mock.patch('magnumclient.v1.baymodels.BayModelManager.get')
@mock.patch('magnumclient.v1.bays.BayManager.create')
def test_bay_create_success(self, mock_create):
self._test_arg_success('bay-create --name test --baymodel-id xxx '
def test_bay_create_success(self, mock_create, mock_get):
self._test_arg_success('bay-create --name test --baymodel xxx '
'--node-count 123')
self.assertTrue(mock_create.called)
self._test_arg_success('bay-create --baymodel-id xxx')
self._test_arg_success('bay-create --baymodel xxx')
self.assertTrue(mock_create.called)
self._test_arg_success('bay-create --name test --baymodel-id xxx')
self._test_arg_success('bay-create --name test --baymodel xxx')
self.assertTrue(mock_create.called)
self._test_arg_success('bay-create --baymodel-id xxx --node-count 123')
self._test_arg_success('bay-create --baymodel xxx --node-count 123')
self.assertTrue(mock_create.called)
@mock.patch('magnumclient.v1.baymodels.BayModelManager.get')
@mock.patch('magnumclient.v1.bays.BayManager.create')
def test_bay_create_success_only_baymodel_arg(self, mock_create):
self._test_arg_success('bay-create --baymodel-id xxx')
def test_bay_create_success_only_baymodel_arg(self, mock_create, mock_get):
self._test_arg_success('bay-create --baymodel xxx')
self.assertTrue(mock_create.called)
@mock.patch('magnumclient.v1.bays.BayManager.create')

View File

@@ -40,17 +40,21 @@ class ShellTest(base.TestCase):
def test_do_bay_create(self):
client_mock = mock.MagicMock()
baymodel = mock.MagicMock()
baymodel.uuid = 'uuid'
client_mock.baymodels.get.return_value = baymodel
args = mock.MagicMock()
node_count = 1
args.node_count = node_count
name = "test_bay"
args.name = name
baymodel_id = "test_baymodel_id"
args.baymodel_id = baymodel_id
baymodel_id_or_name = "test_baymodel_id"
args.baymodel = baymodel_id_or_name
shell.do_bay_create(client_mock, args)
client_mock.bays.create.assert_called_once_with(
name=name, node_count=node_count, baymodel_id=baymodel_id)
name=name, node_count=node_count, baymodel_id=baymodel.uuid)
def test_do_bay_delete(self):
client_mock = mock.MagicMock()

View File

@@ -67,18 +67,20 @@ def do_bay_list(cs, args):
@utils.arg('--name',
metavar='<name>',
help='Name of the bay to create.')
@utils.arg('--baymodel-id',
@utils.arg('--baymodel',
required=True,
metavar='<baymodel_id>',
help='The bay model ID.')
metavar='<baymodel>',
help='ID or name of the baymodel.')
@utils.arg('--node-count',
metavar='<node_count>',
help='The bay node count.')
def do_bay_create(cs, args):
"""Create a bay."""
baymodel = cs.baymodels.get(args.baymodel)
opts = {}
opts['name'] = args.name
opts['baymodel_id'] = args.baymodel_id
opts['baymodel_id'] = baymodel.uuid
opts['node_count'] = args.node_count
bay = cs.bays.create(**opts)