Class: Capistrano::Autoscale::AWS::LaunchTemplate
- Defined in:
- lib/capistrano/autoscale/aws/launch_template.rb
Instance Attribute Summary collapse
-
#default ⇒ Object
readonly
Returns the value of attribute default.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#image_id ⇒ Object
readonly
Returns the value of attribute image_id.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
- #ami ⇒ Object
- #delete ⇒ Object
-
#initialize(id, name, version, default, image_id) ⇒ LaunchTemplate
constructor
A new instance of LaunchTemplate.
- #previous_versions ⇒ Object
- #update(ami, description: nil) ⇒ Object
Methods inherited from Base
#autoscaling_client, #aws_access_key_id, #aws_autoscale_ami_tags, #aws_autoscale_snapshot_tags, #aws_credentials, #aws_options, #aws_region, #aws_secret_access_key, #ec2_client
Constructor Details
#initialize(id, name, version, default, image_id) ⇒ LaunchTemplate
Returns a new instance of LaunchTemplate.
9 10 11 12 13 14 15 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 9 def initialize(id, name, version, default, image_id) @id = id @name = name @version = version @default = default @image_id = image_id end |
Instance Attribute Details
#default ⇒ Object (readonly)
Returns the value of attribute default.
7 8 9 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 7 def default @default end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
7 8 9 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 7 def id @id end |
#image_id ⇒ Object (readonly)
Returns the value of attribute image_id.
7 8 9 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 7 def image_id @image_id end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
7 8 9 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 7 def name @name end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
7 8 9 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 7 def version @version end |
Instance Method Details
#ami ⇒ Object
41 42 43 44 45 46 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 41 def ami @ami ||= begin image = ::Aws::EC2::Image.new(image_id, client: ec2_client) AMI.new(image.image_id, image.block_device_mappings) if image.exists? end end |
#delete ⇒ Object
48 49 50 51 52 53 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 48 def delete ec2_client.delete_launch_template_versions( launch_template_id: id, versions: [version.to_s] ) end |
#previous_versions ⇒ Object
34 35 36 37 38 39 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 34 def previous_versions ec2_client.describe_launch_template_versions(launch_template_id: id) .launch_template_versions.sort_by(&:version_number).reverse .select { |v| v.version_number < version } .map { |v| self.class.new(v.launch_template_id, v.launch_template_name, v.version_number, v.default_version, v.launch_template_data.image_id) } end |
#update(ami, description: nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/capistrano/autoscale/aws/launch_template.rb', line 17 def update(ami, description: nil) latest = ec2_client.create_launch_template_version( launch_template_data: { image_id: ami.id }, launch_template_id: id, source_version: version.to_s, version_description: description ).launch_template_version self.class.new( latest&.launch_template_id, latest&.launch_template_name, latest&.version_number, latest&.default_version, latest&.launch_template_data&.image_id ) end |