Merge "Clean create_snapshots_in_db method"

This commit is contained in:
Jenkins 2016-11-08 01:01:25 +00:00 committed by Gerrit Code Review
commit 7c95f7222e

View File

@ -852,12 +852,7 @@ class API(base.Base):
group_snapshot_id=None): group_snapshot_id=None):
snapshot_list = [] snapshot_list = []
for volume in volume_list: for volume in volume_list:
self._create_snapshot_in_db_validate(context, volume, True) self._create_snapshot_in_db_validate(context, volume)
if volume['status'] == 'error':
msg = _("The snapshot cannot be created when the volume is "
"in error status.")
LOG.error(msg)
raise exception.InvalidVolume(reason=msg)
reservations = self._create_snapshots_in_db_reserve( reservations = self._create_snapshots_in_db_reserve(
context, volume_list) context, volume_list)
@ -886,7 +881,7 @@ class API(base.Base):
return snapshot_list return snapshot_list
def _create_snapshot_in_db_validate(self, context, volume, force): def _create_snapshot_in_db_validate(self, context, volume):
check_policy(context, 'create_snapshot', volume) check_policy(context, 'create_snapshot', volume)
if volume['status'] == 'maintenance': if volume['status'] == 'maintenance':
@ -899,12 +894,10 @@ class API(base.Base):
# Volume is migrating, wait until done # Volume is migrating, wait until done
msg = _("Snapshot cannot be created while volume is migrating.") msg = _("Snapshot cannot be created while volume is migrating.")
raise exception.InvalidVolume(reason=msg) raise exception.InvalidVolume(reason=msg)
if volume['status'] == 'error':
if ((not force) and (volume['status'] != "available")): msg = _("The snapshot cannot be created when the volume is "
msg = _("Snapshot cannot be created because volume %(vol_id)s " "in error status.")
"is not available, current volume status: " LOG.error(msg)
"%(vol_status)s.") % {'vol_id': volume['id'],
'vol_status': volume['status']}
raise exception.InvalidVolume(reason=msg) raise exception.InvalidVolume(reason=msg)
def _create_snapshots_in_db_reserve(self, context, volume_list): def _create_snapshots_in_db_reserve(self, context, volume_list):