diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py
index a7b8ba3b8..806e76414 100644
--- a/ironic_python_agent/hardware.py
+++ b/ironic_python_agent/hardware.py
@@ -83,9 +83,9 @@ def _get_device_info(dev, devclass, field):
                   'r') as f:
             return f.read().strip()
     except IOError:
-        LOG.warning(
-            "Can't find field {} for device {} in device class {}".format(
-                field, dev, devclass))
+        LOG.warning("Can't find field %(field)s for"
+                    "device %(dev)s in device class %(class)s",
+                    {'field': field, 'dev': dev, 'class': devclass})
 
 
 def _get_system_lshw_dict():
@@ -146,9 +146,8 @@ def _get_md_uuid(raid_device):
         out, _ = utils.execute('mdadm', '--detail', raid_device,
                                use_standard_locale=True)
     except processutils.ProcessExecutionError as e:
-        msg = ('Could not get the details of %(dev)s: %(err)s' %
-               {'dev': raid_device, 'err': e})
-        LOG.warning(msg)
+        LOG.warning('Could not get the details of %(dev)s: %(err)s',
+                    {'dev': raid_device, 'err': e})
         return
 
     lines = out.splitlines()
@@ -174,7 +173,8 @@ def _get_component_devices(raid_device):
     md_uuid = _get_md_uuid(raid_device)
     if not md_uuid:
         return []
-    LOG.debug('%s has UUID %s', raid_device, md_uuid)
+    LOG.debug('%(device)s has UUID %(uuid)s',
+              {'device': raid_device, 'uuid': md_uuid})
 
     component_devices = []
     block_devices = list_all_block_devices()
@@ -190,8 +190,8 @@ def _get_component_devices(raid_device):
                 LOG.debug('Not a component device %s', bdev.name)
                 continue
             else:
-                LOG.warning("Failed to examine device %s: %s",
-                            bdev.name, e)
+                LOG.warning("Failed to examine device %(name)s: %(err)s",
+                            {'name': bdev.name, 'err': e})
                 continue
         lines = out.splitlines()
         for line in lines:
@@ -218,9 +218,8 @@ def _get_actual_component_devices(raid_device):
         out, _ = utils.execute('mdadm', '--detail', raid_device,
                                use_standard_locale=True)
     except processutils.ProcessExecutionError as e:
-        msg = ('Could not get component devices of %(dev)s: %(err)s' %
-               {'dev': raid_device, 'err': e})
-        LOG.warning(msg)
+        LOG.warning('Could not get component devices of %(dev)s: %(err)s',
+                    {'dev': raid_device, 'err': e})
         return []
 
     component_devices = []
@@ -269,9 +268,8 @@ def get_holder_disks(raid_device):
         out, _ = utils.execute('mdadm', '--detail', raid_device,
                                use_standard_locale=True)
     except processutils.ProcessExecutionError as e:
-        msg = ('Could not get holder disks of %(dev)s: %(err)s' %
-               {'dev': raid_device, 'err': e})
-        LOG.warning(msg)
+        LOG.warning('Could not get holder disks of %(dev)s: %(err)s',
+                    {'dev': raid_device, 'err': e})
         return []
 
     holder_disks = []
@@ -287,9 +285,9 @@ def get_holder_disks(raid_device):
 
         device = utils.extract_device(part)
         if not device:
-            msg = ('Could not get holder disks of %s: unexpected pattern '
-                   'for partition %s') % (raid_device, part)
-            raise errors.SoftwareRAIDError(msg)
+            raise errors.SoftwareRAIDError(
+                'Could not get holder disks of %s: unexpected pattern '
+                'for partition %s' % (raid_device, part))
         holder_disks.append(device)
 
     return holder_disks
@@ -1008,7 +1006,8 @@ class GenericHardwareManager(HardwareManager):
                                            binascii.hexlify(data).decode()))
                 except (binascii.Error, binascii.Incomplete) as e:
                     LOG.warning('An error occurred while processing TLV type '
-                                '%s for interface %s: %s', (typ, ifname, e))
+                                '%(type)s for interface %(name)s: %(err)s',
+                                {'type': typ, 'name': ifname, 'err': e})
             lldp_data[ifname] = processed_tlvs
         return lldp_data
 
@@ -1257,12 +1256,10 @@ class GenericHardwareManager(HardwareManager):
                 'agent_continue_if_ata_erase_failed', False)
             if execute_shred:
                 LOG.warning('Failed to invoke ata_erase, '
-                            'falling back to shred: %(err)s',
-                            {'err': e})
+                            'falling back to shred: %s', e)
             else:
                 msg = ('Failed to invoke ata_erase, '
-                       'fallback to shred is not enabled: %(err)s'
-                       % {'err': e})
+                       'fallback to shred is not enabled: %s' % e)
                 LOG.error(msg)
                 raise errors.IncompatibleHardwareMethodError(msg)
 
@@ -1334,8 +1331,8 @@ class GenericHardwareManager(HardwareManager):
         try:
             utils.execute(*args)
         except (processutils.ProcessExecutionError, OSError) as e:
-            msg = "Erasing block device %(dev)s failed with error %(err)s"
-            LOG.error(msg, {'dev': block_device.name, 'err': e})
+            LOG.error("Erasing block device %(dev)s failed with error %(err)s",
+                      {'dev': block_device.name, 'err': e})
             return False
 
         return True
@@ -1368,8 +1365,9 @@ class GenericHardwareManager(HardwareManager):
             out, _ = utils.execute('lsblk', '--fs', '--noheadings',
                                    block_device.name)
         except processutils.ProcessExecutionError as e:
-            LOG.warning("Could not determine if %s is a RAID member: %s",
-                        block_device.name, e)
+            LOG.warning("Could not determine if %(name)s is a RAID member: "
+                        "%(err)s",
+                        {'name': block_device.name, "err": e})
             return True
 
         return 'linux_raid_member' in out
@@ -1391,9 +1389,9 @@ class GenericHardwareManager(HardwareManager):
                 if flag == '1':
                     return True
         except IOError as e:
-            LOG.warning("Could not determine if %s is a read-only device. "
-                        "Error: %s",
-                        block_device.name, e)
+            LOG.warning("Could not determine if %(name)s is a"
+                        "read-only device. Error: %(err)s",
+                        {'name': block_device.name, 'err': e})
         return False
 
     def _get_ata_security_lines(self, block_device):
@@ -1576,7 +1574,8 @@ class GenericHardwareManager(HardwareManager):
                 try:
                     ipaddress.ip_address(out)
                 except ValueError as exc:
-                    LOG.warning('Invalid IP address %s: %s', out, exc)
+                    LOG.warning('Invalid IP address %(output)s: %(exc)s',
+                                {'output': out, 'exc': exc})
                     continue
 
                 # In case we get 0.0.0.0 on a valid channel, we need to keep
@@ -1653,7 +1652,8 @@ class GenericHardwareManager(HardwareManager):
                 try:
                     return str(ipaddress.ip_interface(address).ip)
                 except ValueError as exc:
-                    LOG.warning('Invalid IP address %s: %s', address, exc)
+                    LOG.warning('Invalid IP address %(addr)s: %(exception)s',
+                                {'addr': address, 'exception': exc})
                     continue
         except (processutils.ProcessExecutionError, OSError) as exc:
             # Not error, because it's normal in virtual environment
@@ -1797,8 +1797,8 @@ class GenericHardwareManager(HardwareManager):
                 # Presumably no partitions (or no partition table)
                 continue
         if with_parts:
-            msg = ("Partitions detected on devices %s during RAID config"
-                   % ', '.join(with_parts))
+            msg = ("Partitions detected on devices %s during RAID config" %
+                   ', '.join(with_parts))
             raise errors.SoftwareRAIDError(msg)
 
         partition_table_type = utils.get_partition_table_type_from_specs(node)
@@ -1848,8 +1848,9 @@ class GenericHardwareManager(HardwareManager):
                     raid_utils.calc_raid_partition_sectors(psize, start)
                 )
                 try:
-                    LOG.debug("Creating partition on {}: {} {}".format(
-                        device, start_str, end_str))
+                    LOG.debug("Creating partition on %(dev)s: %(str)s %(end)s",
+                              {'dev': device, 'str': start_str,
+                               'end': end_str})
                     utils.execute('parted', device, '-s', '-a',
                                   'optimal', '--', 'mkpart', 'primary',
                                   start_str, end_str)
@@ -1885,8 +1886,8 @@ class GenericHardwareManager(HardwareManager):
             if raid_level == '1+0':
                 raid_level = '10'
             try:
-                LOG.debug("Creating md device {} on {}".format(
-                          md_device, component_devices))
+                LOG.debug("Creating md device %(dev)s on %(comp)s",
+                          {'dev': md_device, 'comp': component_devices})
                 utils.execute('mdadm', '--create', md_device, '--force',
                               '--run', '--metadata=1', '--level', raid_level,
                               '--raid-devices', len(component_devices),
@@ -1901,8 +1902,9 @@ class GenericHardwareManager(HardwareManager):
             missing = list(set(component_devices) - set(actual_components))
             for dev in missing:
                 try:
-                    LOG.warning('Found %s to be missing from %s '
-                                '... re-adding!', dev, md_device)
+                    LOG.warning('Found %(device)s to be missing from %(md)s '
+                                '... re-adding!',
+                                {'device': dev, 'md': md_device})
                     utils.execute('mdadm', '--add', md_device, dev,
                                   attempts=3, delay_on_retry=True)
                 except processutils.ProcessExecutionError as e:
@@ -1970,14 +1972,12 @@ class GenericHardwareManager(HardwareManager):
                 # a partition on an md device (as, for instance, created
                 # by the conductor for the config drive). This will be
                 # cleaned with the hosting md device.
-                msg = ("Software RAID cleaning is skipping "
-                       "partition %s" % raid_device.name)
-                LOG.info(msg)
+                LOG.info("Software RAID cleaning is skipping "
+                         "partition %s", raid_device.name)
                 continue
             holder_disks = get_holder_disks(raid_device.name)
 
-            LOG.info("Deleting Software RAID device {}".format(
-                     raid_device.name))
+            LOG.info("Deleting Software RAID device %s", raid_device.name)
             LOG.debug('Found component devices %s', component_devices)
             LOG.debug('Found holder disks %s', holder_disks)
 
@@ -1985,13 +1985,13 @@ class GenericHardwareManager(HardwareManager):
             try:
                 utils.execute('wipefs', '-af', raid_device.name)
             except processutils.ProcessExecutionError as e:
-                LOG.warning('Failed to wipefs %s: %s',
-                            raid_device.name, e)
+                LOG.warning('Failed to wipefs %(device)s: %(err)s',
+                            {'device': raid_device.name, 'err': e})
             try:
                 utils.execute('mdadm', '--stop', raid_device.name)
             except processutils.ProcessExecutionError as e:
-                LOG.warning('Failed to stop %s: %s',
-                            raid_device.name, e)
+                LOG.warning('Failed to stop %(device)s: %(err)s',
+                            {'device': raid_device.name, 'err': e})
 
             # Remove md metadata from component devices.
             for component_device in component_devices:
@@ -2012,8 +2012,9 @@ class GenericHardwareManager(HardwareManager):
                     utils.execute('mdadm', '--zero-superblock',
                                   component_device)
                 except processutils.ProcessExecutionError as e:
-                    LOG.warning('Failed to remove superblock from %s: %s',
-                                raid_device.name, e)
+                    LOG.warning('Failed to remove superblock from'
+                                '%(device)s: %(err)s',
+                                {'device': raid_device.name, 'err': e})
 
             # NOTE(arne_wiebalck): We cannot delete the partitions right
             # away since there may be other partitions on the same disks
@@ -2055,15 +2056,15 @@ class GenericHardwareManager(HardwareManager):
                     # actually not a component device
                     continue
                 else:
-                    msg = "Failed to examine device {}: {}".format(
-                        blk.name, e)
-                    LOG.warning(msg)
+                    LOG.warning("Failed to examine device %(name)s: %(err)s",
+                                {'name': blk.name, 'err': e})
                     continue
             try:
                 utils.execute('mdadm', '--zero-superblock', blk.name)
             except processutils.ProcessExecutionError as e:
-                LOG.warning('Failed to remove superblock from %s: %s',
-                            raid_device.name, e)
+                LOG.warning('Failed to remove superblock from'
+                            '%(device)s: %(err)s',
+                            {'device': raid_device.name, 'err': e})
 
         # Erase all partition tables we created
         all_holder_disks_uniq = list(
@@ -2087,7 +2088,7 @@ class GenericHardwareManager(HardwareManager):
 
         :param raid_config: The current RAID configuration in the usual format.
         """
-        LOG.debug("Validating Software RAID config: {}".format(raid_config))
+        LOG.debug("Validating Software RAID config: %s", raid_config)
 
         if not raid_config:
             LOG.error("No RAID config passed")
@@ -2223,8 +2224,8 @@ def get_managers():
         for extension in extensions:
             if extension.obj.evaluate_hardware_support() > 0:
                 preferred_managers.append(extension.obj)
-                LOG.info('Hardware manager found: {}'.format(
-                    extension.entry_point_target))
+                LOG.info('Hardware manager found: %s',
+                         extension.entry_point_target)
 
         if not preferred_managers:
             raise errors.HardwareManagerNotFound
@@ -2260,8 +2261,9 @@ def dispatch_to_all_managers(method, *args, **kwargs):
             try:
                 response = getattr(manager, method)(*args, **kwargs)
             except errors.IncompatibleHardwareMethodError:
-                LOG.debug('HardwareManager {} does not support {}'
-                          .format(manager, method))
+                LOG.debug('HardwareManager %(manager)s does not '
+                          'support %(method)s',
+                          {'manager': manager, 'method': method})
                 continue
             except Exception as e:
                 LOG.exception('Unexpected error dispatching %(method)s to '
@@ -2270,8 +2272,9 @@ def dispatch_to_all_managers(method, *args, **kwargs):
                 raise
             responses[manager.__class__.__name__] = response
         else:
-            LOG.debug('HardwareManager {} does not have method {}'
-                      .format(manager, method))
+            LOG.debug('HardwareManager %(manager)s does not '
+                      'have method %(method)s',
+                      {'manager': manager, 'method': method})
 
     if responses == {}:
         raise errors.HardwareManagerMethodNotFound(method)
@@ -2302,16 +2305,18 @@ def dispatch_to_managers(method, *args, **kwargs):
             try:
                 return getattr(manager, method)(*args, **kwargs)
             except(errors.IncompatibleHardwareMethodError):
-                LOG.debug('HardwareManager {} does not support {}'
-                          .format(manager, method))
+                LOG.debug('HardwareManager %(manager)s does not '
+                          'support %(method)s',
+                          {'manager': manager, 'method': method})
             except Exception as e:
                 LOG.exception('Unexpected error dispatching %(method)s to '
                               'manager %(manager)s: %(e)s',
                               {'method': method, 'manager': manager, 'e': e})
                 raise
         else:
-            LOG.debug('HardwareManager {} does not have method {}'
-                      .format(manager, method))
+            LOG.debug('HardwareManager %(manager)s does not '
+                      'have method %(method)s',
+                      {'manager': manager, 'method': method})
 
     raise errors.HardwareManagerMethodNotFound(method)