gpt4 book ai didi

python - 如何在 Ansible 的 do-until 循环中指定多个条件

转载 作者:太空狗 更新时间:2023-10-30 02:28:28 29 4
gpt4 key购买 nike

我正在进行 REST 调用,并希望在继续之前检查我的请求是否已完成。在响应中,我得到了“PENDING”或“IN_PROGRESS”作为 request_status。我想等到我得到“完成”或“失败”。为此,我想等待获得“PENDING”或“IN_PROGRESS”

我尝试了很多变体,但都没有成功,最后的尝试如下:

  - name: Wait for the cluster deployment (this will take a while)
uri:
url: http://localhost:8080/api/v1/clusters/{{ cluster_name }}/requests/1
method: GET
user: admin
password: admin
HEADER_X-Requested-By: Ansible
force_basic_auth: yes
status_code: 200, 201, 202
return_content: yes
register: response
until: "'{{ (response.content | from_json).Requests.request_status }}' != 'PENDING' AND '{{ (response.content | from_json).Requests.request_status }}' != 'IN_PROGRESS'"
retries: 3
delay: 5

错误是:

"The conditional check ''{{ (response.content | from_json).Requests.request_status }}' != 'PENDING' AND '{{ (response.content | from_json).Requests.request_status }}' != 'IN_PROGRESS'' failed. The error was: template error while templating string: expected token 'end of statement block', got 'AND'. String: {% if 'COMPLETED' != 'PENDING' AND 'COMPLETED' != 'IN_PROGRESS' %} True {% else %} False {% endif %}"

所以,我的问题是如何在 Ansible 的 do-until 循环中指定多个条件?

最佳答案

好的,找到问题了。

将“AND”更改为“and”有效。

until: "'{{ (response.content | from_json).Requests.request_status }}' != 'PENDING' and '{{ (response.content | from_json).Requests.request_status }}' != 'IN_PROGRESS'"

关于python - 如何在 Ansible 的 do-until 循环中指定多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874322/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com