2016-04-26 17 views
3

REST呼び出しを行っていて、処理を続行する前に完了要求を確認する必要があります。応答では、私はrequest_statusとして "PENDING"または "IN_PROGRESS"を取得しています。 「完了」または「FAILED」のいずれかが表示されるまで待つ必要があります。この目的のために、私は「保留」または「IN_PROGRESS」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' AND' {{ (response.content | from_json).Requests!。 request_status}}!!= 'IN_PROGRESS' 'は失敗しました。エラーは、templa string:予期したトークン '文ブロックの終わり'、 'AND'があります。文字列:{!! 'COMPLETED' = 'PENDING' AND '完了' の場合=% 'IN_PROGRESS' %}真 {%他%}偽{%endifの%}」

だから、私の質問ですどのように私がdo-までループAnsible内で複数の条件を指定することができます

答えて

3

[OK]を、問題を発見した

変更 "AND" "と" 勤務する

まで:?。。「'{{ (response.content | from_json).Requests.request_status}} ' != '保留中' '{{(response.content | from_json).Requests.request_status}}」!= 'IN_PROGRESS'」あなたは、あなたが実際のpythonを実行している、神社を使用しているとき。 `and`ロジックのための適切なPythonの方言を

+1

、文字通り' and'あり、あなたが知っておくべきであるにもかかわらず、あなたがそれを理解してうれしい。 – sircapsalot

関連する問題