diff options
author | Tim Smith <tsmith@chef.io> | 2018-11-07 11:22:07 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-07 11:22:07 -0800 |
commit | e776bb0d3eb2839380e1a5cdc522dfe80b5837c0 (patch) | |
tree | f09f5b8b0e70a5266de338334ffd0b8fd7fcc282 | |
parent | 2354497af306fa3473dcab81a90e200ecec122eb (diff) | |
parent | ed3ab5991d6d76acb814115e0d75e7b31be8257d (diff) | |
download | chef-e776bb0d3eb2839380e1a5cdc522dfe80b5837c0.tar.gz |
Merge pull request #7866 from chef/provisioning
Remove Chef provisioning lazy loading
-rw-r--r-- | lib/chef/dsl/chef_provisioning.rb | 57 | ||||
-rw-r--r-- | lib/chef/dsl/resources.rb | 8 | ||||
-rw-r--r-- | spec/integration/client/client_spec.rb | 20 |
3 files changed, 3 insertions, 82 deletions
diff --git a/lib/chef/dsl/chef_provisioning.rb b/lib/chef/dsl/chef_provisioning.rb deleted file mode 100644 index a91d297d02..0000000000 --- a/lib/chef/dsl/chef_provisioning.rb +++ /dev/null @@ -1,57 +0,0 @@ -# -# Author:: John Keiser (<jkeiser@chef.io>) -# Copyright:: Copyright 2015-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 - module DSL - # Lazy activation for the chef-provisioning gem. Specifically, we set up methods for - # each resource and DSL method in chef-provisioning which, when invoked, will - # require 'chef-provisioning' (which will define the actual method) and then call the - # method chef-provisioning defined. - module ChefProvisioning - %w{ - add_machine_options - current_image_options - current_machine_options - load_balancer - machine_batch - machine_execute - machine_file - machine_image - machine - with_driver - with_image_options - with_machine_options - }.each do |method_name| - eval(<<-EOM, binding, __FILE__, __LINE__ + 1) - def #{method_name}(*args, &block) - Chef::DSL::ChefProvisioning.load_chef_provisioning - self.#{method_name}(*args, &block) - end - EOM - end - - def self.load_chef_provisioning - # Remove all chef-provisioning methods; they will be added back in by chef-provisioning - public_instance_methods(false).each do |method_name| - remove_method(method_name) - end - require "chef/provisioning" - end - end - end -end diff --git a/lib/chef/dsl/resources.rb b/lib/chef/dsl/resources.rb index 638e626ae2..9010edc5f7 100644 --- a/lib/chef/dsl/resources.rb +++ b/lib/chef/dsl/resources.rb @@ -1,6 +1,6 @@ # # Author:: John Keiser <jkeiser@chef.io> -# Copyright:: Copyright 2015-2017, Chef Software Inc. +# Copyright:: Copyright 2015-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,7 +16,6 @@ # limitations under the License. require "chef/dsl/cheffish" -require "chef/dsl/chef_provisioning" class Chef module DSL @@ -27,10 +26,9 @@ class Chef # # @api private module Resources - # Include the lazy loaders for cheffish and chef-provisioning, so that the - # resource DSL is there but the gems aren't activated yet. + # Include the lazy loader for cheffish, so that the + # resource DSL is there but the gem isn't activated yet. include Chef::DSL::Cheffish - include Chef::DSL::ChefProvisioning def self.add_resource_dsl(dsl_name) module_eval(<<-EOM, __FILE__, __LINE__ + 1) diff --git a/spec/integration/client/client_spec.rb b/spec/integration/client/client_spec.rb index 4408c00b23..7800cf653d 100644 --- a/spec/integration/client/client_spec.rb +++ b/spec/integration/client/client_spec.rb @@ -366,26 +366,6 @@ EOM end end - when_the_repository "has a cookbook that uses chef-provisioning resources" do - before do - file "cookbooks/x/recipes/default.rb", <<-EOM - with_driver 'blah' - EOM - file "config/client.rb", <<-EOM - local_mode true - cookbook_path "#{path_to('cookbooks')}" - EOM - end - - it "the cheffish DSL tries to load but fails (because chef-provisioning is not there)" do - # we'd need to have a custom bundle to fix this that omitted chef-provisioning, but that would dig our crazy even deeper, so lets not - skip "but if chef-provisioning is in our bundle or in our gemset then this test, very annoyingly, always fails" - command = shell_out("#{chef_client} -c \"#{path_to('config/client.rb')}\" -o 'x::default' --no-fork", cwd: chef_dir) - expect(command.exitstatus).to eql(1) - expect(command.stdout).to match(/cannot load such file -- chef\/provisioning/) - end - end - when_the_repository "has a cookbook that generates deprecation warnings" do before do file "cookbooks/x/recipes/default.rb", <<-EOM |