awx/ansible 塔式工作流的自定义作业状态

custom job status for awx/ansible tower workflows

AWX/Ansible Tower 有自己的 REST API 服务。从下面的 url 结构中,我可以获得有关正在进行或已完成的工作流作业的信息:

https://<awx-ip>/api/v2/workflow_jobs/<job-id>/

但是 url 的“状态”字段没有显示我想要的值。如果此作业中 运行 的模板在执行期间没有出错,则该值始终显示“成功”。

所以我需要一种方法来通过此休息 api 服务显示我想要的工作状态。也许下面的字段可以编辑,但我不知道如何:

"job_explanation": ""

我只需要一个字段来提供有关正在进行或已完成的工作的自定义状态。例如“部分”、“失败”、“成功”、“进行中”等

我如何在正在进行的工作期间和完成后编辑或添加字段。有没有办法操纵休息 api 的工作统计数据的字段?

根据 Ansible Tower API 参考指南 Workflow Jobs,作者 检索工作流作业 status: (choice) 可以具有以下值

new: New
pending: Pending
waiting: Waiting
running: Running
successful: Successful
failed: Failed
error: Error
canceled: Canceled

... status about the ongoing or completed job

所以状态应该已经存在了。

For example "partial", "failed", "successful", "ongoing" etc.

看起来您正在寻找的选项已经存在

  • 进行中 -> 运行
  • 部分 -> 取消
  • 失败 -> 失败
  • 成功 -> 成功
curl --silent -u "${ACCOUNT}:${PASSWORD}" https://${TOWER_URL}/api/v2/workflow_jobs/${jobID}/ | jq .

导致输出

...
  "launch_type": "relaunch",
  "status": "running",
  "failed": false,
  "started": "2022-02-04T14:28:04.147633Z",
  "finished": null,
  "canceled_on": null,
  "elapsed": 17.367907,
  "job_args": "",
  "job_cwd": "",
  "job_env": {},
  "job_explanation": "",
...

...
  "launch_type": "relaunch",
  "status": "successful",
  "failed": false,
  "started": "2022-02-04T14:28:04.147633Z",
  "finished": "2022-02-04T14:28:24.156419Z",
  "canceled_on": null,
  "elapsed": 20.009,
  "job_args": "",
  "job_cwd": "",
  "job_env": {},
  "job_explanation": "",
...

Maybe below field can be edited, but i don't know how: "job_explanation": ""

根据List Jobs字段

job_explanation: A status field to indicate the state of the job if it wasn’t able to run and capture stdout (string)

因此它可能不应该被编辑。

How can I edit or add a field during the ongoing job ...

REST API 用于创建、启动、停止作业等,以远程控制 Tower 应用程序。这些值由应用程序设置,没有通过 API.

自行设置的安全选项

... and after it is completed. Is there a way to manipulate the fields on REST API job stats?

可以直接在 PostgreSQL 应用程序数据库后端中更改作业结果。

您也可以更改应用程序 ansible/awx/ and the behavior of awx/api/urls/workflow_job.py