diff --git a/magnumclient/tests/v1/test_baymodels.py b/magnumclient/tests/v1/test_baymodels.py index aed09073..72f95fa2 100644 --- a/magnumclient/tests/v1/test_baymodels.py +++ b/magnumclient/tests/v1/test_baymodels.py @@ -95,6 +95,21 @@ fake_responses = { UPDATED_BAYMODEL, ), }, + '/v1/baymodels/%s' % BAYMODEL1['name']: + { + 'GET': ( + {}, + BAYMODEL1 + ), + 'DELETE': ( + {}, + None, + ), + 'PATCH': ( + {}, + UPDATED_BAYMODEL, + ), + }, } @@ -113,7 +128,7 @@ class BayModelManagerTest(testtools.TestCase): self.assertEqual(expect, self.api.calls) self.assertThat(baymodels, matchers.HasLength(2)) - def test_baymodel_show(self): + def test_baymodel_show_by_id(self): baymodel = self.mgr.get(BAYMODEL1['id']) expect = [ ('GET', '/v1/baymodels/%s' % BAYMODEL1['id'], {}, None) @@ -127,6 +142,20 @@ class BayModelManagerTest(testtools.TestCase): self.assertEqual(BAYMODEL1['ssh_authorized_key'], baymodel.ssh_authorized_key) + def test_baymodel_show_by_name(self): + baymodel = self.mgr.get(BAYMODEL1['name']) + expect = [ + ('GET', '/v1/baymodels/%s' % BAYMODEL1['name'], {}, None) + ] + self.assertEqual(expect, self.api.calls) + self.assertEqual(BAYMODEL1['name'], baymodel.name) + self.assertEqual(BAYMODEL1['image_id'], baymodel.image_id) + self.assertEqual(BAYMODEL1['docker_volume_size'], + baymodel.docker_volume_size) + self.assertEqual(BAYMODEL1['fixed_network'], baymodel.fixed_network) + self.assertEqual(BAYMODEL1['ssh_authorized_key'], + baymodel.ssh_authorized_key) + def test_baymodel_create(self): baymodel = self.mgr.create(**CREATE_BAYMODEL) expect = [ @@ -137,7 +166,7 @@ class BayModelManagerTest(testtools.TestCase): self.assertEqual(BAYMODEL1['docker_volume_size'], baymodel.docker_volume_size) - def test_baymodel_delete(self): + def test_baymodel_delete_by_id(self): baymodel = self.mgr.delete(BAYMODEL1['id']) expect = [ ('DELETE', '/v1/baymodels/%s' % BAYMODEL1['id'], {}, None), @@ -145,6 +174,14 @@ class BayModelManagerTest(testtools.TestCase): self.assertEqual(expect, self.api.calls) self.assertIsNone(baymodel) + def test_baymodel_delete_by_name(self): + baymodel = self.mgr.delete(BAYMODEL1['name']) + expect = [ + ('DELETE', '/v1/baymodels/%s' % BAYMODEL1['name'], {}, None), + ] + self.assertEqual(expect, self.api.calls) + self.assertIsNone(baymodel) + def test_baymodel_update(self): patch = {'op': 'replace', 'value': NEW_NAME, diff --git a/magnumclient/tests/v1/test_shell.py b/magnumclient/tests/v1/test_shell.py index ad3f3e43..fbb0dbac 100644 --- a/magnumclient/tests/v1/test_shell.py +++ b/magnumclient/tests/v1/test_shell.py @@ -107,7 +107,7 @@ class ShellTest(base.TestCase): client_mock = mock.MagicMock() args = mock.MagicMock() baymodel_id = 'id' - args.id = [baymodel_id] + args.baymodels = [baymodel_id] shell.do_baymodel_delete(client_mock, args) client_mock.baymodels.delete.assert_called_once_with(baymodel_id) @@ -116,7 +116,7 @@ class ShellTest(base.TestCase): client_mock = mock.MagicMock() args = mock.MagicMock() baymodel_id = 'id' - args.id = baymodel_id + args.baymodel = baymodel_id shell.do_baymodel_show(client_mock, args) client_mock.baymodels.get.assert_called_once_with(baymodel_id) diff --git a/magnumclient/v1/shell.py b/magnumclient/v1/shell.py index cb2160f4..31cd1880 100644 --- a/magnumclient/v1/shell.py +++ b/magnumclient/v1/shell.py @@ -186,26 +186,26 @@ def do_baymodel_create(cs, args): _show_baymodel(baymodel) -@utils.arg('id', - metavar='', +@utils.arg('baymodels', + metavar='', nargs='+', - help='ID of the (baymodel)s to delete.') + help='ID or name of the (baymodel)s to delete.') def do_baymodel_delete(cs, args): """Delete specified baymodel.""" - for id in args.id: + for baymodel in args.baymodels: try: - cs.baymodels.delete(id) + cs.baymodels.delete(baymodel) except Exception as e: print("Delete for baymodel %(baymodel)s failed: %(e)s" % - {'baymodel': id, 'e': e}) + {'baymodel': baymodel, 'e': e}) -@utils.arg('id', - metavar='', +@utils.arg('baymodel', + metavar='', help='ID of the baymodel to show.') def do_baymodel_show(cs, args): """Show details about the given baymodel.""" - baymodel = cs.baymodels.get(args.id) + baymodel = cs.baymodels.get(args.baymodel) _show_baymodel(baymodel)