Merge "Refresh extended in-use volumes"
This commit is contained in:
commit
d5744be4ff
|
@ -103,6 +103,7 @@ class HyperVDriver(driver.ComputeDriver):
|
|||
"supports_device_tagging": True,
|
||||
"supports_tagged_attach_interface": True,
|
||||
"supports_tagged_attach_volume": True,
|
||||
"supports_extend_volume": True,
|
||||
}
|
||||
|
||||
def __init__(self, virtapi):
|
||||
|
@ -198,6 +199,9 @@ class HyperVDriver(driver.ComputeDriver):
|
|||
instance,
|
||||
update_device_metadata=True)
|
||||
|
||||
def extend_volume(self, connection_info, instance):
|
||||
self._volumeops.extend_volume(connection_info)
|
||||
|
||||
def get_volume_connector(self, instance):
|
||||
return self._volumeops.get_volume_connector()
|
||||
|
||||
|
|
|
@ -375,6 +375,10 @@ class VolumeOps(object):
|
|||
volume_driver = self._get_volume_driver(connection_info)
|
||||
return volume_driver.get_disk_attachment_info(connection_info)
|
||||
|
||||
def extend_volume(self, connection_info):
|
||||
volume_driver = self._get_volume_driver(connection_info)
|
||||
return volume_driver.extend_volume(connection_info)
|
||||
|
||||
|
||||
class BaseVolumeDriver(object):
|
||||
_is_block_dev = True
|
||||
|
@ -543,6 +547,11 @@ class BaseVolumeDriver(object):
|
|||
is_physical=self._is_block_dev,
|
||||
serial=serial)
|
||||
|
||||
def extend_volume(self, connection_info):
|
||||
# We're not actually extending the volume, we're just
|
||||
# refreshing cached information about an already extended volume.
|
||||
self._connector.extend_volume(connection_info['data'])
|
||||
|
||||
|
||||
class ISCSIVolumeDriver(BaseVolumeDriver):
|
||||
_is_block_dev = True
|
||||
|
|
|
@ -226,6 +226,14 @@ class HyperVDriverTestCase(test_base.HyperVBaseTestCase):
|
|||
mock_instance,
|
||||
update_device_metadata=True)
|
||||
|
||||
def test_extend_volume(self):
|
||||
mock_instance = fake_instance.fake_instance_obj(self.context)
|
||||
self.driver.extend_volume(
|
||||
mock.sentinel.connection_info, mock_instance)
|
||||
|
||||
self.driver._volumeops.extend_volume.assert_called_once_with(
|
||||
mock.sentinel.connection_info)
|
||||
|
||||
def test_get_volume_connector(self):
|
||||
self.driver.get_volume_connector(mock.sentinel.instance)
|
||||
self.driver._volumeops.get_volume_connector.assert_called_once_with()
|
||||
|
|
|
@ -516,6 +516,15 @@ class VolumeOpsTestCase(test_base.HyperVBaseTestCase):
|
|||
mock_vol_driver.get_disk_attachment_info.return_value,
|
||||
ret_val)
|
||||
|
||||
@mock.patch.object(volumeops.VolumeOps, '_get_volume_driver')
|
||||
def test_extend_volume(self, mock_get_volume_driver):
|
||||
fake_conn_info = get_fake_connection_info()
|
||||
self._volumeops.extend_volume(fake_conn_info)
|
||||
|
||||
mock_vol_driver = mock_get_volume_driver.return_value
|
||||
mock_vol_driver.extend_volume.assert_called_once_with(
|
||||
fake_conn_info)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class BaseVolumeDriverTestCase(test_base.HyperVBaseTestCase):
|
||||
|
@ -814,6 +823,14 @@ class BaseVolumeDriverTestCase(test_base.HyperVBaseTestCase):
|
|||
is_physical=is_block_dev,
|
||||
serial=exp_serial)
|
||||
|
||||
def test_extend_volume(self):
|
||||
conn_info = get_fake_connection_info()
|
||||
|
||||
self._base_vol_driver.extend_volume(conn_info)
|
||||
|
||||
self._conn.extend_volume.assert_called_once_with(
|
||||
conn_info['data'])
|
||||
|
||||
|
||||
class ISCSIVolumeDriverTestCase(test_base.HyperVBaseTestCase):
|
||||
"""Unit tests for Hyper-V BaseVolumeDriver class."""
|
||||
|
|
Loading…
Reference in New Issue