Class: Cliaws::Ec2

Inherits:
Object
  • Object
show all
Defined in:
lib/cliaws/ec2.rb

Defined Under Namespace

Classes: Instance

Instance Method Summary collapse

Constructor Details

#initialize(access_key_id, secret_access_key) ⇒ Ec2

Returns a new instance of Ec2.



8
9
10
# File 'lib/cliaws/ec2.rb', line 8

def initialize(access_key_id, secret_access_key)
  @access_key_id, @secret_access_key = access_key_id, secret_access_key
end

Instance Method Details

#allocate_addressObject



30
31
32
# File 'lib/cliaws/ec2.rb', line 30

def allocate_address
  ec2.allocate_address
end

#associate_address(options) ⇒ Object



38
39
40
# File 'lib/cliaws/ec2.rb', line 38

def associate_address(options)
  ec2.associate_address(options[:instance], options[:address])
end

#deallocate_address(address) ⇒ Object



34
35
36
# File 'lib/cliaws/ec2.rb', line 34

def deallocate_address(address)
  ec2.release_address(address)
end

#describe_addressesObject



46
47
48
49
50
# File 'lib/cliaws/ec2.rb', line 46

def describe_addresses
  ec2.describe_addresses.inject([]) do |memo, hash|
    memo << {"instance_id" => hash[:instance_id], "address" => hash[:public_ip]}
  end
end

#disassociate_address(address) ⇒ Object



42
43
44
# File 'lib/cliaws/ec2.rb', line 42

def disassociate_address(address)
  ec2.disassociate_address(address)
end

#listObject



12
13
14
# File 'lib/cliaws/ec2.rb', line 12

def list
  ec2.describe_instances.map {|raw_data| Instance.new(raw_data)}
end

#run(ami, options = {}) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/cliaws/ec2.rb', line 16

def run(ami, options={})
  raw_data = ec2.launch_instances(ami,
                       :min_count     => options[:count],
                       :max_count     => options[:count],
                       :key_name      => options[:keypair],
                       :instance_type => options[:type])
  raw_data.map {|data| Instance.new(data)}
end

#terminate(instance_ids) ⇒ Object



25
26
27
28
# File 'lib/cliaws/ec2.rb', line 25

def terminate(instance_ids)
  raw_data = ec2.terminate_instances(instance_ids)
  raw_data.map {|data| Instance.new(data)}
end