Merge "Implement volume update"
This commit is contained in:
@@ -5097,6 +5097,23 @@ class OpenStackCloud(_normalize.Normalizer):
|
||||
|
||||
return self._normalize_volume(volume)
|
||||
|
||||
def update_volume(self, name_or_id, **kwargs):
|
||||
kwargs = self._get_volume_kwargs(kwargs)
|
||||
|
||||
volume = self.get_volume(name_or_id)
|
||||
if not volume:
|
||||
raise exc.OpenStackCloudException(
|
||||
"Volume %s not found." % name_or_id)
|
||||
|
||||
data = self._volume_client.put(
|
||||
'/volumes/{volume_id}'.format(volume_id=volume.id),
|
||||
json=dict({'volume': kwargs}),
|
||||
error_message='Error updating volume')
|
||||
|
||||
self.list_volumes.invalidate(self)
|
||||
|
||||
return self._normalize_volume(self._get_and_munchify('volume', data))
|
||||
|
||||
def set_volume_bootable(self, name_or_id, bootable=True):
|
||||
"""Set a volume's bootable flag.
|
||||
|
||||
|
@@ -149,3 +149,15 @@ class TestVolume(base.BaseFunctionalTest):
|
||||
self.assertEqual(
|
||||
sorted([i['id'] for i in volumes]),
|
||||
sorted(result))
|
||||
|
||||
def test_update_volume(self):
|
||||
name, desc = self.getUniqueString('name'), self.getUniqueString('desc')
|
||||
self.addCleanup(self.cleanup, name)
|
||||
volume = self.user_cloud.create_volume(1, name=name, description=desc)
|
||||
self.assertEqual(volume.name, name)
|
||||
self.assertEqual(volume.description, desc)
|
||||
new_name = self.getUniqueString('name')
|
||||
volume = self.user_cloud.update_volume(volume.id, name=new_name)
|
||||
self.assertNotEqual(volume.name, name)
|
||||
self.assertEqual(volume.name, new_name)
|
||||
self.assertEqual(volume.description, desc)
|
||||
|
Reference in New Issue
Block a user