Best Python code snippet using localstack_python
constants.py
Source:constants.py
1from collections import OrderedDict2from pyrsistent import freeze3SINLE_REGION_SERVICES = freeze(["iam", "s3", "cloudfront"])4# fmt: off5METAMAP = freeze(6 OrderedDict({7 "autoscaling_auto_scaling_groups": {"fetch_method": "describe_auto_scaling_groups", "response_key": "AutoScalingGroups"},8 "cloudformation_stacks": {"fetch_method": "describe_stacks", "response_key": "Stacks"},9 "cloudfront_distributions": {"fetch_method": "list_distributions", "response_key": "Items", "page_key": "DistributionList"},10 "cloudtrail_trails": {"fetch_method": "describe_trails", "response_key": "trailList"},11 "config_configuration_recorder_status": {"fetch_method": "describe_configuration_recorder_status", "response_key": "ConfigurationRecordersStatus"},12 "config_configuration_recorders": {"fetch_method": "describe_configuration_recorders", "response_key": "ConfigurationRecorders"},13 "config_delivery_channel_status": {"fetch_method": "describe_delivery_channel_status", "response_key": "DeliveryChannelsStatus"},14 "config_delivery_channels": {"fetch_method": "describe_delivery_channels", "response_key": "DeliveryChannels"},15 "dynamodb_tables": {"fetch_method": "list_tables", "response_key": "TableNames"},16 "ec2_addresses": {"fetch_method": "describe_addresses", "response_key": "Addresses"},17 "ec2_flow_logs": {"fetch_method": "describe_flow_logs", "response_key": "FlowLogs"},18 "ec2_images": {"fetch_method": "describe_images", "response_key": "Images", "kwargs": {"Owners": ["self"]}},19 "ec2_instances": {"fetch_method": "describe_instances", "page_key": "Reservations", "response_key": "Instances"},20 "ec2_nat_gateways": {"fetch_method": "describe_nat_gateways", "response_key": "NatGateways"},21 "ec2_network_interfaces": {"fetch_method": "describe_network_interfaces", "response_key": "NetworkInterfaces"},22 "ec2_reserved_instances": {"fetch_method": "describe_reserved_instances", "response_key": "ReservedInstances"},23 "ec2_reserved_instances_modifications": {"fetch_method": "describe_reserved_instances_modifications", "response_key": "ReservedInstancesModifications"},24 "ec2_route_tables": {"fetch_method": "describe_route_tables", "response_key": "RouteTables"},25 "ec2_security_groups": {"fetch_method": "describe_security_groups", "response_key": "SecurityGroups"},26 "ec2_snapshots": {"fetch_method": "describe_snapshots", "response_key": "Snapshots", "kwargs": {"OwnerIds": ["self"]}},27 "ec2_subnets": {"fetch_method": "describe_subnets", "response_key": "Subnets"},28 "ec2_volumes": {"fetch_method": "describe_volumes", "response_key": "Volumes"},29 "ec2_vpcs": {"fetch_method": "describe_vpcs", "response_key": "Vpcs"},30 "ecs_clusters": {"fetch_method": "list_clusters", "response_key": "clusterArns"},31 "efs_file_systems": {"fetch_method": "describe_file_systems", "response_key": "FileSystems"},32 "eks_clusters": {"fetch_method": "list_clusters", "response_key": "clusters"},33 "elasticache_cache_clusters": {"fetch_method": "describe_cache_clusters", "response_key": "CacheClusters"},34 "elasticache_replication_groups": {"fetch_method": "describe_replication_groups", "response_key": "ReplicationGroups"},35 "elasticache_cache_subnet_groups": {"fetch_method": "describe_cache_subnet_groups", "response_key": "CacheSubnetGroups"},36 "elbv2_load_balancers": {"fetch_method": "describe_load_balancers", "response_key": "LoadBalancers"},37 "elbv2_target_groups": {"fetch_method": "describe_target_groups", "response_key": "TargetGroups"},38 "iam_account_aliases": {"fetch_method": "list_account_aliases", "response_key": "AccountAliases"},39 "iam_account_summary": {"fetch_method": "get_account_summary", "response_key": "SummaryMap"},40 "iam_account_password_policy": {"fetch_method": "get_account_password_policy", "response_key": "PasswordPolicy"},41 "iam_instance_profiles": {"fetch_method": "list_instance_profiles", "response_key": "InstanceProfiles"},42 "iam_roles": {"fetch_method": "list_roles", "response_key": "Roles"},43 "iam_users": {"fetch_method": "list_users", "response_key": "Users"},44 "inspector_assessment_runs": {"fetch_method": "list_assessment_runs", "response_key": "assessmentRunArns"},45 "kms_keys": {"fetch_method": "list_keys", "response_key": "Keys"},46 "lambda_functions": {"fetch_method": "list_functions", "response_key": "Functions"},47 "neptune_db_instances": {"fetch_method": "describe_db_instances", "response_key": "DBInstances"},48 "rds_db_instances": {"fetch_method": "describe_db_instances", "response_key": "DBInstances"},49 "rds_db_snapshots": {"fetch_method": "describe_db_snapshots", "response_key": "DBSnapshots"},50 "rds_pending_maintenance_actions": {"fetch_method": "describe_pending_maintenance_actions", "response_key": "PendingMaintenanceActions"},51 "redshift_clusters": {"fetch_method": "describe_clusters", "response_key": "Clusters"},52 "resourcegroupstaggingapi_tag_keys": {"fetch_method": "get_tag_keys", "response_key": "TagKeys"},53 "resourcegroupstaggingapi_resources": {"fetch_method": "get_resources", "response_key": "ResourceTagMappingList"},54 "s3_buckets": {"fetch_method": "list_buckets", "response_key": "Buckets"},55 "ssm_compliance_summaries": {"fetch_method": "list_compliance_summaries", "response_key": "ComplianceSummaryItems"},56 "workspaces_workspace_directories": {"fetch_method": "describe_workspace_directories", "response_key": "Directories"},57 "workspaces_workspaces": {"fetch_method": "describe_workspaces", "response_key": "Workspaces"},58 })59)60SUBRESOURCES_METAMAP = freeze(61 OrderedDict({62 "elbv2_target_health": {63 "fetch_method": "describe_target_health",64 "response_key": "TargetHealthDescriptions",65 "parent_required_filters": {66 "filter_key": "TargetGroupArn",67 "parent_filter_field": "TargetGroupArn",68 "parent_metadata_type": "elbv2_target_groups",69 }70 },71 "s3_bucket_versioning": {72 "fetch_method": "get_bucket_versioning",73 "parent_required_filters": {74 "filter_key": "Bucket",75 "parent_filter_field": "Name",76 "parent_metadata_type": "s3_buckets",77 }78 },79 "s3_bucket_encryption": {80 "fetch_method": "get_bucket_encryption",81 "response_key": "ServerSideEncryptionConfiguration",82 "parent_required_filters": {83 "filter_key": "Bucket",84 "parent_filter_field": "Name",85 "parent_metadata_type": "s3_buckets",86 }87 }88 })89)90# This dict stores the "metadata_type -> fields to process" mapping91# We need it because sweet boto3 lib marks AssumeRolePolicyDocument as str in schemas, but in fact it returns dict obj.92# SEE: nops_metadata.utils.process_element93APPLY_NESTED_ELEMENT_PROCESSING = {94 "iam_instance_profiles": ["Roles"]95}96RELATIONSHIPS_MAPPING = freeze(97 {98 "ec2_instances": {99 "volume": {100 "many_to_many": True,101 "m2m_table_name": "ec2_instance_volume",102 "related_table": "ec2_volumes",103 "related_column": "volume_id",104 "custom_join_query": """, json_array_elements(block_device_mappings::json) AS e JOIN ec2_volumes ec2_volumes_tmp ON (e -> 'Ebs' ->> 'VolumeId') = ec2_volumes_tmp.volume_id """,105 },106 "image_fk": {107 "related_table": "ec2_images",108 "related_column": "image_id",109 },110 "vpc_fk": {111 "related_table": "ec2_vpcs",112 "related_column": "vpc_id",113 },114 "subnet_fk": {115 "related_table": "ec2_subnets",116 "related_column": "subnet_id",117 },118 "ec2_security_groups": {119 "many_to_many": True,120 "m2m_table_name": "ec2_instance_security_group",121 "related_table": "ec2_security_groups",122 "related_column": "group_id",123 "custom_join_query": """, json_array_elements(security_groups::json) AS e JOIN ec2_security_groups ec2_security_groups_tmp ON (e ->> 'GroupId') = ec2_security_groups_tmp.group_id """,124 },125 "iam_instance_profile_fk": {126 "related_table": "iam_instance_profiles",127 "related_column": "instance_profile_id",128 "custom_join_query": """LEFT OUTER JOIN iam_instance_profiles iam_instance_profiles_tmp ON iam_instance_profiles_tmp.arn = vals.iam_instance_profile->>'Arn'""",129 },130 },131 "iam_instance_profiles": {132 "roles": {133 "many_to_many": True,134 "m2m_table_name": "iam_instance_profile_role",135 "related_table": "iam_roles",136 "related_column": "arn",137 "custom_join_query": """, json_array_elements(roles::json) AS e JOIN iam_roles iam_roles_tmp ON (e ->> 'Arn') = iam_roles_tmp.arn """,138 }139 },140 "ec2_security_groups": {141 "vpc_fk": {142 "related_table": "ec2_vpcs",143 "related_column": "vpc_id",144 },145 },146 "elbv2_target_groups": {147 "load_balancer_arns": {148 "many_to_many": True,149 "m2m_table_name": "target_group_load_balancer",150 "related_table": "elbv2_load_balancers",151 "related_column": "load_balancer_arn",152 },153 "vpc_fk": {154 "related_table": "ec2_vpcs",155 "related_column": "vpc_id",156 },157 },158 "elbv2_load_balancers": {159 "vpc_fk": {160 "related_table": "ec2_vpcs",161 "related_column": "vpc_id",162 },163 "security_groups": {164 "many_to_many": True,165 "m2m_table_name": "load_balancer_security_group",166 "related_table": "ec2_security_groups",167 "related_column": "group_id",168 }169 },170 "elbv2_target_health": {171 "instance_fk": {172 "related_table": "ec2_instances",173 "custom_join_query": """LEFT OUTER JOIN ec2_instances ec2_instances_tmp ON ec2_instances_tmp.instance_id = vals.target->>'Id'""",174 "related_column": "instance_id",175 }176 },177 "ec2_snapshots": {178 "volume_fk": {179 "related_table": "ec2_volumes",180 "related_column": "volume_id",181 }182 },183 "ec2_addresses": {184 "instance_fk": {185 "related_table": "ec2_instances",186 "related_column": "instance_id",187 },188 "network_interface_fk": {189 "related_table": "ec2_network_interfaces",190 "related_column": "network_interface_id",191 }192 },193 "ec2_route_tables": {194 "vpc_fk": {195 "related_table": "ec2_vpcs",196 "related_column": "vpc_id",197 }198 },199 "ec2_subnets": {200 "vpc_fk": {201 "related_table": "ec2_vpcs",202 "related_column": "vpc_id",203 }204 },205 "rds_db_snapshots": {206 "vpc_fk": {207 "related_table": "ec2_vpcs",208 "related_column": "vpc_id",209 }210 },211 "ec2_flow_logs": {212 "resource_fk": {213 "related_table": "ec2_vpcs",214 "related_column": "vpc_id",215 "this_table_column": "resource_id"216 }217 },218 "ec2_nat_gateways": {219 "subnet_fk": {220 "related_table": "ec2_subnets",221 "related_column": "subnet_id",222 },223 "vpc_fk": {224 "related_table": "ec2_vpcs",225 "related_column": "vpc_id",226 }227 },228 "autoscaling_auto_scaling_groups": {229 "instances": {230 "many_to_many": True,231 "m2m_table_name": "autoscaling_enabled_ec2_instance",232 "related_table": "ec2_instances",233 "related_column": "instance_id",234 "custom_join_query": """, json_array_elements(instances::json) AS e JOIN ec2_instances ec2_instances_tmp ON (e ->> 'InstanceId') = ec2_instances_tmp.instance_id """,235 }236 },237 "rds_db_instances": {238 "kms_key_pk": {239 "related_table": "kms_keys",240 "related_column": "key_arn",241 "this_table_column": "kms_key_id",242 },243 "vpc_security_groups": {244 "many_to_many": True,245 "m2m_table_name": "rds_instance_security_group",246 "related_table": "ec2_security_groups",247 "related_column": "group_id",248 "custom_join_query": """, json_array_elements(vpc_security_groups::json) AS e JOIN ec2_security_groups ec2_security_groups_tmp ON (e ->> 'VpcSecurityGroupId') = ec2_security_groups_tmp.group_id """,249 }250 },251 "efs_file_systems": {252 "kms_key_pk": {253 "related_table": "kms_keys",254 "related_column": "key_arn",255 "this_table_column": "kms_key_id",256 },257 },258 "elasticache_cache_clusters": {259 "security_groups": {260 "many_to_many": True,261 "m2m_table_name": "elasticache_security_group",262 "related_table": "ec2_security_groups",263 "related_column": "group_id",264 "custom_join_query": """, json_array_elements(security_groups::json) AS e JOIN ec2_security_groups ec2_security_groups_tmp ON (e ->> 'SecurityGroupId') = ec2_security_groups_tmp.group_id """,265 },266 "replication_group_pk": {267 "related_table": "elasticache_replication_groups",268 "related_column": "replication_group_id",269 },270 "cache_subnet_group_name_fk": {271 "related_table": "elasticache_cache_subnet_groups",272 "related_column": "cache_subnet_group_name",273 }274 },275 "elasticache_replication_groups": {276 "kms_key_pk": {277 "related_table": "kms_keys",278 "related_column": "key_arn",279 "this_table_column": "kms_key_id",280 },281 },282 "elasticache_cache_subnet_groups": {283 "vpc_fk": {284 "related_table": "ec2_vpcs",285 "related_column": "vpc_id",286 },287 "subnets": {288 "many_to_many": True,289 "m2m_table_name": "elasticache_cache_subnet_group",290 "related_table": "ec2_subnets",291 "related_column": "subnet_id",292 "custom_join_query": """, json_array_elements(subnets::json) AS e LEFT OUTER JOIN ec2_subnets ec2_subnets_tmp ON (e ->> 'SubnetIdentifier') = ec2_subnets_tmp.subnet_id """,293 },294 },295 "redshift_clusters": {296 "vpc_fk": {297 "related_table": "ec2_vpcs",298 "related_column": "vpc_id",299 },300 "kms_key_pk": {301 "related_table": "kms_keys",302 "related_column": "key_arn",303 "this_table_column": "kms_key_id",304 },305 },306 "cloudtrail_trails": {307 "s3_bucket_fk": {308 "related_table": "s3_buckets",309 "related_column": "name",310 "this_table_column": "s3_bucket_name",311 },312 "kms_key_pk": {313 "related_table": "kms_keys",314 "related_column": "key_arn",315 "this_table_column": "kms_key_id",316 },317 },318 "config_delivery_channels": {319 "s3_bucket_fk": {320 "related_table": "s3_buckets",321 "related_column": "name",322 "this_table_column": "s3_bucket_name",323 },324 },325 "cloudformation_stacks": {326 "parent_stack_fk": {327 "related_table": "cloudformation_stacks",328 "related_column": "stack_id",329 "this_table_column": "parent_id",330 },331 "iam_role_fk": {332 "related_table": "iam_roles",333 "related_column": "arn",334 "this_table_column": "role_arn",335 },336 },337 "neptune_db_instances": {338 "vpc_security_groups": {339 "many_to_many": True,340 "m2m_table_name": "neptune_instance_security_group",341 "related_table": "ec2_security_groups",342 "related_column": "group_id",343 "custom_join_query": """, json_array_elements(vpc_security_groups::json) AS e JOIN ec2_security_groups ec2_security_groups_tmp ON (e ->> 'VpcSecurityGroupId') = ec2_security_groups_tmp.group_id """,344 },345 "kms_key_pk": {346 "related_table": "kms_keys",347 "related_column": "key_arn",348 "this_table_column": "kms_key_id",349 },350 }351 },352)...
list_ssm_compliance_summaries.py
Source:list_ssm_compliance_summaries.py
...13 managedinstanceinventory_client = boto3.client('ssm', region_name = j )14 managedinstanceinventory = []15 next_token = None16 while True:17 response = managedinstanceinventory_client.list_compliance_summaries(18 NextToken= next_token19 ) if next_token else managedinstanceinventory_client.list_compliance_summaries()20 print(response['ComplianceSummaryItems']) 21 for i in response['ComplianceSummaryItems']:22 23 managedinstanceinventory.append(i['ComplianceType'])24 print(i['ComplianceType']) 25 # print(i['CompliantSummary'])26 # print(i['NonCompliantSummary'])27 # for compliance in i['CompliantSummary']:28 # print("Count of compliants: ") 29 # print(str(compliance['CompliantCount']))30 # for non_compliance in i['NonCompliantSummary']:31 # print("Count of non-compliants: ") 32 # print(non_compliance['NonCompliantCount']) 33
...
ssm.py
Source:ssm.py
...8 session = boto39 if region is not None:10 session = boto3.session.Session(region_name=region) 11 client = session.client('ssm')12 response = client.list_compliance_summaries()13 return_dicts = []14 for i in response['ComplianceSummaryItems']:15 return_dicts.append({16 "ComplianceType": i['ComplianceType'],17 "CompliantCount": str(i['CompliantSummary']['CompliantCount']),18 "NonCompliantCount": str(i['NonCompliantSummary']['NonCompliantCount'])19 })...
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!!