summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/indirector/indirection.rb2
-rw-r--r--lib/puppet/indirector/request.rb5
-rwxr-xr-xspec/unit/indirector/request.rb8
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