def wf_ops(tenant_id='', instance_id=''):
    c = Connector().morph()
    method = request.method
    global ret
    if method == 'GET':
        logger.info("inside getting actions")
        if instance_id == '':
            try:
                service_def_id = request.args.get('service_def')
                if service_def_id is not None:
                    return get_instance_sd(service_def_id)
            except Exception as e:
                logger.debug("no service_def query params passed.[%s]", str(e))
            ret = list_services(None)
            for service in ret:
                service['input'] = json.loads(service['input'])
                status, output = _update_status_and_output(service['id'])
                service['status'] = status
                service['output'] = output
                service['service_id'] = service['service_definition_id']
                del service['service_definition_id']
        else:
            try:
                ret = get_service(None, instance_id)
                ret['input'] = json.loads(ret['input'])
            except Exception as e:
                logger.error("error in getting service for [%s]: [%s]",
                             instance_id, str(e))
                return jsonify({}), 404
            status, output = _update_status_and_output(instance_id)
            ret['status'] = status
            ret['output'] = output
            ret['service_id'] = ret['service_definition_id']
            del ret['service_definition_id']

        logger.debug("returning list of workflows: %s" % (ret))
        return jsonify(ret), 200
    elif method == 'PUT':
        content = request.get_json()
        content['parameters']['tenant_id'] = tenant_id
        rc, ret = c.update_action(id, content)
        if (rc != Apiconstants.HTTP_OK):
            return jsonify(json.loads(ret)), rc

        return jsonify(json.dumps(ret)), 200
    elif method == 'DELETE':
        rc, ret = Apiconstants.HTTP_OK, 'Success'
        try:
            ret_instance = get_service(None, instance_id)
            if ret_instance is None:
                raise ValueError("Instance id is not present")
            else:
                logger.info("deleting instance %s", instance_id)
                delete_service(None, instance_id)
        except Exception as e:
            logger.error("error while deleting instance from db. [%s]", str(e))
            rc, ret = Apiconstants.HTTP_ERR_NOTFOUND, 'Failed'
        return jsonify(ret), rc
Example #2
0
def wf_ops():
    c = Connector().morph()
    method = request.method
    if method == 'GET':
        ret = list_workflows(None)
        return jsonify(response=ret), 200
    elif method == 'PUT':
        content = request.get_json()
        rc, ret = c.update_action(id, content)
        if(rc != Apiconstants.HTTP_OK):
            return jsonify(response=json.loads(ret)), rc

        return jsonify(response=json.dumps(ret)), 200
    elif method == 'DELETE':
        content = request.get_json()
        rc, ret = c.delete_action(id, content)
        if(rc != Apiconstants.HTTP_OK):
            return jsonify(response=json.loads(ret)), rc

        return jsonify(response=json.dumps(ret)), 200