Class: CloudProviders::ElasticIp

Inherits:
Ec2Helper show all
Defined in:
lib/cloud_providers/ec2/helpers/elastic_ip.rb

Instance Attribute Summary

Attributes inherited from CloudProvider

#init_opts, #name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Ec2Helper

#as, #ec2, #elb, #pool, property, #rds

Methods inherited from CloudProvider

#after_initialized, #bootstrap_nodes!, #default_keypair_path, default_keypair_path, #method_missing, #run

Constructor Details

#initialize(raw_response = {}) ⇒ ElasticIp

Returns a new instance of ElasticIp.



7
8
9
10
11
# File 'lib/cloud_providers/ec2/helpers/elastic_ip.rb', line 7

def initialize(raw_response={})
  @raw_response = raw_response
  self.instance_id = raw_response["instanceId"]
  self.public_ip = raw_response["publicIp"]
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class CloudProviders::CloudProvider

Class Method Details

.elastic_ips(ec2_instance) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/cloud_providers/ec2/helpers/elastic_ip.rb', line 21

def self.elastic_ips(ec2_instance)
  begin
    @elastic_ips ||= ec2_instance.ec2.describe_addresses.addressesSet.item.map do |i|
      new(i)
    end
  rescue Exception => e
    []
  end
end

.reset!Object



31
32
33
# File 'lib/cloud_providers/ec2/helpers/elastic_ip.rb', line 31

def self.reset!
  @elastic_ips = @unused_elastic_ips = nil
end

.unused_elastic_ips(ec2_instance) ⇒ Object



17
18
19
# File 'lib/cloud_providers/ec2/helpers/elastic_ip.rb', line 17

def self.unused_elastic_ips(ec2_instance)
  @unused_elastic_ips ||= elastic_ips(ec2_instance).select {|ip| ip.instance_id.nil? }
end

Instance Method Details

#assign_to(node) ⇒ Object



13
14
15
# File 'lib/cloud_providers/ec2/helpers/elastic_ip.rb', line 13

def assign_to(node)
  puts "-----> Assigning #{public_ip} to node: #{node.instance_id}"
end