class Bcome::Driver::Ec2
Constants
- PATH_TO_FOG_CREDENTIALS
Public Class Methods
new(*params)
click to toggle source
Calls superclass method
Bcome::Driver::Base::new
# File lib/objects/driver/ec2.rb, line 9 def initialize(*params) super raise Bcome::Exception::Ec2DriverMissingProvisioningRegion, params.inspect unless provisioning_region raise ::Bcome::Exception::Ec2DriverMissingAuthorizationKeys, PATH_TO_FOG_CREDENTIALS unless File.exist?(PATH_TO_FOG_CREDENTIALS) ENV['FOG_RC'] = PATH_TO_FOG_CREDENTIALS end
Public Instance Methods
credentials_key()
click to toggle source
# File lib/objects/driver/ec2.rb, line 71 def credentials_key @params[:credentials_key] end
fetch_server_list(legacy_ec2_filters)
click to toggle source
# File lib/objects/driver/ec2.rb, line 29 def fetch_server_list(legacy_ec2_filters) # Filters should be defined within a namespace's :network element. Pre 2.0 the expection for AWS was # to define filters at the root level of the namespace. Here we move :filters into :network, yet retain # ec2_filters at the root level for backwards compaibility with pre 2.0 versions. filters = config.key?(:filters) ? config[:filters] : legacy_ec2_filters wrap_indicator type: :basic, title: loader_title, completed_title: loader_completed_title do begin @servers = unfiltered_server_list.all(filters) signal_success rescue Exception => e signal_failure raise e end end @servers end
fog_client()
click to toggle source
# File lib/objects/driver/ec2.rb, line 25 def fog_client @fog_client ||= get_fog_client end
has_network_credentials?()
click to toggle source
# File lib/objects/driver/ec2.rb, line 56 def has_network_credentials? true end
loading()
click to toggle source
# File lib/objects/driver/ec2.rb, line 52 def loading fog_client.servers.all({}) end
network_credentials()
click to toggle source
# File lib/objects/driver/ec2.rb, line 60 def network_credentials { access_key: raw_fog_credentials['aws_access_key_id'], secret_key: raw_fog_credentials['aws_secret_access_key'] } end
pretty_provider_name()
click to toggle source
# File lib/objects/driver/ec2.rb, line 17 def pretty_provider_name 'EC2' end
pretty_resource_location()
click to toggle source
# File lib/objects/driver/ec2.rb, line 21 def pretty_resource_location @node.network_data[:provisioning_region] end
provisioning_region()
click to toggle source
# File lib/objects/driver/ec2.rb, line 75 def provisioning_region @params[:provisioning_region] end
raw_fog_credentials()
click to toggle source
# File lib/objects/driver/ec2.rb, line 67 def raw_fog_credentials @raw_fog_credentials ||= YAML.load_file(PATH_TO_FOG_CREDENTIALS)[credentials_key] end
unfiltered_server_list()
click to toggle source
# File lib/objects/driver/ec2.rb, line 48 def unfiltered_server_list @unfiltered_server_list ||= fog_client.servers.all({}) end
Protected Instance Methods
get_fog_client()
click to toggle source
# File lib/objects/driver/ec2.rb, line 81 def get_fog_client ::Fog.credential = credentials_key client = ::Fog::Compute.new( provider: 'AWS', region: provisioning_region ) client end