Merge "CoprHD: Handle create volume from CG snapshot error"
This commit is contained in:
commit
c35c8cc5f3
@ -16,6 +16,7 @@
|
|||||||
from mock import Mock
|
from mock import Mock
|
||||||
|
|
||||||
from cinder import context
|
from cinder import context
|
||||||
|
from cinder import exception
|
||||||
from cinder.objects import fields
|
from cinder.objects import fields
|
||||||
from cinder import test
|
from cinder import test
|
||||||
from cinder.volume.drivers.coprhd import common as coprhd_common
|
from cinder.volume.drivers.coprhd import common as coprhd_common
|
||||||
@ -263,7 +264,8 @@ def get_test_CG_snap_data(volume_type_id):
|
|||||||
'consistencygroup_id': '123456789',
|
'consistencygroup_id': '123456789',
|
||||||
'status': fields.ConsistencyGroupStatus.AVAILABLE,
|
'status': fields.ConsistencyGroupStatus.AVAILABLE,
|
||||||
'snapshots': [],
|
'snapshots': [],
|
||||||
'consistencygroup': get_test_CG_data(volume_type_id)
|
'consistencygroup': get_test_CG_data(volume_type_id),
|
||||||
|
'cgsnapshot_id': '1',
|
||||||
}
|
}
|
||||||
return test_CG_snapshot
|
return test_CG_snapshot
|
||||||
|
|
||||||
@ -641,6 +643,20 @@ class EMCCoprHDFCDriverTest(test.TestCase):
|
|||||||
self.driver.delete_volume(src_vol_data)
|
self.driver.delete_volume(src_vol_data)
|
||||||
self.driver.delete_volume(volume_data)
|
self.driver.delete_volume(volume_data)
|
||||||
|
|
||||||
|
def test_create_volume_from_cg_snapshot(self):
|
||||||
|
ctx = context.get_admin_context()
|
||||||
|
|
||||||
|
volume_data = get_test_volume_data(self.volume_type_id)
|
||||||
|
cg_snap_data = get_test_CG_snap_data(self.volume_type_id)
|
||||||
|
|
||||||
|
self.driver.create_cgsnapshot(ctx, cg_snap_data, [])
|
||||||
|
self.assertRaises(exception.VolumeBackendAPIException,
|
||||||
|
self.driver.create_volume_from_snapshot,
|
||||||
|
volume_data, cg_snap_data)
|
||||||
|
|
||||||
|
self.driver.delete_cgsnapshot(ctx, cg_snap_data, [])
|
||||||
|
self.driver.delete_volume(volume_data)
|
||||||
|
|
||||||
def test_extend_volume(self):
|
def test_extend_volume(self):
|
||||||
volume_data = get_test_volume_data(self.volume_type_id)
|
volume_data = get_test_volume_data(self.volume_type_id)
|
||||||
self.driver.create_volume(volume_data)
|
self.driver.create_volume(volume_data)
|
||||||
|
@ -750,6 +750,12 @@ class EMCCoprHDDriverCommon(object):
|
|||||||
self.create_cloned_volume(volume, snapshot, truncate_name)
|
self.create_cloned_volume(volume, snapshot, truncate_name)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if snapshot.get('cgsnapshot_id'):
|
||||||
|
raise coprhd_utils.CoprHdError(
|
||||||
|
coprhd_utils.CoprHdError.SOS_FAILURE_ERR,
|
||||||
|
_("Volume cannot be created individually from a snapshot "
|
||||||
|
"that is part of a Consistency Group"))
|
||||||
|
|
||||||
src_snapshot_name = None
|
src_snapshot_name = None
|
||||||
src_vol_ref = snapshot['volume']
|
src_vol_ref = snapshot['volume']
|
||||||
new_volume_name = self._get_resource_name(volume, truncate_name)
|
new_volume_name = self._get_resource_name(volume, truncate_name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user