我正在进行REST调用,并希望在继续之前检查我的请求是否完成。在响应中,我得到了一个“PENDING”或“IN_PROGRESS”作为request_status。我想等到我完成“完成”或“失败”。为此,我想等,同时得到一个“待定”或“IN_PROGRESS”如何在Ansible的do-until循环中指定多个条件
我试过很多的变化,但无法成功,最后一次尝试是如下:
- 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
且误差!
“的条件检查'{{(response.content | from_json).Requests.request_status}} '= 'PENDING' 和'{{ (response.content | from_json)。请求。 request_status}}'!= 'IN_PROGRESS''失败,错误是:templa te模板错误 字符串:预期标记'语句块结束',得到'AND'。字符串:{!% 如果 '已完成'= 'PENDING' 和 '已完成'= 'IN_PROGRESS' %}真 {%其他%}假{%ENDIF%}”
所以,我的问题是我怎么能在Ansible指定一个do-until循环多个条件
当您使用神社,实际上是执行Python。对于'和'逻辑正确的蟒蛇白话,实际上就是'和',不是'AND',很高兴你明白了,只是你应该知道;) – sircapsalot