diff options
author | Tim Smith <tsmith84@gmail.com> | 2020-01-23 14:44:14 -0800 |
---|---|---|
committer | Tim Smith <tsmith84@gmail.com> | 2020-01-23 14:44:14 -0800 |
commit | 1e3d8f40df006ad72484da25b6cce4e17db24a70 (patch) | |
tree | dc56e61800e0259d0c3c8fdbc6a1949e3e51873d | |
parent | e22c8a4e6207a188bcdb88182e588a68dc5cbde9 (diff) | |
download | chef-1e3d8f40df006ad72484da25b6cce4e17db24a70.tar.gz |
Provider a better error message in Chef::Cookbook::CookbookVersionLoader
When this shows up in logs it's impossible to figure out what actually
needs to be updated
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | lib/chef/cookbook/cookbook_version_loader.rb | 2 | ||||
-rw-r--r-- | spec/integration/knife/chef_fs_data_store_spec.rb | 10 | ||||
-rw-r--r-- | spec/integration/knife/deps_spec.rb | 22 | ||||
-rw-r--r-- | spec/integration/knife/upload_spec.rb | 54 | ||||
-rw-r--r-- | spec/unit/cookbook/cookbook_version_loader_spec.rb | 6 |
5 files changed, 47 insertions, 47 deletions
diff --git a/lib/chef/cookbook/cookbook_version_loader.rb b/lib/chef/cookbook/cookbook_version_loader.rb index 7e09fae60c..cf7bff1ff8 100644 --- a/lib/chef/cookbook/cookbook_version_loader.rb +++ b/lib/chef/cookbook/cookbook_version_loader.rb @@ -82,7 +82,7 @@ class Chef end def load - Chef::Log.warn "load method is deprecated. Use load! instead" + Chef::Log.warn "Chef::Cookbook::CookbookVersionLoader's load method is deprecated. Please use load! instead." metadata # force lazy evaluation to occur # re-raise any exception that occurred when reading the metadata diff --git a/spec/integration/knife/chef_fs_data_store_spec.rb b/spec/integration/knife/chef_fs_data_store_spec.rb index a2d1a7ecec..acb7f7fbe7 100644 --- a/spec/integration/knife/chef_fs_data_store_spec.rb +++ b/spec/integration/knife/chef_fs_data_store_spec.rb @@ -54,7 +54,7 @@ describe "ChefFSDataStore tests", :workstation do context "GET /TYPE" do it "knife list -z -R returns everything" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("list -z -Rfp /").should_succeed <<~EOM /acls/ /acls/clients/ @@ -119,7 +119,7 @@ describe "ChefFSDataStore tests", :workstation do end it "knife delete -z -r /cookbooks/x works" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(3).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(3).times knife("delete -z -r /cookbooks/x").should_succeed "Deleted /cookbooks/x\n" knife("list -z -Rfp /cookbooks").should_succeed "" end @@ -157,7 +157,7 @@ describe "ChefFSDataStore tests", :workstation do end it "knife show -z /cookbooks/x/metadata.rb works" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("show -z /cookbooks/x/metadata.rb").should_succeed "/cookbooks/x/metadata.rb:\n#{cookbook_x_100_metadata_rb}\n" end @@ -193,7 +193,7 @@ describe "ChefFSDataStore tests", :workstation do end it "knife cookbook upload works" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("cookbook upload -z --cookbook-path #{path_to("cookbooks_to_upload")} x").should_succeed stderr: <<~EOM Uploading x [1.0.0] Uploaded 1 cookbook. @@ -446,7 +446,7 @@ describe "ChefFSDataStore tests", :workstation do context "GET /TYPE" do it "knife list -z -R returns everything" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("list -z -Rfp /").should_succeed <<~EOM /clients/ /clients/x.json diff --git a/spec/integration/knife/deps_spec.rb b/spec/integration/knife/deps_spec.rb index a6946790c7..e2baf8d997 100644 --- a/spec/integration/knife/deps_spec.rb +++ b/spec/integration/knife/deps_spec.rb @@ -41,7 +41,7 @@ describe "knife deps", :workstation do file "cookbooks/soup/recipes/chicken.rb", "" end it "knife deps reports all dependencies" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /roles/starring.json").should_succeed <<~EOM /roles/minor.json /cookbooks/quiche @@ -61,7 +61,7 @@ describe "knife deps", :workstation do file "cookbooks/soup/recipes/chicken.rb", "" end it "knife deps reports all dependencies" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /roles/starring.json").should_succeed <<~EOM /roles/minor.json /cookbooks/quiche @@ -96,7 +96,7 @@ describe "knife deps", :workstation do file "nodes/mort.json", { "run_list" => %w{role[minor] recipe[quiche] recipe[soup::chicken]} } end it "knife deps reports just the node" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /nodes/mort.json").should_succeed <<~EOM /roles/minor.json /cookbooks/quiche @@ -111,7 +111,7 @@ describe "knife deps", :workstation do file "cookbooks/quiche/recipes/default.rb", "" end it "knife deps reports just the cookbook" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("deps /cookbooks/quiche").should_succeed "/cookbooks/quiche\n" end end @@ -123,7 +123,7 @@ depends "kettle"' file "cookbooks/quiche/recipes/default.rb", "" end it "knife deps reports just the cookbook" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /cookbooks/quiche").should_succeed "/cookbooks/kettle\n/cookbooks/quiche\n" end end @@ -153,7 +153,7 @@ depends "kettle"' end it "knife deps reports all dependencies" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /nodes/mort.json").should_succeed <<~EOM /environments/desert.json /roles/minor.json @@ -164,7 +164,7 @@ depends "kettle"' EOM end it "knife deps * reports all dependencies of all things" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /nodes/*").should_succeed <<~EOM /roles/minor.json /nodes/bart.json @@ -176,7 +176,7 @@ depends "kettle"' EOM end it "knife deps a b reports all dependencies of a and b" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps /nodes/bart.json /nodes/mort.json").should_succeed <<~EOM /roles/minor.json /nodes/bart.json @@ -188,7 +188,7 @@ depends "kettle"' EOM end it "knife deps --tree /* shows dependencies in a tree" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).twice + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).twice knife("deps --tree /nodes/*").should_succeed <<~EOM /nodes/bart.json /roles/minor.json @@ -223,13 +223,13 @@ depends "foo"' end it "knife deps prints each once" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(3).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(3).times knife("deps /cookbooks/foo").should_succeed( stdout: "/cookbooks/baz\n/cookbooks/bar\n/cookbooks/foo\n" ) end it "knife deps --tree prints each once" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(3).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(3).times knife("deps --tree /cookbooks/foo").should_succeed( stdout: "/cookbooks/foo\n /cookbooks/bar\n /cookbooks/baz\n /cookbooks/foo\n" ) diff --git a/spec/integration/knife/upload_spec.rb b/spec/integration/knife/upload_spec.rb index 7d1ef68e45..645e7365af 100644 --- a/spec/integration/knife/upload_spec.rb +++ b/spec/integration/knife/upload_spec.rb @@ -197,7 +197,7 @@ describe "knife upload", :workstation do end it "knife upload adds the new files" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /").should_succeed <<~EOM Created /clients/y.json Updated /cookbooks/x @@ -217,7 +217,7 @@ describe "knife upload", :workstation do end it "knife upload --no-diff adds the new files" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload --no-diff /").should_succeed <<~EOM Created /clients/y.json Updated /cookbooks/x @@ -494,7 +494,7 @@ describe "knife upload", :workstation do # technically we shouldn't have deleted missing files. But ... cookbooks # are a special case. it "knife upload of the cookbook itself succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -504,7 +504,7 @@ describe "knife upload", :workstation do end it "knife upload --purge of the cookbook itself succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -520,7 +520,7 @@ describe "knife upload", :workstation do end it "knife upload of the cookbook succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -538,7 +538,7 @@ describe "knife upload", :workstation do end it "knife upload of the cookbook succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -554,7 +554,7 @@ describe "knife upload", :workstation do end it "knife upload --freeze freezes the cookbook" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload --freeze /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -577,11 +577,11 @@ describe "knife upload", :workstation do end it "knife upload fails to upload the frozen cookbook" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /cookbooks/frozencook").should_fail "ERROR: /cookbooks failed to write: Cookbook frozencook is frozen\n" end it "knife upload --force uploads the frozen cookbook" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload --force /cookbooks/frozencook").should_succeed <<~EOM Updated /cookbooks/frozencook EOM @@ -603,7 +603,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks/x uploads the local version" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("diff --name-status /cookbooks").should_succeed <<~EOM M\t/cookbooks/x/metadata.rb D\t/cookbooks/x/onlyin1.0.1.rb @@ -641,7 +641,7 @@ describe "knife upload", :workstation do D\t/cookbooks/x/onlyin1.0.1.rb A\t/cookbooks/x/onlyin1.0.0.rb EOM - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload --purge /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -660,7 +660,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks/x uploads the local version generates metadata.json and uploads it." do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload --purge /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -676,7 +676,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks/x uploads the local version and generates metadata.json before upload and uploads it." do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("diff --name-status /cookbooks").should_succeed <<~EOM M\t/cookbooks/x/metadata.rb D\t/cookbooks/x/onlyin1.0.1.rb @@ -699,7 +699,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks/x uploads the new version" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload --purge /cookbooks/x").should_succeed <<~EOM Updated /cookbooks/x EOM @@ -802,7 +802,7 @@ describe "knife upload", :workstation do file "cookbooks/x/metadata.rb", cb_metadata("x", "1.0.0", "\nchef_version '~> 999.0'") end it "knife upload succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /cookbooks/x").should_succeed <<~EOM Created /cookbooks/x EOM @@ -953,7 +953,7 @@ describe "knife upload", :workstation do end it "knife upload adds the new files" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(3).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(3).times knife("upload /").should_succeed <<~EOM Created /clients/y.json Updated /cookbooks/x-1.0.0 @@ -1160,7 +1160,7 @@ describe "knife upload", :workstation do # technically we shouldn't have deleted missing files. But ... cookbooks # are a special case. it "knife upload of the cookbook itself succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM Updated /cookbooks/x-1.0.0 EOM @@ -1168,7 +1168,7 @@ describe "knife upload", :workstation do end it "knife upload --purge of the cookbook itself succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM Updated /cookbooks/x-1.0.0 EOM @@ -1182,7 +1182,7 @@ describe "knife upload", :workstation do end it "knife upload of the cookbook succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM Updated /cookbooks/x-1.0.0 EOM @@ -1198,7 +1198,7 @@ describe "knife upload", :workstation do end it "knife upload of the cookbook succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM Updated /cookbooks/x-1.0.0 EOM @@ -1220,7 +1220,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks uploads the local version" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("diff --name-status /cookbooks").should_succeed <<~EOM M\t/cookbooks/x-1.0.0/onlyin1.0.0.rb D\t/cookbooks/x-1.0.1 @@ -1239,7 +1239,7 @@ describe "knife upload", :workstation do cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "hi" } end it "knife upload /cookbooks uploads the local version" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload --purge /cookbooks").should_succeed <<~EOM Updated /cookbooks/x-1.0.0 Deleted extra entry /cookbooks/x-0.9.9 (purge is on) @@ -1254,7 +1254,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks/x uploads the local version" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("diff --name-status /cookbooks").should_succeed <<~EOM D\t/cookbooks/x-1.0.1 A\t/cookbooks/x-1.0.0 @@ -1273,7 +1273,7 @@ describe "knife upload", :workstation do end it "knife upload /cookbooks/x uploads the new version" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload --purge /cookbooks").should_succeed <<~EOM Created /cookbooks/x-1.0.0 Deleted extra entry /cookbooks/x-0.9.9 (purge is on) @@ -1348,7 +1348,7 @@ describe "knife upload", :workstation do file "cookbooks/x-1.0.0/metadata.rb", cb_metadata("x", "1.0.0", "\nchef_version '~> 999.0'") end it "knife upload succeeds" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).once + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).once knife("upload /cookbooks/x-1.0.0").should_succeed <<~EOM Created /cookbooks/x-1.0.0 EOM @@ -1412,7 +1412,7 @@ describe "knife upload", :workstation do end it "knife upload / uploads everything" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /").should_succeed <<~EOM Updated /acls/groups/blah.json Created /clients/x.json @@ -1520,7 +1520,7 @@ describe "knife upload", :workstation do end it "knife upload updates everything" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/).at_least(2).times + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./).at_least(2).times knife("upload /").should_succeed <<~EOM Updated /acls/groups/blah.json Updated /clients/x.json diff --git a/spec/unit/cookbook/cookbook_version_loader_spec.rb b/spec/unit/cookbook/cookbook_version_loader_spec.rb index 4095a91c02..02b9726c4c 100644 --- a/spec/unit/cookbook/cookbook_version_loader_spec.rb +++ b/spec/unit/cookbook/cookbook_version_loader_spec.rb @@ -125,7 +125,7 @@ describe Chef::Cookbook::CookbookVersionLoader do end it "gives deprecation warning called with #load and raise error for Cookbook not found" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/) + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./) expect { cookbook_loader.load }.to raise_error(Chef::Exceptions::CookbookNotFoundInRepo) end @@ -150,7 +150,7 @@ describe Chef::Cookbook::CookbookVersionLoader do end it "gives deprecation warning to us load! when called with #load and raises error" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/) + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./) expect { cookbook_loader.load }.to raise_error("THIS METADATA HAS A BUG") end @@ -183,7 +183,7 @@ describe Chef::Cookbook::CookbookVersionLoader do end it "gives deprecation warning to use load! method when called with #load and raises error for invalid metadata" do - expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Use load! instead/) + expect(Chef::Log).to receive(:warn).with(/load method is deprecated. Please use load! instead./) expect { cookbook_loader.load }.to raise_error(Chef::Exceptions::MetadataNotValid, error_message) end |