]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Remove usage of locals() for formatting from cinder.volume.*
authorHaomai Wang <haomai@unitedstack.com>
Sun, 16 Jun 2013 05:21:20 +0000 (13:21 +0800)
committerHaomai Wang <haomai@unitedstack.com>
Sun, 16 Jun 2013 15:59:29 +0000 (23:59 +0800)
Using of locals() for formatting string is a nasty thing because:
1) It is not so clear as using explicit dicts
2) It could produce hidden errors during refactoring
3) Changing name of variable causes change in message
4) Creating a lot of unused variables

Fix bug 1171936

Change-Id: I806c530851527db9da251352be45b97c183241a8

cinder/volume/drivers/emc/emc_smis_common.py
cinder/volume/drivers/glusterfs.py
cinder/volume/drivers/netapp/iscsi.py
cinder/volume/drivers/netapp/nfs.py
cinder/volume/drivers/nfs.py
cinder/volume/drivers/san/hp/hp_3par_common.py
cinder/volume/drivers/san/hp_lefthand.py
cinder/volume/drivers/san/solaris.py
cinder/volume/drivers/zadara.py
cinder/volume/manager.py

index a6896daef49e1dcff12ba7efb5dd83814b5a2250..90ae06103a1e6164f5e67332561fbf4501ba97ec 100644 (file)
@@ -943,7 +943,8 @@ class EMCSMISCommon():
             ecomPort = ecomPorts[0].toxml().replace('<EcomServerPort>', '')
             ecomPort = ecomPort.replace('</EcomServerPort>', '')
         if ecomIp is not None and ecomPort is not None:
-            LOG.debug(_("Ecom IP: %(ecomIp)s Port: %(ecomPort)s") % (locals()))
+            LOG.debug(_("Ecom IP: %(ecomIp)s Port: %(ecomPort)s"),
+                      {'ecomIp': ecomIp, 'ecomPort': ecomPort})
             return ecomIp, ecomPort
         else:
             LOG.debug(_("Ecom server not found."))
index 2fcd6ab2ad9985b4d131cf4c77a0a7827fe39fa6..7220321e900e479bad64f26e6615208823e5559e 100644 (file)
@@ -67,7 +67,7 @@ class GlusterfsDriver(nfs.RemoteFsDriver):
             raise exception.GlusterfsException(msg)
         if not os.path.exists(config):
             msg = (_("Gluster config file at %(config)s doesn't exist") %
-                   locals())
+                   {'config': config})
             LOG.warn(msg)
             raise exception.GlusterfsException(msg)
 
index 0e6b2e95bd25f8bcf39fd412735b15ddcdaa62de..fce49daddfa49e51ac4119450eb77132807e460b 100644 (file)
@@ -122,10 +122,9 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
     def _check_fail(self, request, response):
         """Utility routine to handle checking ZAPI failures."""
         if 'failed' == response.Status:
-            name = request.Name
-            reason = response.Reason
             msg = _('API %(name)s failed: %(reason)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg_fmt = {'name': request.Name, 'reason': response.Reason}
+            raise exception.VolumeBackendAPIException(msg % msg_fmt)
 
     def _create_client(self, **kwargs):
         """Instantiate a web services client.
@@ -281,10 +280,10 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
                             project, type)
             self.discovered_datasets.append(ds)
             self._discover_dataset_luns(ds, None)
-        dataset_count = len(self.discovered_datasets)
-        lun_count = len(self.discovered_luns)
-        msg = _("Discovered %(dataset_count)s datasets and %(lun_count)s LUNs")
-        LOG.debug(msg % locals())
+        msg = (_("Discovered %(dataset_count)s datasets and %(lun_count)s"
+                 "LUNs") % {'dataset_count': len(self.discovered_datasets),
+                            'lun_count': len(self.discovered_luns)})
+        LOG.debug(msg)
         self.lun_table = {}
 
     def _get_job_progress(self, job_id):
@@ -464,8 +463,8 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
             lun = self._lookup_lun_for_volume(name, project)
             lun_details = self._get_lun_details(lun.id)
         except exception.VolumeBackendAPIException:
-            msg = _("No entry in LUN table for volume %(name)s.")
-            LOG.debug(msg % locals())
+            LOG.debug(_("No entry in LUN table for volume %(name)s."),
+                      {'name': name})
             return
 
         member = self.client.factory.create('DatasetMemberParameter')
@@ -1045,7 +1044,8 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
         if vol_size != snap_size:
             msg = _('Cannot create volume of size %(vol_size)s from '
                     'snapshot of size %(snap_size)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg_fmt = {'vol_size': vol_size, 'snap_size': snap_size}
+            raise exception.VolumeBackendAPIException(msg % msg_fmt)
         vol_name = snapshot['volume_name']
         snapshot_name = snapshot['name']
         project = snapshot['project_id']
@@ -1057,7 +1057,8 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
         if new_type != old_type:
             msg = _('Cannot create volume of type %(new_type)s from '
                     'snapshot of type %(old_type)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg_fmt = {'vol_size': vol_size, 'snap_size': snap_size}
+            raise exception.VolumeBackendAPIException(msg % msg_fmt)
         lun = self._get_lun_details(lun_id)
         extra_gb = vol_size
         new_size = '+%dg' % extra_gb
@@ -1078,7 +1079,8 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
         if vol_size != src_vol_size:
             msg = _('Cannot create clone of size %(vol_size)s from '
                     'volume of size %(src_vol_size)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg_fmt = {'vol_size': vol_size, 'src_vol_size': src_vol_size}
+            raise exception.VolumeBackendAPIException(msg % msg_fmt)
         src_vol_name = src_vref['name']
         project = src_vref['project_id']
         lun = self._lookup_lun_for_volume(src_vol_name, project)
@@ -1087,9 +1089,10 @@ class NetAppISCSIDriver(driver.ISCSIDriver):
         old_type = dataset.type
         new_type = self._get_ss_type(volume)
         if new_type != old_type:
-            msg = _('Cannot create clone of type %(new_type)s from '
-                    'volume of type %(old_type)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg = (_('Cannot create clone of type %(new_type)s from '
+                     'volume of type %(old_type)s') %
+                   {'new_type': new_type, 'old_type': old_type})
+            raise exception.VolumeBackendAPIException(data=msg)
         lun = self._get_lun_details(lun_id)
         extra_gb = vol_size
         new_size = '+%dg' % extra_gb
@@ -1144,8 +1147,9 @@ class NetAppLun(object):
         if prop in self.metadata:
             return self.metadata[prop]
         name = self.name
-        msg = _("No metadata property %(prop)s defined for the LUN %(name)s")
-        LOG.debug(msg % locals())
+        msg = _("No metadata property %(prop)s defined for the LUN "
+                "%(name)s") % {'prop': prop, 'name': name}
+        LOG.debug(msg)
 
     def __str__(self, *args, **kwargs):
         return 'NetApp Lun[handle:%s, name:%s, size:%s, metadata:%s]'\
@@ -1251,8 +1255,8 @@ class NetAppCmodeISCSIDriver(driver.ISCSIDriver):
         name = volume['name']
         handle = self._get_lun_handle(name)
         if not handle:
-            msg = _("No entry in LUN table for volume %(name)s.")
-            LOG.warn(msg % locals())
+            LOG.warn(_("No entry in LUN table for volume %(name)s."),
+                     {'name': name})
             return
         self.client.service.DestroyLun(Handle=handle)
         LOG.debug(_("Destroyed LUN %s") % handle)
@@ -1292,16 +1296,17 @@ class NetAppCmodeISCSIDriver(driver.ISCSIDriver):
         server = self.client.service
         server.MapLun(Handle=handle, InitiatorType="iscsi",
                       InitiatorName=initiator_name)
-        msg = _("Mapped LUN %(handle)s to the initiator %(initiator_name)s")
-        LOG.debug(msg % locals())
+        LOG.debug(_("Mapped LUN %(handle)s to the initiator "
+                    "%(initiator_name)s"),
+                  {'handle': handle, 'initiator_name': initiator_name})
 
         target_details_list = server.GetLunTargetDetails(
             Handle=handle,
             InitiatorType="iscsi",
             InitiatorName=initiator_name)
-        msg = _("Succesfully fetched target details for LUN %(handle)s and "
-                "initiator %(initiator_name)s")
-        LOG.debug(msg % locals())
+        LOG.debug(_("Succesfully fetched target details for LUN %(handle)s and"
+                    " initiator %(initiator_name)s"),
+                  {'handle': handle, 'initiator_name': initiator_name})
 
         if not target_details_list:
             msg = _('Failed to get LUN target details for the LUN %s')
@@ -1346,8 +1351,9 @@ class NetAppCmodeISCSIDriver(driver.ISCSIDriver):
         self.client.service.UnmapLun(Handle=handle, InitiatorType="iscsi",
                                      InitiatorName=initiator_name)
         msg = _("Unmapped LUN %(handle)s from the initiator "
-                "%(initiator_name)s")
-        LOG.debug(msg % locals())
+                "%(initiator_name)s") % {'handle': handle,
+                                         'initiator_name': initiator_name}
+        LOG.debug(msg)
 
     def create_snapshot(self, snapshot):
         """Driver entry point for creating a snapshot.
@@ -1366,8 +1372,8 @@ class NetAppCmodeISCSIDriver(driver.ISCSIDriver):
         name = snapshot['name']
         handle = self._get_lun_handle(name)
         if not handle:
-            msg = _("No entry in LUN table for snapshot %(name)s.")
-            LOG.warn(msg % locals())
+            LOG.warn(_("No entry in LUN table for snapshot %(name)s."),
+                     {'name': name})
             return
         self.client.service.DestroyLun(Handle=handle)
         LOG.debug(_("Destroyed LUN %s") % handle)
@@ -1384,7 +1390,8 @@ class NetAppCmodeISCSIDriver(driver.ISCSIDriver):
         if vol_size != snap_size:
             msg = _('Cannot create volume of size %(vol_size)s from '
                     'snapshot of size %(snap_size)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg_fmt = {'vol_size': vol_size, 'snap_size': snap_size}
+            raise exception.VolumeBackendAPIException(msg % msg_fmt)
         snapshot_name = snapshot['name']
         lun = self.lun_table[snapshot_name]
         new_name = volume['name']
@@ -1461,7 +1468,8 @@ class NetAppCmodeISCSIDriver(driver.ISCSIDriver):
         if vol_size != src_vol_size:
             msg = _('Cannot clone volume of size %(vol_size)s from '
                     'src volume of size %(src_vol_size)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg_fmt = {'vol_size': vol_size, 'src_vol_size': src_vol_size}
+            raise exception.VolumeBackendAPIException(msg % msg_fmt)
         new_name = volume['name']
         extra_args = {}
         extra_args['OsType'] = 'linux'
@@ -1586,8 +1594,8 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
         name = volume['name']
         metadata = self._get_lun_attr(name, 'metadata')
         if not metadata:
-            msg = _("No entry in LUN table for volume/snapshot %(name)s.")
-            LOG.warn(msg % locals())
+            LOG.warn(_("No entry in LUN table for volume/snapshot %(name)s."),
+                     {'name': name})
             return
         lun_destroy = NaElement.create_node_with_children(
             'lun-destroy',
@@ -1629,13 +1637,15 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
         initiator_name = connector['initiator']
         name = volume['name']
         lun_id = self._map_lun(name, initiator_name, 'iscsi', None)
-        msg = _("Mapped LUN %(name)s to the initiator %(initiator_name)s")
-        LOG.debug(msg % locals())
+        msg = (_("Mapped LUN %(name)s to the initiator %(initiator_name)s") %
+               {'name': name, 'initiator_name': initiator_name})
+        LOG.debug(msg)
         iqn = self._get_iscsi_service_details()
         target_details_list = self._get_target_details()
-        msg = _("Succesfully fetched target details for LUN %(name)s and "
-                "initiator %(initiator_name)s")
-        LOG.debug(msg % locals())
+        msg = (_("Succesfully fetched target details for LUN %(name)s and "
+                 "initiator %(initiator_name)s") %
+               {'name': name, 'initiator_name': initiator_name})
+        LOG.debug(msg)
 
         if not target_details_list:
             msg = _('Failed to get LUN target details for the LUN %s')
@@ -1700,9 +1710,10 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
         vol_size = volume['size']
         snap_size = snapshot['volume_size']
         if vol_size != snap_size:
-            msg = _('Cannot create volume of size %(vol_size)s from '
-                    'snapshot of size %(snap_size)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg = (_('Cannot create volume of size %(vol_size)s from '
+                     'snapshot of size %(snap_size)s') %
+                   {'vol_size': vol_size, 'snap_size': snap_size})
+            raise exception.VolumeBackendAPIException(data=msg)
         snapshot_name = snapshot['name']
         new_name = volume['name']
         self._clone_lun(snapshot_name, new_name, 'true')
@@ -1718,9 +1729,10 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
         metadata = self._get_lun_attr(name, 'metadata')
         path = metadata['Path']
         self._unmap_lun(path, initiator_name)
-        msg = _("Unmapped LUN %(name)s from the initiator "
-                "%(initiator_name)s")
-        LOG.debug(msg % locals())
+        msg = (_("Unmapped LUN %(name)s from the initiator "
+                 "%(initiator_name)s") %
+               {'name': name, 'initiator_name': initiator_name})
+        LOG.debug(msg)
 
     def _get_ontapi_version(self):
         """Gets the supported ontapi version."""
@@ -1810,10 +1822,10 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
             result = self.client.invoke_successfully(lun_map, True)
             return result.get_child_content('lun-id-assigned')
         except NaApiError as e:
-            code = e.code
-            message = e.message
-            msg = _('Error mapping lun. Code :%(code)s, Message:%(message)s')
-            LOG.warn(msg % locals())
+            msg = (_("Error mapping lun. Code :%(code)s,"
+                     " Message:%(message)s") %
+                   {'code': e.code, 'message': e.message})
+            LOG.warn(msg)
             (igroup, lun_id) = self._find_mapped_lun_igroup(path, initiator)
             if lun_id is not None:
                 return lun_id
@@ -1830,10 +1842,10 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
         try:
             self.client.invoke_successfully(lun_unmap, True)
         except NaApiError as e:
-            msg = _("Error unmapping lun. Code :%(code)s, Message:%(message)s")
-            code = e.code
-            message = e.message
-            LOG.warn(msg % locals())
+            msg = (_("Error unmapping lun. Code :%(code)s,"
+                     " Message:%(message)s") %
+                   {'code': e.code, 'message': e.message})
+            LOG.warn(msg)
             # if the lun is already unmapped
             if e.code == '13115' or e.code == '9016':
                 pass
@@ -1937,9 +1949,10 @@ class NetAppDirectISCSIDriver(driver.ISCSIDriver):
         src_vol = self.lun_table[src_vref['name']]
         src_vol_size = src_vref['size']
         if vol_size != src_vol_size:
-            msg = _('Cannot clone volume of size %(vol_size)s from '
-                    'src volume of size %(src_vol_size)s')
-            raise exception.VolumeBackendAPIException(data=msg % locals())
+            msg = (_("Cannot clone volume of size %(vol_size)s from "
+                     "src volume of size %(src_vol_size)s") %
+                   {'vol_size': vol_size, 'src_vol_size': src_vol_size})
+            raise exception.VolumeBackendAPIException(data=msg)
         new_name = volume['name']
         self._clone_lun(src_vol.name, new_name, 'true')
 
@@ -2379,7 +2392,7 @@ class NetAppDirect7modeISCSIDriver(NetAppDirectISCSIDriver):
                         lun_list.extend(luns)
                 except NaApiError:
                     LOG.warn(_("Error finding luns for volume %(vol)s."
-                               " Verify volume exists.") % locals())
+                               " Verify volume exists."), {'vol': vol})
         else:
             luns = self._get_vol_luns(None)
             lun_list.extend(luns)
@@ -2483,10 +2496,12 @@ class NetAppDirect7modeISCSIDriver(NetAppDirectISCSIDriver):
                 if clone_ops_info.get_child_content('clone-state')\
                         == 'completed':
                     LOG.debug(_("Clone operation with src %(name)s"
-                                " and dest %(new_name)s completed") % locals())
+                                " and dest %(new_name)s completed"),
+                              {'name': name, 'new_name': new_name})
                 else:
                     LOG.debug(_("Clone operation with src %(name)s"
-                                " and dest %(new_name)s failed") % locals())
+                                " and dest %(new_name)s failed"),
+                              {'name': name, 'new_name': new_name})
                     raise NaApiError(
                         clone_ops_info.get_child_content('error'),
                         clone_ops_info.get_child_content('reason'))
index 2110adeb95cfef46142086157a3fda5ddf02b1e8..885c619ea0c190292bd70f2f6e2769bf3b548aec 100644 (file)
@@ -75,9 +75,10 @@ class NetAppNFSDriver(nfs.NfsDriver):
         snap_size = snapshot.volume_size
 
         if vol_size != snap_size:
-            msg = _('Cannot create volume of size %(vol_size)s from '
-                    'snapshot of size %(snap_size)s')
-            raise exception.CinderException(msg % locals())
+            msg = (_('Cannot create volume of size %(vol_size)s from '
+                     'snapshot of size %(snap_size)s') %
+                   {'vol_size': vol_size, 'snap_size': snap_size})
+            raise exception.CinderException(msg)
 
         self._clone_volume(snapshot.name, volume.name, snapshot.volume_id)
         share = self._get_volume_location(snapshot.volume_id)
@@ -274,9 +275,10 @@ class NetAppNFSDriver(nfs.NfsDriver):
         src_vol_size = src_vref.size
 
         if vol_size != src_vol_size:
-            msg = _('Cannot create clone of size %(vol_size)s from '
-                    'volume of size %(src_vol_size)s')
-            raise exception.CinderException(msg % locals())
+            msg = (_('Cannot create clone of size %(vol_size)s from '
+                     'volume of size %(src_vol_size)s') %
+                   {'vol_size': vol_size, 'src_vol_size': src_vol_size})
+            raise exception.CinderException(msg)
 
         self._clone_volume(src_vref.name, volume.name, src_vref.id)
         share = self._get_volume_location(src_vref.id)
@@ -313,9 +315,11 @@ class NetAppCmodeNfsDriver (NetAppNFSDriver):
         """Clones mounted volume with NetApp Cloud Services."""
         host_ip = self._get_host_ip(volume_id)
         export_path = self._get_export_path(volume_id)
-        LOG.debug(_("""Cloning with params ip %(host_ip)s, exp_path
-                    %(export_path)s, vol %(volume_name)s,
-                    clone_name %(clone_name)s""") % locals())
+        LOG.debug(_("Cloning with params ip %(host_ip)s, exp_path"
+                    "%(export_path)s, vol %(volume_name)s, "
+                    "clone_name %(clone_name)s"),
+                  {'host_ip': host_ip, 'export_path': export_path,
+                   'volume_name': volume_name, 'clone_name': clone_name})
         self._client.service.CloneNasFile(host_ip, export_path,
                                           volume_name, clone_name)
 
@@ -488,15 +492,17 @@ class NetAppDirectCmodeNfsDriver (NetAppDirectNfsDriver):
             vols = attr_list.get_children()
             vol_id = vols[0].get_child_by_name('volume-id-attributes')
             return vol_id.get_child_content('name')
-        raise exception.NotFound(_("""No volume on cluster with vserver
-                                   %(vserver)s and junction path %(junction)s
-                                   """) % locals())
+        raise exception.NotFound(_("No volume on cluster with vserver"
+                                   "%(vserver)s and junction path "
+                                   "%(junction)s"), {'vserver': vserver,
+                                                     'junction': junction})
 
     def _clone_file(self, volume, src_path, dest_path, vserver=None):
         """Clones file on vserver."""
-        LOG.debug(_("""Cloning with params volume %(volume)s,src %(src_path)s,
-                    dest %(dest_path)s, vserver %(vserver)s""")
-                  % locals())
+        LOG.debug(_("Cloning with params volume %(volume)s,src %(src_path)s,"
+                    "dest %(dest_path)s, vserver %(vserver)s"),
+                  {'volume': volume, 'src_path': src_path,
+                   'dest_path': dest_path, 'vserver': vserver})
         clone_create = NaElement.create_node_with_children(
             'clone-create',
             **{'volume': volume, 'source-path': src_path,
@@ -556,8 +562,8 @@ class NetAppDirect7modeNfsDriver (NetAppDirectNfsDriver):
 
         :returns: clone-id
         """
-        LOG.debug(_("""Cloning with src %(src_path)s, dest %(dest_path)s""")
-                  % locals())
+        LOG.debug(_("Cloning with src %(src_path)s, dest %(dest_path)s"),
+                  {'src_path': src_path, 'dest_path': dest_path})
         clone_start = NaElement.create_node_with_children(
             'clone-start',
             **{'source-path': src_path,
index e2e95d236a51a6302d424363f75939c1a8825b02..bb15377e026eb3fddc7098f0fb23c1803b2f1cf5 100644 (file)
@@ -201,7 +201,8 @@ class NfsDriver(RemoteFsDriver):
             LOG.warn(msg)
             raise exception.NfsException(msg)
         if not os.path.exists(config):
-            msg = _("NFS config file at %(config)s doesn't exist") % locals()
+            msg = (_("NFS config file at %(config)s doesn't exist") %
+                   {'config': config})
             LOG.warn(msg)
             raise exception.NfsException(msg)
         if not self.configuration.nfs_oversub_ratio > 0:
index 37d9d0658fd1d3e0acf8604e89ceaed55d199327..4c0ab2de46cdb11e6be4e9d298cab3457c3aebfe 100644 (file)
@@ -309,9 +309,10 @@ exit
                     except Exception as e:
                         LOG.error(e)
                         greenthread.sleep(randint(20, 500) / 100.0)
-                raise paramiko.SSHException(_("SSH Command failed after "
-                                              "'%(total_attempts)r' attempts"
-                                              ": '%(command)s'"), locals())
+                msg = (_("SSH Command failed after '%(total_attempts)r' "
+                         "attempts : '%(command)s'") %
+                       {'total_attempts': total_attempts, 'command': command})
+                raise paramiko.SSHException(msg)
         except Exception as e:
             LOG.error(_("Error running ssh command: %s") % command)
             raise e
index 6dff285a0af0250c9e5d323d740e81201802c07a..0a5d02f7cc840c623b68bd80e0afd47a0e6c9819 100644 (file)
@@ -79,7 +79,7 @@ class HpSanISCSIDriver(SanISCSIDriver):
             if response_node is None:
                 msg = (_("Malformed response to CLIQ command "
                          "%(verb)s %(cliq_args)s. Result=%(out)s") %
-                       locals())
+                       {'verb': verb, 'cliq_args': cliq_args, 'out': out})
                 raise exception.VolumeBackendAPIException(data=msg)
 
             result_code = response_node.attrib.get("result")
@@ -87,7 +87,7 @@ class HpSanISCSIDriver(SanISCSIDriver):
             if result_code != "0":
                 msg = (_("Error running CLIQ command %(verb)s %(cliq_args)s. "
                          " Result=%(out)s") %
-                       locals())
+                       {'verb': verb, 'cliq_args': cliq_args, 'out': out})
                 raise exception.VolumeBackendAPIException(data=msg)
 
         return result_xml
@@ -117,7 +117,7 @@ class HpSanISCSIDriver(SanISCSIDriver):
         _xml = etree.tostring(cluster_xml)
         msg = (_("Unexpected number of virtual ips for cluster "
                  " %(cluster_name)s. Result=%(_xml)s") %
-               locals())
+               {'cluster_name': cluster_name, '_xml': _xml})
         raise exception.VolumeBackendAPIException(data=msg)
 
     def _cliq_get_volume_info(self, volume_name):
@@ -169,7 +169,8 @@ class HpSanISCSIDriver(SanISCSIDriver):
                 volume_attributes["permission." + k] = v
 
         LOG.debug(_("Volume info: %(volume_name)s => %(volume_attributes)s") %
-                  locals())
+                  {'volume_name': volume_name,
+                   'volume_attributes': volume_attributes})
         return volume_attributes
 
     def create_volume(self, volume):
index f6537ddae8606816f01f72b52fba82721e7f55a5..38ab52b4a8dc6d480fdfa786afc27459f2cdcbd0 100644 (file)
@@ -173,7 +173,7 @@ class SolarisISCSIDriver(SanISCSIDriver):
                 return luid
 
         msg = _('LUID not found for %(zfs_poolname)s. '
-                'Output=%(out)s') % locals()
+                'Output=%(out)s') % {'zfs_poolname': zfs_poolname, 'out': out}
         raise exception.VolumeBackendAPIException(data=msg)
 
     def _is_lu_created(self, volume):
index 138c8ad1ec2dc65101d22873ef65987dd5ef9a3f..52a19235a6d76736417ecdba5808db50cea5a188 100644 (file)
@@ -215,8 +215,8 @@ class ZadaraVPSAConnection(object):
         self.ensure_connection(cmd)
 
         (method, url, body) = self._generate_vpsa_cmd(cmd, **kwargs)
-        LOG.debug(_('Sending %(method)s to %(url)s. Body "%(body)s"')
-                  % locals())
+        LOG.debug(_('Sending %(method)s to %(url)s. Body "%(body)s"'),
+                  {'method': method, 'url': url, 'body': body})
 
         if self.use_ssl:
             connection = httplib.HTTPSConnection(self.host, self.port)
@@ -237,7 +237,7 @@ class ZadaraVPSAConnection(object):
             raise exception.FailedCmdWithDump(status=status, data=data)
 
         if method in ['POST', 'DELETE']:
-            LOG.debug(_('Operation completed. %(data)s') % locals())
+            LOG.debug(_('Operation completed. %(data)s'), {'data': data})
         return xml_tree
 
 
@@ -348,7 +348,7 @@ class ZadaraVPSAISCSIDriver(driver.ISCSIDriver):
         vpsa_vol = self._get_vpsa_volume_name(name)
         if not vpsa_vol:
             msg = _('Volume %(name)s could not be found. '
-                    'It might be already deleted') % locals()
+                    'It might be already deleted') % {'name': name}
             LOG.warning(msg)
             if CONF.zadara_vpsa_allow_nonexistent_delete:
                 return
@@ -444,7 +444,8 @@ class ZadaraVPSAISCSIDriver(driver.ISCSIDriver):
         properties['auth_username'] = ctrl['chap_user']
         properties['auth_password'] = ctrl['chap_passwd']
 
-        LOG.debug(_('Attach properties: %(properties)s') % locals())
+        LOG.debug(_('Attach properties: %(properties)s'),
+                  {'properties': properties})
         return {'driver_volume_type': 'iscsi',
                 'data': properties}
 
index 6babf84f29653c0c28d6faa349510c64d8c9af4b..9c3fe3d0bb5aadf7f1c672e5c2a3bba140367b1f 100644 (file)
@@ -214,10 +214,10 @@ class VolumeManager(manager.SchedulerDependentManager):
         cloned = False
 
         try:
-            vol_name = volume_ref['name']
-            vol_size = volume_ref['size']
             LOG.debug(_("volume %(vol_name)s: creating lv of"
-                        " size %(vol_size)sG") % locals())
+                        " size %(vol_size)sG"),
+                      {'vol_name': volume_ref['name'],
+                       'vol_size': volume_ref['size']})
             snapshot_ref = None
             sourcevol_ref = None
             image_service = None
@@ -468,8 +468,8 @@ class VolumeManager(manager.SchedulerDependentManager):
             context, snapshot_ref, "create.start")
 
         try:
-            snap_name = snapshot_ref['name']
-            LOG.debug(_("snapshot %(snap_name)s: creating") % locals())
+            LOG.debug(_("snapshot %(snap_name)s: creating"),
+                      {'snap_name': snapshot_ref['name']})
             model_update = self.driver.create_snapshot(snapshot_ref)
             if model_update:
                 self.db.snapshot_update(context, snapshot_ref['id'],
@@ -644,7 +644,8 @@ class VolumeManager(manager.SchedulerDependentManager):
             self.driver.copy_volume_to_image(context, volume, image_service,
                                              image_meta)
             LOG.debug(_("Uploaded volume %(volume_id)s to "
-                        "image (%(image_id)s) successfully") % locals())
+                        "image (%(image_id)s) successfully"),
+                      {'volume_id': volume_id, 'image_id': image_id})
         except Exception as error:
             with excutils.save_and_reraise_exception():
                 payload['message'] = unicode(error)