self.testData.LUN_DELETE_CMD('vol1')]
results = [SUCCEED, SUCCEED]
fake_cli = self.driverSetup(commands, results)
- self.driver.db = mock.MagicMock()
- self.driver.db.volume_get_all_by_group.return_value =\
- self.testData.CONSISTENCY_GROUP_VOLUMES()
- self.driver.delete_consistencygroup(None,
- self.testData.test_cg,
- [])
+ self.driver.delete_consistencygroup(
+ None, self.testData.test_cg,
+ self.testData.CONSISTENCY_GROUP_VOLUMES())
expect_cmd = [
mock.call(
*self.testData.DELETE_CONSISTENCYGROUP_CMD(
mock.call(*self.testData.LUN_DELETE_CMD('vol1'))]
fake_cli.assert_has_calls(expect_cmd)
- @mock.patch(
- 'cinder.objects.snapshot.SnapshotList.get_all_for_cgsnapshot')
- def test_create_cgsnapshot(self, get_all_for_cgsnapshot):
+ def test_create_cgsnapshot(self):
cgsnapshot = self.testData.test_cgsnapshot['id']
cg_name = self.testData.test_cgsnapshot['consistencygroup_id']
commands = [self.testData.CREATE_CG_SNAPSHOT(cg_name, cgsnapshot)]
snapshot_obj = fake_snapshot.fake_snapshot_obj(
self.testData.SNAPS_IN_SNAP_GROUP())
snapshot_obj.consistencygroup_id = cg_name
- get_all_for_cgsnapshot.return_value = [snapshot_obj]
- self.driver.create_cgsnapshot(None, self.testData.test_cgsnapshot, [])
+ self.driver.create_cgsnapshot(None, self.testData.test_cgsnapshot,
+ [snapshot_obj])
expect_cmd = [
mock.call(
*self.testData.CREATE_CG_SNAPSHOT(
cg_name, cgsnapshot))]
fake_cli.assert_has_calls(expect_cmd)
- @mock.patch(
- 'cinder.objects.snapshot.SnapshotList.get_all_for_cgsnapshot')
- def test_delete_cgsnapshot(self, get_all_for_cgsnapshot):
+ def test_delete_cgsnapshot(self):
snap_name = self.testData.test_cgsnapshot['id']
commands = [self.testData.DELETE_CG_SNAPSHOT(snap_name)]
results = [SUCCEED]
self.testData.SNAPS_IN_SNAP_GROUP())
cg_name = self.testData.test_cgsnapshot['consistencygroup_id']
snapshot_obj.consistencygroup_id = cg_name
- get_all_for_cgsnapshot.return_value = [snapshot_obj]
self.driver.delete_cgsnapshot(None,
self.testData.test_cgsnapshot,
- [])
+ [snapshot_obj])
expect_cmd = [
mock.call(
*self.testData.DELETE_CG_SNAPSHOT(
def delete_consistencygroup(self, context, group, volumes):
"""Deletes a consistency group."""
return self.cli.delete_consistencygroup(
- self, context, group)
+ context, group, volumes)
def create_cgsnapshot(self, context, cgsnapshot, snapshots):
"""Creates a cgsnapshot."""
return self.cli.create_cgsnapshot(
- self, context, cgsnapshot)
+ context, cgsnapshot, snapshots)
def delete_cgsnapshot(self, context, cgsnapshot, snapshots):
"""Deletes a cgsnapshot."""
- return self.cli.delete_cgsnapshot(self, context, cgsnapshot)
+ return self.cli.delete_cgsnapshot(
+ context, cgsnapshot, snapshots)
def get_pool(self, volume):
"""Returns the pool name of a volume."""
def delete_consistencygroup(self, context, group, volumes):
"""Deletes a consistency group."""
return self.cli.delete_consistencygroup(
- self, context, group)
+ context, group, volumes)
def create_cgsnapshot(self, context, cgsnapshot, snapshots):
"""Creates a cgsnapshot."""
return self.cli.create_cgsnapshot(
- self, context, cgsnapshot)
+ context, cgsnapshot, snapshots)
def delete_cgsnapshot(self, context, cgsnapshot, snapshots):
"""Deletes a cgsnapshot."""
- return self.cli.delete_cgsnapshot(self, context, cgsnapshot)
+ return self.cli.delete_cgsnapshot(
+ context, cgsnapshot, snapshots)
def get_pool(self, volume):
"""Returns the pool name of a volume."""
from cinder import exception
from cinder.i18n import _, _LE, _LI, _LW
-from cinder import objects
from cinder import utils
from cinder.volume import configuration as config
from cinder.volume.drivers.san import san
return model_update
- def delete_consistencygroup(self, driver, context, group):
+ def delete_consistencygroup(self, context, group, volumes):
"""Deletes a consistency group."""
cg_name = group['id']
- volumes = driver.db.volume_get_all_by_group(context, group['id'])
model_update = {}
+ volumes_model_update = []
model_update['status'] = group['status']
LOG.info(_LI('Start to delete consistency group: %(cg_name)s'),
{'cg_name': cg_name})
for volume_ref in volumes:
try:
self._client.delete_lun(volume_ref['name'])
- volume_ref['status'] = 'deleted'
+ volumes_model_update.append(
+ {'id': volume_ref['id'], 'status': 'deleted'})
except Exception:
- volume_ref['status'] = 'error_deleting'
- model_update['status'] = 'error_deleting'
+ volumes_model_update.append(
+ {'id': volume_ref['id'], 'status': 'error_deleting'})
- return model_update, volumes
+ return model_update, volumes_model_update
def update_consistencygroup(self, context,
group,
ids_later)
return model_update, None, None
- def create_cgsnapshot(self, driver, context, cgsnapshot):
+ def create_cgsnapshot(self, context, cgsnapshot, snapshots):
"""Creates a cgsnapshot (snap group)."""
cgsnapshot_id = cgsnapshot['id']
- snapshots = objects.SnapshotList().get_all_for_cgsnapshot(
- context, cgsnapshot_id)
model_update = {}
+ snapshots_model_update = []
LOG.info(_LI('Start to create cgsnapshot for consistency group'
': %(group_name)s'),
{'group_name': cgsnapshot['consistencygroup_id']})
self._client.create_cgsnapshot(cgsnapshot['consistencygroup_id'],
cgsnapshot['id'])
for snapshot in snapshots:
- snapshot['status'] = 'available'
+ snapshots_model_update.append(
+ {'id': snapshot['id'], 'status': 'available'})
except Exception:
with excutils.save_and_reraise_exception():
LOG.error(_LE('Create cg snapshot %s failed.'),
model_update['status'] = 'available'
- return model_update, snapshots
+ return model_update, snapshots_model_update
- def delete_cgsnapshot(self, driver, context, cgsnapshot):
+ def delete_cgsnapshot(self, context, cgsnapshot, snapshots):
"""Deletes a cgsnapshot (snap group)."""
cgsnapshot_id = cgsnapshot['id']
- snapshots = objects.SnapshotList().get_all_for_cgsnapshot(
- context, cgsnapshot_id)
model_update = {}
+ snapshots_model_update = []
model_update['status'] = cgsnapshot['status']
LOG.info(_LI('Delete cgsnapshot %(snap_name)s for consistency group: '
'%(group_name)s'), {'snap_name': cgsnapshot['id'],
try:
self._client.delete_cgsnapshot(cgsnapshot['id'])
for snapshot in snapshots:
- snapshot['status'] = 'deleted'
+ snapshots_model_update.append(
+ {'id': snapshot['id'], 'status': 'deleted'})
except Exception:
with excutils.save_and_reraise_exception():
LOG.error(_LE('Delete cgsnapshot %s failed.'),
cgsnapshot_id)
- return model_update, snapshots
+ return model_update, snapshots_model_update
def get_lun_id(self, volume):
lun_id = None