Improvements for handling existing nodes

- Additional improvements in how Drydock handles nodes
  that are already known to MAAS.

Change-Id: I893348e0fd8a1907ebe35e33edf64e622dd79feb
This commit is contained in:
Scott Hussey 2018-06-20 16:52:30 -05:00
parent a5cfdd25ca
commit da60e2d127
2 changed files with 6 additions and 5 deletions

View File

@ -923,8 +923,7 @@ class ConfigureHardware(BaseMaasAction):
n, update_name=False)
if machine is not None:
if machine.status_name in [
'New', 'Broken'
] or machine.status_name.startswith('Failed'):
'New', 'Broken', 'Failed commissioning', 'Failed testing']:
self.logger.debug(
"Located node %s in MaaS, starting commissioning" %
(n.name))
@ -964,14 +963,14 @@ class ConfigureHardware(BaseMaasAction):
ctx_type='node')
self.task.success(focus=n.get_id())
self.collect_build_data(machine)
elif machine.status_name == 'Commissioning':
elif machine.status_name in ['Commissioning', 'Testing']:
msg = "Located node %s in MaaS, node already being commissioned. Skipping..." % (
n.name)
self.logger.info(msg)
self.task.add_status_msg(
msg=msg, error=False, ctx=n.name, ctx_type='node')
self.task.success(focus=n.get_id())
elif machine.status_name == 'Ready':
elif machine.status_name in ['Ready', 'Deploying', 'Allocated', 'Deployed']:
msg = "Located node %s in MaaS, node commissioned. Skipping..." % (
n.name)
self.logger.info(msg)

View File

@ -522,6 +522,8 @@ class PrepareNodes(BaseAction):
node_check_task.node_filter_from_failures(), site_design)
# And log the nodes that were found so they can be addressed
known_nodes = self.orchestrator.process_node_filter(
node_check_task.node_filter_from_successes(), site_design)
for n in node_check_task.result.successes:
self.logger.debug(
@ -532,7 +534,6 @@ class PrepareNodes(BaseAction):
error=False,
ctx=n,
ctx_type='node')
self.task.success(focus=n)
self.step_oob_set_netboot(target_nodes)
@ -565,6 +566,7 @@ class PrepareNodes(BaseAction):
target_nodes = self.orchestrator.process_node_filter(
self.task.node_filter_from_successes(), site_design)
target_nodes.extend(known_nodes)
self.step_node_configure_hw(node_driver, target_nodes)
self.task.bubble_results()