From 97925fe2519d035895990617fdceee9f72f3833d Mon Sep 17 00:00:00 2001 From: "jeremy.zhang" Date: Fri, 5 Jan 2018 17:30:09 +0800 Subject: [PATCH] Fix 'cluster' paramter using for v3 volume manage The 'cluster' paramter is wrongly provided for v3 volume manage, as it should be included in the 'volume' object. Change-Id: I12440aa6ada9c0e058138e8da7f7bc12359847bb --- cinderclient/tests/unit/v3/test_shell.py | 2 +- cinderclient/tests/unit/v3/test_volumes.py | 10 ++++++++++ cinderclient/v3/volumes.py | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cinderclient/tests/unit/v3/test_shell.py b/cinderclient/tests/unit/v3/test_shell.py index db78b9b65..8395efb70 100644 --- a/cinderclient/tests/unit/v3/test_shell.py +++ b/cinderclient/tests/unit/v3/test_shell.py @@ -1194,7 +1194,7 @@ class ShellTest(utils.TestCase): 'metadata': {'k1': 'v1', 'k2': 'v2'}, 'bootable': bootable}} if cluster: - expected['cluster'] = cluster + expected['volume']['cluster'] = cluster self.assert_called_anytime('POST', '/os-volume-manage', body=expected) def test_volume_manage_before_3_16(self): diff --git a/cinderclient/tests/unit/v3/test_volumes.py b/cinderclient/tests/unit/v3/test_volumes.py index e4b7e4a53..d0e7cf9f6 100644 --- a/cinderclient/tests/unit/v3/test_volumes.py +++ b/cinderclient/tests/unit/v3/test_volumes.py @@ -104,6 +104,16 @@ class VolumesTest(utils.TestCase): cs.volumes.summary(all_tenants=all_tenants) cs.assert_called('GET', url) + def test_volume_manage_cluster(self): + cs = fakes.FakeClient(api_versions.APIVersion('3.16')) + vol = cs.volumes.manage(None, {'k': 'v'}, cluster='cluster1') + expected = {'host': None, 'name': None, 'availability_zone': None, + 'description': None, 'metadata': None, 'ref': {'k': 'v'}, + 'volume_type': None, 'bootable': False, + 'cluster': 'cluster1'} + cs.assert_called('POST', '/os-volume-manage', {'volume': expected}) + self._assert_request_id(vol) + def test_volume_list_manageable(self): cs = fakes.FakeClient(api_versions.APIVersion('3.8')) cs.volumes.list_manageable('host1', detailed=False) diff --git a/cinderclient/v3/volumes.py b/cinderclient/v3/volumes.py index 9a44a8e57..6669a834d 100644 --- a/cinderclient/v3/volumes.py +++ b/cinderclient/v3/volumes.py @@ -258,7 +258,7 @@ class VolumeManager(volumes.VolumeManager): 'bootable': bootable }} if self.api_version.matches('3.16') and cluster: - body['cluster'] = cluster + body['volume']['cluster'] = cluster return self._create('/os-volume-manage', body, 'volume') @api_versions.wraps("3.8")