diff --git a/drydock_provisioner/drivers/node/maasdriver/actions/node.py b/drydock_provisioner/drivers/node/maasdriver/actions/node.py index 57de8bce..d210c70d 100644 --- a/drydock_provisioner/drivers/node/maasdriver/actions/node.py +++ b/drydock_provisioner/drivers/node/maasdriver/actions/node.py @@ -1180,14 +1180,24 @@ class ApplyNodeNetworking(BaseMaasAction): self.logger.info(msg) self.task.add_status_msg( msg=msg, error=True, ctx=n.name, ctx_type='node') - self.task.failure() + self.task.failure(focus=n.name) + elif machine.status_name == 'Deployed': + msg = ( + "Located node %s in MaaS, status deployed. Skipping " + "and considering success. Destroy node first if redeploy needed." % + (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.name) + else: msg = "Located node %s in MaaS, unknown status %s. Skipping..." % ( n.name, machine.status_name) self.logger.warning(msg) self.task.add_status_msg( msg=msg, error=True, ctx=n.name, ctx_type='node') - self.task.failure() + self.task.failure(focus=n.name) else: msg = "Node %s not found in MaaS" % n.name self.logger.warning(msg) @@ -1270,6 +1280,17 @@ class ApplyNodePlatform(BaseMaasAction): msg=msg, error=True, ctx=n.name, ctx_type='node') continue + if machine.status_name == 'Deployed': + msg = ( + "Located node %s in MaaS, status deployed. Skipping " + "and considering success. Destroy node first if redeploy needed." % + (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.name) + continue + try: # Render the string of all kernel params for the node kp_string = "" @@ -1429,6 +1450,17 @@ class ApplyNodeStorage(BaseMaasAction): self.task.failure(focus=n.get_id()) continue + if machine.status_name == 'Deployed': + msg = ( + "Located node %s in MaaS, status deployed. Skipping " + "and considering success. Destroy node first if redeploy needed." % + (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.name) + continue + try: """ 1. Clear VGs @@ -1746,6 +1778,7 @@ class DeployNode(BaseMaasAction): self.logger.info(msg) self.task.add_status_msg( msg=msg, error=False, ctx=n.name, ctx_type='node') + self.task.success(focus=n.name) continue elif machine.status_name == 'Ready': msg = "Acquiring node %s for deployment" % (n.name)