我正在進行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