)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
self.logger.info(
- "workflow_status is :{} and workflow_msg is :{}".format(
+ "workflow_status is: {} and workflow_msg is: {}".format(
workflow_status, workflow_msg
)
)
)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
self.logger.info(
- "workflow_status is :{} and workflow_msg is :{}".format(
+ "workflow_status is: {} and workflow_msg is: {}".format(
workflow_status, workflow_msg
)
)
)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
self.logger.info(
- "workflow_status is :{} and workflow_msg is :{}".format(
+ "workflow_status is: {} and workflow_msg is: {}".format(
workflow_status, workflow_msg
)
)
self.db.set_one("clusters", {"_id": db_cluster["_id"]}, db_cluster)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
self.logger.info(
- "workflow_status is :{} and workflow_msg is :{}".format(
+ "workflow_status is: {} and workflow_msg is: {}".format(
workflow_status, workflow_msg
)
)
)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
self.logger.info(
- "workflow_status is :{} and workflow_msg is :{}".format(
+ "workflow_status is: {} and workflow_msg is: {}".format(
workflow_status, workflow_msg
)
)
)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
self.logger.info(
- "workflow_status is :{} and workflow_msg is :{}".format(
+ "workflow_status is: {} and workflow_msg is: {}".format(
workflow_status, workflow_msg
)
)
f"clean_status is :{clean_status} and clean_msg is :{clean_msg}"
)
return
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status, workflow_msg = await self.odu.check_workflow_status(
workflow_name
)
workflow_res, workflow_name = await self.odu.launch_workflow(
"create_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"delete_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"create_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"delete_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"create_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"delete_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"create_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
workflow_res, workflow_name = await self.odu.launch_workflow(
"delete_profile", op_id, op_params, content
)
- self.logger.info("workflow_name is :{}".format(workflow_name))
+ self.logger.info("workflow_name is: {}".format(workflow_name))
workflow_status = await self.check_workflow_and_update_db(
op_id, workflow_name, content
if not workflow_name:
return False, "Workflow was not launched"
try:
- return await self.readiness_loop(
+ # First check if the workflow ends successfully
+ completed, message = await self.readiness_loop(
item="workflow",
name=workflow_name,
namespace="osm-workflows",
deleted=False,
timeout=300,
)
+ if completed:
+ # Then check if the workflow has a failed task
+ return await self.readiness_loop(
+ item="workflow",
+ name=workflow_name,
+ namespace="osm-workflows",
+ condition={
+ "jsonpath_filter": "status.phase",
+ "value": "Succeeded",
+ },
+ deleted=False,
+ timeout=0,
+ )
+ else:
+ return False, f"Workflow was not completed: {message}"
except Exception as e:
- return False, f"Unexpected exception: {e}"
+ return False, f"Workflow could not be completed. Unexpected exception: {e}"
async def readiness_loop(
counter = 1
retry_time = self._odu_checkloop_retry_time
max_iterations = ceil(timeout / retry_time)
+ if max_iterations < 1:
+ max_iterations = 1
api_group = item_api_map[item]["api_group"]
api_plural = item_api_map[item]["api_plural"]
api_version = item_api_map[item]["api_version"]
)
except Exception as e:
self.logger.error(f"Exception: {e}")
- await asyncio.sleep(retry_time)
+ if counter < max_iterations:
+ await asyncio.sleep(retry_time)
counter += 1
return (
False,