summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-11-07 11:22:07 -0800
committerGitHub <noreply@github.com>2018-11-07 11:22:07 -0800
commite776bb0d3eb2839380e1a5cdc522dfe80b5837c0 (patch)
treef09f5b8b0e70a5266de338334ffd0b8fd7fcc282
parent2354497af306fa3473dcab81a90e200ecec122eb (diff)
parented3ab5991d6d76acb814115e0d75e7b31be8257d (diff)
downloadchef-e776bb0d3eb2839380e1a5cdc522dfe80b5837c0.tar.gz
Merge pull request #7866 from chef/provisioning
Remove Chef provisioning lazy loading
-rw-r--r--lib/chef/dsl/chef_provisioning.rb57
-rw-r--r--lib/chef/dsl/resources.rb8
-rw-r--r--spec/integration/client/client_spec.rb20
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