class EC2::Ec2
Attributes
config[R]
ec2_instances[R]
gateway[R]
key_pair[R]
security_group[R]
Public Class Methods
new(vpc=nil)
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 5 def initialize(vpc=nil) @config = Configuration.new @gateway = Ec2ApiGateway.new setup_config(vpc) unless vpc.nil? end
Public Instance Methods
create()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 11 def create create_security_group create_key_pair create_ec2_instance end
destroy()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 21 def destroy terminate_ec2_instance delete_security_group delete_key_pair end
reboot()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 43 def reboot @ec2_instances.each do |ec2_instance| ec2_instance.reboot end end
start()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 31 def start @ec2_instances.each do |ec2_instance| ec2_instance.start end end
stop()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 37 def stop @ec2_instances.each do |ec2_instance| ec2_instance.stop end end
Private Instance Methods
create_ec2_instance()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 86 def create_ec2_instance private_i = 0 public_i = 0 @subnet_infos.each do |info| @config.subnet_id = info[:subnet_id] @config.az = info[:az] if info[:network] == 'Private' @config.instance_tags = @config.instance_tags_private[private_i] private_i += private_i else @config.instance_tags = @config.instance_tags_public[public_i] public_i += public_i end ec2_instance = Ec2Instance.new(self) ec2_instance.create(@security_group,@key_pair) @ec2_instances << ec2_instance end end
create_key_pair()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 82 def create_key_pair @key_pair.create end
create_security_group()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 78 def create_security_group @security_group.create end
delete_key_pair()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 115 def delete_key_pair @key_pair.delete @key_pair = nil end
delete_security_group()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 111 def delete_security_group @security_group = nil if @security_group.delete.nil? end
setup_config(vpc)
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 50 def setup_config(vpc) @config.vpc_id = vpc.get_vpc_id @subnet_infos = vpc.get_subnet_infos @security_group = SecurityGroup.new(self) @key_pair = KeyPair.new(self) @ec2_instances = [] @config.instance_tags_public.each do |tag| @config.instance_tags = tag values = [@config.instance_tags[0][:value]] instance_ids = @gateway.get_instance_collection(values) instance_ids.each do |instance_id| ec2_instance = Ec2Instance.new(self, instance_id) @ec2_instances << ec2_instance end end @config.instance_tags_private.each do |tag| @config.instance_tags = tag values = [@config.instance_tags[0][:value]] instance_ids = @gateway.get_instance_collection(values) instance_ids.each do |instance_id| ec2_instance = Ec2Instance.new(self, instance_id) @ec2_instances << ec2_instance end end end
terminate_ec2_instance()
click to toggle source
# File lib/etude_for_aws/ec2/ec2.rb, line 105 def terminate_ec2_instance @ec2_instances.each do |ec2_instance| ec2_instance.terminate end end