From 5b3291d77cdf30f221e681c7ea3072c286acd04e Mon Sep 17 00:00:00 2001 From: Julien 'Lta' BALLET Date: Mon, 15 Oct 2018 21:52:00 +0200 Subject: [PATCH 1/2] storage: add openstack_storage_url option Signed-off-by: Julien 'Lta' BALLET --- lib/fog/openstack/core.rb | 25 ++++++++++++++++--------- lib/fog/openstack/storage.rb | 15 +++++++++++---- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/lib/fog/openstack/core.rb b/lib/fog/openstack/core.rb index 0cb9fd392..b03972a89 100644 --- a/lib/fog/openstack/core.rb +++ b/lib/fog/openstack/core.rb @@ -16,6 +16,7 @@ module Core attr_reader :openstack_project_id attr_reader :openstack_project_domain_id attr_reader :openstack_identity_api_version + attr_reader :openstack_storage_url # fallback def self.not_found_class @@ -212,15 +213,7 @@ def authenticate token = Fog::OpenStack::Auth::Token.build(openstack_options, @connection_options) - @openstack_management_url = if token.catalog && !token.catalog.payload.empty? - token.catalog.get_endpoint_url( - @openstack_service_type, - @openstack_endpoint_type, - @openstack_region - ) - else - @openstack_auth_url - end + @openstack_management_url = management_url(token) @current_user = token.user['name'] @current_user_id = token.user['id'] @@ -246,6 +239,20 @@ def authenticate! @openstack_must_reauthenticate = true authenticate end + + private + + def management_url(token) + if token.catalog && !token.catalog.payload.empty? + token.catalog.get_endpoint_url( + @openstack_service_type, + @openstack_endpoint_type, + @openstack_region + ) + else + @openstack_auth_url + end + end end end end diff --git a/lib/fog/openstack/storage.rb b/lib/fog/openstack/storage.rb index c369f0753..86cec1f16 100644 --- a/lib/fog/openstack/storage.rb +++ b/lib/fog/openstack/storage.rb @@ -1,5 +1,3 @@ - - module Fog module OpenStack class Storage < Fog::Service @@ -13,7 +11,7 @@ class Storage < Fog::Service :openstack_project_name, :openstack_project_id, :openstack_cache_ttl, :openstack_project_domain, :openstack_user_domain, :openstack_domain_name, :openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id, - :openstack_identity_api_version, :openstack_temp_url_key + :openstack_identity_api_version, :openstack_temp_url_key, :openstack_storage_url model_path 'fog/openstack/storage/models' model :directory @@ -55,7 +53,16 @@ def require_mime_types Fog::Logger.warning("'mime-types' missing, please install and try again.") exit(1) end - end + end + + def setup(options) + @openstack_storage_url = options[:openstack_storage_url] + super + end + + def management_url(token) + @openstack_storage_url || super + end end class Mock From 48924b03ec6bbf69643be72a91ce30e38c6291af Mon Sep 17 00:00:00 2001 From: Julien 'Lta' BALLET Date: Tue, 16 Oct 2018 10:38:12 +0200 Subject: [PATCH 2/2] storage.rb Reorder include to allow overriding Core Signed-off-by: Julien 'Lta' BALLET --- lib/fog/openstack/storage.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fog/openstack/storage.rb b/lib/fog/openstack/storage.rb index 86cec1f16..80e95bc8c 100644 --- a/lib/fog/openstack/storage.rb +++ b/lib/fog/openstack/storage.rb @@ -108,8 +108,8 @@ def reset_account_name end class Real - include Utils include Fog::OpenStack::Core + include Utils def self.not_found_class Fog::OpenStack::Storage::NotFound