Best Python code snippet using localstack_python
test_launch_templates.py
Source:test_launch_templates.py  
...5from moto import mock_ec26@mock_ec27def test_launch_template_create():8    cli = boto3.client("ec2", region_name="us-east-1")9    resp = cli.create_launch_template(10        LaunchTemplateName="test-template",11        # the absolute minimum needed to create a template without other resources12        LaunchTemplateData={13            "TagSpecifications": [{14                "ResourceType": "instance",15                "Tags": [{16                    "Key": "test",17                    "Value": "value",18                }],19            }],20        },21    )22    resp.should.have.key("LaunchTemplate")23    lt = resp["LaunchTemplate"]24    lt["LaunchTemplateName"].should.equal("test-template")25    lt["DefaultVersionNumber"].should.equal(1)26    lt["LatestVersionNumber"].should.equal(1)27    with assert_raises(ClientError) as ex:28        cli.create_launch_template(29            LaunchTemplateName="test-template",30            LaunchTemplateData={31                "TagSpecifications": [{32                    "ResourceType": "instance",33                    "Tags": [{34                        "Key": "test",35                        "Value": "value",36                    }],37                }],38            },39        )40    str(ex.exception).should.equal(41        'An error occurred (InvalidLaunchTemplateName.AlreadyExistsException) when calling the CreateLaunchTemplate operation: Launch template name already in use.')42@mock_ec243def test_describe_launch_template_versions():44    template_data = {45        "ImageId": "ami-abc123",46        "DisableApiTermination": False,47        "TagSpecifications": [{48            "ResourceType": "instance",49            "Tags": [{50                "Key": "test",51                "Value": "value",52            }],53        }],54        "SecurityGroupIds": [55            "sg-1234",56            "sg-ab5678",57        ],58    }59    cli = boto3.client("ec2", region_name="us-east-1")60    create_resp = cli.create_launch_template(61        LaunchTemplateName="test-template",62        LaunchTemplateData=template_data)63    # test using name64    resp = cli.describe_launch_template_versions(65        LaunchTemplateName="test-template",66        Versions=['1'])67    templ = resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]68    templ.should.equal(template_data)69    # test using id70    resp = cli.describe_launch_template_versions(71        LaunchTemplateId=create_resp["LaunchTemplate"]["LaunchTemplateId"],72        Versions=['1'])73    templ = resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]74    templ.should.equal(template_data)75@mock_ec276def test_create_launch_template_version():77    cli = boto3.client("ec2", region_name="us-east-1")78    create_resp = cli.create_launch_template(79        LaunchTemplateName="test-template",80        LaunchTemplateData={81            "ImageId": "ami-abc123"82        })83    version_resp = cli.create_launch_template_version(84        LaunchTemplateName="test-template",85        LaunchTemplateData={86            "ImageId": "ami-def456"87        },88        VersionDescription="new ami")89    version_resp.should.have.key("LaunchTemplateVersion")90    version = version_resp["LaunchTemplateVersion"]91    version["DefaultVersion"].should.equal(False)92    version["LaunchTemplateId"].should.equal(create_resp["LaunchTemplate"]["LaunchTemplateId"])93    version["VersionDescription"].should.equal("new ami")94    version["VersionNumber"].should.equal(2)95@mock_ec296def test_create_launch_template_version_by_id():97    cli = boto3.client("ec2", region_name="us-east-1")98    create_resp = cli.create_launch_template(99        LaunchTemplateName="test-template",100        LaunchTemplateData={101            "ImageId": "ami-abc123"102        })103    version_resp = cli.create_launch_template_version(104        LaunchTemplateId=create_resp["LaunchTemplate"]["LaunchTemplateId"],105        LaunchTemplateData={106            "ImageId": "ami-def456"107        },108        VersionDescription="new ami")109    version_resp.should.have.key("LaunchTemplateVersion")110    version = version_resp["LaunchTemplateVersion"]111    version["DefaultVersion"].should.equal(False)112    version["LaunchTemplateId"].should.equal(create_resp["LaunchTemplate"]["LaunchTemplateId"])113    version["VersionDescription"].should.equal("new ami")114    version["VersionNumber"].should.equal(2)115@mock_ec2116def test_describe_launch_template_versions_with_multiple_versions():117    cli = boto3.client("ec2", region_name="us-east-1")118    cli.create_launch_template(119        LaunchTemplateName="test-template",120        LaunchTemplateData={121            "ImageId": "ami-abc123"122        })123    cli.create_launch_template_version(124        LaunchTemplateName="test-template",125        LaunchTemplateData={126            "ImageId": "ami-def456"127        },128        VersionDescription="new ami")129    resp = cli.describe_launch_template_versions(130        LaunchTemplateName="test-template")131    resp["LaunchTemplateVersions"].should.have.length_of(2)132    resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]["ImageId"].should.equal("ami-abc123")133    resp["LaunchTemplateVersions"][1]["LaunchTemplateData"]["ImageId"].should.equal("ami-def456")134@mock_ec2135def test_describe_launch_template_versions_with_versions_option():136    cli = boto3.client("ec2", region_name="us-east-1")137    cli.create_launch_template(138        LaunchTemplateName="test-template",139        LaunchTemplateData={140            "ImageId": "ami-abc123"141        })142    cli.create_launch_template_version(143        LaunchTemplateName="test-template",144        LaunchTemplateData={145            "ImageId": "ami-def456"146        },147        VersionDescription="new ami")148    cli.create_launch_template_version(149        LaunchTemplateName="test-template",150        LaunchTemplateData={151            "ImageId": "ami-hij789"152        },153        VersionDescription="new ami, again")154    resp = cli.describe_launch_template_versions(155        LaunchTemplateName="test-template",156        Versions=["2", "3"])157    resp["LaunchTemplateVersions"].should.have.length_of(2)158    resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]["ImageId"].should.equal("ami-def456")159    resp["LaunchTemplateVersions"][1]["LaunchTemplateData"]["ImageId"].should.equal("ami-hij789")160@mock_ec2161def test_describe_launch_template_versions_with_min():162    cli = boto3.client("ec2", region_name="us-east-1")163    cli.create_launch_template(164        LaunchTemplateName="test-template",165        LaunchTemplateData={166            "ImageId": "ami-abc123"167        })168    cli.create_launch_template_version(169        LaunchTemplateName="test-template",170        LaunchTemplateData={171            "ImageId": "ami-def456"172        },173        VersionDescription="new ami")174    cli.create_launch_template_version(175        LaunchTemplateName="test-template",176        LaunchTemplateData={177            "ImageId": "ami-hij789"178        },179        VersionDescription="new ami, again")180    resp = cli.describe_launch_template_versions(181        LaunchTemplateName="test-template",182        MinVersion="2")183    resp["LaunchTemplateVersions"].should.have.length_of(2)184    resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]["ImageId"].should.equal("ami-def456")185    resp["LaunchTemplateVersions"][1]["LaunchTemplateData"]["ImageId"].should.equal("ami-hij789")186@mock_ec2187def test_describe_launch_template_versions_with_max():188    cli = boto3.client("ec2", region_name="us-east-1")189    cli.create_launch_template(190        LaunchTemplateName="test-template",191        LaunchTemplateData={192            "ImageId": "ami-abc123"193        })194    cli.create_launch_template_version(195        LaunchTemplateName="test-template",196        LaunchTemplateData={197            "ImageId": "ami-def456"198        },199        VersionDescription="new ami")200    cli.create_launch_template_version(201        LaunchTemplateName="test-template",202        LaunchTemplateData={203            "ImageId": "ami-hij789"204        },205        VersionDescription="new ami, again")206    resp = cli.describe_launch_template_versions(207        LaunchTemplateName="test-template",208        MaxVersion="2")209    resp["LaunchTemplateVersions"].should.have.length_of(2)210    resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]["ImageId"].should.equal("ami-abc123")211    resp["LaunchTemplateVersions"][1]["LaunchTemplateData"]["ImageId"].should.equal("ami-def456")212@mock_ec2213def test_describe_launch_template_versions_with_min_and_max():214    cli = boto3.client("ec2", region_name="us-east-1")215    cli.create_launch_template(216        LaunchTemplateName="test-template",217        LaunchTemplateData={218            "ImageId": "ami-abc123"219        })220    cli.create_launch_template_version(221        LaunchTemplateName="test-template",222        LaunchTemplateData={223            "ImageId": "ami-def456"224        },225        VersionDescription="new ami")226    cli.create_launch_template_version(227        LaunchTemplateName="test-template",228        LaunchTemplateData={229            "ImageId": "ami-hij789"230        },231        VersionDescription="new ami, again")232    cli.create_launch_template_version(233        LaunchTemplateName="test-template",234        LaunchTemplateData={235            "ImageId": "ami-345abc"236        },237        VersionDescription="new ami, because why not")238    resp = cli.describe_launch_template_versions(239        LaunchTemplateName="test-template",240        MinVersion="2",241        MaxVersion="3")242    resp["LaunchTemplateVersions"].should.have.length_of(2)243    resp["LaunchTemplateVersions"][0]["LaunchTemplateData"]["ImageId"].should.equal("ami-def456")244    resp["LaunchTemplateVersions"][1]["LaunchTemplateData"]["ImageId"].should.equal("ami-hij789")245@mock_ec2246def test_describe_launch_templates():247    cli = boto3.client("ec2", region_name="us-east-1")248    lt_ids = []249    r = cli.create_launch_template(250        LaunchTemplateName="test-template",251        LaunchTemplateData={252            "ImageId": "ami-abc123"253        })254    lt_ids.append(r["LaunchTemplate"]["LaunchTemplateId"])255    r = cli.create_launch_template(256        LaunchTemplateName="test-template2",257        LaunchTemplateData={258            "ImageId": "ami-abc123"259        })260    lt_ids.append(r["LaunchTemplate"]["LaunchTemplateId"])261    # general call, all templates262    resp = cli.describe_launch_templates()263    resp.should.have.key("LaunchTemplates")264    resp["LaunchTemplates"].should.have.length_of(2)265    resp["LaunchTemplates"][0]["LaunchTemplateName"].should.equal("test-template")266    resp["LaunchTemplates"][1]["LaunchTemplateName"].should.equal("test-template2")267    # filter by names268    resp = cli.describe_launch_templates(269        LaunchTemplateNames=["test-template2", "test-template"])270    resp.should.have.key("LaunchTemplates")271    resp["LaunchTemplates"].should.have.length_of(2)272    resp["LaunchTemplates"][0]["LaunchTemplateName"].should.equal("test-template2")273    resp["LaunchTemplates"][1]["LaunchTemplateName"].should.equal("test-template")274    # filter by ids275    resp = cli.describe_launch_templates(LaunchTemplateIds=lt_ids)276    resp.should.have.key("LaunchTemplates")277    resp["LaunchTemplates"].should.have.length_of(2)278    resp["LaunchTemplates"][0]["LaunchTemplateName"].should.equal("test-template")279    resp["LaunchTemplates"][1]["LaunchTemplateName"].should.equal("test-template2")280@mock_ec2281def test_describe_launch_templates_with_filters():282    cli = boto3.client("ec2", region_name="us-east-1")283    r = cli.create_launch_template(284        LaunchTemplateName="test-template",285        LaunchTemplateData={286            "ImageId": "ami-abc123"287        })288    cli.create_tags(289        Resources=[r["LaunchTemplate"]["LaunchTemplateId"]],290        Tags=[291            {"Key": "tag1", "Value": "a value"},292            {"Key": "another-key", "Value": "this value"},293        ])294    cli.create_launch_template(295        LaunchTemplateName="no-tags",296        LaunchTemplateData={297            "ImageId": "ami-abc123"298        })299    resp = cli.describe_launch_templates(Filters=[{300        "Name": "tag:tag1", "Values": ["a value"]301    }])302    resp["LaunchTemplates"].should.have.length_of(1)303    resp["LaunchTemplates"][0]["LaunchTemplateName"].should.equal("test-template")304    resp = cli.describe_launch_templates(Filters=[{305        "Name": "launch-template-name", "Values": ["no-tags"]306    }])307    resp["LaunchTemplates"].should.have.length_of(1)308    resp["LaunchTemplates"][0]["LaunchTemplateName"].should.equal("no-tags")309@mock_ec2310def test_create_launch_template_with_tag_spec():311    cli = boto3.client("ec2", region_name="us-east-1")312    cli.create_launch_template(313        LaunchTemplateName="test-template",314        LaunchTemplateData={"ImageId": "ami-abc123"},315        TagSpecifications=[{316            "ResourceType": "instance",317            "Tags": [318                {"Key": "key", "Value": "value"}319            ]320        }],321    )322    resp = cli.describe_launch_template_versions(323        LaunchTemplateName="test-template",324        Versions=["1"])325    version = resp["LaunchTemplateVersions"][0]326    version["LaunchTemplateData"].should.have.key("TagSpecifications")...create_launch_template.py
Source:create_launch_template.py  
...9import sys10import base6411from prod_build_config import aws_profile, inst_profiles, EC2_instance, sec_groups12from aws_cred_objects import AWS_CREDS13def create_launch_template(user_data_file, template_name=None):14    aws = AWS_CREDS(aws_profile)15    ec2_inst = EC2_instance()16    """ These are all the groups          """17    """ Needs to be different for FlyWheel """18    if template_name:19        fly_id = aws.ec2_res.meta.client.describe_security_groups(20            Filters=[{"Name": "group-name", "Values": ["FlyWheel"]}]21        )["SecurityGroups"][0]["GroupId"]22        ssh_id = aws.ec2_res.meta.client.describe_security_groups(23            Filters=[{"Name": "group-name", "Values": ["SSH"]}]24        )["SecurityGroups"][0]["GroupId"]25        if template_name == "FlyWheel":26            sec_group_ids = [fly_id, ssh_id]27        else:28            sec_group_ids = [29                x["GroupId"]30                for x in aws.ec2_res.meta.client.describe_security_groups()[31                    "SecurityGroups"32                ]33                if x["GroupId"] != fly_id34            ]35    try:36        user_data = open(user_data_file, "r").read().encode("utf-8")37    except OSError as e:38        print("Try another file: ", e)39        sys.exit(1)40    encoded_user_data = base64.b64encode(user_data)41    str_encoded_user_data = encoded_user_data.decode("ascii")42    INSTANCE_PROFILE = inst_profiles[0]43    AMI = ec2_inst.ami44    LAUNCH_TEMPLATE = template_name or ec2_inst.lt_name45    INSTANCE_TYPE = ec2_inst.type46    VPCID = aws.ec2_res.meta.client.describe_vpcs()["Vpcs"][0]["VpcId"]47    KEYNAME = f"{VPCID}-{aws_profile}.pem"48    return aws.ec2_res.meta.client.create_launch_template(49        LaunchTemplateName=LAUNCH_TEMPLATE,50        LaunchTemplateData={51            "EbsOptimized": False,52            "IamInstanceProfile": {"Name": INSTANCE_PROFILE},53            "ImageId": AMI,54            "InstanceType": INSTANCE_TYPE,55            "KeyName": KEYNAME,56            "Monitoring": {"Enabled": True},57            "SecurityGroupIds": sec_group_ids,58            "UserData": str_encoded_user_data,59        },60    )61if __name__ == "__main__":62    # template_name = "HTTP"63    # user_data_file="../../../DockerStocksWeb/data/user_data.http.AWS.sh"64    template_name = "Crawler-flywheel"65    user_data_file = "../../../DockerStocksWeb/data/user_data.crawler.flywheel.AWS.sh"66    print(create_launch_template(user_data_file, template_name))67    template_name = "FlyWheel"68    user_data_file = "../../../DockerStocksWeb/data/user_data.flywheel.sh"69    print(create_launch_template(user_data_file, template_name))70    template_name = "Crawler-all-date"71    user_data_file = "../../../DockerStocksWeb/data/user_data.crawler.all.date.AWS.sh"...mount-efs-template.py
Source:mount-efs-template.py  
1#!python2import boto33import base644def create_launch_template(aws_region, template_name, mime_file):5    with open(mime_file, "rb") as f:6        read_data = f.read()7        user_data = base64.b64encode(read_data)8    print(read_data)9    print(user_data)10    launch_template_json = {11        "LaunchTemplateName": template_name,12        "LaunchTemplateData": {13            "UserData": str(user_data)[2:-1]14        }15    }    16    ## REMEMBER TO CHANGE THIS IF YOU HAVE MORE THAN ONE PROFILE##17    ec2_client = boto3.client('ec2', region_name=aws_region)18    #ec2_client.create_launch_template(**launch_template_json)19if __name__ == "__main__":...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
