diff --git a/lib/fog/storage/openstack.rb b/lib/fog/storage/openstack.rb index 17735c38f..7ea4563a8 100644 --- a/lib/fog/storage/openstack.rb +++ b/lib/fog/storage/openstack.rb @@ -58,7 +58,15 @@ def self.reset def initialize(options = {}) @openstack_api_key = options[:openstack_api_key] @openstack_username = options[:openstack_username] - @path = '/v1/AUTH_1234' + @openstack_management_url = options[:openstack_management_url] || 'http://example:8774/v2/AUTH_1234' + + @openstack_management_uri = URI.parse(@openstack_management_url) + + @host = @openstack_management_uri.host + @path = @openstack_management_uri.path + @path.sub!(%r{/$}, '') + @port = @openstack_management_uri.port + @scheme = @openstack_management_uri.scheme end def data diff --git a/lib/fog/storage/openstack/requests/public_url.rb b/lib/fog/storage/openstack/requests/public_url.rb index 63a1e3948..aad56f811 100644 --- a/lib/fog/storage/openstack/requests/public_url.rb +++ b/lib/fog/storage/openstack/requests/public_url.rb @@ -21,6 +21,27 @@ def url "#{@scheme}://#{@host}:#{@port}#{@path}" end end + + class Mock + # Get public_url for an object + # + # ==== Parameters + # * container<~String> - Name of container to look in + # * object<~String> - Name of object to look for + # + def public_url(container = nil, object = nil) + return nil if container.nil? + u = "#{url}/#{Fog::OpenStack.escape(container)}" + u << "/#{Fog::OpenStack.escape(object)}" unless object.nil? + u + end + + private + + def url + "#{@scheme}://#{@host}:#{@port}#{@path}" + end + end end end end diff --git a/lib/fog/storage/openstack/requests/put_object.rb b/lib/fog/storage/openstack/requests/put_object.rb index 51615c53f..af80c3c20 100644 --- a/lib/fog/storage/openstack/requests/put_object.rb +++ b/lib/fog/storage/openstack/requests/put_object.rb @@ -36,6 +36,15 @@ def put_object(container, object, data, options = {}, &block) request(params) end end + + class Mock + def put_object(container, object, data, options = {}, &block) + response = Excon::Response.new + response.status = 201 + response.body = "" + response + end + end end end end