diff --git a/moto/ec2/responses/launch_templates.py b/moto/ec2/responses/launch_templates.py index d9797f77e..595f37f2f 100644 --- a/moto/ec2/responses/launch_templates.py +++ b/moto/ec2/responses/launch_templates.py @@ -226,7 +226,11 @@ class LaunchTemplates(EC2BaseResponse): ret_versions = [] if versions: for v in versions: - ret_versions.append(template.get_version(int(v))) + if str(v).lower() == "$latest" or "$default": + tv = template.get_version(v) + else: + tv = template.get_version(int(v)) + ret_versions.append(tv) elif min_version: if max_version: vMax = max_version diff --git a/tests/test_ec2/test_launch_templates.py b/tests/test_ec2/test_launch_templates.py index 1133ee229..738c0e96d 100644 --- a/tests/test_ec2/test_launch_templates.py +++ b/tests/test_ec2/test_launch_templates.py @@ -85,6 +85,22 @@ def test_describe_launch_template_versions(): templ = resp["LaunchTemplateVersions"][0]["LaunchTemplateData"] templ.should.equal(template_data) + # test using $Latest version + resp = cli.describe_launch_template_versions( + LaunchTemplateName=template_name, Versions=["$Latest"] + ) + + templ = resp["LaunchTemplateVersions"][0]["LaunchTemplateData"] + templ.should.equal(template_data) + + # test using $Default version + resp = cli.describe_launch_template_versions( + LaunchTemplateName=template_name, Versions=["$Default"] + ) + + templ = resp["LaunchTemplateVersions"][0]["LaunchTemplateData"] + templ.should.equal(template_data) + @mock_ec2 def test_describe_launch_template_versions_by_name_when_absent():