From: Walter A. Boring IV Date: Thu, 18 Dec 2014 18:24:50 +0000 (+0000) Subject: Make 3PAR drivers compliant with logging standards X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f303389810aa8945a2967fc81783d3d4a54f1e16;p=openstack-build%2Fcinder-build.git Make 3PAR drivers compliant with logging standards The guidelines are specified here: http://docs.openstack.org/developer/oslo.i18n/guidelines.html Change-Id: I79beb65d94d338ccd96df789691c96b86ddbaac2 Partial-Bug: 1384312 --- diff --git a/cinder/volume/drivers/san/hp/hp_3par_common.py b/cinder/volume/drivers/san/hp/hp_3par_common.py index 9b60ad16c..845d06471 100644 --- a/cinder/volume/drivers/san/hp/hp_3par_common.py +++ b/cinder/volume/drivers/san/hp/hp_3par_common.py @@ -43,7 +43,6 @@ import re import uuid from oslo.utils import importutils -import six hp3parclient = importutils.try_import("hp3parclient") if hp3parclient: @@ -161,10 +160,11 @@ class HP3PARCommon(object): 2.0.29 - Report a limitless cpg's stats better bug #1398651 2.0.30 - Update the minimum hp3parclient version bug #1402115 2.0.31 - Removed usage of host name cache #1398914 + 2.0.32 - Update LOG usage to fix translations. bug #1384312 """ - VERSION = "2.0.31" + VERSION = "2.0.32" stats = {} @@ -253,9 +253,9 @@ class HP3PARCommon(object): known_hosts_file=known_hosts_file) def client_logout(self): - LOG.info(_LI("Disconnect from 3PAR REST and SSH %s") % self.uuid) + LOG.info(_LI("Disconnect from 3PAR REST and SSH %s"), self.uuid) self.client.logout() - LOG.info(_LI("logout Done %s") % self.uuid) + LOG.info(_LI("logout Done %s"), self.uuid) def do_setup(self, context): if hp3parclient is None: @@ -265,9 +265,9 @@ class HP3PARCommon(object): self.client = self._create_client() except hpexceptions.UnsupportedVersion as ex: raise exception.InvalidInput(ex) - LOG.info(_LI("HP3PARCommon %(common_ver)s, hp3parclient %(rest_ver)s") - % {"common_ver": self.VERSION, - "rest_ver": hp3parclient.get_version_string()}) + LOG.info(_LI("HP3PARCommon %(common_ver)s, hp3parclient %(rest_ver)s"), + {"common_ver": self.VERSION, + "rest_ver": hp3parclient.get_version_string()}) if self.config.hp3par_debug: self.client.debug_rest(True) @@ -370,27 +370,27 @@ class HP3PARCommon(object): {'newName': new_vol_name, 'comment': json.dumps(new_comment)}) - LOG.info(_LI("Virtual volume '%(ref)s' renamed to '%(new)s'.") % + LOG.info(_LI("Virtual volume '%(ref)s' renamed to '%(new)s'."), {'ref': existing_ref['source-name'], 'new': new_vol_name}) retyped = False model_update = None if volume_type: LOG.info(_LI("Virtual volume %(disp)s '%(new)s' is " - "being retyped.") % + "being retyped."), {'disp': display_name, 'new': new_vol_name}) try: retyped, model_update = self._retype_from_no_type(volume, volume_type) LOG.info(_LI("Virtual volume %(disp)s successfully retyped to " - "%(new_type)s.") % + "%(new_type)s."), {'disp': display_name, 'new_type': volume_type.get('name')}) except Exception: with excutils.save_and_reraise_exception(): LOG.warning(_LW("Failed to manage virtual volume %(disp)s " - "due to error during retype.") % + "due to error during retype."), {'disp': display_name}) # Try to undo the rename and clear the new comment. self.client.modifyVolume( @@ -403,7 +403,7 @@ class HP3PARCommon(object): updates.update(model_update) LOG.info(_LI("Virtual volume %(disp)s '%(new)s' is " - "now being managed.") % + "now being managed."), {'disp': display_name, 'new': new_vol_name}) # Return display name to update the name displayed in the GUI and @@ -445,7 +445,7 @@ class HP3PARCommon(object): self.client.modifyVolume(vol_name, {'newName': new_vol_name}) LOG.info(_LI("Virtual volume %(disp)s '%(vol)s' is no longer managed. " - "Volume renamed to '%(new)s'.") % + "Volume renamed to '%(new)s'."), {'disp': volume['display_name'], 'vol': vol_name, 'new': new_vol_name}) @@ -496,7 +496,7 @@ class HP3PARCommon(object): _convert_to_base=True) else: LOG.error(_LE("Error extending volume: %(vol)s. " - "Exception: %(ex)s") % + "Exception: %(ex)s"), {'vol': volume_name, 'ex': ex}) return model_update @@ -868,7 +868,7 @@ class HP3PARCommon(object): self.client.createQoSRules(vvs_name, qosRule) except Exception: with excutils.save_and_reraise_exception(): - LOG.error(_LE("Error creating QOS rule %s") % qosRule) + LOG.error(_LE("Error creating QOS rule %s"), qosRule) def _add_volume_to_volume_set(self, volume, volume_name, cpg, vvs_name, qos): @@ -1317,7 +1317,7 @@ class HP3PARCommon(object): self.client.growVolume(volume_name, growth_size_mib) except Exception as ex: LOG.error(_LE("Error extending volume %(id)s. " - "Ex: %(ex)s") % + "Ex: %(ex)s"), {'id': volume['id'], 'ex': ex}) # Delete the volume if unable to grow it self.client.deleteVolume(volume_name) @@ -1428,7 +1428,7 @@ class HP3PARCommon(object): instance_uuid) except Exception: with excutils.save_and_reraise_exception(): - LOG.error(_LE("Error attaching volume %s") % volume) + LOG.error(_LE("Error attaching volume %s"), volume) def detach_volume(self, volume): LOG.debug("Detach Volume\n%s" % pprint.pformat(volume)) @@ -1436,7 +1436,7 @@ class HP3PARCommon(object): self.clear_volume_key_value_pair(volume, 'HPQ-CS-instance_uuid') except Exception: with excutils.save_and_reraise_exception(): - LOG.error(_LE("Error detaching volume %s") % volume) + LOG.error(_LE("Error detaching volume %s"), volume) def migrate_volume(self, volume, host): """Migrate directly if source and dest are managed by same storage. @@ -1466,7 +1466,7 @@ class HP3PARCommon(object): ret = self.retype(volume, volume_type, None, host) except Exception as e: LOG.info(_LI('3PAR driver cannot perform migration. ' - 'Retype exception: %s') % six.text_type(e)) + 'Retype exception: %s'), e) LOG.debug('leave: migrate_volume: id=%(id)s, host=%(host)s.' % dbg) LOG.debug('migrate_volume result: %s, %s' % ret) @@ -1531,7 +1531,7 @@ class HP3PARCommon(object): self.client.modifyVolume(temp_vol_name, {'newName': volume_name}) LOG.info(_LI('Completed: convert_to_base_volume: ' - 'id=%s.') % volume['id']) + 'id=%s.'), volume['id']) except hpexceptions.HTTPConflict: msg = _("Volume (%s) already exists on array.") % volume_name LOG.error(msg) @@ -1653,7 +1653,7 @@ class HP3PARCommon(object): if new_cpg != old_cpg: LOG.info(_LI("Modifying %(volume_name)s userCPG " "from %(old_cpg)s" - " to %(new_cpg)s") % + " to %(new_cpg)s"), {'volume_name': volume_name, 'old_cpg': old_cpg, 'new_cpg': new_cpg}) _response, body = self.client.modifyVolume( @@ -1673,12 +1673,12 @@ class HP3PARCommon(object): if old_tpvv: cop = self.CONVERT_TO_FULL LOG.info(_LI("Converting %(volume_name)s to full provisioning " - "with userCPG=%(new_cpg)s") % + "with userCPG=%(new_cpg)s"), {'volume_name': volume_name, 'new_cpg': new_cpg}) else: cop = self.CONVERT_TO_THIN LOG.info(_LI("Converting %(volume_name)s to thin provisioning " - "with userCPG=%(new_cpg)s") % + "with userCPG=%(new_cpg)s"), {'volume_name': volume_name, 'new_cpg': new_cpg}) try: @@ -1694,7 +1694,7 @@ class HP3PARCommon(object): # use keepVV and have straggling volumes. Log additional # info and then raise. LOG.info(_LI("tunevv failed because the volume '%s' " - "has snapshots.") % volume_name) + "has snapshots."), volume_name) raise ex task_id = body['taskid'] @@ -1971,7 +1971,7 @@ class ModifyVolumeTask(flow_utils.CinderTask): if new_snap_cpg != old_snap_cpg: # Modify the snap_cpg. This will fail with snapshots. LOG.info(_LI("Modifying %(volume_name)s snap_cpg from " - "%(old_snap_cpg)s to %(new_snap_cpg)s.") % + "%(old_snap_cpg)s to %(new_snap_cpg)s."), {'volume_name': volume_name, 'old_snap_cpg': old_snap_cpg, 'new_snap_cpg': new_snap_cpg}) @@ -1981,7 +1981,7 @@ class ModifyVolumeTask(flow_utils.CinderTask): 'comment': json.dumps(comment_dict)}) self.needs_revert = True else: - LOG.info(_LI("Modifying %s comments.") % volume_name) + LOG.info(_LI("Modifying %s comments."), volume_name) common.client.modifyVolume( volume_name, {'comment': json.dumps(comment_dict)}) @@ -1991,7 +1991,7 @@ class ModifyVolumeTask(flow_utils.CinderTask): old_comment, **kwargs): if self.needs_revert: LOG.info(_LI("Retype revert %(volume_name)s snap_cpg from " - "%(new_snap_cpg)s back to %(old_snap_cpg)s.") % + "%(new_snap_cpg)s back to %(old_snap_cpg)s."), {'volume_name': volume_name, 'new_snap_cpg': new_snap_cpg, 'old_snap_cpg': old_snap_cpg}) @@ -2000,7 +2000,7 @@ class ModifyVolumeTask(flow_utils.CinderTask): volume_name, {'snapCPG': old_snap_cpg, 'comment': old_comment}) except Exception as ex: - LOG.error(_LE("Exception during snapCPG revert: %s") % ex) + LOG.error(_LE("Exception during snapCPG revert: %s"), ex) class TuneVolumeTask(flow_utils.CinderTask): @@ -2069,7 +2069,7 @@ class ModifySpecsTask(flow_utils.CinderTask): # HTTPNotFound(code=102) is OK. Set does not exist. if ex.get_code() != 102: LOG.error(_LE("Unexpected error when retype() tried to " - "deleteVolumeSet(%s)") % vvs_name) + "deleteVolumeSet(%s)"), vvs_name) raise ex if new_vvs or new_qos: @@ -2090,10 +2090,10 @@ class ModifySpecsTask(flow_utils.CinderTask): # HTTPNotFound(code=102) is OK. Set does not exist. if ex.get_code() != 102: LOG.error(_LE("Unexpected error when retype() revert " - "tried to deleteVolumeSet(%s)") % vvs_name) + "tried to deleteVolumeSet(%s)"), vvs_name) except Exception: LOG.error(_LE("Unexpected error when retype() revert " - "tried to deleteVolumeSet(%s)") % vvs_name) + "tried to deleteVolumeSet(%s)"), vvs_name) if old_vvs is not None or old_qos is not None: try: @@ -2103,7 +2103,7 @@ class ModifySpecsTask(flow_utils.CinderTask): LOG.error(_LE("%(exception)s: Exception during revert of " "retype for volume %(volume_name)s. " "Original volume set/QOS settings may not " - "have been fully restored.") % + "have been fully restored."), {'exception': ex, 'volume_name': volume_name}) if new_vvs is not None and old_vvs != new_vvs: @@ -2114,7 +2114,7 @@ class ModifySpecsTask(flow_utils.CinderTask): LOG.error(_LE("%(exception)s: Exception during revert of " "retype for volume %(volume_name)s. " "Failed to remove from new volume set " - "%(new_vvs)s.") % + "%(new_vvs)s."), {'exception': ex, 'volume_name': volume_name, 'new_vvs': new_vvs}) diff --git a/cinder/volume/drivers/san/hp/hp_3par_iscsi.py b/cinder/volume/drivers/san/hp/hp_3par_iscsi.py index 7a433c958..834b0247d 100644 --- a/cinder/volume/drivers/san/hp/hp_3par_iscsi.py +++ b/cinder/volume/drivers/san/hp/hp_3par_iscsi.py @@ -79,10 +79,11 @@ class HP3PARISCSIDriver(cinder.volume.driver.ISCSIDriver): 2.0.10 - Add call to queryHost instead SSH based findHost #1398206 2.0.11 - Added missing host name during attach fix #1398206 2.0.12 - Removed usage of host name cache #1398914 + 2.0.13 - Update LOG usage to fix translations. bug #1384312 """ - VERSION = "2.0.12" + VERSION = "2.0.13" def __init__(self, *args, **kwargs): super(HP3PARISCSIDriver, self).__init__(*args, **kwargs) @@ -537,7 +538,7 @@ class HP3PARISCSIDriver(cinder.volume.driver.ISCSIDriver): vol_name = common._get_3par_vol_name(volume['id']) common.client.getVolume(vol_name) except hpexceptions.HTTPNotFound: - LOG.error(_LE("Volume %s doesn't exist on array.") % vol_name) + LOG.error(_LE("Volume %s doesn't exist on array."), vol_name) else: metadata = common.client.getAllVolumeMetaData(vol_name)