def _update_status_and_output(instance_id=''): c = Connector().morph() global exec_id try: exec_id = get_execid_instance(None, instance_id) except Exception as e: logger.error("error in getting wf ID for [%s]:[%s]", instance_id, str(e)) return '', '' update_hash = {} rc, ret = c.get_execution_stats(exec_id) if rc != Apiconstants.HTTP_OK: logger.error("error in getting the execution stat for %s", instance_id) else: ret_json = json.loads(ret) if 'status' in ret_json: status = status_map[ret_json['status']] update_hash['status'] = status rc, ret = c.get_execution_output(exec_id) if rc != Apiconstants.HTTP_OK: logger.error("error in getting the execution o/p for %s", instance_id) else: output = ret update_hash['output'] = output update_service(None, instance_id, update_hash) update_workflow(None, exec_id, update_hash) return status, output
def get_task_status(tenant_id='', exec_id=''): c = Connector().morph() rc, ret = c.get_execution_stats(exec_id) if (rc != Apiconstants.HTTP_OK): return jsonify(response=json.loads(ret)), rc try: ret_json = json.loads(ret) task_hash = {} task_hash['id'] = ret_json['id'] task_hash['start'] = ret_json['start_timestamp'] if 'end_timestamp' in ret_json: task_hash['end'] = ret_json['end_timestamp'] if 'status' in ret_json: task_hash['status'] = ret_json['status'] published_res = {} if 'result' in ret_json: result = ret_json['result'] for tasks in result['tasks']: published_res.update(tasks['published']) task_hash['published'] = published_res except Exception as ex: logger.error("Received exception in getting task status: {}".format( ex.message)) return jsonify( Apiconstants.TASK_ERR_MSG), Apiconstants.HTTP_ERR_NOTFOUND return jsonify(task_hash), 200
def get_task_output(execId=''): c = Connector().morph() rc, ret = c.get_execution_stats(execId) if (rc != Apiconstants.HTTP_OK): return jsonify(response=json.loads(ret)), rc ret_json = json.loads(ret) task_hash = {} task_hash['id'] = ret_json['id'] task_hash['start'] = ret_json['start_timestamp'] task_hash['end'] = ret_json['end_timestamp'] task_hash['status'] = ret_json['status'] task_hash['message'] = 'Failed' if ret_json['status'] == 'succeeded': task_hash['message'] = ret_json['result']['tagline'] return jsonify(response=task_hash), 200