Merge "Dell Eqlx: Cloning volume does not honor new size"
This commit is contained in:
commit
af1b985a2c
@ -162,16 +162,37 @@ class DellEQLSanISCSIDriverTestCase(test.TestCase):
|
|||||||
self.assertEqual(self._model_update, model_update)
|
self.assertEqual(self._model_update, model_update)
|
||||||
|
|
||||||
def test_create_cloned_volume(self):
|
def test_create_cloned_volume(self):
|
||||||
src_vref = {'name': 'fake_uuid'}
|
src_vref = {'name': 'fake_uuid', 'size': '1'}
|
||||||
volume = {'name': self.volume_name}
|
volume = {'name': self.volume_name, 'size': '1'}
|
||||||
mock_attrs = {'args': ['volume', 'select', volume['name'],
|
mock_attrs = {'args': ['volume', 'select', volume['name'],
|
||||||
'multihost-access', 'enable']}
|
'multihost-access', 'enable']}
|
||||||
with mock.patch.object(self.driver,
|
with mock.patch.object(self.driver,
|
||||||
'_eql_execute') as mock_eql_execute:
|
'_eql_execute') as mock_eql_execute:
|
||||||
mock_eql_execute.configure_mock(**mock_attrs)
|
with mock.patch.object(self.driver,
|
||||||
mock_eql_execute.return_value = self.fake_iqn_return
|
'extend_volume') as mock_extend_volume:
|
||||||
model_update = self.driver.create_cloned_volume(volume, src_vref)
|
mock_eql_execute.configure_mock(**mock_attrs)
|
||||||
self.assertEqual(self._model_update, model_update)
|
mock_eql_execute.return_value = self.fake_iqn_return
|
||||||
|
mock_extend_volume.return_value = self.fake_iqn_return
|
||||||
|
model_update = self.driver.create_cloned_volume(
|
||||||
|
volume, src_vref)
|
||||||
|
self.assertEqual(self._model_update, model_update)
|
||||||
|
self.assertFalse(self.driver.extend_volume.called)
|
||||||
|
|
||||||
|
def test_create_cloned_volume_extend(self):
|
||||||
|
src_vref = {'name': 'fake_uuid', 'size': '100'}
|
||||||
|
volume = {'name': self.volume_name, 'size': '200'}
|
||||||
|
mock_attrs = {'args': ['volume', 'select', volume['name'],
|
||||||
|
'multihost-access', 'enable']}
|
||||||
|
with mock.patch.object(self.driver,
|
||||||
|
'_eql_execute') as mock_eql_execute:
|
||||||
|
with mock.patch.object(self.driver,
|
||||||
|
'extend_volume') as mock_extend_volume:
|
||||||
|
mock_eql_execute.configure_mock(**mock_attrs)
|
||||||
|
mock_eql_execute.return_value = self.fake_iqn_return
|
||||||
|
mock_extend_volume.return_value = self.fake_iqn_return
|
||||||
|
cloned_vol = self.driver.create_cloned_volume(volume, src_vref)
|
||||||
|
self.assertEqual(self._model_update, cloned_vol)
|
||||||
|
self.assertTrue(self.driver.extend_volume.called)
|
||||||
|
|
||||||
def test_delete_snapshot(self):
|
def test_delete_snapshot(self):
|
||||||
snapshot = {'name': 'fakesnap', 'volume_name': 'fakevolume_name'}
|
snapshot = {'name': 'fakesnap', 'volume_name': 'fakevolume_name'}
|
||||||
|
@ -490,6 +490,11 @@ class DellEQLSanISCSIDriver(san.SanISCSIDriver):
|
|||||||
src_volume_name = src_vref['name']
|
src_volume_name = src_vref['name']
|
||||||
out = self._eql_execute('volume', 'select', src_volume_name,
|
out = self._eql_execute('volume', 'select', src_volume_name,
|
||||||
'clone', volume['name'])
|
'clone', volume['name'])
|
||||||
|
|
||||||
|
# Extend Volume if needed
|
||||||
|
if out and volume['size'] > src_vref['size']:
|
||||||
|
out = self.extend_volume(out, volume['size'])
|
||||||
|
|
||||||
self.add_multihost_access(volume)
|
self.add_multihost_access(volume)
|
||||||
return self._get_volume_data(out)
|
return self._get_volume_data(out)
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -583,6 +588,11 @@ class DellEQLSanISCSIDriver(san.SanISCSIDriver):
|
|||||||
try:
|
try:
|
||||||
self._eql_execute('volume', 'select', volume['name'],
|
self._eql_execute('volume', 'select', volume['name'],
|
||||||
'size', "%sG" % new_size)
|
'size', "%sG" % new_size)
|
||||||
|
LOG.info(_LI('Volume %(name)s resized from '
|
||||||
|
'%(current_size)sGB to %(new_size)sGB.'),
|
||||||
|
{'name': volume['name'],
|
||||||
|
'current_size': volume['size'],
|
||||||
|
'new_size': new_size})
|
||||||
except Exception:
|
except Exception:
|
||||||
with excutils.save_and_reraise_exception():
|
with excutils.save_and_reraise_exception():
|
||||||
LOG.error(_LE('Failed to extend_volume %(name)s from '
|
LOG.error(_LE('Failed to extend_volume %(name)s from '
|
||||||
|
Loading…
x
Reference in New Issue
Block a user