Merge "Orphan view and multipath issue in Kaminario driver"
This commit is contained in:
commit
d0e5869460
@ -202,6 +202,7 @@ class TestKaminarioISCSI(test.TestCase):
|
||||
"""Test create_volume_from_snapshot."""
|
||||
mock_brick_get.return_value = CONNECTOR
|
||||
mock_copy_volume.return_value = None
|
||||
self.driver._kaminario_disconnect_volume = mock.Mock()
|
||||
result = self.driver.create_volume_from_snapshot(self.vol, self.snap)
|
||||
self.assertIsNone(result)
|
||||
|
||||
@ -223,6 +224,7 @@ class TestKaminarioISCSI(test.TestCase):
|
||||
"""Test create_cloned_volume."""
|
||||
mock_brick_get.return_value = CONNECTOR
|
||||
mock_copy_volume.return_value = None
|
||||
self.driver._kaminario_disconnect_volume = mock.Mock()
|
||||
result = self.driver.create_cloned_volume(self.vol, self.vol)
|
||||
self.assertIsNone(result)
|
||||
|
||||
|
@ -600,9 +600,14 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
||||
snapshot.volume.size * units.Ki,
|
||||
self.configuration.volume_dd_blocksize,
|
||||
sparse=True)
|
||||
self._kaminario_disconnect_volume(src_attach_info,
|
||||
dest_attach_info)
|
||||
self.terminate_connection(volume, properties)
|
||||
self.terminate_connection(cview, properties)
|
||||
cview.delete()
|
||||
except Exception as ex:
|
||||
self._kaminario_disconnect_volume(src_attach_info,
|
||||
dest_attach_info)
|
||||
self.terminate_connection(cview, properties)
|
||||
self.terminate_connection(volume, properties)
|
||||
cview.delete()
|
||||
@ -625,6 +630,7 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
||||
src_name = self.get_volume_name(src_vref.id)
|
||||
src_vol = self.client.search("volumes", name=src_name)
|
||||
src_map = self.client.search("mappings", volume=src_vol)
|
||||
src_attach_info = dest_attach_info = None
|
||||
if src_map.total != 0:
|
||||
msg = _("K2 driver does not support clone of a attached volume. "
|
||||
"To get this done, create a snapshot from the attached "
|
||||
@ -643,10 +649,13 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
||||
src_vref.size * units.Ki,
|
||||
self.configuration.volume_dd_blocksize,
|
||||
sparse=True)
|
||||
|
||||
self._kaminario_disconnect_volume(src_attach_info,
|
||||
dest_attach_info)
|
||||
self.terminate_connection(volume, properties)
|
||||
self.terminate_connection(src_vref, properties)
|
||||
except Exception as ex:
|
||||
self._kaminario_disconnect_volume(src_attach_info,
|
||||
dest_attach_info)
|
||||
self.terminate_connection(src_vref, properties)
|
||||
self.terminate_connection(volume, properties)
|
||||
self.delete_volume(volume)
|
||||
@ -1139,3 +1148,10 @@ class KaminarioCinderDriver(cinder.volume.driver.ISCSIDriver):
|
||||
self._delete_failover_volume_replica(volume, vg_name, vol_name)
|
||||
else:
|
||||
self._delete_volume_replica(volume, vg_name, vol_name)
|
||||
|
||||
def _kaminario_disconnect_volume(self, *attach_info):
|
||||
for info in attach_info:
|
||||
if (info and info.get('connector') and
|
||||
info.get('conn', {}).get('data') and info.get('device')):
|
||||
info['connector'].disconnect_volume(info['conn']['data'],
|
||||
info['device'])
|
||||
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
fixes:
|
||||
- Fixed orphan view in "create_volume_from_snapshot" method
|
||||
and multipath_devices in "create_volume_from_snapshot" and
|
||||
"create_cloned_volume" methods in Kaminario iSCSI and FC Cinder Drivers.
|
||||
|
Loading…
x
Reference in New Issue
Block a user