airflow.providers.jenkins.operators.jenkins_job_trigger¶
屬性¶
類¶
觸發 Jenkins 作業並監控其執行。 |
函式¶
|
從原始請求建立 Jenkins 請求。 |
模組內容¶
- airflow.providers.jenkins.operators.jenkins_job_trigger.jenkins_request_with_headers(jenkins_server, req)[source]¶
從原始請求建立 Jenkins 請求。
除了正文響應,我們還需要獲取頭部資訊以從中獲取位置。此函式使用來自 python-jenkins 的
jenkins_request,僅修改了返回呼叫。- 引數:
jenkins_server (jenkins.Jenkins) – 要查詢的伺服器
req (requests.Request) – 要執行的請求
- 返回:
包含響應正文(鍵 body)和附帶頭部資訊(headers)的字典
- 返回型別:
JenkinsRequest
- class airflow.providers.jenkins.operators.jenkins_job_trigger.JenkinsJobTriggerOperator(*, jenkins_connection_id, job_name, parameters=None, sleep_time=10, max_try_before_job_appears=10, allowed_jenkins_states=None, **kwargs)[source]¶
基類:
airflow.models.BaseOperator觸發 Jenkins 作業並監控其執行。
此 Operator 依賴於 python-jenkins 庫版本 >= 0.4.15 來與 Jenkins 伺服器通訊。您還需要在連線介面中配置 Jenkins 連線。
- 引數:
jenkins_connection_id (str) – 此作業使用的 Jenkins 連線
job_name (str) – 要觸發的作業名稱
parameters (ParamType) – 在觸發構建時,提供給 Jenkins API 呼叫使用的引數塊。(模板化的)
sleep_time (int) – Operator 在每次請求作業狀態之間休眠的時間 (最小 1,預設 10)
max_try_before_job_appears (int) – 等待作業出現在 Jenkins 伺服器上時的最大請求次數 (預設 10)
allowed_jenkins_states (collections.abc.Iterable[str] | None) – 允許的 Jenkins 結果狀態的可迭代物件,預設是
['SUCCESS']
- template_fields: collections.abc.Sequence[str] = ('parameters',)[source]¶
- template_ext: collections.abc.Sequence[str] = ('.json',)[source]¶
- build_job(jenkins_server, params=None)[source]¶
觸發構建作業。
這返回一個包含兩個鍵
body和headers的字典。headers也包含一個類似字典的物件,可以查詢該物件以獲取佇列中要輪詢的位置。- 引數:
jenkins_server (jenkins.Jenkins) – 應該觸發作業的 Jenkins 伺服器
params (ParamType) – 提供給 Jenkins API 呼叫的引數塊。
- 返回:
包含響應正文(鍵 body)和附帶頭部資訊(headers)的字典
- 返回型別:
JenkinsRequest
- poll_job_in_queue(location, jenkins_server)[source]¶
輪詢 Jenkins 佇列直到作業執行。
當我們透過 API 呼叫觸發作業時,作業首先被放入佇列,沒有分配構建編號。我們必須等到作業退出佇列才能知道其構建編號。
為此,我們將在
build_job呼叫返回的位置後面新增/api/json(或/api/xml),並輪詢此檔案。當響應中出現executable塊時,作業執行將已開始,並且欄位number將包含構建編號。
- property hook: airflow.providers.jenkins.hooks.jenkins.JenkinsHook[source]¶
例項化 Jenkins Hook。