У меня есть следующие 2 ресурса, определенные в кулинарной книге, которая обрабатывает HTTP-запросы. Мне необходимо выполнить action 2
на основании проверки состояния из результата action 1
. Если условие от 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
Я хотел бы добавить, если вы хотите, чтобы пропустить # 2, если # 1 раза в год, затем поставьте 'not_if {node.runstate ['my_hook'] ['retries'] <0}' (возможно, вам придется обернуть это в блок «ленивый». –
@TejayCardon Возможно, я ошибаюсь (поскольку я 've не проверял его, но моя последняя строка в блоке вернет true или false, а IIRC (но действительно неуверенный), если ruby_block возвращает false, уведомление не должно быть тригером (я должен проверить это, чтобы подтвердить это поведение) – Tensibai