diff options
author | Luke Kanies <luke@madstop.com> | 2009-02-18 17:00:27 -0600 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2009-02-19 17:51:21 -0600 |
commit | bd8d09747fd6c0dce89c17da41eb67ad92823cf7 (patch) | |
tree | 52c125acfcc5501c9282010d6ebcbe9ee8880eab | |
parent | d3bc1e8279b6e1d372ab3624982788cde026461d (diff) | |
download | puppet-bd8d09747fd6c0dce89c17da41eb67ad92823cf7.tar.gz puppet-bd8d09747fd6c0dce89c17da41eb67ad92823cf7.tar.xz puppet-bd8d09747fd6c0dce89c17da41eb67ad92823cf7.zip |
Providing better indirection authorization errors
The errors now include the indirection and key,
or the full URI used.
Signed-off-by: Luke Kanies <luke@madstop.com>
-rw-r--r-- | lib/puppet/indirector/indirection.rb | 2 | ||||
-rw-r--r-- | lib/puppet/indirector/request.rb | 5 | ||||
-rwxr-xr-x | spec/unit/indirector/request.rb | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/puppet/indirector/indirection.rb b/lib/puppet/indirector/indirection.rb index 5d8cfe9b5..7ac214cd0 100644 --- a/lib/puppet/indirector/indirection.rb +++ b/lib/puppet/indirector/indirection.rb @@ -265,7 +265,7 @@ class Puppet::Indirector::Indirection return unless terminus.respond_to?(:authorized?) unless terminus.authorized?(request) - msg = "Not authorized to call %s on %s" % [request.method, request.key] + msg = "Not authorized to call %s on %s" % [request.method, request.to_s] unless request.options.empty? msg += " with %s" % request.options.inspect end diff --git a/lib/puppet/indirector/request.rb b/lib/puppet/indirector/request.rb index 8227db174..c6f268ab2 100644 --- a/lib/puppet/indirector/request.rb +++ b/lib/puppet/indirector/request.rb @@ -78,6 +78,11 @@ class Puppet::Indirector::Request method == :search end + def to_s + return uri if uri + return "/%s/%s" % [indirection_name, key] + end + private # Parse the key as a URI, setting attributes appropriately. diff --git a/spec/unit/indirector/request.rb b/spec/unit/indirector/request.rb index 12e196f77..dc1e4e39d 100755 --- a/spec/unit/indirector/request.rb +++ b/spec/unit/indirector/request.rb @@ -163,4 +163,12 @@ describe Puppet::Indirector::Request do it "should not be considered plural if the method is not 'search'" do Puppet::Indirector::Request.new(:myind, :find, :key).should_not be_plural end + + it "should use its uri, if it has one, as its string representation" do + Puppet::Indirector::Request.new(:myind, :find, "foo://bar/baz").to_s.should == "foo://bar/baz" + end + + it "should use its indirection name and key, if it has no uri, as its string representation" do + Puppet::Indirector::Request.new(:myind, :find, "key") == "/myind/key" + end end |