diff --git a/resources/check.rb b/resources/check.rb index 9d68755a..652f226e 100644 --- a/resources/check.rb +++ b/resources/check.rb @@ -23,5 +23,7 @@ def after_created raise Chef::Exceptions::ValidationFailed, "Sensu check #{name}: name cannot contain spaces or special characters" end - raise Chef::Exceptions::ValidationFailed, "Sensu check #{name}: must either define subscribers, or has to be standalone." unless (subscribers || standalone) + if action == :create + raise Chef::Exceptions::ValidationFailed, "Sensu check #{name}: must either define subscribers, or has to be standalone." unless (subscribers || standalone) + end end diff --git a/test/cookbooks/sensu-test/recipes/good_checks.rb b/test/cookbooks/sensu-test/recipes/good_checks.rb index 195f6143..6b94da28 100644 --- a/test/cookbooks/sensu-test/recipes/good_checks.rb +++ b/test/cookbooks/sensu-test/recipes/good_checks.rb @@ -1,4 +1,3 @@ - sensu_check "valid_standalone_check" do interval 20 command 'true' @@ -10,3 +9,7 @@ command 'true' subscribers ['all'] end + +sensu_check "removed_check" do + action :delete +end diff --git a/test/unit/check_spec.rb b/test/unit/check_spec.rb index 239c77e5..59ee990c 100644 --- a/test/unit/check_spec.rb +++ b/test/unit/check_spec.rb @@ -15,6 +15,13 @@ expect(chef_run).to create_sensu_check("valid_pubsub_check").with(:subscribers => ['all']) end + it "deletes removed_check without specifying subscriptions/standalone" do + expect(chef_run).to delete_sensu_check("removed_check").with( + :subscribers => nil, + :standalone => nil + ) + end + end describe 'sensu-test::bad_check_name' do