class EC2::Ec2ApiGateway

Attributes

client[R]
resource[R]
stub[R]

Public Class Methods

new() click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 7
def initialize
  aws_certificate
  @client = Aws::EC2::Client.new
  @resource = Aws::EC2::Resource.new(client: client)
  @stub = false
end

Public Instance Methods

authorize_egress(id,authorize_egress) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 52
def authorize_egress(id,authorize_egress)
  sg = @resource.security_group(id)
  sg.authorize_egress(authorize_egress)
end
authorize_ingress(id,authorize_ingress) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 57
def authorize_ingress(id,authorize_ingress)
  sg = @resource.security_group(id)
  sg.authorize_ingress(authorize_ingress)
end
create_instances(image_id,min_count,max_count,key_pair_name,security_group,encoded_script,instance_type,config) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 74
def create_instances(image_id,min_count,max_count,key_pair_name,security_group,encoded_script,instance_type,config)
  @resource.create_instances({
                                 image_id: image_id,
                                 min_count: min_count,
                                 max_count: max_count,
                                 key_name: key_pair_name,
                                 user_data: encoded_script,
                                 instance_type: instance_type,
                                 placement: {
                                     availability_zone: config.az
                                 },
                                 network_interfaces: [
                                     {
                                         device_index: 0,
                                         subnet_id: config.subnet_id,
                                         associate_public_ip_address: true,
                                         groups: [security_group.security_group_id],
                                     },
                                 ],
                             })
end
create_key_pairs(key_pair_name) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 68
def create_key_pairs(key_pair_name)
  @client.create_key_pair({
                              key_name: key_pair_name
                          })
end
create_security_group(security_group) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 47
def create_security_group(security_group)
  resp = @resource.create_security_group(security_group)
  resp.id
end
delete_key_pairs(key_pair_name) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 96
def delete_key_pairs(key_pair_name)
  @client.delete_key_pair({
                              key_name: key_pair_name
                          })
end
delete_security_group(security_group_id) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 62
def delete_security_group(security_group_id)
  @client.delete_security_group({
                                    group_id: security_group_id,
                                })
end
find_instance_by_id(instance_id) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 43
def find_instance_by_id(instance_id)
  @resource.instance(instance_id)
end
get_group_id(security_group) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 29
def get_group_id(security_group)
  group_id = nil
  @resource.security_groups.each do |sg|
    if sg.group_name == security_group[:group_name]
      group_id = sg.group_id
    end
  end
  group_id
end
get_instance_collection(values) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 18
def get_instance_collection(values)
  instance_ids = []
  resp = @client.describe_instances(filters: [{name: "tag:Name", values: values}])
  resp.reservations.each do |reservation|
    reservation.instances.each do |instance|
      instance_ids << instance.instance_id
    end
  end
  instance_ids
end
select_key_pairs() click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 39
def select_key_pairs
  @client.describe_key_pairs
end
stub?() click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 14
def stub?
  @stub
end
wait_for_instance_running(instance_id) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 110
def wait_for_instance_running(instance_id)
  @resource.client.wait_until(:instance_running, {instance_ids: [instance_id]})  unless stub?
end
wait_for_instance_status_ok(instance_id) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 102
def wait_for_instance_status_ok(instance_id)
  @resource.client.wait_until(:instance_status_ok, {instance_ids: [instance_id]}) unless stub?
end
wait_for_instance_stopped(instance_id) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 114
def wait_for_instance_stopped(instance_id)
  @resource.client.wait_until(:instance_stopped, {instance_ids: [instance_id]}) unless stub?
end
wait_for_instance_terminated(instance_id) click to toggle source
# File lib/etude_for_aws/ec2/ec2_api_gateway.rb, line 106
def wait_for_instance_terminated(instance_id)
  @resource.client.wait_until(:instance_terminated, {instance_ids: [instance_id]}) unless stub?
end