Module: Tapjoy::AutoscalingBootstrap::AWS::EC2

Defined in:
lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb

Overview

This class contains AWS methods for EC2

Class Method Summary collapse

Class Method Details

.clientObject



7
8
9
# File 'lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb', line 7

def client
  @client ||= Aws::EC2::Client.new
end

.create_security_group(group) ⇒ Object



15
16
17
18
# File 'lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb', line 15

def create_security_group(group)
  self.client.create_security_group(group_name: group,
    description: "Security group for #{Tapjoy::AutoscalingBootstrap.scaler_name}")
end

.describe_instances_by_tag(config) ⇒ Object



20
21
22
23
24
25
# File 'lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb', line 20

def describe_instances_by_tag(config)
  self.client.describe_instances(filters: [
    {name: 'tag:Name', values: [config[:name]]},
    {name: 'instance-state-name', values: %w(running)}
    ])
end

.describe_security_groups(group) ⇒ Object



11
12
13
# File 'lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb', line 11

def describe_security_groups(group)
  self.client.describe_security_groups(group_names: [group])
end

.terminate_instances(instance_ids) ⇒ Object



34
35
36
# File 'lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb', line 34

def terminate_instances(instance_ids)
  client.terminate_instances(instance_ids: instance_ids)
end

.toggle_termination_protection(instance_id, state) ⇒ Object



27
28
29
30
31
32
# File 'lib/tapjoy/autoscaling_bootstrap/AWS/ec2.rb', line 27

def toggle_termination_protection(instance_id, state)
  client.modify_instance_attribute(
    instance_id: instance_id,
    attribute: 'disableApiTermination',
    value: state)
end