summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-07-11 11:16:31 -0700
committerTim Smith <tsmith@chef.io>2018-07-11 11:16:31 -0700
commit92204511b3cf1aefb7d8c9cb176366d78de4f191 (patch)
tree18d62e22a66f26d2f7bb71b091001a12dbe60eae
parentfeee4070b49e7581529b789be2731d874fd14edc (diff)
downloadchef-better_rehash_error.tar.gz
Provide a better error when knife plugins are missing from the cachebetter_rehash_error
No one outside chef developers knows what the manifest is and we don't actually tell them what command to run. Leave the details out. Just tell them how to fix it. Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/chef/knife/core/hashed_command_loader.rb2
-rw-r--r--spec/unit/knife/core/hashed_command_loader_spec.rb2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/chef/knife/core/hashed_command_loader.rb b/lib/chef/knife/core/hashed_command_loader.rb
index cbe4d558c1..dff4ae50ab 100644
--- a/lib/chef/knife/core/hashed_command_loader.rb
+++ b/lib/chef/knife/core/hashed_command_loader.rb
@@ -60,7 +60,7 @@ class Chef
if errors.empty?
commands
else
- Chef::Log.error "There are files specified in the manifest that are missing. Please rehash to update the subcommands cache. If you see this error after rehashing delete the cache at #{Chef::Knife::SubcommandLoader.plugin_manifest_path}"
+ Chef::Log.error "There are plugin files specified in the knife cache that cannot be found. Please run knife rehash to update the subcommands cache. If you see this error after rehashing delete the cache at #{Chef::Knife::SubcommandLoader.plugin_manifest_path}"
Chef::Log.error "Missing files:\n\t#{errors.values.flatten.join("\n\t")}"
{}
end
diff --git a/spec/unit/knife/core/hashed_command_loader_spec.rb b/spec/unit/knife/core/hashed_command_loader_spec.rb
index 53bd81f4f7..e866f13a9c 100644
--- a/spec/unit/knife/core/hashed_command_loader_spec.rb
+++ b/spec/unit/knife/core/hashed_command_loader_spec.rb
@@ -65,7 +65,7 @@ describe Chef::Knife::SubcommandLoader::HashedCommandLoader do
end
it "lists all commands by category when no argument is given" do
- expect(Chef::Log).to receive(:error).with(/There are files specified in the manifest that are missing/)
+ expect(Chef::Log).to receive(:error).with(/There are plugin files specified in the knife cache that cannot be found/)
expect(Chef::Log).to receive(:error).with("Missing files:\n\t/file/for/plugin/b")
expect(loader.list_commands).to eq({})
end