cgsnapshot = self.db.cgsnapshot_get(context, cgsnapshot_id)
except exception.CgSnapshotNotFound:
with excutils.save_and_reraise_exception():
- LOG.error(_LE("CG snapshot %(cgsnap) not found when "
+ LOG.error(_LE("CG snapshot %(cgsnap)s not found when "
"creating consistency group %(cg)s from "
"source."),
{'cg': name, 'cgsnap': cgsnapshot_id})
source_cgid)
except exception.ConsistencyGroupNotFound:
with excutils.save_and_reraise_exception():
- LOG.error(_LE("Source CG %(source_cg) not found when "
+ LOG.error(_LE("Source CG %(source_cg)s not found when "
"creating consistency group %(cg)s from "
"source."),
{'cg': name, 'source_cg': source_cgid})
sgInstanceName))
else:
errorMessage = (_(
- "Storage group %(sgGroupName) "
+ "Storage group %(sgGroupName)s "
"does not exist.")
- % {'StorageGroup': defaultStorageGroupName})
+ % {'sgGroupName': defaultStorageGroupName})
LOG.error(errorMessage)
raise exception.VolumeBackendAPIException(
data=errorMessage)
# When active sp is unavailable, switch to another sp
# and set it to active and force a poll
if self._toggle_sp():
- LOG.debug('EMC: Command Exception: %(rc) %(result)s. '
+ LOG.debug('EMC: Command Exception: %(rc)s %(result)s. '
'Retry on another SP.', {'rc': rc,
'result': out})
kwargv['poll'] = True
if len(target_pool_name) == 0:
# Destination host is using a legacy driver
LOG.warning(_LW("Didn't get the pool information of the "
- "host %(s). Storage assisted Migration is not "
+ "host %s. Storage assisted Migration is not "
"supported. The host may be using a legacy "
"driver."),
host['name'])
LOG.warning(err)
except hpexceptions.HTTPConflict as e:
err = (_LE("Conflict detected in Virtual Volume Set"
- " %(volume_set): %(error)"),
- {"volume_set": cg_name,
- "error": e})
- LOG.error(err)
+ " %(volume_set)s: %(error)s"))
+ LOG.error(err,
+ {"volume_set": cg_name,
+ "error": e})
volumes = self.db.volume_get_all_by_group(context, group.id)
for volume in volumes:
image_meta)
if not image_volume:
LOG.warning(_LW('Unable to clone image_volume for image '
- '%(image_id) will not create cache entry.'),
+ '%(image_id)s will not create cache entry.'),
{'image_id': image_id})
return
return image_volume
except exception.CinderException:
LOG.exception(_LE('Failed to clone volume %(volume_id)s for '
- 'image %(image_id).'),
+ 'image %(image_id)s.'),
{'volume_id': volume.id,
'image_id': image_meta['id']})
try:
raise exception.InvalidInput(reason=six.text_type(err))
except Exception as err:
err_msg = (_("Validate volume connection failed "
- "(error: %(err)).") % {'err': six.text_type(err)})
+ "(error: %(err)s).") % {'err': six.text_type(err)})
LOG.error(err_msg, resource=volume)
raise exception.VolumeBackendAPIException(data=err_msg)
if tid is None:
LOG.error(_LE("Failed to create iscsi target for volume "
"id:%(vol_id)s. Please verify your configuration "
- "in %(volumes_dir)'"), {
+ "in %(volumes_dir)s'"), {
'vol_id': vol_id,
'volumes_dir': volumes_dir, })
raise exception.NotFound()