]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
FlashSystem Code Cleanup
authorEdwin Wang <edwin.wang@cn.ibm.com>
Sat, 13 Dec 2014 04:25:11 +0000 (12:25 +0800)
committerEdwin Wang <edwin.wang@cn.ibm.com>
Sat, 13 Dec 2014 07:08:10 +0000 (15:08 +0800)
1. % -> , by following logging guidelines;
2. delete len() in conditions.

Change-Id: I6590e858e78be6324e780d1997994f65e7991b99
Implements: blueprint ibm-flashsystem-cleanup

cinder/volume/drivers/ibm/flashsystem.py

index 2269dd5f9c8613446a0d601a397eed8d36b10326..f08b4e809ed066168be3fb5a2b975735db4de47e 100644 (file)
@@ -1,5 +1,4 @@
-# Copyright 2014 IBM Corp.
-# Copyright 2014 OpenStack Foundation
+# Copyright 2014 - 2015 IBM Corporation.
 # All Rights Reserved.
 #
 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -73,10 +72,11 @@ class FlashSystemDriver(san.SanDriver):
 
     Version history:
     1.0.0 - Initial driver
+    1.0.1 - Code clean up
 
     """
 
-    VERSION = "1.0.0"
+    VERSION = "1.0.1"
 
     def __init__(self, *args, **kwargs):
         super(FlashSystemDriver, self).__init__(*args, **kwargs)
@@ -193,8 +193,8 @@ class FlashSystemDriver(san.SanDriver):
         should be restored to previous mapped or non-mapped status.
         """
 
-        LOG.debug('enter: _copy_vdisk_data: %(src)s -> %(dest)s.'
-                  {'src': src_vdisk_name, 'dest': dest_vdisk_name})
+        LOG.debug('enter: _copy_vdisk_data: %(src)s -> %(dest)s.',
+                  {'src': src_vdisk_name, 'dest': dest_vdisk_name})
 
         connector = utils.brick_get_connector_properties()
         (src_map, src_lun_id) = self._is_vdisk_map(
@@ -236,8 +236,8 @@ class FlashSystemDriver(san.SanDriver):
         except Exception:
             with excutils.save_and_reraise_exception():
                 LOG.error(_LE('_copy_vdisk_data: Failed to '
-                              'copy %(src)s to %(dest)s.')
-                          {'src': src_vdisk_name, 'dest': dest_vdisk_name})
+                              'copy %(src)s to %(dest)s.'),
+                          {'src': src_vdisk_name, 'dest': dest_vdisk_name})
         finally:
             if not dest_map:
                 self._unmap_vdisk_from_host(dest_vdisk_name, connector)
@@ -247,8 +247,8 @@ class FlashSystemDriver(san.SanDriver):
                 self._remove_device(src_properties, src_map_device)
 
         LOG.debug(
-            'leave: _copy_vdisk_data: %(src)s -> %(dest)s.'
-            {'src': src_vdisk_name, 'dest': dest_vdisk_name})
+            'leave: _copy_vdisk_data: %(src)s -> %(dest)s.',
+            {'src': src_vdisk_name, 'dest': dest_vdisk_name})
 
     def _create_and_copy_vdisk_data(self, src_vdisk_name, src_vdisk_id,
                                     dest_vdisk_name, dest_vdisk_id):
@@ -282,7 +282,7 @@ class FlashSystemDriver(san.SanDriver):
 
         """
 
-        LOG.debug('enter: _create_host: host %s.' % connector['host'])
+        LOG.debug('enter: _create_host: host %s.', connector['host'])
 
         rand_id = six.text_type(random.randint(0, 99999999)).zfill(8)
         host_name = '%s-%s' % (self._connector_to_hostname_prefix(connector),
@@ -293,7 +293,7 @@ class FlashSystemDriver(san.SanDriver):
             for wwpn in connector['wwpns']:
                 ports.append('-hbawwpn %s' % wwpn)
 
-        self._driver_assert(len(ports),
+        self._driver_assert(ports,
                             (_('_create_host: No connector ports.')))
         port1 = ports.pop(0)
         arg_name, arg_val = port1.split()
@@ -309,11 +309,11 @@ class FlashSystemDriver(san.SanDriver):
                        arg_name, arg_val, host_name]
             out, err = self._ssh(ssh_cmd)
             self._assert_ssh_return(
-                (len(out.strip()) == 0),
+                (not out.strip()),
                 '_create_host', ssh_cmd, out, err)
 
         LOG.debug(
-            'leave: _create_host: host %(host)s - %(host_name)s.' %
+            'leave: _create_host: host %(host)s - %(host_name)s.',
             {'host': connector['host'], 'host_name': host_name})
 
         return host_name
@@ -321,14 +321,14 @@ class FlashSystemDriver(san.SanDriver):
     def _create_vdisk(self, name, size, unit, opts):
         """Create a new vdisk."""
 
-        LOG.debug('enter: _create_vdisk: vdisk %s.' % name)
+        LOG.debug('enter: _create_vdisk: vdisk %s.', name)
 
         ssh_cmd = ['svctask', 'mkvdisk', '-name', name, '-mdiskgrp',
                    FLASHSYSTEM_VOLPOOL_NAME, '-iogrp',
                    six.text_type(FLASHSYSTEM_VOL_IOGRP),
                    '-size', size, '-unit', unit]
         out, err = self._ssh(ssh_cmd)
-        self._assert_ssh_return(len(out.strip()), '_create_vdisk',
+        self._assert_ssh_return(out.strip(), '_create_vdisk',
                                 ssh_cmd, out, err)
 
         # Ensure that the output is as expected
@@ -343,32 +343,32 @@ class FlashSystemDriver(san.SanDriver):
              % {'name': name, 'out': six.text_type(out),
                 'err': six.text_type(err)}))
 
-        LOG.debug('leave: _create_vdisk: vdisk %s.' % name)
+        LOG.debug('leave: _create_vdisk: vdisk %s.', name)
 
     def _delete_host(self, host_name):
         """Delete a host on the storage system."""
 
-        LOG.debug('enter: _delete_host: host %s.' % host_name)
+        LOG.debug('enter: _delete_host: host %s.', host_name)
 
         ssh_cmd = ['svctask', 'rmhost', host_name]
         out, err = self._ssh(ssh_cmd)
         # No output should be returned from rmhost
         self._assert_ssh_return(
-            len(out.strip()) == 0,
+            (not out.strip()),
             '_delete_host', ssh_cmd, out, err)
 
-        LOG.debug('leave: _delete_host: host %s.' % host_name)
+        LOG.debug('leave: _delete_host: host %s.', host_name)
 
     def _delete_vdisk(self, name, force):
         """Deletes existing vdisks."""
 
-        LOG.debug('enter: _delete_vdisk: vdisk %s.' % name)
+        LOG.debug('enter: _delete_vdisk: vdisk %s.', name)
 
         # Try to delete volume only if found on the storage
         vdisk_defined = self._is_vdisk_defined(name)
         if not vdisk_defined:
             LOG.warning(_LW('warning: Tried to delete vdisk %s but '
-                            'it does not exist.') % name)
+                            'it does not exist.'), name)
             return
 
         ssh_cmd = ['svctask', 'rmvdisk', '-force', name]
@@ -377,11 +377,11 @@ class FlashSystemDriver(san.SanDriver):
         out, err = self._ssh(ssh_cmd)
         # No output should be returned from rmvdisk
         self._assert_ssh_return(
-            len(out.strip()) == 0,
+            (not out.strip()),
             ('_delete_vdisk %(name)s') % {'name': name},
             ssh_cmd, out, err)
 
-        LOG.debug('leave: _delete_vdisk: vdisk %s.' % name)
+        LOG.debug('leave: _delete_vdisk: vdisk %s.', name)
 
     def _driver_assert(self, assert_condition, exception_message):
         """Internal assertion mechanism for CLI output."""
@@ -399,33 +399,33 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'enter: _execute_command_and_parse_attributes: '
-            'command: %s.' % six.text_type(ssh_cmd))
+            'command: %s.', six.text_type(ssh_cmd))
 
         try:
             out, err = self._ssh(ssh_cmd)
         except processutils.ProcessExecutionError:
             LOG.warning(_LW('_execute_command_and_parse_attributes: Failed to '
-                            'run command: %s.') % six.text_type(ssh_cmd))
+                            'run command: %s.'), six.text_type(ssh_cmd))
             # Does not raise exception when command encounters error.
             # Only return and the upper logic decides what to do.
             return None
 
         self._assert_ssh_return(
-            len(out),
+            out,
             '_execute_command_and_parse_attributes', ssh_cmd, out, err)
 
         attributes = {}
         for attrib_line in out.split('\n'):
             # If '!' not found, return the string and two empty strings
             attrib_name, foo, attrib_value = attrib_line.partition('!')
-            if attrib_name is not None and len(attrib_name.strip()):
+            if attrib_name is not None and attrib_name.strip():
                 self._append_dict(attributes, attrib_name, attrib_value)
 
         LOG.debug(
             'leave: _execute_command_and_parse_attributes: '
-            'command: %(cmd)s attributes: %(attr)s.'
-            {'cmd': six.text_type(ssh_cmd),
-               'attr': six.text_type(attributes)})
+            'command: %(cmd)s attributes: %(attr)s.',
+            {'cmd': six.text_type(ssh_cmd),
+             'attr': six.text_type(attributes)})
 
         return attributes
 
@@ -434,7 +434,7 @@ class FlashSystemDriver(san.SanDriver):
             ssh_cmd = ['svcinfo', 'lshost', '-delim', '!', host]
             out, err = self._ssh(ssh_cmd)
             self._assert_ssh_return(
-                len(out.strip()),
+                out.strip(),
                 '_find_host_exhaustive', ssh_cmd, out, err)
             for attr_line in out.split('\n'):
                 # If '!' not found, return the string and two empty strings
@@ -490,8 +490,8 @@ class FlashSystemDriver(san.SanDriver):
                 if 'unconfigured' != s:
                     wwpns.add(i)
             node['WWPN'] = list(wwpns)
-            LOG.info(_LI('WWPN on node %(node)s: %(wwpn)s.')
-                     {'node': node['id'], 'wwpn': node['WWPN']})
+            LOG.info(_LI('WWPN on node %(node)s: %(wwpn)s.'),
+                     {'node': node['id'], 'wwpn': node['WWPN']})
 
     def _get_host_from_connector(self, connector):
         """List the hosts defined in the storage.
@@ -501,13 +501,13 @@ class FlashSystemDriver(san.SanDriver):
 
         """
 
-        LOG.debug('enter: _get_host_from_connector: %s.' % connector)
+        LOG.debug('enter: _get_host_from_connector: %s.', connector)
 
         # Get list of host in the storage
         ssh_cmd = ['svcinfo', 'lshost', '-delim', '!']
         out, err = self._ssh(ssh_cmd)
 
-        if not len(out.strip()):
+        if not out.strip():
             return None
 
         # If we have FC information, we have a faster lookup option
@@ -515,7 +515,7 @@ class FlashSystemDriver(san.SanDriver):
 
         host_lines = out.strip().split('\n')
         self._assert_ssh_return(
-            len(host_lines),
+            host_lines,
             '_get_host_from_connector', ssh_cmd, out, err)
         header = host_lines.pop(0).split('!')
         self._assert_ssh_return(
@@ -525,7 +525,7 @@ class FlashSystemDriver(san.SanDriver):
         hosts = map(lambda x: x.split('!')[name_index], host_lines)
         hostname = self._find_host_exhaustive(connector, hosts)
 
-        LOG.debug('leave: _get_host_from_connector: host %s.' % hostname)
+        LOG.debug('leave: _get_host_from_connector: host %s.', hostname)
 
         return hostname
 
@@ -537,7 +537,7 @@ class FlashSystemDriver(san.SanDriver):
         out, err = self._ssh(ssh_cmd)
 
         mappings = out.strip().split('\n')
-        if len(mappings):
+        if mappings:
             header = mappings.pop(0)
             for mapping_line in mappings:
                 mapping_data = self._get_hdr_dic(header, mapping_line, '!')
@@ -565,7 +565,7 @@ class FlashSystemDriver(san.SanDriver):
         out, err = self._ssh(ssh_cmd)
 
         mappings = out.strip().split('\n')
-        if len(mappings):
+        if mappings:
             header = mappings.pop(0)
             for mapping_line in mappings:
                 mapping_data = self._get_hdr_dic(header, mapping_line, '!')
@@ -579,7 +579,7 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'enter: _get_vdisk_map_properties: vdisk '
-            '%(vdisk_name)s.' % {'vdisk_name': vdisk_name})
+            '%(vdisk_name)s.', {'vdisk_name': vdisk_name})
 
         preferred_node = '0'
         IO_group = '0'
@@ -595,7 +595,7 @@ class FlashSystemDriver(san.SanDriver):
             if node['IO_group'] == IO_group:
                 io_group_nodes.append(node)
 
-        if not len(io_group_nodes):
+        if not io_group_nodes:
             msg = (_('_get_vdisk_map_properties: No node found in '
                      'I/O group %(gid)s for volume %(vol)s.')
                    % {'gid': IO_group, 'vol': vdisk_name})
@@ -606,7 +606,7 @@ class FlashSystemDriver(san.SanDriver):
             # Get 1st node in I/O group
             preferred_node_entry = io_group_nodes[0]
             LOG.warning(_LW('_get_vdisk_map_properties: Did not find a '
-                            'preferred node for vdisk %s.') % vdisk_name)
+                            'preferred node for vdisk %s.'), vdisk_name)
         properties = {}
         properties['target_discovered'] = False
         properties['target_lun'] = lun_id
@@ -615,7 +615,7 @@ class FlashSystemDriver(san.SanDriver):
         type_str = 'fibre_channel'
         conn_wwpns = self._get_conn_fc_wwpns()
 
-        if len(conn_wwpns) == 0:
+        if not conn_wwpns:
             msg = (_('_get_vdisk_map_properties: Could not get FC '
                      'connection information for the host-volume '
                      'connection. Is the host configured properly '
@@ -633,7 +633,7 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'leave: _get_vdisk_map_properties: vdisk '
-            '%(vdisk_name)s.' % {'vdisk_name': vdisk_name})
+            '%(vdisk_name)s.', {'vdisk_name': vdisk_name})
 
         return {'driver_volume_type': type_str, 'data': properties}
 
@@ -687,13 +687,13 @@ class FlashSystemDriver(san.SanDriver):
 
     def _is_vdisk_defined(self, vdisk_name):
         """Check if vdisk is defined."""
-        LOG.debug('enter: _is_vdisk_defined: vdisk %s.' % vdisk_name)
+        LOG.debug('enter: _is_vdisk_defined: vdisk %s.', vdisk_name)
 
         vdisk_attributes = self._get_vdisk_attributes(vdisk_name)
 
         LOG.debug(
-            'leave: _is_vdisk_defined: vdisk %(vol)s with %(str)s.'
-            {'vol': vdisk_name, 'str': vdisk_attributes is not None})
+            'leave: _is_vdisk_defined: vdisk %(vol)s with %(str)s.',
+            {'vol': vdisk_name, 'str': vdisk_attributes is not None})
 
         if vdisk_attributes is None:
             return False
@@ -702,10 +702,10 @@ class FlashSystemDriver(san.SanDriver):
 
     def _is_vdisk_copy_in_progress(self, vdisk_name):
         LOG.debug(
-            '_is_vdisk_copy_in_progress: %(vdisk)s: %(vdisk_in_progress)s.'
-            {'vdisk': vdisk_name,
-               'vdisk_in_progress':
-               six.text_type(self._vdisk_copy_in_progress)})
+            '_is_vdisk_copy_in_progress: %(vdisk)s: %(vdisk_in_progress)s.',
+            {'vdisk': vdisk_name,
+             'vdisk_in_progress':
+             six.text_type(self._vdisk_copy_in_progress)})
         if vdisk_name not in self._vdisk_copy_in_progress:
             LOG.debug(
                 '_is_vdisk_copy_in_progress: '
@@ -720,7 +720,7 @@ class FlashSystemDriver(san.SanDriver):
 
         """
 
-        LOG.debug('enter: _is_vdisk_map: %(src)s.' % {'src': vdisk_name})
+        LOG.debug('enter: _is_vdisk_map: %(src)s.', {'src': vdisk_name})
 
         map_flag = False
         result_lun = '-1'
@@ -748,28 +748,28 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'leave: _is_vdisk_map: %(src)s '
-            'mapped %(map_flag)s %(result_lun)s.'
-            {'src': vdisk_name,
-               'map_flag': six.text_type(map_flag),
-               'result_lun': result_lun})
+            'mapped %(map_flag)s %(result_lun)s.',
+            {'src': vdisk_name,
+             'map_flag': six.text_type(map_flag),
+             'result_lun': result_lun})
 
         return (map_flag, int(result_lun))
 
     def _log_cli_output_error(self, function, cmd, out, err):
         LOG.error(_LE('%(fun)s: Failed with unexpected CLI output.\n '
-                      'Command: %(cmd)s\nstdout: %(out)s\nstderr: %(err)s\n')
-                  {'fun': function,
-                     'cmd': cmd,
-                     'out': six.text_type(out),
-                     'err': six.text_type(err)})
+                      'Command: %(cmd)s\nstdout: %(out)s\nstderr: %(err)s\n'),
+                  {'fun': function,
+                   'cmd': cmd,
+                   'out': six.text_type(out),
+                   'err': six.text_type(err)})
 
     def _map_vdisk_to_host(self, vdisk_name, connector):
         """Create a mapping between a vdisk to a host."""
 
         LOG.debug(
             'enter: _map_vdisk_to_host: vdisk %(vdisk_name)s to '
-            'host %(host)s.'
-            {'vdisk_name': vdisk_name, 'host': connector})
+            'host %(host)s.',
+            {'vdisk_name': vdisk_name, 'host': connector})
 
         # Check if a host object is defined for this host name
         host_name = self._get_host_from_connector(connector)
@@ -804,8 +804,8 @@ class FlashSystemDriver(san.SanDriver):
 
                 # try to map one volume to multiple hosts
                 out, err = self._ssh(ssh_cmd)
-                LOG.info(_LI('Volume %s is mapping to multiple hosts.')
-                         vdisk_name)
+                LOG.info(_LI('Volume %s is mapping to multiple hosts.'),
+                         vdisk_name)
                 self._assert_ssh_return(
                     'successfully created' in out,
                     '_map_vdisk_to_host', ssh_cmd, out, err)
@@ -816,9 +816,9 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             ('leave: _map_vdisk_to_host: LUN %(result_lun)s, vdisk '
-             '%(vdisk_name)s, host %(host_name)s.')
-            {'result_lun': result_lun,
-               'vdisk_name': vdisk_name, 'host_name': host_name})
+             '%(vdisk_name)s, host %(host_name)s.'),
+            {'result_lun': result_lun,
+             'vdisk_name': vdisk_name, 'host_name': host_name})
 
         return int(result_lun)
 
@@ -826,10 +826,10 @@ class FlashSystemDriver(san.SanDriver):
         ssh_cmd = cmd + ['-delim', '!']
         out, err = self._ssh(ssh_cmd)
 
-        if not len(out.strip()):
+        if not out.strip():
             return
         port_lines = out.strip().split('\n')
-        if not len(port_lines):
+        if not port_lines:
             return
 
         header = port_lines.pop(0)
@@ -899,25 +899,25 @@ class FlashSystemDriver(san.SanDriver):
         # Check if vdisk-host mapping exists, remove if it does. If no host
         # name was given, but only one mapping exists, we can use that.
         mapping_data = self._get_vdiskhost_mappings(vdisk_name)
-        if len(mapping_data) == 0:
+        if not mapping_data:
             LOG.warning(_LW('_unmap_vdisk_from_host: No mapping of volume '
-                            '%(vol_name)s to any host found.')
-                        {'vol_name': vdisk_name})
+                            '%(vol_name)s to any host found.'),
+                        {'vol_name': vdisk_name})
             return
         if host_name is None:
             if len(mapping_data) > 1:
                 LOG.warning(_LW('_unmap_vdisk_from_host: Multiple mappings of '
                                 'volume %(vdisk_name)s found, no host '
-                                'specified.')
-                            {'vdisk_name': vdisk_name})
+                                'specified.'),
+                            {'vdisk_name': vdisk_name})
                 return
             else:
                 host_name = mapping_data.keys()[0]
         else:
             if host_name not in mapping_data:
                 LOG.error(_LE('_unmap_vdisk_from_host: No mapping of volume '
-                              '%(vol_name)s to host %(host_name)s found.')
-                          {'vol_name': vdisk_name, 'host_name': host_name})
+                              '%(vol_name)s to host %(host_name)s found.'),
+                          {'vol_name': vdisk_name, 'host_name': host_name})
                 return
 
         # We have a valid host_name now
@@ -926,7 +926,7 @@ class FlashSystemDriver(san.SanDriver):
         out, err = self._ssh(ssh_cmd)
         # Verify CLI behaviour - no output is returned from rmvdiskhostmap
         self._assert_ssh_return(
-            len(out.strip()) == 0,
+            (not out.strip()),
             '_unmap_vdisk_from_host', ssh_cmd, out, err)
 
         # If this host has no more mappings, delete it
@@ -975,10 +975,10 @@ class FlashSystemDriver(san.SanDriver):
 
     def _set_vdisk_copy_in_progress(self, vdisk_list):
         LOG.debug(
-            '_set_vdisk_copy_in_progress: %(vdisk)s: %(vdisk_in_progress)s.'
-            {'vdisk': six.text_type(vdisk_list),
-               'vdisk_in_progress':
-               six.text_type(self._vdisk_copy_in_progress)})
+            '_set_vdisk_copy_in_progress: %(vdisk)s: %(vdisk_in_progress)s.',
+            {'vdisk': six.text_type(vdisk_list),
+             'vdisk_in_progress':
+             six.text_type(self._vdisk_copy_in_progress)})
         get_lock = True
         self._vdisk_copy_lock.acquire()
         for vdisk in vdisk_list:
@@ -990,16 +990,16 @@ class FlashSystemDriver(san.SanDriver):
         self._vdisk_copy_lock.release()
         if get_lock:
             LOG.debug(
-                '_set_vdisk_copy_in_progress: %s.'
-                six.text_type(self._vdisk_copy_in_progress))
+                '_set_vdisk_copy_in_progress: %s.',
+                six.text_type(self._vdisk_copy_in_progress))
             raise loopingcall.LoopingCallDone(retvalue=True)
 
     def _unset_vdisk_copy_in_progress(self, vdisk_list):
         LOG.debug(
-            '_unset_vdisk_copy_in_progress: %(vdisk)s: %(vdisk_in_progress)s.'
-            {'vdisk': six.text_type(vdisk_list),
-               'vdisk_in_progress':
-               six.text_type(self._vdisk_copy_in_progress)})
+            '_unset_vdisk_copy_in_progress: %(vdisk)s: %(vdisk_in_progress)s.',
+            {'vdisk': six.text_type(vdisk_list),
+             'vdisk_in_progress':
+             six.text_type(self._vdisk_copy_in_progress)})
         self._vdisk_copy_lock.acquire()
         for vdisk in vdisk_list:
             if vdisk in self._vdisk_copy_in_progress:
@@ -1051,10 +1051,10 @@ class FlashSystemDriver(san.SanDriver):
         ssh_cmd = ['svcinfo', 'lsnode', '-delim', '!']
         out, err = self._ssh(ssh_cmd)
         self._assert_ssh_return(
-            len(out.strip()), 'do_setup', ssh_cmd, out, err)
+            out.strip(), 'do_setup', ssh_cmd, out, err)
 
         nodes = out.strip().splitlines()
-        self._assert_ssh_return(len(nodes), 'do_setup', ssh_cmd, out, err)
+        self._assert_ssh_return(nodes, 'do_setup', ssh_cmd, out, err)
         header = nodes.pop(0)
         for node_line in nodes:
             try:
@@ -1083,7 +1083,7 @@ class FlashSystemDriver(san.SanDriver):
         # nodes that do not support any types (may be partially configured).
         to_delete = []
         for k, node in self._storage_nodes.iteritems():
-            if not len(node['WWPN']):
+            if not node['WWPN']:
                 to_delete.append(k)
 
         for delkey in to_delete:
@@ -1091,7 +1091,7 @@ class FlashSystemDriver(san.SanDriver):
 
         # Make sure we have at least one node configured
         self._driver_assert(
-            len(self._storage_nodes),
+            self._storage_nodes,
             'do_setup: No configured nodes.')
 
         self._protocol = node['protocol'] = 'FC'
@@ -1158,7 +1158,7 @@ class FlashSystemDriver(san.SanDriver):
 
     def extend_volume(self, volume, new_size):
         """Extend volume."""
-        LOG.debug('enter: extend_volume: volume %s.' % volume['name'])
+        LOG.debug('enter: extend_volume: volume %s.', volume['name'])
 
         vdisk_name = volume['name']
         self._wait_vdisk_copy_completed(vdisk_name)
@@ -1169,10 +1169,10 @@ class FlashSystemDriver(san.SanDriver):
         out, err = self._ssh(ssh_cmd)
         # No output should be returned from expandvdisksize
         self._assert_ssh_return(
-            len(out.strip()) == 0,
+            (not out.strip()),
             'extend_volume', ssh_cmd, out, err)
 
-        LOG.debug('leave: extend_volume: volume %s.' % volume['name'])
+        LOG.debug('leave: extend_volume: volume %s.', volume['name'])
 
     @fczm_utils.AddFCZone
     def initialize_connection(self, volume, connector):
@@ -1191,7 +1191,7 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'enter: initialize_connection: volume %(vol)s with '
-            'connector %(conn)s.' % {'vol': volume, 'conn': connector})
+            'connector %(conn)s.', {'vol': volume, 'conn': connector})
 
         vdisk_name = volume['name']
         vdisk_id = volume['id']
@@ -1215,15 +1215,15 @@ class FlashSystemDriver(san.SanDriver):
                 self.terminate_connection(volume, connector)
                 LOG.error(_LE('initialize_connection: Failed to collect '
                               'return properties for volume %(vol)s and '
-                              'connector %(conn)s.')
-                          {'vol': volume, 'conn': connector})
+                              'connector %(conn)s.'),
+                          {'vol': volume, 'conn': connector})
 
         LOG.debug(
             'leave: initialize_connection:\n volume: %(vol)s\n connector '
-            '%(conn)s\n properties: %(prop)s.'
-            {'vol': volume,
-               'conn': connector,
-               'prop': properties})
+            '%(conn)s\n properties: %(prop)s.',
+            {'vol': volume,
+             'conn': connector,
+             'prop': properties})
 
         return properties
 
@@ -1240,8 +1240,8 @@ class FlashSystemDriver(san.SanDriver):
         """
         LOG.debug(
             'enter: terminate_connection: volume %(vol)s with '
-            'connector %(conn)s.'
-            {'vol': volume, 'conn': connector})
+            'connector %(conn)s.',
+            {'vol': volume, 'conn': connector})
 
         vdisk_name = volume['name']
         self._wait_vdisk_copy_completed(vdisk_name)
@@ -1255,7 +1255,7 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'leave: terminate_connection: volume %(vol)s with '
-            'connector %(conn)s.' % {'vol': volume, 'conn': connector})
+            'connector %(conn)s.', {'vol': volume, 'conn': connector})
 
         return {
             'driver_volume_type': 'fibre_channel',
@@ -1266,8 +1266,8 @@ class FlashSystemDriver(san.SanDriver):
         """Create snapshot from volume."""
 
         LOG.debug(
-            'enter: create_snapshot: create %(snap)s from %(vol)s.'
-            {'snap': snapshot['name'], 'vol': snapshot['volume']['name']})
+            'enter: create_snapshot: create %(snap)s from %(vol)s.',
+            {'snap': snapshot['name'], 'vol': snapshot['volume']['name']})
 
         status = snapshot['volume']['status']
         if status not in ['available', 'in-use']:
@@ -1282,30 +1282,30 @@ class FlashSystemDriver(san.SanDriver):
                                          snapshot['id'])
 
         LOG.debug(
-            'leave: create_snapshot: create %(snap)s from %(vol)s.'
-            {'snap': snapshot['name'], 'vol': snapshot['volume']['name']})
+            'leave: create_snapshot: create %(snap)s from %(vol)s.',
+            {'snap': snapshot['name'], 'vol': snapshot['volume']['name']})
 
     def delete_snapshot(self, snapshot):
         """Delete snapshot."""
 
         LOG.debug(
-            'enter: delete_snapshot: delete %(snap)s.'
-            {'snap': snapshot['name']})
+            'enter: delete_snapshot: delete %(snap)s.',
+            {'snap': snapshot['name']})
 
         self._wait_vdisk_copy_completed(snapshot['name'])
 
         self._delete_vdisk(snapshot['name'], False)
 
         LOG.debug(
-            'leave: delete_snapshot: delete %(snap)s.'
-            {'snap': snapshot['name']})
+            'leave: delete_snapshot: delete %(snap)s.',
+            {'snap': snapshot['name']})
 
     def create_volume_from_snapshot(self, volume, snapshot):
         """Create volume from snapshot."""
 
         LOG.debug(
             'enter: create_volume_from_snapshot: create %(vol)s from '
-            '%(snap)s.' % {'vol': volume['name'], 'snap': snapshot['name']})
+            '%(snap)s.', {'vol': volume['name'], 'snap': snapshot['name']})
 
         if volume['size'] != snapshot['volume_size']:
             msg = (_('create_volume_from_snapshot: Volume size is different '
@@ -1327,13 +1327,13 @@ class FlashSystemDriver(san.SanDriver):
 
         LOG.debug(
             'leave: create_volume_from_snapshot: create %(vol)s from '
-            '%(snap)s.' % {'vol': volume['name'], 'snap': snapshot['name']})
+            '%(snap)s.', {'vol': volume['name'], 'snap': snapshot['name']})
 
     def create_cloned_volume(self, volume, src_volume):
         """Create volume from a source volume."""
 
-        LOG.debug('enter: create_cloned_volume: create %(vol)s from %(src)s.'
-                  {'src': src_volume['name'], 'vol': volume['name']})
+        LOG.debug('enter: create_cloned_volume: create %(vol)s from %(src)s.',
+                  {'src': src_volume['name'], 'vol': volume['name']})
 
         if src_volume['size'] != volume['size']:
             msg = (_('create_cloned_volume: Source and destination '
@@ -1346,8 +1346,8 @@ class FlashSystemDriver(san.SanDriver):
                                          volume['name'],
                                          volume['id'])
 
-        LOG.debug('leave: create_cloned_volume: create %(vol)s from %(src)s.'
-                  {'src': src_volume['name'], 'vol': volume['name']})
+        LOG.debug('leave: create_cloned_volume: create %(vol)s from %(src)s.',
+                  {'src': src_volume['name'], 'vol': volume['name']})
 
     def get_volume_stats(self, refresh=False):
         """Get volume stats.