summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Keiser <john@johnkeiser.com>2016-09-16 14:27:27 -0700
committerJohn Keiser <john@johnkeiser.com>2016-09-16 14:27:27 -0700
commitb64b8382a07514e3f0a973937720807a66986807 (patch)
tree61d15fb1c87d595f48f7c10d101ec976bc931d62
parent3682641101e07e71684f126841b8c8fbc0220ee8 (diff)
downloadchef-b64b8382a07514e3f0a973937720807a66986807.tar.gz
Make 12.5+ custom resources whyrun safe by default.
(This was always intended to be the case, and it's difficult to do it yourself. We have been teaching people whyrun-safe methods to make resources right alongside Custom Resources, as well.)
-rw-r--r--lib/chef/resource/action_class.rb4
-rw-r--r--spec/integration/recipes/resource_action_spec.rb18
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/chef/resource/action_class.rb b/lib/chef/resource/action_class.rb
index 89b23499d0..98b4d87ef1 100644
--- a/lib/chef/resource/action_class.rb
+++ b/lib/chef/resource/action_class.rb
@@ -28,6 +28,10 @@ class Chef
"#{new_resource || "<no resource>"} action #{action ? action.inspect : "<no action>"}"
end
+ def whyrun_supported?
+ true
+ end
+
#
# If load_current_value! is defined on the resource, use that.
#
diff --git a/spec/integration/recipes/resource_action_spec.rb b/spec/integration/recipes/resource_action_spec.rb
index f4f275e937..60d5831a50 100644
--- a/spec/integration/recipes/resource_action_spec.rb
+++ b/spec/integration/recipes/resource_action_spec.rb
@@ -17,6 +17,22 @@ module ResourceActionSpec
expect(ActionJackson.succeeded).to eq true
end
+ context "when running in whyrun mode" do
+ before do
+ Chef::Config[:why_run] = true
+ end
+
+ it "the default action runs" do
+ converge <<-EOM, __FILE__, __LINE__ + 1
+ #{resource_dsl} "hi" do
+ foo "foo!"
+ end
+ EOM
+ expect(ActionJackson.ran_action).to eq :access_recipe_dsl
+ expect(ActionJackson.succeeded).to eq true
+ end
+ end
+
it "the action can access recipe DSL" do
converge <<-EOM, __FILE__, __LINE__ + 1
#{resource_dsl} "hi" do
@@ -141,7 +157,7 @@ module ResourceActionSpec
action :access_recipe_dsl do
ActionJackson.ran_action = :access_recipe_dsl
- ruby_block "hi there" do
+ whyrun_safe_ruby_block "hi there" do
block do
ActionJackson.succeeded = true
end