Browse Source

Remove log translations in share and share_group 4/5

Log messages are no longer being translated. This removes all use of
the _LE, _LI, and _LW translation markers to simplify logging and to
avoid confusion with new contributions.
This is the 4/5 commit.
Old commit will be abandoned: https://review.openstack.org/#/c/447822/

See:
http://lists.openstack.org/pipermail/openstack-i18n/2016-November/002574.html
http://lists.openstack.org/pipermail/openstack-dev/2017-March/113365.html

Change-Id: Ia46e9dc4953c788274f5c9b763b2fed96c28d60e
Depends-On: I9fd264a443c634465b8548067f86ac14c1a51faa
Partial-Bug: #1674542
changes/87/449487/4
yfzhao 5 years ago
parent
commit
059fae0ed5
  1. 10
      manila/share/access.py
  2. 92
      manila/share/api.py
  3. 18
      manila/share/driver.py
  4. 12
      manila/share/drivers/cephfs/cephfs_native.py
  5. 10
      manila/share/drivers/container/container_helper.py
  6. 18
      manila/share/drivers/container/driver.py
  7. 4
      manila/share/drivers/container/protocol_helper.py
  8. 6
      manila/share/drivers/container/storage_helper.py
  9. 10
      manila/share/drivers/dell_emc/plugins/isilon/isilon.py
  10. 42
      manila/share/drivers/dell_emc/plugins/unity/client.py
  11. 38
      manila/share/drivers/dell_emc/plugins/unity/connection.py
  12. 28
      manila/share/drivers/dell_emc/plugins/vmax/connection.py
  13. 5
      manila/share/drivers/dell_emc/plugins/vmax/connector.py
  14. 78
      manila/share/drivers/dell_emc/plugins/vmax/object_manager.py
  15. 14
      manila/share/drivers/dell_emc/plugins/vnx/connection.py
  16. 3
      manila/share/drivers/dell_emc/plugins/vnx/connector.py
  17. 78
      manila/share/drivers/dell_emc/plugins/vnx/object_manager.py
  18. 3
      manila/share/drivers/ganesha/__init__.py
  19. 9
      manila/share/drivers/ganesha/manager.py
  20. 48
      manila/share/drivers/generic.py
  21. 14
      manila/share/drivers/glusterfs/common.py
  22. 18
      manila/share/drivers/glusterfs/layout_directory.py
  23. 58
      manila/share/drivers/glusterfs/layout_volume.py
  24. 26
      manila/share/drivers/helpers.py
  25. 74
      manila/share/drivers/hitachi/hnas/driver.py
  26. 44
      manila/share/drivers/hitachi/hnas/ssh.py
  27. 24
      manila/share/drivers/hitachi/hsp/driver.py
  28. 8
      manila/share/drivers/hpe/hpe_3par_driver.py
  29. 66
      manila/share/drivers/hpe/hpe_3par_mediator.py
  30. 5
      manila/share/drivers/huawei/huawei_utils.py
  31. 86
      manila/share/drivers/huawei/v3/connection.py
  32. 18
      manila/share/drivers/huawei/v3/helper.py
  33. 52
      manila/share/drivers/huawei/v3/replication.py
  34. 6
      manila/share/drivers/ibm/gpfs.py
  35. 14
      manila/share/drivers/lvm.py
  36. 5
      manila/share/drivers/maprfs/driver_util.py
  37. 14
      manila/share/drivers/maprfs/maprfs_native.py
  38. 12
      manila/share/drivers/netapp/common.py
  39. 3
      manila/share/drivers/netapp/dataontap/client/client_base.py
  40. 24
      manila/share/drivers/netapp/dataontap/client/client_cmode.py
  41. 6
      manila/share/drivers/netapp/dataontap/cluster_mode/data_motion.py
  42. 100
      manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py
  43. 24
      manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py
  44. 6
      manila/share/drivers/netapp/dataontap/cluster_mode/lib_single_svm.py
  45. 16
      manila/share/drivers/netapp/dataontap/cluster_mode/performance.py
  46. 17
      manila/share/drivers/netapp/dataontap/protocols/nfs_cmode.py
  47. 22
      manila/share/drivers/netapp/utils.py
  48. 4
      manila/share/drivers/nexenta/ns4/nexenta_nas.py
  49. 18
      manila/share/drivers/nexenta/ns4/nexenta_nfs_helper.py
  50. 14
      manila/share/drivers/nexenta/ns5/nexenta_nas.py
  51. 28
      manila/share/drivers/qnap/qnap.py
  52. 5
      manila/share/drivers/quobyte/jsonrpc.py
  53. 14
      manila/share/drivers/quobyte/quobyte.py
  54. 22
      manila/share/drivers/service_instance.py
  55. 22
      manila/share/drivers/tegile/tegile.py
  56. 18
      manila/share/drivers/windows/service_instance.py
  57. 7
      manila/share/drivers/windows/windows_smb_driver.py
  58. 31
      manila/share/drivers/windows/windows_smb_helper.py
  59. 7
      manila/share/drivers/windows/windows_utils.py
  60. 32
      manila/share/drivers/zfsonlinux/driver.py
  61. 14
      manila/share/drivers/zfsonlinux/utils.py
  62. 16
      manila/share/drivers/zfssa/zfssarest.py
  63. 9
      manila/share/drivers/zfssa/zfssashare.py
  64. 5
      manila/share/hook.py
  65. 282
      manila/share/manager.py
  66. 10
      manila/share/migration.py
  67. 11
      manila/share/share_types.py
  68. 5
      manila/share/snapshot_access.py
  69. 7
      manila/share_group/share_group_types.py

10
manila/share/access.py

@ -18,7 +18,7 @@ import copy
from oslo_log import log
from manila.common import constants
from manila.i18n import _, _LI
from manila.i18n import _
from manila import utils
LOG = log.getLogger(__name__)
@ -493,8 +493,8 @@ class ShareInstanceAccess(ShareInstanceAccessDatabaseMixin):
remove_rules, share_instance, share_server):
for rule in add_rules:
LOG.info(
_LI("Applying access rule '%(rule)s' for share "
"instance '%(instance)s'"),
"Applying access rule '%(rule)s' for share "
"instance '%(instance)s'",
{'rule': rule['id'], 'instance': share_instance['id']}
)
@ -511,8 +511,8 @@ class ShareInstanceAccess(ShareInstanceAccessDatabaseMixin):
for rule in delete_rules:
LOG.info(
_LI("Denying access rule '%(rule)s' from share "
"instance '%(instance)s'"),
"Denying access rule '%(rule)s' from share "
"instance '%(instance)s'",
{'rule': rule['id'], 'instance': share_instance['id']}
)

92
manila/share/api.py

@ -32,7 +32,7 @@ from manila.common import constants
from manila.data import rpcapi as data_rpcapi
from manila.db import base
from manila import exception
from manila.i18n import _, _LE, _LI, _LW
from manila.i18n import _
from manila import policy
from manila import quota
from manila.scheduler import rpcapi as scheduler_rpcapi
@ -148,22 +148,22 @@ class API(base.Base):
return (usages[name]['reserved'] + usages[name]['in_use'])
if 'gigabytes' in overs:
LOG.warning(_LW("Quota exceeded for %(s_pid)s, "
"tried to create "
"%(s_size)sG share (%(d_consumed)dG of "
"%(d_quota)dG already consumed)."), {
's_pid': context.project_id,
's_size': size,
'd_consumed': _consumed('gigabytes'),
'd_quota': quotas['gigabytes']})
LOG.warning("Quota exceeded for %(s_pid)s, "
"tried to create "
"%(s_size)sG share (%(d_consumed)dG of "
"%(d_quota)dG already consumed).", {
's_pid': context.project_id,
's_size': size,
'd_consumed': _consumed('gigabytes'),
'd_quota': quotas['gigabytes']})
raise exception.ShareSizeExceedsAvailableQuota()
elif 'shares' in overs:
LOG.warning(_LW("Quota exceeded for %(s_pid)s, "
"tried to create "
"share (%(d_consumed)d shares "
"already consumed)."), {
's_pid': context.project_id,
'd_consumed': _consumed('shares')})
LOG.warning("Quota exceeded for %(s_pid)s, "
"tried to create "
"share (%(d_consumed)d shares "
"already consumed).", {
's_pid': context.project_id,
'd_consumed': _consumed('shares')})
raise exception.ShareLimitExceeded(allowed=quotas['shares'])
try:
@ -524,7 +524,7 @@ class API(base.Base):
msg = _("Cannot delete last active replica.")
raise exception.ReplicationException(reason=msg)
LOG.info(_LI("Deleting replica %s."), id)
LOG.info("Deleting replica %s.", id)
self.db.share_replica_update(
context, share_replica['id'],
@ -927,7 +927,7 @@ class API(base.Base):
except Exception as e:
reservations = None
LOG.exception(
_LE("Failed to update quota for deleting share: %s"), e)
("Failed to update quota for deleting share: %s"), e)
for share_instance in share.instances:
if share_instance['host']:
@ -984,7 +984,7 @@ class API(base.Base):
share_groups = self.db.share_group_get_all_by_share_server(
context, server['id'])
if share_groups:
LOG.error(_LE("share server '%(ssid)s' in use by share groups."),
LOG.error("share server '%(ssid)s' in use by share groups.",
{'ssid': server['id']})
raise exception.ShareServerInUse(share_server_id=server['id'])
@ -1020,18 +1020,18 @@ class API(base.Base):
return (usages[name]['reserved'] + usages[name]['in_use'])
if 'snapshot_gigabytes' in overs:
msg = _LW("Quota exceeded for %(s_pid)s, tried to create "
"%(s_size)sG snapshot (%(d_consumed)dG of "
"%(d_quota)dG already consumed).")
msg = ("Quota exceeded for %(s_pid)s, tried to create "
"%(s_size)sG snapshot (%(d_consumed)dG of "
"%(d_quota)dG already consumed).")
LOG.warning(msg, {'s_pid': context.project_id,
's_size': size,
'd_consumed': _consumed('gigabytes'),
'd_quota': quotas['snapshot_gigabytes']})
raise exception.SnapshotSizeExceedsAvailableQuota()
elif 'snapshots' in overs:
msg = _LW("Quota exceeded for %(s_pid)s, tried to create "
"snapshot (%(d_consumed)d snapshots "
"already consumed).")
msg = ("Quota exceeded for %(s_pid)s, tried to create "
"snapshot (%(d_consumed)d snapshots "
"already consumed).")
LOG.warning(msg, {'s_pid': context.project_id,
'd_consumed': _consumed('snapshots')})
raise exception.SnapshotLimitExceeded(
@ -1190,17 +1190,17 @@ class API(base.Base):
if (new_share_network_id == share_instance['share_network_id'] and
new_share_type_id == share_instance['share_type_id'] and
dest_host == share_instance['host']):
msg = _LI("Destination host (%(dest_host)s), share network "
"(%(dest_sn)s) or share type (%(dest_st)s) are the same "
"as the current host's '%(src_host)s', '%(src_sn)s' and "
"'%(src_st)s' respectively. Nothing to be done.") % {
'dest_host': dest_host,
'dest_sn': new_share_network_id,
'dest_st': new_share_type_id,
'src_host': share_instance['host'],
'src_sn': share_instance['share_network_id'],
'src_st': share_instance['share_type_id'],
}
msg = ("Destination host (%(dest_host)s), share network "
"(%(dest_sn)s) or share type (%(dest_st)s) are the same "
"as the current host's '%(src_host)s', '%(src_sn)s' and "
"'%(src_st)s' respectively. Nothing to be done.") % {
'dest_host': dest_host,
'dest_sn': new_share_network_id,
'dest_st': new_share_type_id,
'src_host': share_instance['host'],
'src_sn': share_instance['share_network_id'],
'src_st': share_instance['share_type_id'],
}
LOG.info(msg)
self.db.share_update(
context, share['id'],
@ -1304,8 +1304,8 @@ class API(base.Base):
elif share['task_state'] == (
constants.TASK_STATE_DATA_COPYING_IN_PROGRESS):
data_rpc = data_rpcapi.DataAPI()
LOG.info(_LI("Sending request to get share migration information"
" of share %s.") % share['id'])
LOG.info("Sending request to get share migration information"
" of share %s." % share['id'])
services = self.db.service_get_all_by_topic(context, 'manila-data')
@ -1404,8 +1404,8 @@ class API(base.Base):
constants.TASK_STATE_DATA_COPYING_IN_PROGRESS):
data_rpc = data_rpcapi.DataAPI()
LOG.info(_LI("Sending request to cancel migration of "
"share %s.") % share['id'])
LOG.info("Sending request to cancel migration of "
"share %s." % share['id'])
services = self.db.service_get_all_by_topic(context, 'manila-data')
@ -1796,9 +1796,9 @@ class API(base.Base):
def _consumed(name):
return usages[name]['reserved'] + usages[name]['in_use']
msg = _LE("Quota exceeded for %(s_pid)s, tried to extend share "
"by %(s_size)sG, (%(d_consumed)dG of %(d_quota)dG "
"already consumed).")
msg = ("Quota exceeded for %(s_pid)s, tried to extend share "
"by %(s_size)sG, (%(d_consumed)dG of %(d_quota)dG "
"already consumed).")
LOG.error(msg, {'s_pid': context.project_id,
's_size': size_increase,
'd_consumed': _consumed('gigabytes'),
@ -1810,7 +1810,7 @@ class API(base.Base):
self.update(context, share, {'status': constants.STATUS_EXTENDING})
self.share_rpcapi.extend_share(context, share, new_size, reservations)
LOG.info(_LI("Extend share request issued successfully."),
LOG.info("Extend share request issued successfully.",
resource=share)
def shrink(self, context, share, new_size):
@ -1843,9 +1843,9 @@ class API(base.Base):
self.update(context, share, {'status': constants.STATUS_SHRINKING})
self.share_rpcapi.shrink_share(context, share, new_size)
LOG.info(_LI("Shrink share (id=%(id)s) request issued successfully."
" New size: %(size)s") % {'id': share['id'],
'size': new_size})
LOG.info("Shrink share (id=%(id)s) request issued successfully."
" New size: %(size)s" % {'id': share['id'],
'size': new_size})
def snapshot_allow_access(self, context, snapshot, access_type, access_to):
"""Allow access to a share snapshot."""

18
manila/share/driver.py

@ -25,7 +25,7 @@ from oslo_config import cfg
from oslo_log import log
from manila import exception
from manila.i18n import _, _LE, _LW
from manila.i18n import _
from manila import network
from manila import utils
@ -213,8 +213,8 @@ class ExecuteMixin(object):
tries += 1
if tries >= self.configuration.num_shell_tries:
raise
LOG.exception(_LE("Recovering from a failed execute. "
"Try number %s"), tries)
LOG.exception("Recovering from a failed execute. "
"Try number %s", tries)
time.sleep(tries ** 2)
@ -1295,8 +1295,8 @@ class ShareDriver(object):
self.delete_snapshot(
context, share_snapshot, share_server=share_server)
except exception.ManilaException:
msg = _LE('Could not delete share group snapshot member %(snap)s '
'for share %(share)s.')
msg = ('Could not delete share group snapshot member %(snap)s '
'for share %(share)s.')
LOG.error(msg % {
'snap': share_snapshot['id'],
'share': share_snapshot['share_id'],
@ -1361,7 +1361,7 @@ class ShareDriver(object):
raise exception.ShareGroupSnapshotNotSupported(
share_group=snap_dict['share_group_id'])
elif not snapshot_members:
LOG.warning(_LW('No shares in share group to create snapshot.'))
LOG.warning('No shares in share group to create snapshot.')
return None, None
else:
share_snapshots = []
@ -1386,9 +1386,9 @@ class ShareDriver(object):
snapshot_members_updates.append(member_update)
share_snapshots.append(share_snapshot)
except exception.ManilaException as e:
msg = _LE('Could not create share group snapshot. Failed '
'to create share snapshot %(snap)s for '
'share %(share)s.')
msg = ('Could not create share group snapshot. Failed '
'to create share snapshot %(snap)s for '
'share %(share)s.')
LOG.exception(msg % {
'snap': share_snapshot['id'],
'share': share_snapshot['share_id']

12
manila/share/drivers/cephfs/cephfs_native.py

@ -20,7 +20,7 @@ from oslo_utils import units
from manila.common import constants
from manila import exception
from manila.i18n import _, _LI, _LW
from manila.i18n import _
from manila.share import driver
from manila.share import share_types
@ -142,7 +142,7 @@ class CephFSNativeDriver(driver.ShareDriver,):
auth_id = self.configuration.safe_get('cephfs_auth_id')
self._volume_client = ceph_volume_client.CephFSVolumeClient(
auth_id, conf_path, cluster_name)
LOG.info(_LI("[%(be)s}] Ceph client found, connecting..."),
LOG.info("[%(be)s}] Ceph client found, connecting...",
{"be": self.backend_name})
if auth_id != CEPH_DEFAULT_AUTH_ID:
# Evict any other manila sessions. Only do this if we're
@ -157,7 +157,7 @@ class CephFSNativeDriver(driver.ShareDriver,):
self._volume_client = None
raise
else:
LOG.info(_LI("[%(be)s] Ceph client connection complete."),
LOG.info("[%(be)s] Ceph client connection complete.",
{"be": self.backend_name})
return self._volume_client
@ -199,7 +199,7 @@ class CephFSNativeDriver(driver.ShareDriver,):
addrs=",".join(mon_addrs),
path=volume['mount_path'])
LOG.info(_LI("Calculated export location for share %(id)s: %(loc)s"),
LOG.info("Calculated export location for share %(id)s: %(loc)s",
{"id": share['id'], "loc": export_location})
return {
@ -244,8 +244,8 @@ class CephFSNativeDriver(driver.ShareDriver,):
def _deny_access(self, context, share, access, share_server=None):
if access['access_type'] != CEPHX_ACCESS_TYPE:
LOG.warning(_LW("Invalid access type '%(type)s', "
"ignoring in deny."),
LOG.warning("Invalid access type '%(type)s', "
"ignoring in deny.",
{"type": access['access_type']})
return

10
manila/share/drivers/container/container_helper.py

@ -18,7 +18,7 @@ import uuid
from oslo_log import log
from manila import exception
from manila.i18n import _, _LE, _LI
from manila.i18n import _
from manila.share import driver
@ -66,8 +66,8 @@ class DockerExecHelper(driver.ExecuteMixin):
if result[1] != "":
raise exception.ManilaException(
_("Container %s has failed to start.") % name)
LOG.info(_LI("A container has been successfully started! Its id is "
"%s."), result[0].rstrip('\n'))
LOG.info("A container has been successfully started! Its id is "
"%s.", result[0].rstrip('\n'))
def stop_container(self, name):
LOG.debug("Stopping container %s.", name)
@ -76,7 +76,7 @@ class DockerExecHelper(driver.ExecuteMixin):
if result[1] != '':
raise exception.ManilaException(
_("Container %s has failed to stop properly.") % name)
LOG.info(_LI("Container %s is successfully stopped."), name)
LOG.info("Container %s is successfully stopped.", name)
def execute(self, name=None, cmd=None):
if name is None:
@ -94,7 +94,7 @@ class DockerExecHelper(driver.ExecuteMixin):
try:
result = self._execute(*cmd, run_as_root=True)
except Exception:
LOG.exception(_LE("Executing command failed."))
LOG.exception("Executing command failed.")
return None
LOG.debug("Execution result: %s.", result)
return result

18
manila/share/drivers/container/driver.py

@ -27,7 +27,7 @@ from oslo_log import log
from oslo_utils import importutils
from manila import exception
from manila.i18n import _, _LI, _LW
from manila.i18n import _
from manila.share import driver
from manila import utils
@ -156,9 +156,9 @@ class ContainerShareDriver(driver.ShareDriver, driver.ExecuteMixin):
["rm", "-fR", "/shares/%s" % share.share_id]
)
except exception.ProcessExecutionError as e:
LOG.warning(_LW("Failed to remove /shares/%(share)s directory in "
"container %(cont)s."), {"share": share.share_id,
"cont": server_id})
LOG.warning("Failed to remove /shares/%(share)s directory in "
"container %(cont)s.", {"share": share.share_id,
"cont": server_id})
LOG.error(e)
self.storage.remove_storage(share)
@ -213,8 +213,8 @@ class ContainerShareDriver(driver.ShareDriver, driver.ExecuteMixin):
"specified.") % neutron_class
raise exception.ManilaException(msg)
elif host_id is None:
LOG.warning(_LW("neutron_host_id is not specified. This driver "
"might not work as expected without it."))
LOG.warning("neutron_host_id is not specified. This driver "
"might not work as expected without it.")
def _connect_to_network(self, server_id, network_info, host_veth):
LOG.debug("Attempting to connect container to neutron network.")
@ -280,8 +280,8 @@ class ContainerShareDriver(driver.ShareDriver, driver.ExecuteMixin):
self.configuration.container_ovs_bridge_name,
veth, run_as_root=True)
except exception.ProcessExecutionError as e:
LOG.warning(_LW("Failed to delete port %s: port "
"vanished."), veth)
LOG.warning("Failed to delete port %s: port "
"vanished.", veth)
LOG.error(e)
def _get_veth_state(self):
@ -317,5 +317,5 @@ class ContainerShareDriver(driver.ShareDriver, driver.ExecuteMixin):
veth = self._get_corresponding_veth(veths_before, veths_after)
self._connect_to_network(server_id, network_info, veth)
LOG.info(_LI("Container %s was created."), server_id)
LOG.info("Container %s was created.", server_id)
return {"id": network_info["server_id"]}

4
manila/share/drivers/container/protocol_helper.py

@ -17,7 +17,7 @@ from oslo_log import log
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LW
from manila.i18n import _
LOG = log.getLogger(__name__)
@ -110,7 +110,7 @@ class DockerCIFSHelper(object):
existing_users = self._get_existing_users(server_id, share_name,
access)
except TypeError:
LOG.warning(_LW("Can't access smbd at share %s.") % share_name)
LOG.warning("Can't access smbd at share %s." % share_name)
return
else:
allowed_users = " ".join(sorted(set(existing_users.split()) -

6
manila/share/drivers/container/storage_helper.py

@ -20,7 +20,7 @@ from oslo_config import cfg
from oslo_log import log
from manila import exception
from manila.i18n import _, _LW
from manila.i18n import _
from manila.share import driver
@ -85,7 +85,7 @@ class LVMHelper(driver.ExecuteMixin):
try:
self._execute("umount", to_remove, run_as_root=True)
except exception.ProcessExecutionError as e:
LOG.warning(_LW("Failed to umount helper directory %s."),
LOG.warning("Failed to umount helper directory %s.",
to_remove)
LOG.error(e)
# (aovchinnikov): bug 1621784 manifests itself in jamming logical
@ -94,7 +94,7 @@ class LVMHelper(driver.ExecuteMixin):
self._execute("lvremove", "-f", "--autobackup", "n",
to_remove, run_as_root=True)
except exception.ProcessExecutionError as e:
LOG.warning(_LW("Failed to remove logical volume %s.") % to_remove)
LOG.warning("Failed to remove logical volume %s." % to_remove)
LOG.error(e)
def extend_share(self, share, new_size, share_server=None):

10
manila/share/drivers/dell_emc/plugins/isilon/isilon.py

@ -24,7 +24,7 @@ import six
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LW
from manila.i18n import _
from manila.share.drivers.dell_emc.plugins import base
from manila.share.drivers.dell_emc.plugins.isilon import isilon_api
@ -139,8 +139,8 @@ class IsilonStorageConnection(base.StorageConnection):
self._root_dir + '/' + share['name'])
if share_id is None:
lw = _LW('Attempted to delete NFS Share "%s", but the share does '
'not appear to exist.')
lw = ('Attempted to delete NFS Share "%s", but the share does '
'not appear to exist.')
LOG.warning(lw, share['name'])
else:
# attempt to delete the share
@ -154,8 +154,8 @@ class IsilonStorageConnection(base.StorageConnection):
"""Is called to remove CIFS share."""
smb_share = self._isilon_api.lookup_smb_share(share['name'])
if smb_share is None:
lw = _LW('Attempted to delete CIFS Share "%s", but the share does '
'not appear to exist.')
lw = ('Attempted to delete CIFS Share "%s", but the share does '
'not appear to exist.')
LOG.warning(lw, share['name'])
else:
share_deleted = self._isilon_api.delete_smb_share(share['name'])

42
manila/share/drivers/dell_emc/plugins/unity/client.py

@ -25,7 +25,7 @@ if storops:
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LI, _LE, _LW
from manila.i18n import _
from manila.share.drivers.dell_emc.plugins.unity import utils
LOG = log.getLogger(__name__)
@ -34,7 +34,7 @@ LOG = log.getLogger(__name__)
class UnityClient(object):
def __init__(self, host, username, password):
if storops is None:
LOG.error(_LE('StorOps is required to run EMC Unity driver.'))
LOG.error('StorOps is required to run EMC Unity driver.')
self.system = storops.UnitySystem(host, username, password)
def create_cifs_share(self, resource, share_name):
@ -51,7 +51,7 @@ class UnityClient(object):
# based share. Log the internal error if it happens.
share.enable_ace()
except storops_ex.UnityException:
msg = _LE('Failed to enabled ACE for share: {}.')
msg = ('Failed to enabled ACE for share: {}.')
LOG.exception(msg.format(share_name))
return share
except storops_ex.UnitySmbShareNameExistedError:
@ -116,22 +116,22 @@ class UnityClient(object):
try:
filesystem.delete()
except storops_ex.UnityResourceNotFoundError:
LOG.info(_LI('Filesystem %s is already removed.'), filesystem.name)
LOG.info('Filesystem %s is already removed.', filesystem.name)
def create_nas_server(self, name, sp, pool, tenant=None):
try:
return self.system.create_nas_server(name, sp, pool,
tenant=tenant)
except storops_ex.UnityNasServerNameUsedError:
LOG.info(_LI('Share server %s already exists, ignoring share '
'server creation.'), name)
LOG.info('Share server %s already exists, ignoring share '
'server creation.', name)
return self.get_nas_server(name)
def get_nas_server(self, name):
try:
return self.system.get_nas_server(name=name)
except storops_ex.UnityResourceNotFoundError:
LOG.info(_LI('NAS server %s not found.'), name)
LOG.info('NAS server %s not found.', name)
raise
def delete_nas_server(self, name, username=None, password=None):
@ -141,7 +141,7 @@ class UnityClient(object):
tenant = nas_server.tenant
nas_server.delete(username=username, password=password)
except storops_ex.UnityResourceNotFoundError:
LOG.info(_LI('NAS server %s not found.'), name)
LOG.info('NAS server %s not found.', name)
if tenant is not None:
self._delete_tenant(tenant)
@ -156,8 +156,8 @@ class UnityClient(object):
try:
tenant.delete(delete_hosts=True)
except storops_ex.UnityException as ex:
LOG.warning(_LW('Delete tenant %(tenant)s failed with error: '
'%(ex)s. Leave the tenant on the system.'),
LOG.warning('Delete tenant %(tenant)s failed with error: '
'%(ex)s. Leave the tenant on the system.',
{'tenant': tenant.get_id(),
'ex': ex})
@ -166,8 +166,8 @@ class UnityClient(object):
try:
nas_server.create_dns_server(domain, dns_ip)
except storops_ex.UnityOneDnsPerNasServerError:
LOG.info(_LI('DNS server %s already exists, '
'ignoring DNS server creation.'), domain)
LOG.info('DNS server %s already exists, '
'ignoring DNS server creation.', domain)
@staticmethod
def create_interface(nas_server, ip_addr, netmask, gateway, port_id,
@ -190,16 +190,16 @@ class UnityClient(object):
domain_username=username,
domain_password=password)
except storops_ex.UnitySmbNameInUseError:
LOG.info(_LI('CIFS service on NAS server %s is '
'already enabled.'), nas_server.name)
LOG.info('CIFS service on NAS server %s is '
'already enabled.', nas_server.name)
@staticmethod
def enable_nfs_service(nas_server):
try:
nas_server.enable_nfs_service()
except storops_ex.UnityNfsAlreadyEnabledError:
LOG.info(_LI('NFS service on NAS server %s is '
'already enabled.'), nas_server.name)
LOG.info('NFS service on NAS server %s is '
'already enabled.', nas_server.name)
@staticmethod
def create_snapshot(filesystem, name):
@ -207,8 +207,8 @@ class UnityClient(object):
try:
return filesystem.create_snap(name, fs_access_type=access_type)
except storops_ex.UnitySnapNameInUseError:
LOG.info(_LI('Snapshot %(snap)s on Filesystem %(fs)s already '
'exists.'), {'snap': name, 'fs': filesystem.name})
LOG.info('Snapshot %(snap)s on Filesystem %(fs)s already '
'exists.', {'snap': name, 'fs': filesystem.name})
def create_snap_of_snap(self, src_snap, dst_snap_name, snap_type):
access_type = enums.FilesystemSnapAccessTypeEnum.PROTOCOL
@ -233,7 +233,7 @@ class UnityClient(object):
try:
snap.delete()
except storops_ex.UnityResourceNotFoundError:
LOG.info(_LI('Snapshot %s is already removed.'), snap.name)
LOG.info('Snapshot %s is already removed.', snap.name)
def get_pool(self, name=None):
return self.system.get_pool(name=name)
@ -283,7 +283,7 @@ class UnityClient(object):
try:
share.delete_access(host_ip)
except storops_ex.UnityHostNotFoundException:
LOG.info(_LI('%(host)s access to %(share)s is already removed.'),
LOG.info('%(host)s access to %(share)s is already removed.',
{'host': host_ip, 'share': share_name})
def get_file_ports(self):
@ -328,6 +328,6 @@ class UnityClient(object):
"Use the existing VLAN tenant.", vlan_id)
exc.reraise = False
except storops_ex.SystemAPINotSupported:
LOG.info(_LI("This system doesn't support tenant."))
LOG.info("This system doesn't support tenant.")
return tenant

38
manila/share/drivers/dell_emc/plugins/unity/connection.py

@ -27,7 +27,7 @@ if storops:
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LE, _LW, _LI
from manila.i18n import _
from manila.share.drivers.dell_emc.plugins import base as driver
from manila.share.drivers.dell_emc.plugins.unity import client
from manila.share.drivers.dell_emc.plugins.unity import utils as unity_utils
@ -127,9 +127,9 @@ class UnityStorageConnection(driver.StorageConnection):
raise exception.BadConfigurationException(reason=msg)
if unmanaged_port_ids:
LOG.info(_LI("The following specified ports are not managed by "
"the backend: %(unmanaged)s. This host will only "
"manage the storage ports: %(exist)s"),
LOG.info("The following specified ports are not managed by "
"the backend: %(unmanaged)s. This host will only "
"manage the storage ports: %(exist)s",
{'unmanaged': ",".join(unmanaged_port_ids),
'exist': ",".join(map(",".join,
sp_ports_map.values()))})
@ -138,8 +138,8 @@ class UnityStorageConnection(driver.StorageConnection):
",".join(map(",".join, sp_ports_map.values())))
if len(sp_ports_map) == 1:
LOG.info(_LI("Only ports of %s are configured. Configure ports "
"of both SPA and SPB to use both of the SPs."),
LOG.info("Only ports of %s are configured. Configure ports "
"of both SPA and SPB to use both of the SPs.",
list(sp_ports_map)[0])
return sp_ports_map
@ -237,7 +237,7 @@ class UnityStorageConnection(driver.StorageConnection):
backend_share = self.client.get_share(share_name,
share['share_proto'])
except storops_ex.UnityResourceNotFoundError:
LOG.warning(_LW("Share %s is not found when deleting the share"),
LOG.warning("Share %s is not found when deleting the share",
share_name)
return
@ -261,8 +261,8 @@ class UnityStorageConnection(driver.StorageConnection):
new_size)
else:
share_id = share['id']
reason = _LE("Driver does not support extending a "
"snapshot based share.")
reason = ("Driver does not support extending a "
"snapshot based share.")
raise exception.ShareExtendingError(share_id=share_id,
reason=reason)
@ -422,7 +422,7 @@ class UnityStorageConnection(driver.StorageConnection):
except Exception:
with excutils.save_and_reraise_exception():
LOG.exception(_LE('Could not setup server.'))
LOG.exception('Could not setup server.')
server_details = {'share_server_name': server_name}
self.teardown_server(
server_details, network_info['security_services'])
@ -538,10 +538,10 @@ class UnityStorageConnection(driver.StorageConnection):
raise exception.BadConfigurationException(reason=msg)
if unmanaged_pools:
LOG.info(_LI("The following specified storage pools "
"are not managed by the backend: "
"%(un_managed)s. This host will only manage "
"the storage pools: %(exist)s"),
LOG.info("The following specified storage pools "
"are not managed by the backend: "
"%(un_managed)s. This host will only manage "
"the storage pools: %(exist)s",
{'un_managed': ",".join(unmanaged_pools),
'exist': ",".join(matched_pools)})
else:
@ -621,13 +621,13 @@ class UnityStorageConnection(driver.StorageConnection):
# Enable NFS service with kerberos
kerberos_enabled = True
# TODO(jay.xu): enable nfs service with kerberos
LOG.warning(_LW('Kerberos is not supported by '
'EMC Unity manila driver plugin.'))
LOG.warning('Kerberos is not supported by '
'EMC Unity manila driver plugin.')
elif service_type == 'ldap':
LOG.warning(_LW('LDAP is not supported by '
'EMC Unity manila driver plugin.'))
LOG.warning('LDAP is not supported by '
'EMC Unity manila driver plugin.')
else:
LOG.warning(_LW('Unknown security service type: %s.'),
LOG.warning('Unknown security service type: %s.',
service_type)
if not kerberos_enabled:

28
manila/share/drivers/dell_emc/plugins/vmax/connection.py

@ -24,7 +24,7 @@ from oslo_utils import units
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LE, _LI, _LW
from manila.i18n import _
from manila.share.drivers.dell_emc.plugins import base as driver
from manila.share.drivers.dell_emc.plugins.vmax import (
object_manager as manager)
@ -250,8 +250,8 @@ class VMAXStorageConnection(driver.StorageConnection):
def delete_share(self, context, share, share_server=None):
"""Delete a share."""
if share_server is None:
LOG.warning(_LW("Share network should be specified for "
"share deletion."))
LOG.warning("Share network should be specified for "
"share deletion.")
return
share_proto = share['share_proto'].upper()
@ -295,20 +295,20 @@ class VMAXStorageConnection(driver.StorageConnection):
# Delete mount point
self._get_context('MountPoint').delete(path, vdm_name)
except exception.EMCVmaxXMLAPIError as e:
LOG.exception(_LE("CIFS server %(name)s on mover %(mover_name)s "
LOG.exception("CIFS server %(name)s on mover %(mover_name)s "
"not found due to error %(err)s. Skip the "
"deletion."),
"deletion.",
{'name': path, 'mover_name': vdm_name,
'err': e.message})
'err': e.message})
try:
# Delete file system
self._get_context('FileSystem').delete(share_name)
except exception.EMCVmaxXMLAPIError as e:
LOG.exception(_LE("File system %(share_name)s not found due to"
"error %(err)s. Skip the deletion."),
LOG.exception("File system %(share_name)s not found due to"
"error %(err)s. Skip the deletion.",
{'share_name': share_name,
'err': e.message})
'err': e.message})
def delete_snapshot(self, context, snapshot, share_server=None):
"""Delete a snapshot."""
@ -471,7 +471,7 @@ class VMAXStorageConnection(driver.StorageConnection):
share_name = share['id']
if access['access_type'] != 'user':
LOG.warning(_LW("Only user access type allowed for CIFS share."))
LOG.warning("Only user access type allowed for CIFS share.")
return
user_name = access['access_to']
@ -505,7 +505,7 @@ class VMAXStorageConnection(driver.StorageConnection):
access_type = access['access_type']
if access_type != 'ip':
LOG.warning(_LW("Only ip access type allowed."))
LOG.warning("Only ip access type allowed.")
return
host_ip = access['access_to']
@ -550,7 +550,7 @@ class VMAXStorageConnection(driver.StorageConnection):
",".join(real_pools))
raise exception.InvalidParameterValue(err=msg)
LOG.info(_LI("Storage pools: %s will be managed."),
LOG.info("Storage pools: %s will be managed.",
",".join(matched_pools))
else:
LOG.debug("No storage pool is specified, so all pools "
@ -722,7 +722,7 @@ class VMAXStorageConnection(driver.StorageConnection):
except Exception:
with excutils.save_and_reraise_exception():
LOG.exception(_LE('Could not setup server'))
LOG.exception('Could not setup server')
server_details = self._construct_backend_details(
vdm_name, allocated_interfaces)
self.teardown_server(
@ -810,7 +810,7 @@ class VMAXStorageConnection(driver.StorageConnection):
status, servers = self._get_context('CIFSServer').get_all(
vdm_name)
if constants.STATUS_OK != status:
LOG.error(_LE('Could not find CIFS server by name: %s.'),
LOG.error('Could not find CIFS server by name: %s.',
vdm_name)
else:
cifs_servers = copy.deepcopy(servers)

5
manila/share/drivers/dell_emc/plugins/vmax/connector.py

@ -25,7 +25,6 @@ from six.moves.urllib import request as url_request # pylint: disable=E0611
from manila import exception
from manila.i18n import _
from manila.i18n import _LE
from manila.share.drivers.dell_emc.plugins.vmax import constants
from manila import utils
@ -154,8 +153,8 @@ class SSHConnector(object):
return out, err
except processutils.ProcessExecutionError as e:
with excutils.save_and_reraise_exception():
LOG.error(_LE('Error running SSH command: %(cmd)s. '
'Error: %(excmsg)s.'),
LOG.error('Error running SSH command: %(cmd)s. '
'Error: %(excmsg)s.',
{'cmd': command, 'excmsg': e})
def log_request(self, cmd, out, err):

78
manila/share/drivers/dell_emc/plugins/vmax/object_manager.py

@ -24,7 +24,7 @@ import six
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LI, _LW, _LE
from manila.i18n import _
from manila.share.drivers.dell_emc.plugins.vmax import connector
from manila.share.drivers.dell_emc.plugins.vmax import constants
from manila.share.drivers.dell_emc.plugins.vmax import utils as vmax_utils
@ -89,8 +89,8 @@ class StorageObject(object):
constants.STATUS_INFO):
response['maxSeverity'] = constants.STATUS_OK
LOG.warning(_LW("Translated status from %(old)s to %(new)s. "
"Message: %(info)s."),
LOG.warning("Translated status from %(old)s to %(new)s. "
"Message: %(info)s.",
{'old': old_Severity,
'new': response['maxSeverity'],
'info': response})
@ -252,8 +252,8 @@ class FileSystem(StorageObject):
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif self._response_validation(
response, constants.MSG_FILESYSTEM_EXIST):
LOG.warning(_LW("File system %s already exists. "
"Skip the creation."), name)
LOG.warning("File system %s already exists. "
"Skip the creation.", name)
return
elif constants.STATUS_OK != response['maxSeverity']:
message = (_("Failed to create file system %(name)s. "
@ -306,7 +306,7 @@ class FileSystem(StorageObject):
def delete(self, name):
status, out = self.get(name)
if constants.STATUS_NOT_FOUND == status:
LOG.warning(_LW("File system %s not found. Skip the deletion."),
LOG.warning("File system %s not found. Skip the deletion.",
name)
return
elif constants.STATUS_OK != status:
@ -440,8 +440,8 @@ class FileSystem(StorageObject):
try:
self._execute_cmd(copy_ckpt_cmd, check_exit_code=True)
except processutils.ProcessExecutionError as expt:
LOG.error(_LE("Failed to copy content from snapshot %(snap)s to "
"file system %(filesystem)s. Reason: %(err)s."),
LOG.error("Failed to copy content from snapshot %(snap)s to "
"file system %(filesystem)s. Reason: %(err)s.",
{'snap': snap_name,
'filesystem': name,
'err': expt})
@ -576,8 +576,8 @@ class MountPoint(StorageObject):
self.xml_retry = True
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif self._is_mount_point_already_existent(response):
LOG.warning(_LW("Mount Point %(mount)s already exists. "
"Skip the creation."), {'mount': mount_path})
LOG.warning("Mount Point %(mount)s already exists. "
"Skip the creation.", {'mount': mount_path})
return
elif constants.STATUS_OK != response['maxSeverity']:
message = (_('Failed to create Mount Point %(mount)s for '
@ -642,8 +642,8 @@ class MountPoint(StorageObject):
self.xml_retry = True
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif self._is_mount_point_nonexistent(response):
LOG.warning(_LW('Mount point %(mount)s on mover %(mover_name)s '
'not found.'),
LOG.warning('Mount point %(mount)s on mover %(mover_name)s '
'not found.',
{'mount': mount_path, 'mover_name': mover_name})
return
@ -817,8 +817,8 @@ class Mover(StorageObject):
lines = out.strip().split('\n')
for line in lines:
if line.strip().split() == header:
LOG.info(_LI('Found the header of the command '
'/nas/bin/nas_cel -interconnect -l.'))
LOG.info('Found the header of the command '
'/nas/bin/nas_cel -interconnect -l.')
else:
interconn = line.strip().split()
if interconn[2] == source and interconn[4] == destination:
@ -874,7 +874,7 @@ class VDM(StorageObject):
self.xml_retry = True
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif self._response_validation(response, constants.MSG_VDM_EXIST):
LOG.warning(_LW("VDM %(name)s already exists. Skip the creation."),
LOG.warning("VDM %(name)s already exists. Skip the creation.",
{'name': name})
elif constants.STATUS_OK != response['maxSeverity']:
message = (_("Failed to create VDM %(name)s on mover "
@ -918,7 +918,7 @@ class VDM(StorageObject):
def delete(self, name):
status, out = self.get(name)
if constants.STATUS_NOT_FOUND == status:
LOG.warning(_LW("VDM %s not found. Skip the deletion."),
LOG.warning("VDM %s not found. Skip the deletion.",
name)
return
elif constants.STATUS_OK != status:
@ -1053,8 +1053,8 @@ class Snapshot(StorageObject):
response = self._send_request(request)
if self._response_validation(response, constants.MSG_SNAP_EXIST):
LOG.warning(_LW("Snapshot %(name)s already exists. "
"Skip the creation."),
LOG.warning("Snapshot %(name)s already exists. "
"Skip the creation.",
{'name': name})
elif constants.STATUS_OK != response['maxSeverity']:
message = (_("Failed to create snapshot %(name)s on "
@ -1098,7 +1098,7 @@ class Snapshot(StorageObject):
def delete(self, name):
status, out = self.get(name)
if constants.STATUS_NOT_FOUND == status:
LOG.warning(_LW("Snapshot %s not found. Skip the deletion."),
LOG.warning("Snapshot %s not found. Skip the deletion.",
name)
return
elif constants.STATUS_OK != status:
@ -1182,12 +1182,12 @@ class MoverInterface(StorageObject):
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif self._response_validation(
response, constants.MSG_INTERFACE_NAME_EXIST):
LOG.warning(_LW("Mover interface name %s already exists. "
"Skip the creation."), name)
LOG.warning("Mover interface name %s already exists. "
"Skip the creation.", name)
elif self._response_validation(
response, constants.MSG_INTERFACE_EXIST):
LOG.warning(_LW("Mover interface IP %s already exists. "
"Skip the creation."), ip_addr)
LOG.warning("Mover interface IP %s already exists. "
"Skip the creation.", ip_addr)
elif self._response_validation(
response, constants.MSG_INTERFACE_INVALID_VLAN_ID):
# When fail to create a mover interface with the specified
@ -1246,8 +1246,8 @@ class MoverInterface(StorageObject):
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif self._response_validation(
response, constants.MSG_INTERFACE_NON_EXISTENT):
LOG.warning(_LW("Mover interface %s not found. "
"Skip the deletion."), ip_addr)
LOG.warning("Mover interface %s not found. "
"Skip the deletion.", ip_addr)
return
elif constants.STATUS_OK != response['maxSeverity']:
message = (_("Failed to delete mover interface %(ip)s on mover "
@ -1316,8 +1316,8 @@ class DNSDomain(StorageObject):
self.xml_retry = True
raise exception.EMCVmaxInvalidMoverID(id=mover_id)
elif constants.STATUS_OK != response['maxSeverity']:
LOG.warning(_LW("Failed to delete DNS domain %(name)s. "
"Reason: %(err)s."),
LOG.warning("Failed to delete DNS domain %(name)s. "
"Reason: %(err)s.",
{'name': name, 'err': response['problems']})
@ -1508,13 +1508,13 @@ class CIFSServer(StorageObject):
status, out = self.get(
computer_name.lower(), mover_name, is_vdm, self.xml_retry)
if constants.STATUS_NOT_FOUND == status:
LOG.warning(_LW("CIFS server %(name)s on mover %(mover_name)s "
"not found. Skip the deletion."),
LOG.warning("CIFS server %(name)s on mover %(mover_name)s "
"not found. Skip the deletion.",
{'name': computer_name, 'mover_name': mover_name})
return
except exception.EMCVmaxXMLAPIError:
LOG.warning(_LW("CIFS server %(name)s on mover %(mover_name)s "
"not found. Skip the deletion."),
LOG.warning("CIFS server %(name)s on mover %(mover_name)s "
"not found. Skip the deletion.",
{'name': computer_name, 'mover_name': mover_name})
return
@ -1606,7 +1606,7 @@ class CIFSShare(StorageObject):
def delete(self, name, mover_name, is_vdm=True):
status, out = self.get(name)
if constants.STATUS_NOT_FOUND == status:
LOG.warning(_LW("CIFS share %s not found. Skip the deletion."),
LOG.warning("CIFS share %s not found. Skip the deletion.",
name)
return
elif constants.STATUS_OK != status:
@ -1684,8 +1684,8 @@ class CIFSShare(StorageObject):
dup_msg = re.compile(r'ACE for %(domain)s\\%(user)s unchanged' %
{'domain': domain, 'user': user_name}, re.I)
if re.search(dup_msg, expt.stdout):
LOG.warning(_LW("Duplicate access control entry, "
"skipping allow..."))
LOG.warning("Duplicate access control entry, "
"skipping allow...")
else:
message = (_('Failed to allow the access %(access)s to '
'CIFS share %(name)s. Reason: %(err)s.') %
@ -1716,10 +1716,10 @@ class CIFSShare(StorageObject):
% {'domain': domain, 'user': user_name}, re.I)
if re.search(not_found_msg, expt.stdout):
LOG.warning(_LW("No access control entry found, "
"skipping deny..."))
LOG.warning("No access control entry found, "
"skipping deny...")
elif re.search(user_err_msg, expt.stdout):
LOG.warning(_LW("User not found on domain, skipping deny..."))
LOG.warning("User not found on domain, skipping deny...")
else:
message = (_('Failed to deny the access %(access)s to '
'CIFS share %(name)s. Reason: %(err)s.') %
@ -1798,7 +1798,7 @@ class NFSShare(StorageObject):
status, out = self.get(name, mover_name)
if constants.STATUS_NOT_FOUND == status:
LOG.warning(_LW("NFS share %s not found. Skip the deletion."),
LOG.warning("NFS share %s not found. Skip the deletion.",
path)
return
@ -1849,7 +1849,7 @@ class NFSShare(StorageObject):
dup_msg = (r'%(mover_name)s : No such file or directory' %
{'mover_name': mover_name})
if re.search(dup_msg, expt.stdout):
LOG.warning(_LW("NFS share %s not found."), name)
LOG.warning("NFS share %s not found.", name)
return constants.STATUS_NOT_FOUND, None
else:
message = (_('Failed to list NFS share %(name)s on '

14
manila/share/drivers/dell_emc/plugins/vnx/connection.py

@ -24,7 +24,7 @@ from oslo_utils import units
from manila.common import constants as const
from manila import exception
from manila.i18n import _, _LE, _LI, _LW
from manila.i18n import _
from manila.share.drivers.dell_emc.plugins import base as driver
from manila.share.drivers.dell_emc.plugins.vnx import constants
from manila.share.drivers.dell_emc.plugins.vnx import object_manager as manager
@ -250,9 +250,9 @@ class VNXStorageConnection(driver.StorageConnection):
def delete_share(self, context, share, share_server=None):
"""Delete a share."""
if share_server is None:
LOG.warning(_LW("Driver does not support share deletion without "
"share network specified. Return directly because "
"there is nothing to clean."))
LOG.warning("Driver does not support share deletion without "
"share network specified. Return directly because "
"there is nothing to clean.")
return
share_proto = share['share_proto']
@ -545,7 +545,7 @@ class VNXStorageConnection(driver.StorageConnection):
",".join(real_pools))
raise exception.InvalidParameterValue(err=msg)
LOG.info(_LI("Storage pools: %s will be managed."),
LOG.info("Storage pools: %s will be managed.",
",".join(matched_pools))
else:
LOG.debug("No storage pool is specified, so all pools "
@ -711,7 +711,7 @@ class VNXStorageConnection(driver.StorageConnection):
except Exception:
with excutils.save_and_reraise_exception():
LOG.exception(_LE('Could not setup server.'))