def main()

in functions/orchestration-helpers/pipeline-executor/main.py [0:0]


def main(request):
    """
    Main function, likely triggered by an HTTP request
    its main responsibility is to trigger a cloud workflows pipeline, parsing start and end
    execution dates, and logging to bigquery control table.

    Args:
        request: The incoming HTTP request object.

    """
    event = request.get_json()
    print("event: " + str(event))
    start_date = event.get('start_date')
    end_date = event.get('end_date')
    workflows_name = event.get('workflows_name')
    validation_date_pattern = event.get('validation_date_pattern')
    same_day_execution = event.get('same_day_execution', 'YESTERDAY')
    workflow_status = event.get('workflow_status')
    workflow_properties = event.get('workflow_properties')
    execution_id = 0
    try:
        if workflow_status == "ENABLED":
            execution_id = call_workflows(workflows_name, start_date, end_date,
                                          validation_date_pattern, workflow_properties,
                                          same_day_execution)
        else:
            print('Workflow Disabled')
        return execution_id
    except Exception as ex:
        exception_message = "Exception : " + repr(ex)
        error_client.report_exception()
        logger.error(exception_message)
        print(RuntimeError(repr(ex)))
        return exception_message, 500