Merge "Add support of baymodel resource management with "name""

This commit is contained in:
Jenkins
2015-03-18 17:31:48 +00:00
committed by Gerrit Code Review
3 changed files with 50 additions and 13 deletions

View File

@@ -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,

View File

@@ -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)

View File

@@ -186,26 +186,26 @@ def do_baymodel_create(cs, args):
_show_baymodel(baymodel)
@utils.arg('id',
metavar='<baymodel_id>',
@utils.arg('baymodels',
metavar='<baymodels>',
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='<baymodel_id>',
@utils.arg('baymodel',
metavar='<baymodel>',
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)