diff options
author | Chris Doherty <cdoherty@chef.io> | 2015-11-04 16:37:41 -0800 |
---|---|---|
committer | Chris Doherty <cdoherty@chef.io> | 2015-11-04 16:37:41 -0800 |
commit | 06debbc5fce55c094c415868e64a7f450790fddc (patch) | |
tree | ec326ecc9fa9d68ce182436f0d62ce407be23ea6 /lib | |
parent | 232f19f8962ebaa7a90d5b42b01f6d33a6fbe605 (diff) | |
download | chef-zero-06debbc5fce55c094c415868e64a7f450790fddc.tar.gz |
Add a dummy GET that returns meaningful values, due to pedant making Solr-related calls.cd/policyfile-support
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef_zero/endpoints/dummy_endpoint.rb | 31 | ||||
-rw-r--r-- | lib/chef_zero/server.rb | 2 |
2 files changed, 33 insertions, 0 deletions
diff --git a/lib/chef_zero/endpoints/dummy_endpoint.rb b/lib/chef_zero/endpoints/dummy_endpoint.rb new file mode 100644 index 0000000..fe16a7e --- /dev/null +++ b/lib/chef_zero/endpoints/dummy_endpoint.rb @@ -0,0 +1,31 @@ + +# pedant makes a couple of Solr-related calls from its search_utils.rb file that we can't work around (e.g. +# with monkeypatching). the necessary Pedant::Config values are set in run_oc_pedant.rb. --cdoherty +module ChefZero + module Endpoints + class DummyEndpoint < RestBase + # called by #direct_solr_query, once each for roles, nodes, and data bag items. each RSpec example makes + # 3 calls, with the expected sequence of return values [0, 1, 0]. + def get(request) + + # this could be made less brittle, but if things change to have more than 3 cycles, we should really + # be notified by a spec failure. + @mock_values ||= ([0, 1, 0] * 3).map { |val| make_response(val) } + + retval = @mock_values.shift + json_response(200, retval) + end + + # called by #force_solr_commit in pedant's , which doesn't check the return value. + def post(request) + # sure thing! + json_response(200, { message: "This dummy POST endpoint didn't do anything." }) + end + + def make_response(value) + { "response" => { "numFound" => value } } + end + end + end +end + diff --git a/lib/chef_zero/server.rb b/lib/chef_zero/server.rb index 5723ae4..d9e3931 100644 --- a/lib/chef_zero/server.rb +++ b/lib/chef_zero/server.rb @@ -47,6 +47,7 @@ require 'chef_zero/endpoints/cookbook_endpoint' require 'chef_zero/endpoints/cookbook_version_endpoint' require 'chef_zero/endpoints/containers_endpoint' require 'chef_zero/endpoints/container_endpoint' +require 'chef_zero/endpoints/dummy_endpoint' require 'chef_zero/endpoints/data_bags_endpoint' require 'chef_zero/endpoints/data_bag_endpoint' require 'chef_zero/endpoints/data_bag_item_endpoint' @@ -528,6 +529,7 @@ module ChefZero end result + [ # Both + [ "/dummy", DummyEndpoint.new(self) ], [ "/organizations/*/clients", ActorsEndpoint.new(self) ], [ "/organizations/*/clients/*", ActorEndpoint.new(self) ], [ "/organizations/*/cookbooks", CookbooksEndpoint.new(self) ], |