From 7f43889ef6d2014367582d5a6de8884c1b9ab637 Mon Sep 17 00:00:00 2001 From: David <6107913+ackdav@users.noreply.github.com> Date: Tue, 4 Jul 2023 11:36:34 +0200 Subject: [PATCH] EC2: fix DescribeLaunchTemplateVersions default response (#6477) --- moto/ec2/responses/launch_templates.py | 8 +++++--- tests/test_ec2/test_launch_templates.py | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/moto/ec2/responses/launch_templates.py b/moto/ec2/responses/launch_templates.py index 58eb05ddd..01e2c8ff8 100644 --- a/moto/ec2/responses/launch_templates.py +++ b/moto/ec2/responses/launch_templates.py @@ -156,8 +156,10 @@ class LaunchTemplates(EC2BaseResponse): template_id = self._get_param("LaunchTemplateId") if name: template = self.ec2_backend.get_launch_template_by_name(name) - if template_id: + elif template_id: template = self.ec2_backend.get_launch_template(template_id) + else: + template = None max_results = self._get_int_param("MaxResults", 15) versions = self._get_multi_param("LaunchTemplateVersion") @@ -182,7 +184,7 @@ class LaunchTemplates(EC2BaseResponse): versions_node = ElementTree.SubElement(tree, "launchTemplateVersionSet") ret_versions = [] - if versions: + if versions and template is not None: for v in versions: if str(v).lower() == "$latest" or "$default": tv = template.get_version(v) @@ -200,7 +202,7 @@ class LaunchTemplates(EC2BaseResponse): elif max_version: vMax = max_version ret_versions = template.versions[:vMax] - else: + elif template is not None: ret_versions = template.versions ret_versions = ret_versions[:max_results] diff --git a/tests/test_ec2/test_launch_templates.py b/tests/test_ec2/test_launch_templates.py index e775a0460..85c492ddc 100644 --- a/tests/test_ec2/test_launch_templates.py +++ b/tests/test_ec2/test_launch_templates.py @@ -140,6 +140,14 @@ def test_describe_launch_template_versions_by_name_when_absent(): cli.describe_launch_template_versions(LaunchTemplateName=template_name) + # test default response + resp = cli.describe_launch_template_versions() + assert resp["LaunchTemplateVersions"] == [] + + # test using $Latest version + resp = cli.describe_launch_template_versions(Versions=["$Latest"]) + assert resp["LaunchTemplateVersions"] == [] + @mock_ec2 def test_create_launch_template_version():