From ddf396161421d463e2f1cc4f5e7364b6377d5ff5 Mon Sep 17 00:00:00 2001 From: madmatvey Date: Tue, 29 Sep 2020 19:35:31 +0400 Subject: [PATCH 1/3] add update default_version --- lib/elbas/aws/launch_template.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/elbas/aws/launch_template.rb b/lib/elbas/aws/launch_template.rb index c23a45a..8c928ab 100644 --- a/lib/elbas/aws/launch_template.rb +++ b/lib/elbas/aws/launch_template.rb @@ -16,10 +16,15 @@ 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 + }) + self.class.new( - latest&.launch_template_id, - latest&.launch_template_name, - latest&.version_number + response&.launch_template_id, + response&.launch_template_name, + response&.version_number ) end @@ -29,4 +34,4 @@ def aws_namespace end end end -end \ No newline at end of file +end From d51d9ab2d822d65e01f29137a666ea537a8d4ad6 Mon Sep 17 00:00:00 2001 From: madmatvey Date: Tue, 29 Sep 2020 20:16:15 +0400 Subject: [PATCH 2/3] little less code changes --- lib/elbas/aws/launch_template.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/elbas/aws/launch_template.rb b/lib/elbas/aws/launch_template.rb index 8c928ab..5cef44e 100644 --- a/lib/elbas/aws/launch_template.rb +++ b/lib/elbas/aws/launch_template.rb @@ -16,15 +16,15 @@ def update(ami) source_version: self.version }).launch_template_version - response = aws_client.modify_launch_template({ + latest = aws_client.modify_launch_template({ default_version: latest.version_number.to_s, launch_template_id: latest.launch_template_id }) self.class.new( - response&.launch_template_id, - response&.launch_template_name, - response&.version_number + latest&.launch_template_id, + latest&.launch_template_name, + latest&.version_number ) end From f827c263022bfe520f0320681b06317307360f59 Mon Sep 17 00:00:00 2001 From: madmatvey Date: Wed, 30 Sep 2020 00:38:31 +0400 Subject: [PATCH 3/3] add tests --- lib/elbas/aws/launch_template.rb | 3 ++- spec/aws/launch_template_spec.rb | 13 +++++++++++-- spec/support/stubs/ModifyLaunchTemplate.200.xml | 11 +++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 spec/support/stubs/ModifyLaunchTemplate.200.xml diff --git a/lib/elbas/aws/launch_template.rb b/lib/elbas/aws/launch_template.rb index 5cef44e..a878f05 100644 --- a/lib/elbas/aws/launch_template.rb +++ b/lib/elbas/aws/launch_template.rb @@ -16,10 +16,11 @@ def update(ami) source_version: self.version }).launch_template_version - latest = aws_client.modify_launch_template({ + 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, 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 + +