diff options
author | danielsdeleo <dan@opscode.com> | 2014-01-22 16:05:32 -0800 |
---|---|---|
committer | danielsdeleo <dan@opscode.com> | 2014-01-22 16:05:32 -0800 |
commit | c52960f3cea72c65068ab07cdeea602b4821d322 (patch) | |
tree | 8b4b70235316b321f08b5b925353e900dda3ac8f | |
parent | 25e2afe01d5e9d3e156c90f0a923906582a70f3e (diff) | |
download | chef-c52960f3cea72c65068ab07cdeea602b4821d322.tar.gz |
Update error messaging in Policyfile policy builder
-rw-r--r-- | lib/chef/policy_builder/policyfile.rb | 5 | ||||
-rw-r--r-- | spec/unit/policy_builder/policyfile_spec.rb | 18 |
2 files changed, 18 insertions, 5 deletions
diff --git a/lib/chef/policy_builder/policyfile.rb b/lib/chef/policy_builder/policyfile.rb index 9460302edc..9a544e6dc9 100644 --- a/lib/chef/policy_builder/policyfile.rb +++ b/lib/chef/policy_builder/policyfile.rb @@ -218,6 +218,8 @@ class Chef def policy @policy ||= http_api.get(policyfile_location) + rescue Net::HTTPServerException => e + raise ConfigurationError, "Error loading policyfile from `#{policyfile_location}': #{e.class} - #{e.message}" end def policyfile_location @@ -310,6 +312,9 @@ class Chef @api_service ||= Chef::REST.new(config[:chef_server_url]) end + def config + Chef::Config + end end end diff --git a/spec/unit/policy_builder/policyfile_spec.rb b/spec/unit/policy_builder/policyfile_spec.rb index 7f11cb2e65..b56fea4a48 100644 --- a/spec/unit/policy_builder/policyfile_spec.rb +++ b/spec/unit/policy_builder/policyfile_spec.rb @@ -90,10 +90,16 @@ describe Chef::PolicyBuilder::Policyfile do } end - let(:http_api) { double("Chef::REST") } - let(:err_namespace) { Chef::PolicyBuilder::Policyfile } + it "configures a Chef HTTP API client" do + http = double("Chef::REST") + server_url = "https://api.opscode.com/organizations/example" + Chef::Config[:chef_server_url] = server_url + Chef::REST.should_receive(:new).with(server_url).and_return(http) + expect(policy_builder.http_api).to eq(http) + end + describe "reporting unsupported features" do def initialize_pb @@ -136,6 +142,8 @@ describe Chef::PolicyBuilder::Policyfile do describe "when using compatibility mode" do + let(:http_api) { double("Chef::REST") } + let(:configured_environment) { nil } let(:override_runlist) { nil } @@ -170,12 +178,12 @@ describe Chef::PolicyBuilder::Policyfile do end it "raises an error" do - expect { policy_builder.load_node }.to raise_error(Net::HTTPServerException) + expect { policy_builder.load_node }.to raise_error(err_namespace::ConfigurationError) end it "sends error message to the event system" do - events.should_receive(:node_load_failed).with(node_name, error404, Chef::Config) - expect { policy_builder.load_node }.to raise_error(Net::HTTPServerException) + events.should_receive(:node_load_failed).with(node_name, an_instance_of(err_namespace::ConfigurationError), Chef::Config) + expect { policy_builder.load_node }.to raise_error(err_namespace::ConfigurationError) end end |