Thanks for the response. I use guards all the time but it will not solve my issue here. The remote_file can change and when it does I need it to be updated. The guard would actually prevent that.
This is also a more generalized question. Say for example I have 30 different recipes that may want to download the same file. I know that as long at the 1st one works then I am good. I want to prevent the next 29 http head requests because in this case they are "expensive" and I know that I do not need to do them in this run anymore.
This could apply to any resource.
On 8/29/15 2:05 PM, Kevin Keane Subscription wrote:
I think you want to use an only_if or not_if guard for this situation. If this really is a remote_file resource (rather than just an example), you may also want to look into the create_if_missing action instead of the create action; I don't know if that solves your specific problem, though.
Kevin Keane
The NetTech
Our values: Privacy, Liberty, Justice
See https://www.4nettech.com/corp/the-nettech-values.html
-----Original message-----
From: Mark Selby " target="_blank">< >
Sent: Saturday 29th August 2015 13:42
To: " target="_blank">
Subject: [chef] Prevent resource from triggering multiple times in a single run
remote_file “/var/tmp/somefile” do source “http://binfiles/somefile” owner “root” group “root” mode “0644” action :create end Lets just suppose that this is a somewhat expensive operation that may need to get called multiple times during a converge depending on what recipes the node is running. I would like to say “do not execute this resource if it has already been triggered during this run” I would also not like to use a marker file if I can avoid it. I know we have delayed execution but that is not what I want. I need this to trigger on the first call and then not again. Can I use the run_status or run_context to accomplish this? Thanks!
Archive powered by MHonArc 2.6.16.