def show_permissions(policies: Tuple[str], show_policy: bool): db = readonly_session() results = find_permissions(db, policies) for result in results: if show_policy: print(result['action'], ', '.join(result['policies'])) else: print(result['action'])
def cmd(provider_spec: Optional[str]): db = readonly_session() providers = _provider_for_spec(db, provider_spec) if len(providers) > 0: for provider in providers: scoped_db = scoped_readonly_session(provider.id) print_status(scoped_db, provider) scoped_db.close() elif provider_spec is None: print('No accounts are currently imported') else: print('No matching accounts are currently imported')
def cmd(query_source: str): if os.path.isfile(query_source): with open(query_source, 'r') as f: queries = [f.read()] elif os.path.isdir(query_source): queries = _directory_queries(query_source) else: queries = [query_source] db = readonly_session() for query in queries: results = run_query(db, query) print( tabulate([row.values() for row in results.rows], headers=results.columns))
def map_resource(import_id: int): db = readonly_session() raw = db.query(RawImport).get(import_id) if raw is None: raise RuntimeError('Unknown RawImport') import_job = db.query(ImportJob).get(raw.import_job_id) if import_job is None: raise RuntimeError('Unknown import job') mapper = _get_mapper(import_job) print(raw.raw_resources()) import_resource_name = raw.resource_name _, creds = account_paths_for_import(db, import_job)[0] uri_fn = get_arn_fn(creds.scope, partition='aws') results = list( mapper.map_resources(raw.raw_resources(), raw.context, raw.service, import_resource_name, uri_fn)) print(results)
def show_status(): db = readonly_session() result = db.execute(''' SELECT PA.id AS id, PA.name AS account, PA.provider AS provider, MAX(IJ.id) AS recent_import_id FROM provider_account AS PA, import_job AS IJ WHERE IJ.provider_account_id = PA.id GROUP BY PA.id ''') headers = ['Id', 'Account', 'Provider', 'Recent Import Id'] print(tabulate([row.values() for row in result], headers=headers))
def list_accounts(): db = readonly_session() accounts = ProviderAccount.all(db) print( tabulate([(account.provider, account.name) for account in accounts], headers=['Type', 'Account']))