diff options
author | Thom May <thom@chef.io> | 2016-04-04 16:35:28 -0700 |
---|---|---|
committer | Thom May <thom@chef.io> | 2016-04-04 16:42:50 -0700 |
commit | fb7ad1505d0257a10a4dcc984fbb898d02e9754d (patch) | |
tree | 77756de0187b779cbbbf4fad2a84eb5de9a86936 /lib | |
parent | 90cf8d0a1c64bea5c06bf1957c8e84ebdbf66dd2 (diff) | |
download | chef-tm/provider_no_op.tar.gz |
Add a NoOp providertm/provider_no_op
This allows one to have a resource which is really only appropriate for
one platform, but available everywhere. Then you simply allow noop to
provide the resource everywhere besides where it's supposed to be.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/provider/noop.rb | 37 | ||||
-rw-r--r-- | lib/chef/providers.rb | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/lib/chef/provider/noop.rb b/lib/chef/provider/noop.rb new file mode 100644 index 0000000000..207bf7dedb --- /dev/null +++ b/lib/chef/provider/noop.rb @@ -0,0 +1,37 @@ +# +# Author:: Thom May (<thom@chef.io>) +# Copyright:: Copyright (c) 2016 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +class Chef + class Provider + class Noop < Chef::Provider + def load_current_resource; end + + def respond_to_missing?(method_sym, include_private = false) + method_sym.to_s.start_with?("action_") || super + end + + def method_missing(method_sym, *arguments, &block) + if method_sym.to_s =~ /^action_/ + Chef::Log.debug("NoOp-ing for #{method_sym}") + else + super + end + end + end + end +end diff --git a/lib/chef/providers.rb b/lib/chef/providers.rb index 6fd67e0068..80fadfc8c2 100644 --- a/lib/chef/providers.rb +++ b/lib/chef/providers.rb @@ -41,6 +41,7 @@ require "chef/provider/log" require "chef/provider/ohai" require "chef/provider/mdadm" require "chef/provider/mount" +require "chef/provider/noop" require "chef/provider/package" require "chef/provider/powershell_script" require "chef/provider/osx_profile" |