Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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