airflow.contrib.operators.jenkins_job_trigger_operator
¶
Module Contents¶
-
airflow.contrib.operators.jenkins_job_trigger_operator.
jenkins_request_with_headers
(jenkins_server, req)[source]¶ -
We need to get the headers in addition to the body answer
-
to get the location from them
-
This function uses jenkins_request method from python-jenkins library
-
with just the return call changed
- Parameters
jenkins_server – The server to query
req – The request to execute
- Returns
Dict containing the response body (key body) and the headers coming along (headers)
-
class
airflow.contrib.operators.jenkins_job_trigger_operator.
JenkinsJobTriggerOperator
(jenkins_connection_id, job_name, parameters='', sleep_time=10, max_try_before_job_appears=10, *args, **kwargs)[source]¶ Bases:
airflow.models.BaseOperator
Trigger a Jenkins Job and monitor it’s execution. This operator depend on python-jenkins library, version >= 0.4.15 to communicate with jenkins server. You’ll also need to configure a Jenkins connection in the connections screen.
- Parameters
jenkins_connection_id (str) – The jenkins connection to use for this job
job_name (str) – The name of the job to trigger
parameters (str) – The parameters block to provide to jenkins. (templated)
sleep_time (int) – How long will the operator sleep between each status request for the job (min 1, default 10)
max_try_before_job_appears (int) – The maximum number of requests to make while waiting for the job to appears on jenkins server (default 10)
-
build_job
(self, jenkins_server)[source]¶ This function makes an API call to Jenkins to trigger a build for ‘job_name’ It returned a dict with 2 keys : body and headers. headers contains also a dict-like object which can be queried to get the location to poll in the queue.
- Parameters
jenkins_server – The jenkins server where the job should be triggered
- Returns
Dict containing the response body (key body) and the headers coming along (headers)
-
poll_job_in_queue
(self, location, jenkins_server)[source]¶ This method poll the jenkins queue until the job is executed. When we trigger a job through an API call, the job is first put in the queue without having a build number assigned. Thus we have to wait the job exit the queue to know its build number. To do so, we have to add /api/json (or /api/xml) to the location returned by the build_job call and poll this file. When a ‘executable’ block appears in the json, it means the job execution started and the field ‘number’ then contains the build number.
- Parameters
location – Location to poll, returned in the header of the build_job call
jenkins_server – The jenkins server to poll
- Returns
The build_number corresponding to the triggered job