diff options
author | tyler-ball <tyleraball@gmail.com> | 2016-03-02 10:02:35 -0700 |
---|---|---|
committer | tyler-ball <tyleraball@gmail.com> | 2016-03-04 10:46:13 -0700 |
commit | 554f3e5107b31d3ab4c2cd0ce35bac3bb65db93a (patch) | |
tree | 24818f4d09b4aa85d2992c58f02cb3d4a6ce2134 /lib/chef/knife | |
parent | a19b1d07d1fa416b8591681f1a04ef673aa25882 (diff) | |
download | chef-554f3e5107b31d3ab4c2cd0ce35bac3bb65db93a.tar.gz |
First part of fixing the rehash command, it now always loads gems from disc instead of using the hash file
Diffstat (limited to 'lib/chef/knife')
-rw-r--r-- | lib/chef/knife/core/subcommand_loader.rb | 6 | ||||
-rw-r--r-- | lib/chef/knife/rehash.rb | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/chef/knife/core/subcommand_loader.rb b/lib/chef/knife/core/subcommand_loader.rb index 95ab219c80..dc0b0cc39c 100644 --- a/lib/chef/knife/core/subcommand_loader.rb +++ b/lib/chef/knife/core/subcommand_loader.rb @@ -58,6 +58,12 @@ class Chef end end + # There are certain situations where we want to shortcut the loader selection + # in self.for_config and force using the GemGlobLoader + def self.gem_glob_loader(chef_config_dir) + Knife::SubcommandLoader::GemGlobLoader.new(chef_config_dir) + end + def self.plugin_manifest? plugin_manifest_path && File.exist?(plugin_manifest_path) end diff --git a/lib/chef/knife/rehash.rb b/lib/chef/knife/rehash.rb index 3e7bab7e0f..8ede30643a 100644 --- a/lib/chef/knife/rehash.rb +++ b/lib/chef/knife/rehash.rb @@ -35,7 +35,10 @@ class Chef end def reload_plugins - Chef::Knife::SubcommandLoader::GemGlobLoader.new(@@chef_config_dir).load_commands + # The subcommand_loader for this knife command should _always_ be the GemGlobLoader. The GemGlobLoader loads + # plugins from disc and ensures the hash we write is always correct. By this point it should also already have + # loaded plugins and `load_commands` shouldn't have an effect. + Chef::Knife::subcommand_loader.load_commands end def generate_hash |