Class: Fog::Brightbox::Config
- Inherits:
-
Object
- Object
- Fog::Brightbox::Config
- Defined in:
- lib/fog/brightbox/config.rb
Overview
The Config class is designed to encapsulate a group of settings for reuse between Brightbox services. The same config can be used for any service.
The config also holds the latest set of access tokens which when shared means when one service is told a token has expired then another will not retry it.
Instance Method Summary collapse
-
#account ⇒ String
The configured account identifier to scope API requests by.
-
#auth_url ⇒ URI::HTTPS
A URI object for the authentication endpoint.
- #cached_access_token ⇒ Object
- #cached_refresh_token ⇒ Object
-
#change_account(new_account) ⇒ String
This changes the scoped account from the originally configured one to another.
-
#client_id ⇒ String
The configured identifier of the API client or user application.
-
#client_secret ⇒ String
The configured secret to use to identify the client.
-
#compute_url ⇒ URI::HTTPS
(also: #api_url)
A URI object for the main API/compute service endpoint.
-
#config_service? ⇒ true
Can this be used to configure services? Yes, yes it can.
- #connection_options ⇒ Object
- #connection_persistent? ⇒ Boolean
- #credentials ⇒ OAuth2::CredentialSet
- #default_image_id ⇒ Object
-
#expire_tokens! ⇒ Object
Allows classes sharing to mark the tokens as invalid in response to API status codes.
-
#initialize(options = {}) ⇒ Config
constructor
Creates a new set of configuration settings based on the options provided.
- #latest_access_token ⇒ Object
-
#latest_refresh_token ⇒ Object
This is the current, most up to date refresh token.
- #latest_token ⇒ Object
- #managed_tokens? ⇒ Boolean
- #must_authenticate? ⇒ Boolean
-
#password ⇒ String
The configured password to use to identify the user.
- #region ⇒ Object
-
#reset_account ⇒ String
Sets the scoped account back to originally configured one.
- #service_name ⇒ Object
- #service_type ⇒ Object
- #storage_connection_options ⇒ Object
-
#storage_management_url ⇒ URI?
The #storage_management_url is based on the #storage_url and the account details used when autheticating.
- #storage_management_url=(management_url) ⇒ Object
- #storage_temp_key ⇒ Object
- #storage_url ⇒ Object
- #tenant ⇒ Object
- #to_hash ⇒ Object
- #update_tokens(access_token, refresh_token = nil, expires_in = nil) ⇒ Object
- #user_credentials? ⇒ Boolean
-
#username ⇒ String
The configured email or user identified to use when accessing the API.
Constructor Details
#initialize(options = {}) ⇒ Config
Creates a new set of configuration settings based on the options provided.
48 49 50 |
# File 'lib/fog/brightbox/config.rb', line 48 def initialize( = {}) @options = end |
Instance Method Details
#account ⇒ String
Returns The configured account identifier to scope API requests by.
135 136 137 |
# File 'lib/fog/brightbox/config.rb', line 135 def account @current_account ||= @options[:brightbox_account] end |
#auth_url ⇒ URI::HTTPS
Returns A URI object for the authentication endpoint.
79 80 81 |
# File 'lib/fog/brightbox/config.rb', line 79 def auth_url URI.parse(@options.fetch(:brightbox_auth_url, "https://api.gb1.brightbox.com")) end |
#cached_access_token ⇒ Object
162 163 164 |
# File 'lib/fog/brightbox/config.rb', line 162 def cached_access_token @options[:brightbox_access_token] end |
#cached_refresh_token ⇒ Object
170 171 172 |
# File 'lib/fog/brightbox/config.rb', line 170 def cached_refresh_token @options[:brightbox_refresh_token] end |
#change_account(new_account) ⇒ String
This changes the scoped account from the originally configured one to another.
142 143 144 |
# File 'lib/fog/brightbox/config.rb', line 142 def change_account(new_account) @current_account = new_account end |
#client_id ⇒ String
Returns The configured identifier of the API client or user application.
115 116 117 |
# File 'lib/fog/brightbox/config.rb', line 115 def client_id @options[:brightbox_client_id] end |
#client_secret ⇒ String
Returns The configured secret to use to identify the client.
120 121 122 |
# File 'lib/fog/brightbox/config.rb', line 120 def client_secret @options[:brightbox_secret] end |
#compute_url ⇒ URI::HTTPS Also known as: api_url
Returns A URI object for the main API/compute service endpoint.
84 85 86 |
# File 'lib/fog/brightbox/config.rb', line 84 def compute_url URI.parse(@options.fetch(:brightbox_api_url, "https://api.gb1.brightbox.com")) end |
#config_service? ⇒ true
Can this be used to configure services? Yes, yes it can.
70 71 72 |
# File 'lib/fog/brightbox/config.rb', line 70 def config_service? true end |
#connection_options ⇒ Object
153 154 155 156 |
# File 'lib/fog/brightbox/config.rb', line 153 def # These are pretty much passed through to the requests as is. @options.fetch(:connection_options, {}) end |
#connection_persistent? ⇒ Boolean
158 159 160 |
# File 'lib/fog/brightbox/config.rb', line 158 def connection_persistent? @options.fetch(:persistent, false) end |
#credentials ⇒ OAuth2::CredentialSet
53 54 55 56 57 58 59 60 |
# File 'lib/fog/brightbox/config.rb', line 53 def credentials @credentials ||= OAuth2::CredentialSet.new(client_id, client_secret, :username => username, :password => password, :access_token => cached_access_token, :refresh_token => cached_refresh_token ) end |
#default_image_id ⇒ Object
198 199 200 |
# File 'lib/fog/brightbox/config.rb', line 198 def default_image_id @options.fetch(:brightbox_default_image, nil) end |
#expire_tokens! ⇒ Object
Allows classes sharing to mark the tokens as invalid in response to API status codes.
184 185 186 |
# File 'lib/fog/brightbox/config.rb', line 184 def expire_tokens! update_tokens(nil) end |
#latest_access_token ⇒ Object
166 167 168 |
# File 'lib/fog/brightbox/config.rb', line 166 def latest_access_token credentials.access_token end |
#latest_refresh_token ⇒ Object
This is the current, most up to date refresh token.
175 176 177 |
# File 'lib/fog/brightbox/config.rb', line 175 def latest_refresh_token credentials.refresh_token end |
#latest_token ⇒ Object
202 203 204 |
# File 'lib/fog/brightbox/config.rb', line 202 def latest_token @options[:brightbox_access_token] end |
#managed_tokens? ⇒ Boolean
194 195 196 |
# File 'lib/fog/brightbox/config.rb', line 194 def managed_tokens? @options.fetch(:brightbox_token_management, true) end |
#must_authenticate? ⇒ Boolean
179 180 181 |
# File 'lib/fog/brightbox/config.rb', line 179 def must_authenticate? !credentials.access_token? end |
#password ⇒ String
Returns The configured password to use to identify the user.
130 131 132 |
# File 'lib/fog/brightbox/config.rb', line 130 def password @options[:brightbox_password] end |
#region ⇒ Object
214 215 216 |
# File 'lib/fog/brightbox/config.rb', line 214 def region @options[:brightbox_region] end |
#reset_account ⇒ String
Sets the scoped account back to originally configured one.
149 150 151 |
# File 'lib/fog/brightbox/config.rb', line 149 def reset_account @current_account = @options[:brightbox_account] end |
#service_name ⇒ Object
210 211 212 |
# File 'lib/fog/brightbox/config.rb', line 210 def service_name @options[:brightbox_service_name] end |
#service_type ⇒ Object
206 207 208 |
# File 'lib/fog/brightbox/config.rb', line 206 def service_type @options[:brightbox_service_type] || "object-store" end |
#storage_connection_options ⇒ Object
222 223 224 |
# File 'lib/fog/brightbox/config.rb', line 222 def @options[:connection_options] || {} end |
#storage_management_url ⇒ URI?
The #storage_management_url is based on the #storage_url and the account details used when autheticating. This is normally automatically discovered within the servive but can be overridden in the Fog::Brightbox::Config
99 100 101 102 103 104 105 |
# File 'lib/fog/brightbox/config.rb', line 99 def storage_management_url @storage_management_url ||= if @options.key?(:brightbox_storage_management_url) URI.parse(@options[:brightbox_storage_management_url]) else nil end end |
#storage_management_url=(management_url) ⇒ Object
109 110 111 112 |
# File 'lib/fog/brightbox/config.rb', line 109 def storage_management_url=(management_url) raise ArgumentError unless management_url.kind_of?(URI) @storage_management_url = management_url end |
#storage_temp_key ⇒ Object
226 227 228 |
# File 'lib/fog/brightbox/config.rb', line 226 def storage_temp_key @options[:brightbox_temp_url_key] end |
#storage_url ⇒ Object
89 90 91 |
# File 'lib/fog/brightbox/config.rb', line 89 def storage_url URI.parse(@options[:brightbox_storage_url] || "https://orbit.brightbox.com") end |
#tenant ⇒ Object
218 219 220 |
# File 'lib/fog/brightbox/config.rb', line 218 def tenant @options[:brightbox_tenant] end |
#to_hash ⇒ Object
74 75 76 |
# File 'lib/fog/brightbox/config.rb', line 74 def to_hash @options end |
#update_tokens(access_token, refresh_token = nil, expires_in = nil) ⇒ Object
190 191 192 |
# File 'lib/fog/brightbox/config.rb', line 190 def update_tokens(access_token, refresh_token = nil, expires_in = nil) credentials.update_tokens(access_token, refresh_token, expires_in) end |
#user_credentials? ⇒ Boolean
63 64 65 |
# File 'lib/fog/brightbox/config.rb', line 63 def user_credentials? credentials.user_details? end |
#username ⇒ String
Returns The configured email or user identified to use when accessing the API.
125 126 127 |
# File 'lib/fog/brightbox/config.rb', line 125 def username @options[:brightbox_username] end |