summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Berry <paul@puppetlabs.com>2010-11-30 11:13:18 -0800
committerPaul Berry <paul@puppetlabs.com>2010-11-30 11:13:18 -0800
commit29a68730e4157a780f568529fbf32c9907f48731 (patch)
tree8246aaab6fe69a571979e5fec5cbf5399d9e8eee
parentcb6e9c990945501962bf9bf864309e8e6f83b827 (diff)
parent8766efea906f57428ff175cae9355d4b03d499d9 (diff)
downloadpuppet-29a68730e4157a780f568529fbf32c9907f48731.tar.gz
puppet-29a68730e4157a780f568529fbf32c9907f48731.tar.xz
puppet-29a68730e4157a780f568529fbf32c9907f48731.zip
Merge branch 'maint/next/remove_indirection_delegation' into next
* maint/next/remove_indirection_delegation: Maint: Make http handler code call the indirector through ".indirection"
-rw-r--r--lib/puppet/network/http/handler.rb6
-rwxr-xr-xspec/unit/network/http/handler_spec.rb36
2 files changed, 22 insertions, 20 deletions
diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/network/http/handler.rb
index 82238aa0a..fbd7d195f 100644
--- a/lib/puppet/network/http/handler.rb
+++ b/lib/puppet/network/http/handler.rb
@@ -103,7 +103,7 @@ module Puppet::Network::HTTP::Handler
# Execute our find.
def do_find(indirection_name, key, params, request, response)
- unless result = model(indirection_name).find(key, params)
+ unless result = model(indirection_name).indirection.find(key, params)
Puppet.info("Could not find #{indirection_name} for '#{key}'")
return do_exception(response, "Could not find #{indirection_name} #{key}", 404)
end
@@ -120,7 +120,7 @@ module Puppet::Network::HTTP::Handler
# Execute our search.
def do_search(indirection_name, key, params, request, response)
model = self.model(indirection_name)
- result = model.search(key, params)
+ result = model.indirection.search(key, params)
if result.nil?
return do_exception(response, "Could not find instances in #{indirection_name} with '#{key}'", 404)
@@ -134,7 +134,7 @@ module Puppet::Network::HTTP::Handler
# Execute our destroy.
def do_destroy(indirection_name, key, params, request, response)
- result = model(indirection_name).destroy(key, params)
+ result = model(indirection_name).indirection.destroy(key, params)
return_yaml_response(response, result)
end
diff --git a/spec/unit/network/http/handler_spec.rb b/spec/unit/network/http/handler_spec.rb
index 16f1b5349..9dddc9962 100755
--- a/spec/unit/network/http/handler_spec.rb
+++ b/spec/unit/network/http/handler_spec.rb
@@ -46,6 +46,8 @@ describe Puppet::Network::HTTP::Handler do
@request.stubs(:[]).returns "foo"
@response = stub('http response')
@model_class = stub('indirected model class')
+ @indirection = stub('indirection')
+ @model_class.stubs(:indirection).returns(@indirection)
@result = stub 'result', :render => "mytext"
@@ -126,7 +128,7 @@ describe Puppet::Network::HTTP::Handler do
describe "when finding a model instance" do
before do
- @model_class.stubs(:find).returns @result
+ @indirection.stubs(:find).returns @result
Puppet::Indirector::Indirection.expects(:instance).with(:my_handler).returns( stub "indirection", :model => @model_class )
@format = stub 'format', :suitable? => true, :mime => "text/format", :name => "format"
@@ -141,14 +143,14 @@ describe Puppet::Network::HTTP::Handler do
end
it "should use the escaped request key" do
- @model_class.expects(:find).with do |key, args|
+ @indirection.expects(:find).with do |key, args|
key == "my_result"
end.returns @result
@handler.do_find("my_handler", "my_result", {}, @request, @response)
end
it "should use a common method for determining the request parameters" do
- @model_class.expects(:find).with do |key, args|
+ @indirection.expects(:find).with do |key, args|
args[:foo] == :baz and args[:bar] == :xyzzy
end.returns @result
@handler.do_find("my_handler", "my_result", {:foo => :baz, :bar => :xyzzy}, @request, @response)
@@ -200,20 +202,20 @@ describe Puppet::Network::HTTP::Handler do
@model_instance.expects(:render).returns "my_rendered_object"
@handler.expects(:set_response).with { |response, body, status| body == "my_rendered_object" }
- @model_class.stubs(:find).returns(@model_instance)
+ @indirection.stubs(:find).returns(@model_instance)
@handler.do_find("my_handler", "my_result", {}, @request, @response)
end
it "should return a 404 when no model instance can be found" do
@model_class.stubs(:name).returns "my name"
@handler.expects(:set_response).with { |response, body, status| status == 404 }
- @model_class.stubs(:find).returns(nil)
+ @indirection.stubs(:find).returns(nil)
@handler.do_find("my_handler", "my_result", {}, @request, @response)
end
it "should write a log message when no model instance can be found" do
@model_class.stubs(:name).returns "my name"
- @model_class.stubs(:find).returns(nil)
+ @indirection.stubs(:find).returns(nil)
Puppet.expects(:info).with("Could not find my_handler for 'my_result'")
@@ -226,7 +228,7 @@ describe Puppet::Network::HTTP::Handler do
@handler.expects(:format_to_use).returns(@oneformat)
@model_instance.expects(:render).with(@oneformat).returns "my_rendered_object"
- @model_class.stubs(:find).returns(@model_instance)
+ @indirection.stubs(:find).returns(@model_instance)
@handler.do_find("my_handler", "my_result", {}, @request, @response)
end
end
@@ -240,7 +242,7 @@ describe Puppet::Network::HTTP::Handler do
@result = [@result1, @result2]
@model_class.stubs(:render_multiple).returns "my rendered instances"
- @model_class.stubs(:search).returns(@result)
+ @indirection.stubs(:search).returns(@result)
@format = stub 'format', :suitable? => true, :mime => "text/format", :name => "format"
Puppet::Network::FormatHandler.stubs(:format).returns @format
@@ -254,14 +256,14 @@ describe Puppet::Network::HTTP::Handler do
end
it "should use a common method for determining the request parameters" do
- @model_class.expects(:search).with do |key, args|
+ @indirection.expects(:search).with do |key, args|
args[:foo] == :baz and args[:bar] == :xyzzy
end.returns @result
@handler.do_search("my_handler", "my_result", {:foo => :baz, :bar => :xyzzy}, @request, @response)
end
it "should use the default status when a model search call succeeds" do
- @model_class.stubs(:search).returns(@result)
+ @indirection.stubs(:search).returns(@result)
@handler.do_search("my_handler", "my_result", {}, @request, @response)
end
@@ -275,7 +277,7 @@ describe Puppet::Network::HTTP::Handler do
it "should return a list of serialized objects when a model search call succeeds" do
@handler.expects(:accept_header).with(@request).returns "one,two"
- @model_class.stubs(:search).returns(@result)
+ @indirection.stubs(:search).returns(@result)
@model_class.expects(:render_multiple).with(@oneformat, @result).returns "my rendered instances"
@@ -285,7 +287,7 @@ describe Puppet::Network::HTTP::Handler do
it "should return [] when searching returns an empty array" do
@handler.expects(:accept_header).with(@request).returns "one,two"
- @model_class.stubs(:search).returns([])
+ @indirection.stubs(:search).returns([])
@model_class.expects(:render_multiple).with(@oneformat, []).returns "[]"
@@ -296,7 +298,7 @@ describe Puppet::Network::HTTP::Handler do
it "should return a 404 when searching returns nil" do
@model_class.stubs(:name).returns "my name"
@handler.expects(:set_response).with { |response, body, status| status == 404 }
- @model_class.stubs(:search).returns(nil)
+ @indirection.stubs(:search).returns(nil)
@handler.do_search("my_handler", "my_result", {}, @request, @response)
end
end
@@ -306,7 +308,7 @@ describe Puppet::Network::HTTP::Handler do
Puppet::Indirector::Indirection.expects(:instance).with(:my_handler).returns( stub "indirection", :model => @model_class )
@result = stub 'result', :render => "the result"
- @model_class.stubs(:destroy).returns @result
+ @indirection.stubs(:destroy).returns @result
end
it "should use the indirection request to find the model" do
@@ -314,14 +316,14 @@ describe Puppet::Network::HTTP::Handler do
end
it "should use the escaped request key to destroy the instance in the model" do
- @model_class.expects(:destroy).with do |key, args|
+ @indirection.expects(:destroy).with do |key, args|
key == "foo bar"
end
@handler.do_destroy("my_handler", "foo bar", {}, @request, @response)
end
it "should use a common method for determining the request parameters" do
- @model_class.expects(:destroy).with do |key, args|
+ @indirection.expects(:destroy).with do |key, args|
args[:foo] == :baz and args[:bar] == :xyzzy
end
@handler.do_destroy("my_handler", "my_result", {:foo => :baz, :bar => :xyzzy}, @request, @response)
@@ -334,7 +336,7 @@ describe Puppet::Network::HTTP::Handler do
it "should return a yaml-encoded result when a model destroy call succeeds" do
@result = stub 'result', :to_yaml => "the result"
- @model_class.expects(:destroy).returns(@result)
+ @indirection.expects(:destroy).returns(@result)
@handler.expects(:set_response).with { |response, body, status| body == "the result" }