in aws_resource_scan.py [0:0]
def do_query(services, selected_regions=(), selected_operations=(), verbose=0,
parallel=32):
"""For the given services, execute all selected operations.
Args:
services: specified services.
selected_regions: specified regions.
selected_operations: if limiting operations list here.
verbose: enable verbose mode.
parallel: number of threads to spin up. default=32.
"""
to_run = []
dependencies = {}
for service in services:
for region in get_regions_for_service(service, selected_regions):
for operation in get_listing_operations(service,
region, selected_operations):
if operation in reference_aws.DEPENDENT_OPERATIONS:
dependencies[reference_aws.DEPENDENT_OPERATIONS[operation],
region] = ([service, region,
reference_aws.DEPENDENT_OPERATIONS[operation]])
if operation in reference_aws.DEPENDENT_OPERATIONS.values():
dependencies[operation, region] = [service, region, operation]
continue
to_run.append([service, region, operation])
random.shuffle(to_run) # Distribute requests across endpoints
results_by_type = collections.defaultdict(list)
results_by_type = execute_query(dependencies.values(), verbose,
parallel, results_by_type)
results_by_type = execute_query(to_run, verbose, parallel, results_by_type)