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
This commit is contained in:
jeremy.zhang 2018-01-05 17:30:09 +08:00
parent 36a2f4b4eb
commit 97925fe251
3 changed files with 12 additions and 2 deletions

View File

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

View File

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

View File

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