Module: CloudFlock::App::Rackspace
- Includes:
- ConsoleGlitter
- Included in:
- Common, FilesMigrate
- Defined in:
- lib/cloudflock/app/common/rackspace.rb
Overview
Public: The Rackspace module provides common methods for CLI interaction pertaining to interaction with the Rackspace API.
Instance Method Summary collapse
-
#define_rackspace_api ⇒ Object
Public: Gather information necessary to manage Rackspace cloud assets via API.
-
#define_rackspace_cloudservers_region(api) ⇒ Object
Public: Wrap define_rackspace_service_region, specifying ‘cloudServersOpenStack’ as the service type.
-
#define_rackspace_files_region(api) ⇒ Object
Public: Wrap define_rackspace_service_region, specifying ‘cloudFiles’ as the service type.
-
#define_rackspace_region ⇒ Object
Public: Determine which Rackspace public endpoint should be used.
-
#define_rackspace_service_region(api, service) ⇒ Object
Public: Have the user select from a list of regions available to their Rackspace account.
Instance Method Details
#define_rackspace_api ⇒ Object
Public: Gather information necessary to manage Rackspace cloud assets via API.
Returns a Hash containing information necessary to establish an API session.
15 16 17 18 19 20 21 22 |
# File 'lib/cloudflock/app/common/rackspace.rb', line 15 def define_rackspace_api { provider: 'rackspace', rackspace_username: UI.prompt('Rackspace Cloud Username'), rackspace_api_key: UI.prompt('Rackspace Cloud API key'), rackspace_region: define_rackspace_region } end |
#define_rackspace_cloudservers_region(api) ⇒ Object
Public: Wrap define_rackspace_service_region, specifying ‘cloudServersOpenStack’ as the service type.
api - Authenticated Fog API instance.
Returns a Hash.
39 40 41 |
# File 'lib/cloudflock/app/common/rackspace.rb', line 39 def define_rackspace_cloudservers_region(api) api.merge(define_rackspace_service_region(api, 'cloudServersOpenStack')) end |
#define_rackspace_files_region(api) ⇒ Object
Public: Wrap define_rackspace_service_region, specifying ‘cloudFiles’ as the service type.
api - Authenticated Fog API instance.
Returns a Hash.
49 50 51 |
# File 'lib/cloudflock/app/common/rackspace.rb', line 49 def define_rackspace_files_region(api) api.merge(define_rackspace_service_region(api, 'cloudFiles')) end |
#define_rackspace_region ⇒ Object
Public: Determine which Rackspace public endpoint should be used.
Returns a String.
27 28 29 30 31 |
# File 'lib/cloudflock/app/common/rackspace.rb', line 27 def define_rackspace_region countries = [/^u[sk]$/i] region = UI.prompt('Account Region (us, uk)', valid_answers: countries) Fog::Rackspace.const_get(region.upcase + '_AUTH_ENDPOINT') end |
#define_rackspace_service_region(api, service) ⇒ Object
Public: Have the user select from a list of regions available to their Rackspace account.
api - Authenticated Fog API instance. service - String describing the service to be used (e.g. ‘cloudFiles’,
'cloudServersOpenStack').
Returns a Hash containing a :rackspace_region => String mapping.
61 62 63 64 65 66 67 68 69 |
# File 'lib/cloudflock/app/common/rackspace.rb', line 61 def define_rackspace_service_region(api, service) identity = Fog::Identity.new(api) regions = identity.service_catalog.display_service_regions(service) regions = regions.split(', ').map { |e| e.gsub(/^:/, '') } region = UI.prompt("Target Region (#{regions.join(', ')})", valid_answers: regions) { rackspace_region: region } end |