diff --git a/lib/elbas/aws/launch_template.rb b/lib/elbas/aws/launch_template.rb index c23a45a..a878f05 100644 --- a/lib/elbas/aws/launch_template.rb +++ b/lib/elbas/aws/launch_template.rb @@ -16,6 +16,12 @@ def update(ami) source_version: self.version }).launch_template_version + response = aws_client.modify_launch_template({ + default_version: latest.version_number.to_s, + launch_template_id: latest.launch_template_id + }) + return unless response.successful? + self.class.new( latest&.launch_template_id, latest&.launch_template_name, @@ -29,4 +35,4 @@ def aws_namespace end end end -end \ No newline at end of file +end diff --git a/spec/aws/launch_template_spec.rb b/spec/aws/launch_template_spec.rb index 46ba8c8..bbe87ee 100644 --- a/spec/aws/launch_template_spec.rb +++ b/spec/aws/launch_template_spec.rb @@ -3,7 +3,9 @@ before do webmock :post, %r{ec2.(.*).amazonaws.com\/\z} => 'CreateLaunchTemplateVersion.200.xml', - with: Hash[body: /Action=CreateLaunchTemplateVersion/] + with: Hash[body: /Action=CreateLaunchTemplateVersion/] + webmock :post, %r{ec2.(.*).amazonaws.com\/\z} => 'ModifyLaunchTemplate.200.xml', + with: Hash[body: /Action=ModifyLaunchTemplate/] end describe '#initialize' do @@ -42,6 +44,13 @@ .with(body: %r{LaunchTemplateId=test-lt&SourceVersion=1}) end + it 'updates default launch template version' do + subject.update double(:ami, id: 'ami-123') + expect(WebMock) + .to have_requested(:post, /ec2/) + .with(body: %r{Action=ModifyLaunchTemplate}) + end + it 'returns a new launch template' do launch_template = subject.update double(:ami, id: 'ami-123') expect(launch_template.id).to eq 'lt-1234567890' @@ -49,4 +58,4 @@ expect(launch_template.version).to eq 123 end end -end \ No newline at end of file +end diff --git a/spec/support/stubs/ModifyLaunchTemplate.200.xml b/spec/support/stubs/ModifyLaunchTemplate.200.xml new file mode 100644 index 0000000..c8f81fe --- /dev/null +++ b/spec/support/stubs/ModifyLaunchTemplate.200.xml @@ -0,0 +1,11 @@ + + + 2017-12-01T13:35:46.000Z + arn:aws:iam::123456789012:root + 2 + 2 + lt-0abcd290751193123 + WebServers + +