2017-01-05 15 views
1

私はPOSTリクエストを行うためにuriモジュールを使用しています。要求は201または208のいずれかのステータスを返し、タスクが合格するためには両方のステータスコードを考慮する必要があります。複数のstatus_code値を指定するにはどうしたらよいですか?これをどのように達成できますか?可能なuriモジュールの複数status_code

uri module manualパー
- uri: 
     url: "http://mywebsite.org/api/hooks/release/builtin/" 
     method: POST 
     HEADER_Content-Type: "application/json" 
     body: '{"version": "6.2.10"}' 
     body_format: json 
     status_code: 208 
    register: result 
    failed_when: status_code != 201 or status_code != 208 

答えて

3

status_code要求の成功を意味し、有効な、数値、HTTPステータスコード。 コンマで区切ったステータスコードのリストを指定することもできます。

ので:

- uri: 
    url: "http://mywebsite.org/api/hooks/release/builtin/" 
    method: POST 
    HEADER_Content-Type: "application/json" 
    body: '{"version": "6.2.10"}' 
    body_format: json 
    status_code: 201, 208 
    register: result 
+0

これを実行しようとしましたが、status_codeが定義されていません。 –

+0

その行をすべて削除する必要があります。それで、StackOverflowを尋ねるときに、あなたが得たエラーで検証可能な例を含めるべきです。 – techraf

+0

私はそれが失敗した 'failed_when'だと思うが、ええ、@drishtiahujaは問題をより良く伝える必要がある。 – tedder42

0

not inresult.statusを使用するfailed_when

failed_whenニーズを使用したソリューションは、次のようにこれを正しく評価する:

failed_when: result.status not in [201,208]

質問のコードの問題 最初の問題はstatus_codeがこのように参照できないことです。ただし、resultオブジェクトを使用してstatusを参照することはできます。それではfailed_when statemmentは次のようになります。 failed_when: result.status != 201 or result.status != 208

しかし、これはまだstatus208ある場合201または208があるため返却されたとき、それは201等しいとresult.status != 201失敗条件(およびその逆)しません失敗しました。

+0

"status_codeはuriモジュールの無効な属性です" - どうですか? –

+0

@ ConstantinSuvorovありがとう、私が最小、完全、および検証可能な例を作成した後は、 'uri'モジュールの属性の一部ではなく' task'レベルにステータスコード属性を適用しました。私は私の答えからこの間違った情報を削除しました。 – darkwing

関連する問題