def execute_job()

in pygenie/adapter/adapter.py [0:0]


def execute_job(job, **kwargs):
    """
    Take a job and convert it to a JSON payload based on the job's
    configuration object's Genie version value and execute.

    Returns:
        response: HTTP response.
    """

    version = job._conf.get('genie.version')
    adapter = get_adapter_for_version(version)(conf=job._conf)

    if adapter is not None:
        try:
            adapter.submit_job(job, **kwargs)
        except GenieHTTPError as err:
            if err.response.status_code == 409:
                logger.debug("reattaching to job id '%s'", job.get('job_id'))
            else:
                raise
        except NotImplementedError:
            pass

        return RunningJob(job.get('job_id'), adapter=adapter, conf=job._conf)

    raise GenieAdapterError("no adapter for '{}' to version '{}'" \
        .format(job.__class__.__name__, version))