EC2: fix DescribeLaunchTemplateVersions default response (#6477)

This commit is contained in:
David 2023-07-04 11:36:34 +02:00 committed by GitHub
parent 82c0166995
commit 7f43889ef6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View File

@ -156,8 +156,10 @@ class LaunchTemplates(EC2BaseResponse):
template_id = self._get_param("LaunchTemplateId") template_id = self._get_param("LaunchTemplateId")
if name: if name:
template = self.ec2_backend.get_launch_template_by_name(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) template = self.ec2_backend.get_launch_template(template_id)
else:
template = None
max_results = self._get_int_param("MaxResults", 15) max_results = self._get_int_param("MaxResults", 15)
versions = self._get_multi_param("LaunchTemplateVersion") versions = self._get_multi_param("LaunchTemplateVersion")
@ -182,7 +184,7 @@ class LaunchTemplates(EC2BaseResponse):
versions_node = ElementTree.SubElement(tree, "launchTemplateVersionSet") versions_node = ElementTree.SubElement(tree, "launchTemplateVersionSet")
ret_versions = [] ret_versions = []
if versions: if versions and template is not None:
for v in versions: for v in versions:
if str(v).lower() == "$latest" or "$default": if str(v).lower() == "$latest" or "$default":
tv = template.get_version(v) tv = template.get_version(v)
@ -200,7 +202,7 @@ class LaunchTemplates(EC2BaseResponse):
elif max_version: elif max_version:
vMax = max_version vMax = max_version
ret_versions = template.versions[:vMax] ret_versions = template.versions[:vMax]
else: elif template is not None:
ret_versions = template.versions ret_versions = template.versions
ret_versions = ret_versions[:max_results] ret_versions = ret_versions[:max_results]

View File

@ -140,6 +140,14 @@ def test_describe_launch_template_versions_by_name_when_absent():
cli.describe_launch_template_versions(LaunchTemplateName=template_name) 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 @mock_ec2
def test_create_launch_template_version(): def test_create_launch_template_version():