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。