Remove log translations from ironic/drivers Part-1

Log messages are no longer being translated. This removes the use of
_LE, _LI and _LW translation markers from ironic/drivers.

Change-Id: Ie01c1a6a0e0232dce055767854a5d4385b392510
Partial-Bug: #1674374
This commit is contained in:
Anup Navare 2017-03-26 19:01:10 +00:00
parent 6f237ecfd9
commit 4c82308ebe
13 changed files with 179 additions and 197 deletions

View File

@ -29,7 +29,7 @@ from oslo_utils import excutils
import six
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LW
from ironic.common.i18n import _
from ironic.common import raid
from ironic.common import states
@ -409,8 +409,8 @@ class DeployInterface(BaseInterface):
:param callback_url: a URL to use to call to the ramdisk.
:return: None
"""
LOG.warning(_LW('Got heartbeat message from node %(node)s, but '
'the driver %(driver)s does not support heartbeating'),
LOG.warning('Got heartbeat message from node %(node)s, but '
'the driver %(driver)s does not support heartbeating',
{'node': task.node.uuid, 'driver': task.node.driver})
@ -627,7 +627,7 @@ def _passthru(http_methods, method=None, async=True, driver_passthru=False,
metadata[1]['require_exclusive_lock'] = require_exclusive_lock
func._vendor_metadata = metadata
passthru_logmessage = _LE('vendor_passthru failed with method %s')
passthru_logmessage = 'vendor_passthru failed with method %s'
@six.wraps(func)
def passthru_handler(*args, **kwargs):

View File

@ -21,7 +21,7 @@ import six.moves.urllib_parse as urlparse
from ironic.common import dhcp_factory
from ironic.common import exception
from ironic.common.glance_service import service_utils
from ironic.common.i18n import _, _LI, _LW
from ironic.common.i18n import _
from ironic.common import images
from ironic.common import raid
from ironic.common import states
@ -81,8 +81,8 @@ def check_image_size(task, image_source):
properties = node.properties
# skip check if 'memory_mb' is not defined
if 'memory_mb' not in properties:
LOG.warning(_LW('Skip the image size check as memory_mb is not '
'defined in properties on node %s.'), node.uuid)
LOG.warning('Skip the image size check as memory_mb is not '
'defined in properties on node %s.', node.uuid)
return
image_show = images.image_show(task.context, image_source)
@ -285,7 +285,7 @@ class AgentDeployMixin(agent_base_vendor.AgentDeployMixin):
task.node.driver_internal_info = driver_internal_info
task.node.save()
self.prepare_instance_to_boot(task, root_uuid, efi_sys_uuid)
LOG.info(_LI('Image successfully written to node %s'), node.uuid)
LOG.info('Image successfully written to node %s', node.uuid)
LOG.debug('Rebooting node %s to instance', node.uuid)
if iwdi:
manager_utils.node_set_boot_device(task, 'disk', persistent=True)

View File

@ -26,7 +26,7 @@ import retrying
from ironic.common import boot_devices
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LI, _LW
from ironic.common.i18n import _
from ironic.common import states
from ironic.conductor import rpcapi
from ironic.conductor import utils as manager_utils
@ -458,9 +458,9 @@ class AgentDeployMixin(HeartbeatMixin):
# version. Both are operator actions, unlike automated
# cleaning. Manual clean steps are not necessarily idempotent
# like automated clean steps and can be even longer running.
LOG.info(_LI('During manual cleaning, node %(node)s detected '
'a clean version mismatch. Re-executing and '
'continuing from current step %(step)s.'),
LOG.info('During manual cleaning, node %(node)s detected '
'a clean version mismatch. Re-executing and '
'continuing from current step %(step)s.',
{'node': node.uuid, 'step': node.clean_step})
driver_internal_info = node.driver_internal_info
@ -469,10 +469,9 @@ class AgentDeployMixin(HeartbeatMixin):
node.save()
else:
# Restart cleaning, agent must have rebooted to new version
LOG.info(_LI('During automated cleaning, node %s detected a '
'clean version mismatch. Resetting clean steps '
'and rebooting the node.'),
node.uuid)
LOG.info('During automated cleaning, node %s detected a '
'clean version mismatch. Resetting clean steps '
'and rebooting the node.', node.uuid)
try:
manager_utils.set_node_cleaning_steps(task)
except exception.NodeCleaningFailure:
@ -511,8 +510,8 @@ class AgentDeployMixin(HeartbeatMixin):
_cleaning_reboot(task)
return
LOG.info(_LI('Agent on node %s returned cleaning command success, '
'moving to next clean step'), node.uuid)
LOG.info('Agent on node %s returned cleaning command success, '
'moving to next clean step', node.uuid)
_notify_conductor_resume_clean(task)
else:
msg = (_('Agent returned unknown status for clean step %(step)s '
@ -561,13 +560,12 @@ class AgentDeployMixin(HeartbeatMixin):
self._client.power_off(node)
_wait_until_powered_off(task)
except Exception as e:
LOG.warning(
_LW('Failed to soft power off node %(node_uuid)s '
'in at least %(timeout)d seconds. '
'Error: %(error)s'),
{'node_uuid': node.uuid,
'timeout': (wait * (attempts - 1)) / 1000,
'error': e})
LOG.warning('Failed to soft power off node %(node_uuid)s '
'in at least %(timeout)d seconds. '
'Error: %(error)s',
{'node_uuid': node.uuid,
'timeout': (wait * (attempts - 1)) / 1000,
'error': e})
manager_utils.node_power_action(task, states.POWER_OFF)
else:
# Flush the file system prior to hard rebooting the node
@ -578,9 +576,9 @@ class AgentDeployMixin(HeartbeatMixin):
error = _('The version of the IPA ramdisk used in '
'the deployment do not support the '
'command "sync"')
LOG.warning(_LW(
LOG.warning(
'Failed to flush the file system prior to hard '
'rebooting the node %(node)s. Error: %(error)s'),
'rebooting the node %(node)s. Error: %(error)s',
{'node': node.uuid, 'error': error})
manager_utils.node_power_action(task, states.POWER_OFF)
@ -596,7 +594,7 @@ class AgentDeployMixin(HeartbeatMixin):
log_and_raise_deployment_error(task, msg)
task.process_event('done')
LOG.info(_LI('Deployment to node %s done'), task.node.uuid)
LOG.info('Deployment to node %s done', task.node.uuid)
@METRICS.timer('AgentDeployMixin.prepare_instance_to_boot')
def prepare_instance_to_boot(self, task, root_uuid, efi_sys_uuid):
@ -617,8 +615,8 @@ class AgentDeployMixin(HeartbeatMixin):
try:
task.driver.boot.prepare_instance(task)
except Exception as e:
LOG.error(_LE('Deploy failed for instance %(instance)s. '
'Error: %(error)s'),
LOG.error('Deploy failed for instance %(instance)s. '
'Error: %(error)s',
{'instance': node.instance_uuid, 'error': e})
msg = _('Failed to continue agent deployment.')
log_and_raise_deployment_error(task, msg)
@ -669,5 +667,4 @@ class AgentDeployMixin(HeartbeatMixin):
'error': e})
log_and_raise_deployment_error(task, msg)
LOG.info(_LI('Local boot successfully configured for node %s'),
node.uuid)
LOG.info('Local boot successfully configured for node %s', node.uuid)

View File

@ -33,7 +33,7 @@ from oslo_utils import netutils
import psutil
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LW
from ironic.common.i18n import _
from ironic.conf import CONF
@ -107,8 +107,8 @@ def _stop_console(node_uuid):
"Reason: %(err)s.") % {'node': node_uuid, 'err': exc})
raise exception.ConsoleError(message=msg)
else:
LOG.warning(_LW("Console process for node %s is not running "
"but pid file exists."), node_uuid)
LOG.warning("Console process for node %s is not running "
"but pid file exists.", node_uuid)
finally:
ironic_utils.unlink_without_raise(_get_console_pid_file(node_uuid))
@ -241,8 +241,8 @@ def stop_shellinabox_console(node_uuid):
try:
_stop_console(node_uuid)
except exception.NoConsolePid:
LOG.warning(_LW("No console pid found for node %s while trying to "
"stop shellinabox console."), node_uuid)
LOG.warning("No console pid found for node %s while trying to "
"stop shellinabox console.", node_uuid)
def get_socat_console_url(port):
@ -310,7 +310,7 @@ def start_socat_console(node_uuid, port, console_cmd):
error = _("%(exec_error)s\n"
"Command: %(command)s") % {'exec_error': str(e),
'command': ' '.join(args)}
LOG.exception(_LE('Unable to start socat console'))
LOG.exception('Unable to start socat console')
raise exception.ConsoleSubprocessFailed(error=error)
# NOTE: we need to check if socat fails to start here.
@ -366,5 +366,5 @@ def stop_socat_console(node_uuid):
try:
_stop_console(node_uuid)
except exception.NoConsolePid:
LOG.warning(_LW("No console pid found for node %s while trying to "
"stop socat console."), node_uuid)
LOG.warning("No console pid found for node %s while trying to "
"stop socat console.", node_uuid)

View File

@ -32,7 +32,7 @@ import six
from ironic.common import exception
from ironic.common.glance_service import service_utils
from ironic.common.i18n import _, _LE, _LW
from ironic.common.i18n import _
from ironic.common import image_service
from ironic.common import keystone
from ironic.common import states
@ -72,19 +72,18 @@ def warn_about_unsafe_shred_parameters():
iterations = CONF.deploy.shred_random_overwrite_iterations
overwrite_with_zeros = CONF.deploy.shred_final_overwrite_with_zeros
if iterations == 0 and overwrite_with_zeros is False:
LOG.warning(_LW('With shred_random_overwrite_iterations set to 0 and '
'shred_final_overwrite_with_zeros set to False, disks '
'may NOT be shredded at all, unless they support ATA '
'Secure Erase. This is a possible SECURITY ISSUE!'))
LOG.warning('With shred_random_overwrite_iterations set to 0 and '
'shred_final_overwrite_with_zeros set to False, disks '
'may NOT be shredded at all, unless they support ATA '
'Secure Erase. This is a possible SECURITY ISSUE!')
def warn_about_missing_default_boot_option():
if not CONF.deploy.default_boot_option:
LOG.warning(_LW('The default value of default_boot_option '
'configuration will change eventually from '
'"netboot" to "local". It is recommended to set '
'an explicit value for it during the transition '
'period'))
LOG.warning('The default value of default_boot_option '
'configuration will change eventually from '
'"netboot" to "local". It is recommended to set '
'an explicit value for it during the transition period')
warn_about_unsafe_shred_parameters()
@ -170,16 +169,15 @@ def login_iscsi(portal_address, portal_port, target_iqn):
processutils.ProcessExecutionError) as e:
with excutils.save_and_reraise_exception():
error_occurred = True
LOG.error(_LE("Failed to login to an iSCSI target due to %s"),
e)
LOG.error("Failed to login to an iSCSI target due to %s", e)
finally:
if error_occurred:
try:
logout_iscsi(portal_address, portal_port, target_iqn)
delete_iscsi(portal_address, portal_port, target_iqn)
except processutils.ProcessExecutionError as e:
LOG.warning(_LW("An error occurred when trying to cleanup "
"failed ISCSI session error %s"), e)
LOG.warning("An error occurred when trying to cleanup "
"failed ISCSI session error %s", e)
def check_file_system_for_iscsi_device(portal_address,
@ -445,13 +443,13 @@ def _iscsi_setup_and_handle_errors(address, port, iqn, lun):
yield dev
except processutils.ProcessExecutionError as err:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Deploy to address %s failed."), address)
LOG.error(_LE("Command: %s"), err.cmd)
LOG.error(_LE("StdOut: %r"), err.stdout)
LOG.error(_LE("StdErr: %r"), err.stderr)
LOG.error("Deploy to address %s failed.", address)
LOG.error("Command: %s", err.cmd)
LOG.error("StdOut: %r", err.stdout)
LOG.error("StdErr: %r", err.stderr)
except exception.InstanceDeployFailure as e:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Deploy to address %s failed."), address)
LOG.error("Deploy to address %s failed.", address)
LOG.error(e)
finally:
logout_iscsi(address, port, iqn)
@ -526,8 +524,8 @@ def set_failed_state(task, msg, collect_logs=True):
try:
task.process_event('fail')
except exception.InvalidState:
msg2 = (_LE('Internal error. Node %(node)s in provision state '
'"%(state)s" could not transition to a failed state.')
msg2 = ('Internal error. Node %(node)s in provision state '
'"%(state)s" could not transition to a failed state.'
% {'node': node.uuid, 'state': node.provision_state})
LOG.exception(msg2)
@ -535,10 +533,10 @@ def set_failed_state(task, msg, collect_logs=True):
try:
manager_utils.node_power_action(task, states.POWER_OFF)
except Exception:
msg2 = (_LE('Node %s failed to power off while handling deploy '
'failure. This may be a serious condition. Node '
'should be removed from Ironic or put in maintenance '
'mode until the problem is resolved.') % node.uuid)
msg2 = ('Node %s failed to power off while handling deploy '
'failure. This may be a serious condition. Node '
'should be removed from Ironic or put in maintenance '
'mode until the problem is resolved.' % node.uuid)
LOG.exception(msg2)
# NOTE(deva): node_power_action() erases node.last_error
# so we need to set it here.
@ -709,9 +707,9 @@ def try_set_boot_device(task, device, persistent=True):
with excutils.save_and_reraise_exception() as ctxt:
if get_boot_mode_for_deploy(task.node) == 'uefi':
ctxt.reraise = False
LOG.warning(_LW("ipmitool is unable to set boot device while "
"the node %s is in UEFI boot mode. Please set "
"the boot device manually."), task.node.uuid)
LOG.warning("ipmitool is unable to set boot device while "
"the node %s is in UEFI boot mode. Please set "
"the boot device manually.", task.node.uuid)
def is_secure_boot_requested(node):
@ -1187,11 +1185,11 @@ def build_instance_info_for_deploy(task):
image_service.HttpImageService().validate_href(url, secret)
except exception.ImageRefValidationFailed as e:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Agent deploy supports only HTTP(S) URLs as "
"instance_info['image_source'] or swift "
"temporary URL. Either the specified URL is not "
"a valid HTTP(S) URL or is not reachable "
"for node %(node)s. Error: %(msg)s"),
LOG.error("Agent deploy supports only HTTP(S) URLs as "
"instance_info['image_source'] or swift "
"temporary URL. Either the specified URL is not "
"a valid HTTP(S) URL or is not reachable "
"for node %(node)s. Error: %(msg)s",
{'node': node.uuid, 'msg': e})
node = task.node
instance_info = node.instance_info

View File

@ -30,7 +30,6 @@ import six
from ironic.common import exception
from ironic.common.glance_service import service_utils
from ironic.common.i18n import _LI, _LW
from ironic.common import image_service
from ironic.common import images
from ironic.common import utils
@ -129,9 +128,8 @@ class ImageCache(object):
{'href': href})
return
LOG.info(_LI("Master cache miss for image %(href)s, "
"starting download"),
{'href': href})
LOG.info("Master cache miss for image %(href)s, "
"starting download", {'href': href})
self._download_image(
href, master_path, dest_path, ctx=ctx, force_raw=force_raw)
@ -190,11 +188,10 @@ class ImageCache(object):
return
amount = self._clean_up_ensure_cache_size(survived, amount)
if amount is not None and amount > 0:
LOG.warning(
_LW("Cache clean up was unable to reclaim %(required)d "
"MiB of disk space, still %(left)d MiB required"),
{'required': amount_copy / 1024 / 1024,
'left': amount / 1024 / 1024})
LOG.warning("Cache clean up was unable to reclaim %(required)d "
"MiB of disk space, still %(left)d MiB required",
{'required': amount_copy / 1024 / 1024,
'left': amount / 1024 / 1024})
def _clean_up_too_old(self, listing, amount):
"""Clean up stage 1: drop images that are older than TTL.
@ -218,8 +215,8 @@ class ImageCache(object):
try:
os.unlink(file_name)
except EnvironmentError as exc:
LOG.warning(_LW("Unable to delete file %(name)s from "
"master image cache: %(exc)s"),
LOG.warning("Unable to delete file %(name)s from "
"master image cache: %(exc)s",
{'name': file_name, 'exc': exc})
else:
if amount is not None:
@ -257,8 +254,8 @@ class ImageCache(object):
try:
os.unlink(file_name)
except EnvironmentError as exc:
LOG.warning(_LW("Unable to delete file %(name)s from "
"master image cache: %(exc)s"),
LOG.warning("Unable to delete file %(name)s from "
"master image cache: %(exc)s",
{'name': file_name, 'exc': exc})
else:
total_size -= stat.st_size
@ -266,9 +263,9 @@ class ImageCache(object):
amount -= stat.st_size
if total_size > self._cache_size:
LOG.info(_LI("After cleaning up cache dir %(dir)s "
"cache size %(actual)d is still larger than "
"threshold %(expected)d"),
LOG.info("After cleaning up cache dir %(dir)s "
"cache size %(actual)d is still larger than "
"threshold %(expected)d",
{'dir': self.master_dir, 'actual': total_size,
'expected': self._cache_size})
return max(amount, 0) if amount is not None else 0
@ -392,17 +389,17 @@ def _delete_master_path_if_stale(master_path, href, ctx):
if not img_mtime:
# This means that href is not a glance image and doesn't have an
# updated_at attribute
LOG.warning(_LW("Image service couldn't determine last "
"modification time of %(href)s, considering "
"cached image up to date."), {'href': href})
LOG.warning("Image service couldn't determine last "
"modification time of %(href)s, considering "
"cached image up to date.", {'href': href})
return True
master_mtime = utils.unix_file_modification_datetime(master_path)
if img_mtime <= master_mtime:
return True
# Delete image from cache as it is outdated
LOG.info(_LI('Image %(href)s was last modified at %(remote_time)s. '
'Deleting the cached copy "%(cached_file)s since it was '
'last modified at %(local_time)s and may be outdated.'),
LOG.info('Image %(href)s was last modified at %(remote_time)s. '
'Deleting the cached copy "%(cached_file)s since it was '
'last modified at %(local_time)s and may be outdated.',
{'href': href, 'remote_time': img_mtime,
'local_time': master_mtime, 'cached_file': master_path})

View File

@ -21,7 +21,7 @@ from oslo_log import log as logging
from oslo_utils import importutils
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LI
from ironic.common.i18n import _
from ironic.common import keystone
from ironic.common import states
from ironic.conductor import task_manager
@ -70,9 +70,9 @@ class Inspector(base.InspectInterface):
if CONF.inspector.enabled:
return cls()
else:
LOG.info(_LI("Inspection via ironic-inspector is disabled in "
"configuration for driver %s. To enable, change "
"[inspector] enabled = True."), driver_name)
LOG.info("Inspection via ironic-inspector is disabled in "
"configuration for driver %s. To enable, change "
"[inspector] enabled = True.", driver_name)
def __init__(self):
if not client:
@ -138,8 +138,8 @@ def _start_inspection(node_uuid, context):
try:
_get_client().introspect(node_uuid)
except Exception as exc:
LOG.exception(_LE('Exception during contacting ironic-inspector '
'for inspection of node %(node)s: %(err)s'),
LOG.exception('Exception during contacting ironic-inspector '
'for inspection of node %(node)s: %(err)s',
{'node': node_uuid, 'err': exc})
# NOTE(dtantsur): if acquire fails our last option is to rely on
# timeout
@ -149,7 +149,7 @@ def _start_inspection(node_uuid, context):
task.node.last_error = _('Failed to start inspection: %s') % exc
task.process_event('fail')
else:
LOG.info(_LI('Node %s was sent to inspection to ironic-inspector'),
LOG.info('Node %s was sent to inspection to ironic-inspector',
node_uuid)
@ -169,8 +169,8 @@ def _check_status(task):
except Exception:
# NOTE(dtantsur): get_status should not normally raise
# let's assume it's a transient failure and retry later
LOG.exception(_LE('Unexpected exception while getting '
'inspection status for node %s, will retry later'),
LOG.exception('Unexpected exception while getting '
'inspection status for node %s, will retry later',
node.uuid)
return
@ -185,13 +185,11 @@ def _check_status(task):
node = task.node
if error:
LOG.error(_LE('Inspection failed for node %(uuid)s '
'with error: %(err)s'),
LOG.error('Inspection failed for node %(uuid)s with error: %(err)s',
{'uuid': node.uuid, 'err': error})
node.last_error = (_('ironic-inspector inspection failed: %s')
% error)
task.process_event('fail')
elif finished:
LOG.info(_LI('Inspection finished successfully for node %s'),
node.uuid)
LOG.info('Inspection finished successfully for node %s', node.uuid)
task.process_event('done')

View File

@ -47,7 +47,7 @@ import six
from ironic.common import boot_devices
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LI, _LW
from ironic.common.i18n import _
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
@ -163,11 +163,11 @@ def _check_option_support(options):
subprocess.check_call(cmd, stdout=nullfile,
stderr=nullfile)
except subprocess.CalledProcessError:
LOG.info(_LI("Option %(opt)s is not supported by ipmitool"),
LOG.info("Option %(opt)s is not supported by ipmitool",
{'opt': opt})
_is_option_supported(opt, False)
else:
LOG.info(_LI("Option %(opt)s is supported by ipmitool"),
LOG.info("Option %(opt)s is supported by ipmitool",
{'opt': opt})
_is_option_supported(opt, True)
@ -276,11 +276,11 @@ def _parse_driver_info(node):
force_boot_device = info.get('ipmi_force_boot_device', False)
if not username:
LOG.warning(_LW('ipmi_username is not defined or empty for node %s: '
'NULL user will be utilized.'), node.uuid)
LOG.warning('ipmi_username is not defined or empty for node %s: '
'NULL user will be utilized.', node.uuid)
if not password:
LOG.warning(_LW('ipmi_password is not defined or empty for node %s: '
'NULL password will be utilized.'), node.uuid)
LOG.warning('ipmi_password is not defined or empty for node %s: '
'NULL password will be utilized.', node.uuid)
if protocol_version not in VALID_PROTO_VERSIONS:
valid_versions = ', '.join(VALID_PROTO_VERSIONS)
@ -440,19 +440,17 @@ def _exec_ipmitool(driver_info, command, check_exit_code=None):
if ((time.time() > end_time) or
(num_tries == 0) or
not err_list):
LOG.error(_LE('IPMI Error while attempting "%(cmd)s" '
'for node %(node)s. Error: %(error)s'), {
'node': driver_info['uuid'],
'cmd': e.cmd, 'error': e
})
LOG.error('IPMI Error while attempting "%(cmd)s" '
'for node %(node)s. Error: %(error)s',
{'node': driver_info['uuid'],
'cmd': e.cmd, 'error': e})
else:
ctxt.reraise = False
LOG.warning(_LW('IPMI Error encountered, retrying '
'"%(cmd)s" for node %(node)s. '
'Error: %(error)s'), {
'node': driver_info['uuid'],
'cmd': e.cmd, 'error': e
})
LOG.warning('IPMI Error encountered, retrying '
'"%(cmd)s" for node %(node)s. '
'Error: %(error)s',
{'node': driver_info['uuid'],
'cmd': e.cmd, 'error': e})
finally:
LAST_CMD_TIME[driver_info['address']] = time.time()
@ -515,7 +513,7 @@ def _set_and_wait(power_action, driver_info, timeout=None):
processutils.ProcessExecutionError,
exception.IPMIFailure):
# Log failures but keep trying
LOG.warning(_LW("IPMI power %(state)s failed for node %(node)s."),
LOG.warning("IPMI power %(state)s failed for node %(node)s.",
{'state': cmd_name, 'node': driver_info['uuid']})
finally:
mutable['iter'] += 1
@ -526,8 +524,8 @@ def _set_and_wait(power_action, driver_info, timeout=None):
sleep_time = _sleep_time(mutable['iter'])
if (sleep_time + mutable['total_time']) > retry_timeout:
# Stop if the next loop would exceed maximum retry_timeout
LOG.error(_LE('IPMI power %(state)s timed out after '
'%(tries)s retries on node %(node_id)s.'),
LOG.error('IPMI power %(state)s timed out after '
'%(tries)s retries on node %(node_id)s.',
{'state': cmd_name, 'tries': mutable['iter'],
'node_id': driver_info['uuid']})
mutable['power'] = states.ERROR
@ -597,8 +595,8 @@ def _power_status(driver_info):
out_err = _exec_ipmitool(driver_info, cmd)
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as e:
LOG.warning(_LW("IPMI power status failed for node %(node_id)s with "
"error: %(error)s."),
LOG.warning("IPMI power status failed for node %(node_id)s with "
"error: %(error)s.",
{'node_id': driver_info['uuid'], 'error': e})
raise exception.IPMIFailure(cmd=cmd)
@ -708,8 +706,8 @@ def send_raw(task, raw_bytes):
' %(stderr)s', {'stdout': out, 'stderr': err})
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as e:
LOG.exception(_LE('IPMI "raw bytes" failed for node %(node_id)s '
'with error: %(error)s.'),
LOG.exception('IPMI "raw bytes" failed for node %(node_id)s '
'with error: %(error)s.',
{'node_id': node_uuid, 'error': e})
raise exception.IPMIFailure(cmd=cmd)
@ -739,8 +737,8 @@ def dump_sdr(task, file_path):
' %(stderr)s', {'stdout': out, 'stderr': err})
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as e:
LOG.exception(_LE('IPMI "sdr dump" failed for node %(node_id)s '
'with error: %(error)s.'),
LOG.exception('IPMI "sdr dump" failed for node %(node_id)s '
'with error: %(error)s.',
{'node_id': node_uuid, 'error': e})
raise exception.IPMIFailure(cmd=cmd)
@ -1013,9 +1011,9 @@ class IPMIManagement(base.ManagementInterface):
out, err = _exec_ipmitool(driver_info, cmd)
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as e:
LOG.warning(_LW('IPMI set boot device failed for node %(node)s '
'when executing "ipmitool %(cmd)s". '
'Error: %(error)s'),
LOG.warning('IPMI set boot device failed for node %(node)s '
'when executing "ipmitool %(cmd)s". '
'Error: %(error)s',
{'node': driver_info['uuid'], 'cmd': cmd, 'error': e})
raise exception.IPMIFailure(cmd=cmd)
@ -1057,9 +1055,9 @@ class IPMIManagement(base.ManagementInterface):
out, err = _exec_ipmitool(driver_info, cmd)
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as e:
LOG.warning(_LW('IPMI get boot device failed for node %(node)s '
'when executing "ipmitool %(cmd)s". '
'Error: %(error)s'),
LOG.warning('IPMI get boot device failed for node %(node)s '
'when executing "ipmitool %(cmd)s". '
'Error: %(error)s',
{'node': driver_info['uuid'], 'cmd': cmd, 'error': e})
raise exception.IPMIFailure(cmd=cmd)
@ -1123,7 +1121,7 @@ class IPMIManagement(base.ManagementInterface):
_exec_ipmitool(driver_info, "power diag")
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as err:
LOG.error(_LE('Inject NMI failed for node %(node)s: %(err)s.'),
LOG.error('Inject NMI failed for node %(node)s: %(err)s.',
{'node': task.node.uuid, 'err': err})
raise exception.IPMIFailure(cmd="power diag")
@ -1188,8 +1186,8 @@ class VendorPassthru(base.VendorInterface):
' %(stderr)s', {'stdout': out, 'stderr': err})
except (exception.PasswordFileFailedToCreate,
processutils.ProcessExecutionError) as e:
LOG.exception(_LE('IPMI "bmc reset" failed for node %(node_id)s '
'with error: %(error)s.'),
LOG.exception('IPMI "bmc reset" failed for node %(node_id)s '
'with error: %(error)s.',
{'node_id': node_uuid, 'error': e})
raise exception.IPMIFailure(cmd=cmd)

View File

@ -25,7 +25,7 @@ from six.moves.urllib import parse
from ironic.common import dhcp_factory
from ironic.common import exception
from ironic.common.i18n import _, _LE
from ironic.common.i18n import _
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
@ -250,14 +250,13 @@ def continue_deploy(task, **kwargs):
uuid_dict_returned = deploy_utils.deploy_partition_image(**params)
except exception.IronicException as e:
with excutils.save_and_reraise_exception():
LOG.error(_LE('Deploy of instance %(instance)s on node %(node)s '
'failed: %(error)s'),
{'instance': node.instance_uuid, 'node': node.uuid,
'error': e})
LOG.error('Deploy of instance %(instance)s on node %(node)s '
'failed: %(error)s', {'instance': node.instance_uuid,
'node': node.uuid, 'error': e})
_fail_deploy(task, e, raise_exception=False)
except Exception as e:
LOG.exception(_LE('Deploy of instance %(instance)s on node %(node)s '
'failed with exception'),
LOG.exception('Deploy of instance %(instance)s on node %(node)s '
'failed with exception',
{'instance': node.instance_uuid, 'node': node.uuid})
_fail_deploy(task, e)

View File

@ -26,7 +26,7 @@ from ironic.common import boot_devices
from ironic.common import dhcp_factory
from ironic.common import exception
from ironic.common.glance_service import service_utils
from ironic.common.i18n import _, _LW
from ironic.common.i18n import _
from ironic.common import image_service as service
from ironic.common import images
from ironic.common import pxe_utils
@ -444,8 +444,8 @@ class PXEBoot(base.BootInterface):
try:
images_info = _get_deploy_image_info(node)
except exception.MissingParameterValue as e:
LOG.warning(_LW('Could not get deploy image info '
'to clean up images for node %(node)s: %(err)s'),
LOG.warning('Could not get deploy image info '
'to clean up images for node %(node)s: %(err)s',
{'node': node.uuid, 'err': e})
else:
_clean_up_pxe_env(task, images_info)
@ -485,18 +485,15 @@ class PXEBoot(base.BootInterface):
]
except KeyError:
if not iwdi:
LOG.warning(
_LW("The UUID for the root partition can't be "
"found, unable to switch the pxe config from "
"deployment mode to service (boot) mode for "
"node %(node)s"), {"node": task.node.uuid})
LOG.warning("The UUID for the root partition can't be "
"found, unable to switch the pxe config from "
"deployment mode to service (boot) mode for "
"node %(node)s", {"node": task.node.uuid})
else:
LOG.warning(
_LW("The disk id for the whole disk image can't "
"be found, unable to switch the pxe config "
"from deployment mode to service (boot) mode "
"for node %(node)s"),
{"node": task.node.uuid})
LOG.warning("The disk id for the whole disk image can't "
"be found, unable to switch the pxe config "
"from deployment mode to service (boot) mode "
"for node %(node)s", {"node": task.node.uuid})
else:
_build_service_pxe_config(task, instance_image_info,
root_uuid_or_disk_id)
@ -529,8 +526,8 @@ class PXEBoot(base.BootInterface):
try:
images_info = _get_instance_image_info(node, task.context)
except exception.MissingParameterValue as e:
LOG.warning(_LW('Could not get instance image info '
'to clean up images for node %(node)s: %(err)s'),
LOG.warning('Could not get instance image info '
'to clean up images for node %(node)s: %(err)s',
{'node': node.uuid, 'err': e})
else:
_clean_up_pxe_env(task, images_info)

View File

@ -32,7 +32,7 @@ from oslo_utils import importutils
import six
from ironic.common import exception
from ironic.common.i18n import _, _LW
from ironic.common.i18n import _
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
@ -377,8 +377,8 @@ class SNMPDriverSimple(SNMPDriverBase):
elif state == self.value_power_off:
power_state = states.POWER_OFF
else:
LOG.warning(_LW("SNMP PDU %(addr)s outlet %(outlet)s: "
"unrecognised power state %(state)s."),
LOG.warning("SNMP PDU %(addr)s outlet %(outlet)s: "
"unrecognised power state %(state)s.",
{'addr': self.snmp_info['address'],
'outlet': self.snmp_info['outlet'],
'state': state})
@ -543,8 +543,8 @@ class SNMPDriverEatonPower(SNMPDriverBase):
elif state in (self.status_off, self.status_pending_on):
power_state = states.POWER_OFF
else:
LOG.warning(_LW("Eaton Power SNMP PDU %(addr)s outlet %(outlet)s: "
"unrecognised power state %(state)s."),
LOG.warning("Eaton Power SNMP PDU %(addr)s outlet %(outlet)s: "
"unrecognised power state %(state)s.",
{'addr': self.snmp_info['address'],
'outlet': self.snmp_info['outlet'],
'state': state})

View File

@ -39,7 +39,7 @@ import retrying
from ironic.common import boot_devices
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LW
from ironic.common.i18n import _
from ironic.common import states
from ironic.common import utils
from ironic.conductor import task_manager
@ -343,7 +343,7 @@ def _ssh_execute(ssh_obj, cmd_to_exec):
output_list = processutils.ssh_execute(ssh_obj,
cmd_to_exec)[0].split('\n')
except Exception as e:
LOG.error(_LE("Cannot execute SSH cmd %(cmd)s. Reason: %(err)s."),
LOG.error("Cannot execute SSH cmd %(cmd)s. Reason: %(err)s.",
{'cmd': cmd_to_exec, 'err': e})
raise exception.SSHCommandFailed(cmd=cmd_to_exec)
@ -773,11 +773,10 @@ class SSHManagement(base.ManagementInterface):
_set_boot_device(ssh_obj, driver_info, boot_device_map[device])
except NotImplementedError:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Failed to set boot device for node %(node)s, "
"virt_type %(vtype)s does not support this "
"operation"),
{'node': node.uuid,
'vtype': driver_info['virt_type']})
LOG.error("Failed to set boot device for node %(node)s, "
"virt_type %(vtype)s does not support this "
"operation", {'node': node.uuid,
'vtype': driver_info['virt_type']})
def get_boot_device(self, task):
"""Get the current boot device for the task's node.
@ -809,9 +808,9 @@ class SSHManagement(base.ManagementInterface):
try:
response['boot_device'] = _get_boot_device(ssh_obj, driver_info)
except NotImplementedError:
LOG.warning(_LW("Failed to get boot device for node %(node)s, "
"virt_type %(vtype)s does not support this "
"operation"),
LOG.warning("Failed to get boot device for node %(node)s, "
"virt_type %(vtype)s does not support this "
"operation",
{'node': node.uuid, 'vtype': driver_info['virt_type']})
return response

View File

@ -22,7 +22,7 @@ from oslo_utils import timeutils
import six
from ironic.common import exception
from ironic.common.i18n import _, _LE, _LW
from ironic.common.i18n import _
from ironic.common import swift
from ironic.conductor import utils
from ironic.drivers import base
@ -152,8 +152,8 @@ def get_node_capability(node, capability):
if parts[0].strip() == capability:
return parts[1].strip()
else:
LOG.warning(_LW("Ignoring malformed capability '%s'. "
"Format should be 'key:val'."), node_capability)
LOG.warning("Ignoring malformed capability '%s'. "
"Format should be 'key:val'.", node_capability)
def add_node_capability(task, capability, value):
@ -332,30 +332,29 @@ def collect_ramdisk_logs(node):
try:
result = client.collect_system_logs(node)
except exception.IronicException as e:
LOG.error(_LE('Failed to invoke collect_system_logs agent command '
'for node %(node)s. Error: %(error)s'),
LOG.error('Failed to invoke collect_system_logs agent command '
'for node %(node)s. Error: %(error)s',
{'node': node.uuid, 'error': e})
return
error = result.get('faultstring')
if error is not None:
LOG.error(_LE('Failed to collect logs from the node %(node)s '
'deployment. Error: %(error)s'),
LOG.error('Failed to collect logs from the node %(node)s '
'deployment. Error: %(error)s',
{'node': node.uuid, 'error': error})
return
try:
store_ramdisk_logs(node, result['command_result']['system_logs'])
except exception.SwiftOperationError as e:
LOG.error(_LE('Failed to store the logs from the node %(node)s '
'deployment in Swift. Error: %(error)s'),
LOG.error('Failed to store the logs from the node %(node)s '
'deployment in Swift. Error: %(error)s',
{'node': node.uuid, 'error': e})
except EnvironmentError as e:
LOG.exception(_LE('Failed to store the logs from the node %(node)s '
'deployment due a file-system related error. '
'Error: %(error)s'),
{'node': node.uuid, 'error': e})
LOG.exception('Failed to store the logs from the node %(node)s '
'deployment due a file-system related error. '
'Error: %(error)s', {'node': node.uuid, 'error': e})
except Exception as e:
LOG.exception(_LE('Unknown error when storing logs from the node '
'%(node)s deployment. Error: %(error)s'),
LOG.exception('Unknown error when storing logs from the node '
'%(node)s deployment. Error: %(error)s',
{'node': node.uuid, 'error': e})