summaryrefslogtreecommitdiff
path: root/ironic/conductor
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-07-22 22:34:35 +0000
committerGerrit Code Review <review@openstack.org>2018-07-22 22:34:35 +0000
commitc0169613a4bea8e75fe67d2e38b6ad76efecbd3b (patch)
tree8f05295c47d97abb2768b6a3f20afc2aea073dc8 /ironic/conductor
parent471aafc0475005a2bde038b9024f96bfd64366cc (diff)
parentf838a14bcf7791662743b0529c4a90de67bbdad2 (diff)
downloadironic-c0169613a4bea8e75fe67d2e38b6ad76efecbd3b.tar.gz
Merge "Minor changes for deploy_steps framework"
Diffstat (limited to 'ironic/conductor')
-rw-r--r--ironic/conductor/manager.py19
-rw-r--r--ironic/conductor/utils.py10
2 files changed, 16 insertions, 13 deletions
diff --git a/ironic/conductor/manager.py b/ironic/conductor/manager.py
index f760848e0..965cb9595 100644
--- a/ironic/conductor/manager.py
+++ b/ironic/conductor/manager.py
@@ -89,9 +89,9 @@ SYNC_EXCLUDED_STATES = (states.DEPLOYWAIT, states.CLEANWAIT, states.ENROLL)
# agent_version parameter and need updating.
_SEEN_AGENT_VERSION_DEPRECATIONS = []
-# NOTE(rloo) This list is used to keep track of deprecation warnings that
-# have already been issued for deploy drivers that do not use deploy steps.
-_SEEN_NO_DEPLOY_STEP_DEPRECATIONS = []
+# NOTE(rloo) This is used to keep track of deprecation warnings that have
+# already been issued for deploy drivers that do not use deploy steps.
+_SEEN_NO_DEPLOY_STEP_DEPRECATIONS = set()
class ConductorManager(base_manager.BaseConductorManager):
@@ -1007,6 +1007,13 @@ class ConductorManager(base_manager.BaseConductorManager):
:returns: index of the next step; None if there are none to execute.
"""
+ valid_types = set(['clean', 'deploy'])
+ if step_type not in valid_types:
+ # NOTE(rloo): No need to i18n this, since this would be a
+ # developer error; it isn't user-facing.
+ raise exception.Invalid(
+ 'step_type must be one of %(valid)s, not %(step)s'
+ % {'valid': valid_types, 'step': step_type})
node = task.node
if not getattr(node, '%s_step' % step_type):
# first time through, all steps need to be done. Return the
@@ -3494,12 +3501,12 @@ def _old_rest_of_do_node_deploy(task, conductor_id, no_deploy_steps):
# for supporting drivers with no deploy steps.
if no_deploy_steps:
- global _SEEN_NO_DEPLOY_STEP_DEPRECATIONS
deploy_driver_name = task.driver.deploy.__class__.__name__
if deploy_driver_name not in _SEEN_NO_DEPLOY_STEP_DEPRECATIONS:
LOG.warning('Deploy driver %s does not support deploy steps; this '
- 'will be required after Stein.', deploy_driver_name)
- _SEEN_NO_DEPLOY_STEP_DEPRECATIONS.append(deploy_driver_name)
+ 'will be required starting with the Stein release.',
+ deploy_driver_name)
+ _SEEN_NO_DEPLOY_STEP_DEPRECATIONS.add(deploy_driver_name)
node = task.node
try:
diff --git a/ironic/conductor/utils.py b/ironic/conductor/utils.py
index 7c68ac1fb..780f676cd 100644
--- a/ironic/conductor/utils.py
+++ b/ironic/conductor/utils.py
@@ -466,7 +466,7 @@ def deploying_error_handler(task, logmsg, errmsg, traceback=False,
addl = _('An unhandled exception was encountered while '
'aborting. More information may be found in the log '
'file.')
- cleanup_err = _('%(err)s. %(add)s') % {'err': errmsg, 'add': addl}
+ cleanup_err = '%(err)s. %(add)s' % {'err': errmsg, 'add': addl}
node.refresh()
if node.provision_state in (
@@ -686,9 +686,7 @@ def _get_cleaning_steps(task, enabled=False, sort=True):
clean steps.
:returns: A list of clean step dictionaries
"""
- sort_key = None
- if sort:
- sort_key = _clean_step_key
+ sort_key = _clean_step_key if sort else None
return _get_steps(task, CLEANING_INTERFACE_PRIORITY, 'get_clean_steps',
enabled=enabled, sort_step_key=sort_key)
@@ -706,9 +704,7 @@ def _get_deployment_steps(task, enabled=False, sort=True):
deploy steps.
:returns: A list of deploy step dictionaries
"""
- sort_key = None
- if sort:
- sort_key = _deploy_step_key
+ sort_key = _deploy_step_key if sort else None
return _get_steps(task, DEPLOYING_INTERFACE_PRIORITY, 'get_deploy_steps',
enabled=enabled, sort_step_key=sort_key)