Class: Elbas::LaunchConfiguration

Inherits:
AWSResource show all
Defined in:
lib/elbas/launch_configuration.rb

Instance Attribute Summary

Attributes inherited from AWSResource

#aws_counterpart

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AWSResource

#cleanup

Methods included from Logger

#info

Methods included from Retryable

#with_retry

Methods included from AWS::EC2

#ec2

Methods included from AWS::Credentials

#credentials

Methods included from AWS::AutoScaling

#autoscale_group, #autoscale_group_name, #autoscaling

Class Method Details

.create(ami, &block) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/elbas/launch_configuration.rb', line 4

def self.create(ami, &block)
  lc = new
  lc.cleanup do
    lc.save(ami)
    yield lc
  end
end

Instance Method Details

#attach_to_autoscale_group!Object



19
20
21
22
# File 'lib/elbas/launch_configuration.rb', line 19

def attach_to_autoscale_group!
  info 'Attaching Launch Configuration to AutoScale Group'
  autoscale_group.update(launch_configuration: aws_counterpart)
end

#destroy(launch_configurations = []) ⇒ Object



24
25
26
27
28
29
# File 'lib/elbas/launch_configuration.rb', line 24

def destroy(launch_configurations = [])
  launch_configurations.each do |lc|
    info "Deleting old launch configuration: #{lc.name}"
    lc.delete
  end
end

#save(ami) ⇒ Object



12
13
14
15
16
17
# File 'lib/elbas/launch_configuration.rb', line 12

def save(ami)
  info "Creating an EC2 Launch Configuration for AMI: #{ami.aws_counterpart.id}"
  with_retry do
    @aws_counterpart = autoscaling.launch_configurations.create(name, ami.aws_counterpart.id, instance_size, create_options)
  end
end