summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Keiser <jkeiser@opscode.com>2014-09-03 14:18:14 -0700
committerJohn Keiser <jkeiser@opscode.com>2014-09-03 14:18:14 -0700
commitfd83ac07713dc7724abcda6fa1f6912c9af5943b (patch)
tree1bf4518103e0349aae18404922869778642a07af
parent5a7b8f7816bb8af52feacdd66c84636ef486fb23 (diff)
downloadchef-zero-fd83ac07713dc7724abcda6fa1f6912c9af5943b.tar.gz
Make v2_to_v1 get() munge the base URI so cookbooks
generate the correct URLs
-rw-r--r--lib/chef_zero/data_store/v1_to_v2_adapter.rb10
-rw-r--r--lib/chef_zero/endpoints/file_store_file_endpoint.rb2
-rw-r--r--lib/chef_zero/rest_request.rb10
3 files changed, 19 insertions, 3 deletions
diff --git a/lib/chef_zero/data_store/v1_to_v2_adapter.rb b/lib/chef_zero/data_store/v1_to_v2_adapter.rb
index 00bf4de..31195f8 100644
--- a/lib/chef_zero/data_store/v1_to_v2_adapter.rb
+++ b/lib/chef_zero/data_store/v1_to_v2_adapter.rb
@@ -38,7 +38,15 @@ module ChefZero
def get(path, request=nil)
raise DataNotFoundError.new(path) if skip_organizations?(path)
fix_exceptions do
- real_store.get(path[2..-1], request)
+ if request
+ old_base_uri = request.base_uri
+ request.base_uri = File.join(request.base_uri, path[0..1])
+ end
+ begin
+ real_store.get(path[2..-1], request)
+ ensure
+ request.base_uri = old_base_uri if request
+ end
end
end
diff --git a/lib/chef_zero/endpoints/file_store_file_endpoint.rb b/lib/chef_zero/endpoints/file_store_file_endpoint.rb
index 4be1eb0..4e20a5d 100644
--- a/lib/chef_zero/endpoints/file_store_file_endpoint.rb
+++ b/lib/chef_zero/endpoints/file_store_file_endpoint.rb
@@ -3,7 +3,7 @@ require 'chef_zero/rest_base'
module ChefZero
module Endpoints
# The minimum amount of S3 necessary to support cookbook upload/download
- # /file_store/FILE
+ # /organizations/NAME/file_store/FILE
class FileStoreFileEndpoint < RestBase
def json_only
false
diff --git a/lib/chef_zero/rest_request.rb b/lib/chef_zero/rest_request.rb
index 3205166..3ae523d 100644
--- a/lib/chef_zero/rest_request.rb
+++ b/lib/chef_zero/rest_request.rb
@@ -8,12 +8,20 @@ module ChefZero
end
attr_reader :env
- attr_reader :rest_base_prefix
+ attr_accessor :rest_base_prefix
def base_uri
@base_uri ||= "#{env['rack.url_scheme']}://#{env['HTTP_HOST']}#{env['SCRIPT_NAME']}"
end
+ def base_uri=(value)
+ @base_uri = value
+ end
+
+ def build_uri(*relative)
+ File.join(@base_uri, *rest_base_prefix, *relative)
+ end
+
def requestor
@env['HTTP_X_OPS_USERID']
end