def process_request(self, session, account_id, region, kwargs): client = session.client("cloudtrail", region_name=region) cnt = 0 for event in self.paginate(client, "lookup_events", kwargs): print( "--------------------------------------------------------------------------------" ) print(dump_json(event)) cnt += 1 if self._max_results is not None and cnt >= int(self._max_results): return
def process_request(self, session, account_id, region, kwargs): client = session.client("ecs", region_name=region) results = [] cluster_arns = [ item for item in self.paginate(client, "list_clusters") ] for cluster_arn in cluster_arns: task_arns = [ item for item in self.paginate(client, "list_tasks", {"cluster": cluster_arn}) ] while len(task_arns) > 0: # Note that `tasks` supports a list of up to 100 task IDs or full ARN entries. check_tasks = task_arns[0:min(100, len(task_arns))] for task in client.describe_tasks(cluster=cluster_arn, tasks=check_tasks)["tasks"]: # Retrieve Image in running containers, or container definitions (if it's # Fargate or the running containers (task["containers"]) has "Image"==None) containers = task["containers"] none_image_found = any( c.get("image") is None for c in containers) if task["launchType"] == "FARGATE" or none_image_found: resp = client.describe_task_definition( taskDefinition=task["taskDefinitionArn"]) containers = resp["taskDefinition"][ "containerDefinitions"] for container in containers: data = { "Image": container.get("image"), # can have None image "ClusterArn": task["clusterArn"], "LaunchType": task["launchType"], "TaskArn": task["taskArn"], "LastStatus": task["lastStatus"], "AccountId": account_id, "Region": region, } results.append(data) task_arns = task_arns[100:] for result in self.lookup_image_details(results, region, account_id, session): print(dump_json(result))
def process_request(self, session, account_id, region, kwargs): client = session.client("acm", region_name=region) data_list = [] for page in client.get_paginator("list_certificates").paginate(): data_list.extend(page["CertificateSummaryList"]) for data in data_list: item = client.describe_certificate(CertificateArn=data["CertificateArn"])["Certificate"] data = item if self._detailed else { "AccountId": account_id, "Region": region, "CertificateArn": item["CertificateArn"], "DomainName": item["DomainName"], "NotAfter": item["NotAfter"].strftime("%Y-%m-%d %H:%M:%S"), "InUseByCnt": len(item["InUseBy"]), "Issuer": item["Issuer"], "Status": item["Status"], "Type": item["Type"], } print(dump_json(data))