Skip to content

Commit 5b3291d

Browse files
committed
storage: add openstack_storage_url option
Signed-off-by: Julien 'Lta' BALLET <contact@lta.io>
1 parent de574af commit 5b3291d

2 files changed

Lines changed: 27 additions & 13 deletions

File tree

lib/fog/openstack/core.rb

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ module Core
1616
attr_reader :openstack_project_id
1717
attr_reader :openstack_project_domain_id
1818
attr_reader :openstack_identity_api_version
19+
attr_reader :openstack_storage_url
1920

2021
# fallback
2122
def self.not_found_class
@@ -212,15 +213,7 @@ def authenticate
212213

213214
token = Fog::OpenStack::Auth::Token.build(openstack_options, @connection_options)
214215

215-
@openstack_management_url = if token.catalog && !token.catalog.payload.empty?
216-
token.catalog.get_endpoint_url(
217-
@openstack_service_type,
218-
@openstack_endpoint_type,
219-
@openstack_region
220-
)
221-
else
222-
@openstack_auth_url
223-
end
216+
@openstack_management_url = management_url(token)
224217

225218
@current_user = token.user['name']
226219
@current_user_id = token.user['id']
@@ -246,6 +239,20 @@ def authenticate!
246239
@openstack_must_reauthenticate = true
247240
authenticate
248241
end
242+
243+
private
244+
245+
def management_url(token)
246+
if token.catalog && !token.catalog.payload.empty?
247+
token.catalog.get_endpoint_url(
248+
@openstack_service_type,
249+
@openstack_endpoint_type,
250+
@openstack_region
251+
)
252+
else
253+
@openstack_auth_url
254+
end
255+
end
249256
end
250257
end
251258
end

lib/fog/openstack/storage.rb

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
2-
31
module Fog
42
module OpenStack
53
class Storage < Fog::Service
@@ -13,7 +11,7 @@ class Storage < Fog::Service
1311
:openstack_project_name, :openstack_project_id, :openstack_cache_ttl,
1412
:openstack_project_domain, :openstack_user_domain, :openstack_domain_name,
1513
:openstack_project_domain_id, :openstack_user_domain_id, :openstack_domain_id,
16-
:openstack_identity_api_version, :openstack_temp_url_key
14+
:openstack_identity_api_version, :openstack_temp_url_key, :openstack_storage_url
1715

1816
model_path 'fog/openstack/storage/models'
1917
model :directory
@@ -55,7 +53,16 @@ def require_mime_types
5553
Fog::Logger.warning("'mime-types' missing, please install and try again.")
5654
exit(1)
5755
end
58-
end
56+
end
57+
58+
def setup(options)
59+
@openstack_storage_url = options[:openstack_storage_url]
60+
super
61+
end
62+
63+
def management_url(token)
64+
@openstack_storage_url || super
65+
end
5966
end
6067

6168
class Mock

0 commit comments

Comments
 (0)