module Nucleus::Adapters::V1::OpenshiftV2::Regions

Public Instance Methods

region(region_name) click to toggle source

@see Stub#region

# File lib/nucleus/adapters/v1/openshift_v2/regions.rb, line 16
def region(region_name)
  region = convert_region(region_name)
  raise Errors::AdapterResourceNotFoundError,
        "Region '#{region_name}' does not exist at the endpoint" if region.nil?
  region
end
regions() click to toggle source

@see Stub#regions

# File lib/nucleus/adapters/v1/openshift_v2/regions.rb, line 7
def regions
  response = get('/regions').body[:data]
  response.each { |region| to_nucleus_region(region) }
  # filter all non-available regions
  response.delete_if { |region| region[:allow_selection] == false }
  response
end

Private Instance Methods

convert_region(region_name) click to toggle source
# File lib/nucleus/adapters/v1/openshift_v2/regions.rb, line 34
def convert_region(region_name)
  found_region = native_region(region_name)
  found_region = to_nucleus_region(found_region) unless found_region.nil?
  found_region
end
native_region(region_name) click to toggle source
# File lib/nucleus/adapters/v1/openshift_v2/regions.rb, line 40
def native_region(region_name)
  response = get('/regions').body[:data]
  response.delete_if { |region| region[:allow_selection] == false }
  response.find { |region| region[:name].casecmp(region_name) == 0 }
end
retrieve_region(application) click to toggle source

Retrieve a native region for the abstracted ID and assign its name to the application entity

# File lib/nucleus/adapters/v1/openshift_v2/regions.rb, line 26
def retrieve_region(application)
  return unless application.key?(:region)
  found_region = native_region(application[:region])
  raise Errors::SemanticAdapterRequestError,
        "Region '#{application[:region]}' does not exist at the endpoint" if found_region.nil?
  application[:region] = found_region[:name]
end
to_nucleus_region(region) click to toggle source
# File lib/nucleus/adapters/v1/openshift_v2/regions.rb, line 46
def to_nucleus_region(region)
  region[:id] = region.delete(:name)
  # first created zone
  region[:created_at] = region[:zones].min_by { |v| v[:created_at] }
  # last updated zone
  region[:updated_at] = region[:zones].max_by { |v| v[:updated_at] }
  region
end