def do_query()

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)