diff --git a/drydock_provisioner/drivers/node/maasdriver/actions/node.py b/drydock_provisioner/drivers/node/maasdriver/actions/node.py index c19f1724..a638d55f 100644 --- a/drydock_provisioner/drivers/node/maasdriver/actions/node.py +++ b/drydock_provisioner/drivers/node/maasdriver/actions/node.py @@ -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) diff --git a/drydock_provisioner/orchestrator/actions/orchestrator.py b/drydock_provisioner/orchestrator/actions/orchestrator.py index 4e1a772b..3dddf2a9 100644 --- a/drydock_provisioner/orchestrator/actions/orchestrator.py +++ b/drydock_provisioner/orchestrator/actions/orchestrator.py @@ -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()