1
我在烹饪书中定义了以下两个资源,它们发出HTTP请求。我基本上需要根据action 1
的结果检查条件执行action 2
。如果来自action 1
的条件不匹配,我需要食谱睡眠一段时间,然后再次尝试action 1
。有条件地执行资源
什么是最好的方法/方法来做到这一点?
webhooks_request "Action 1" do
uri "example.net/data1"
post_data ({ 'value1' => '1', 'value2' => '2'})
expected_response_codes [ 200, 201 ]
action :post
end
我使用以下ruby_block
处理来自action 1
所以我想它应该是可能的,然后基于匹配的条件执行action 2
结果。
ruby_block "Parse Response" do
#Parse the result from action 1
end
webhooks_request "Action 2" do
uri "example.net/data2"
post_data ({ 'value1' => '1', 'value2' => '2'})
expected_response_codes [ 200, 201 ]
action :post
end
非常感谢 - 我要试试这个\ – user1513388 2015-03-09 22:05:12
我想补充,如果你想跳过#2如果第1超时,然后把'not_if {node.runstate ['my_hook'] ['retries'] <0}'(你可能必须把它包装在一个懒惰的块中。 – 2015-03-10 05:27:02
@TejayCardon我可能是错的没有测试过),但是我的最后一行代码块会返回true或false,而且如果ruby_block返回false,那么IIRC(但确实不确定)通知不应该被激怒(我必须测试这个来确认这种行为) – Tensibai 2015-03-10 09:29:18