Merge "Client: Pass bay_uuid to Pod Read/Write API"
This commit is contained in:
commit
1b4049ceb8
|
@ -484,13 +484,13 @@ class TestCommandLineArgument(utils.TestCase):
|
|||
|
||||
@mock.patch('magnumclient.v1.pods.PodManager.delete')
|
||||
def test_pod_delete_success(self, mock_delete):
|
||||
self._test_arg_success('pod-delete xxx')
|
||||
self._test_arg_success('pod-delete xxx zzz')
|
||||
self.assertTrue(mock_delete.called)
|
||||
self.assertEqual(1, mock_delete.call_count)
|
||||
|
||||
@mock.patch('magnumclient.v1.pods.PodManager.delete')
|
||||
def test_pod_delete_multiple_id_success(self, mock_delete):
|
||||
self._test_arg_success('pod-delete xxx xyz')
|
||||
self._test_arg_success('pod-delete xxx xyz zzz')
|
||||
self.assertTrue(mock_delete.called)
|
||||
self.assertEqual(2, mock_delete.call_count)
|
||||
|
||||
|
@ -501,7 +501,7 @@ class TestCommandLineArgument(utils.TestCase):
|
|||
|
||||
@mock.patch('magnumclient.v1.pods.PodManager.update')
|
||||
def test_pod_update_success(self, mock_update):
|
||||
self._test_arg_success('pod-update xxx replace xxx=xxx')
|
||||
self._test_arg_success('pod-update xxx zzz replace xxx=xxx')
|
||||
self.assertTrue(mock_update.called)
|
||||
self.assertEqual(1, mock_update.call_count)
|
||||
|
||||
|
@ -512,7 +512,7 @@ class TestCommandLineArgument(utils.TestCase):
|
|||
|
||||
@mock.patch('magnumclient.v1.pods.PodManager.get')
|
||||
def test_pod_show_success(self, mock_show):
|
||||
self._test_arg_success('pod-show xxx')
|
||||
self._test_arg_success('pod-show xxx zzz')
|
||||
self.assertTrue(mock_show.called)
|
||||
|
||||
@mock.patch('magnumclient.v1.pods.PodManager.get')
|
||||
|
|
|
@ -57,7 +57,7 @@ fake_responses = {
|
|||
CREATE_POD,
|
||||
),
|
||||
},
|
||||
'/v1/pods/%s' % POD1['id']:
|
||||
'/v1/pods/%s/%s' % (POD1['id'], POD1['bay_uuid']):
|
||||
{
|
||||
'GET': (
|
||||
{},
|
||||
|
@ -72,7 +72,7 @@ fake_responses = {
|
|||
UPDATED_POD,
|
||||
),
|
||||
},
|
||||
'/v1/pods/%s' % POD1['name']:
|
||||
'/v1/pods/%s/%s' % (POD1['name'], POD1['bay_uuid']):
|
||||
{
|
||||
'GET': (
|
||||
{},
|
||||
|
@ -106,21 +106,25 @@ class PodManagerTest(testtools.TestCase):
|
|||
self.assertThat(pods, matchers.HasLength(2))
|
||||
|
||||
def test_pod_show_by_id(self):
|
||||
pod = self.mgr.get(POD1['id'])
|
||||
pod = self.mgr.get(POD1['id'], POD1['bay_uuid'])
|
||||
expect = [
|
||||
('GET', '/v1/pods/%s' % POD1['id'], {}, None)
|
||||
('GET', '/v1/pods/%s/%s' % (POD1['id'],
|
||||
POD1['bay_uuid']), {}, None)
|
||||
]
|
||||
self.assertEqual(expect, self.api.calls)
|
||||
self.assertEqual(POD1['name'], pod.name)
|
||||
self.assertEqual(POD1['bay_uuid'], pod.bay_uuid)
|
||||
self.assertEqual(POD1['desc'], pod.desc)
|
||||
|
||||
def test_pod_show_by_name(self):
|
||||
pod = self.mgr.get(POD1['name'])
|
||||
pod = self.mgr.get(POD1['name'], POD1['bay_uuid'])
|
||||
expect = [
|
||||
('GET', '/v1/pods/%s' % POD1['name'], {}, None)
|
||||
('GET', '/v1/pods/%s/%s' % (POD1['name'],
|
||||
POD1['bay_uuid']), {}, None)
|
||||
]
|
||||
self.assertEqual(expect, self.api.calls)
|
||||
self.assertEqual(POD1['name'], pod.name)
|
||||
self.assertEqual(POD1['bay_uuid'], pod.bay_uuid)
|
||||
self.assertEqual(POD1['desc'], pod.desc)
|
||||
|
||||
def test_pod_create(self):
|
||||
|
@ -141,17 +145,19 @@ class PodManagerTest(testtools.TestCase):
|
|||
self.assertEqual([], self.api.calls)
|
||||
|
||||
def test_pod_delete_by_id(self):
|
||||
pod = self.mgr.delete(POD1['id'])
|
||||
pod = self.mgr.delete(POD1['id'], POD1['bay_uuid'])
|
||||
expect = [
|
||||
('DELETE', '/v1/pods/%s' % POD1['id'], {}, None),
|
||||
('DELETE', '/v1/pods/%s/%s' % (POD1['id'],
|
||||
POD1['bay_uuid']), {}, None),
|
||||
]
|
||||
self.assertEqual(expect, self.api.calls)
|
||||
self.assertIsNone(pod)
|
||||
|
||||
def test_pod_delete_by_name(self):
|
||||
pod = self.mgr.delete(POD1['name'])
|
||||
pod = self.mgr.delete(POD1['name'], POD1['bay_uuid'])
|
||||
expect = [
|
||||
('DELETE', '/v1/pods/%s' % POD1['name'], {}, None),
|
||||
('DELETE', '/v1/pods/%s/%s' % (POD1['name'],
|
||||
POD1['bay_uuid']), {}, None),
|
||||
]
|
||||
self.assertEqual(expect, self.api.calls)
|
||||
self.assertIsNone(pod)
|
||||
|
@ -160,9 +166,12 @@ class PodManagerTest(testtools.TestCase):
|
|||
patch = {'op': 'replace',
|
||||
'value': NEW_DESCR,
|
||||
'path': '/description'}
|
||||
pod = self.mgr.update(id=POD1['id'], patch=patch)
|
||||
pod = self.mgr.update(id=POD1['id'],
|
||||
bay_uuid=POD1['bay_uuid'],
|
||||
patch=patch)
|
||||
expect = [
|
||||
('PATCH', '/v1/pods/%s' % POD1['id'], {}, patch),
|
||||
('PATCH', '/v1/pods/%s/%s' % (POD1['id'],
|
||||
POD1['bay_uuid']), {}, patch),
|
||||
]
|
||||
self.assertEqual(expect, self.api.calls)
|
||||
self.assertEqual(NEW_DESCR, pod.description)
|
||||
|
|
|
@ -435,6 +435,8 @@ class ShellTest(base.TestCase):
|
|||
args = mock.MagicMock()
|
||||
pod_id = 'id'
|
||||
args.pod = pod_id
|
||||
bay_uuid = 'uuid'
|
||||
args.bay = bay_uuid
|
||||
op = 'add'
|
||||
args.op = op
|
||||
attributes = "labels={'name': 'value'}"
|
||||
|
@ -444,25 +446,30 @@ class ShellTest(base.TestCase):
|
|||
shell.magnum_utils.args_array_to_patch.return_value = patch
|
||||
|
||||
shell.do_pod_update(client_mock, args)
|
||||
client_mock.pods.update.assert_called_once_with(pod_id, patch)
|
||||
client_mock.pods.update.assert_called_once_with(pod_id,
|
||||
bay_uuid,
|
||||
patch)
|
||||
|
||||
def test_do_pod_delete(self):
|
||||
client_mock = mock.MagicMock()
|
||||
args = mock.MagicMock()
|
||||
pod_id = 'id'
|
||||
bay_uuid = 'uuid'
|
||||
args.pods = [pod_id]
|
||||
|
||||
args.bay = bay_uuid
|
||||
shell.do_pod_delete(client_mock, args)
|
||||
client_mock.pods.delete.assert_called_once_with(pod_id)
|
||||
client_mock.pods.delete.assert_called_once_with(pod_id, bay_uuid)
|
||||
|
||||
def test_do_pod_show(self):
|
||||
client_mock = mock.MagicMock()
|
||||
args = mock.MagicMock()
|
||||
pod_id = 'id'
|
||||
args.pod = pod_id
|
||||
bay_uuid = 'uuid'
|
||||
args.bay = bay_uuid
|
||||
|
||||
shell.do_pod_show(client_mock, args)
|
||||
client_mock.pods.get.assert_called_once_with(pod_id)
|
||||
client_mock.pods.get.assert_called_once_with(pod_id, bay_uuid)
|
||||
|
||||
def test_do_rc_list(self):
|
||||
client_mock = mock.MagicMock()
|
||||
|
|
|
@ -29,8 +29,11 @@ class PodManager(base.Manager):
|
|||
resource_class = Pod
|
||||
|
||||
@staticmethod
|
||||
def _path(id=None):
|
||||
return '/v1/pods/%s' % id if id else '/v1/pods'
|
||||
def _path(id=None, bay_uuid=None):
|
||||
if id and bay_uuid:
|
||||
return '/v1/pods/%s/%s' % (id, bay_uuid)
|
||||
else:
|
||||
return '/v1/pods'
|
||||
|
||||
def list(self, limit=None, marker=None, sort_key=None,
|
||||
sort_dir=None, detail=False):
|
||||
|
@ -76,9 +79,9 @@ class PodManager(base.Manager):
|
|||
return self._list_pagination(self._path(path), "pods",
|
||||
limit=limit)
|
||||
|
||||
def get(self, id):
|
||||
def get(self, id, bay_uuid):
|
||||
try:
|
||||
return self._list(self._path(id))[0]
|
||||
return self._list(self._path(id, bay_uuid))[0]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
|
@ -92,8 +95,8 @@ class PodManager(base.Manager):
|
|||
"Key must be in %s" % ",".join(CREATION_ATTRIBUTES))
|
||||
return self._create(self._path(), new)
|
||||
|
||||
def delete(self, id):
|
||||
return self._delete(self._path(id))
|
||||
def delete(self, id, bay_uuid):
|
||||
return self._delete(self._path(id, bay_uuid))
|
||||
|
||||
def update(self, id, patch):
|
||||
return self._update(self._path(id), patch)
|
||||
def update(self, id, bay_uuid, patch):
|
||||
return self._update(self._path(id, bay_uuid), patch)
|
||||
|
|
|
@ -412,6 +412,7 @@ def do_pod_create(cs, args):
|
|||
|
||||
|
||||
@utils.arg('pod', metavar='<pod-id>', help="UUID or name of pod")
|
||||
@utils.arg('bay', metavar='<bay-uuid>', help="UUID of Bay")
|
||||
@utils.arg(
|
||||
'op',
|
||||
metavar='<op>',
|
||||
|
@ -433,7 +434,7 @@ def do_pod_update(cs, args):
|
|||
with open(p['value'], 'r') as f:
|
||||
p['value'] = f.read()
|
||||
|
||||
pod = cs.pods.update(args.pod, patch)
|
||||
pod = cs.pods.update(args.pod, args.bay, patch)
|
||||
_show_pod(pod)
|
||||
|
||||
|
||||
|
@ -441,11 +442,12 @@ def do_pod_update(cs, args):
|
|||
metavar='<pods>',
|
||||
nargs='+',
|
||||
help='ID or name of the (pod)s to delete.')
|
||||
@utils.arg('bay', metavar='<bay-uuid>', help="UUID of Bay")
|
||||
def do_pod_delete(cs, args):
|
||||
"""Delete specified pod."""
|
||||
for pod in args.pods:
|
||||
try:
|
||||
cs.pods.delete(pod)
|
||||
cs.pods.delete(pod, args.bay)
|
||||
except Exception as e:
|
||||
print("Delete for pod %(pod)s failed: %(e)s" %
|
||||
{'pod': pod, 'e': e})
|
||||
|
@ -455,9 +457,10 @@ def do_pod_delete(cs, args):
|
|||
@utils.arg('pod',
|
||||
metavar='<pod>',
|
||||
help='ID or name of the pod to show.')
|
||||
@utils.arg('bay', metavar='<bay-uuid>', help="UUID of Bay")
|
||||
def do_pod_show(cs, args):
|
||||
"""Show details about the given pod."""
|
||||
pod = cs.pods.get(args.pod)
|
||||
pod = cs.pods.get(args.pod, args.bay)
|
||||
_show_pod(pod)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue