Я пытаюсь создать собственный ресурс, который в свою очередь использовал бы другой мой пользовательский ресурс. Псевдокод будет выглядеть примерно так:
customResource A
property component_id String
action: doSomething do
component_id = 1 if component_id.nil?
node.default[component_details][component_id] = ''
customResource_b "Get me component details" do
comp_id component_id
action :get_component_details
end
Chef::log.info("See the output computed by my customResourceB")
Chef::log.info(node[component_details][component_id])
end
Обратите внимание: 1. Роль customResource_b состоит в том, чтобы сделать вызов PS для веб-службы REST и сохранить результат JSON в узле [component_details ] [component_id] переопределяет его значение. Я создаю этот атрибутный узел на этом ресурсе, так как знаю, что он будет использоваться позже, поэтому я избегаю проблем во время компиляции.
Проблемы, с которыми я сталкиваюсь: 1. При тестировании простого рецепта, который вызывает этот ресурс в chef- клиент, код в ресурсе выполняется до последней строки журнала и после этого выполняется вызов customResource_b. Это то, чего я не ожидаю.
Буду признателен за любой совет. Я также новичок в Chef, поэтому любые улучшения дизайна также приветствуются