in source/manifest/manifest_parser.py [0:0]
def get_accounts_in_ou(self, ou_id_to_account_map, ou_name_to_id_map, ou_list):
accounts_in_ou = []
ou_ids_manifest = []
accounts_in_nested_ou = []
if 'Root' in ou_list:
accounts_list, region_list = self.get_accounts_in_ct_baseline_config_stack_set()
accounts_in_ou = accounts_list
else:
# convert OU Name to OU IDs
for ou_name in ou_list:
if ':' in ou_name: # Process nested OU. For example: TestOU1:TestOU2:TestOU3
ou_id = self.get_ou_id(ou_name, ":")
accounts_in_nested_ou.extend(self.get_active_accounts_in_ou(ou_id))
self.logger.debug("[manifest_parser.get_accounts_in_ou] ou_name: {}; ou_id: {}; accounts_in_nested_ou: {}" \
.format(ou_name, ou_id, accounts_in_nested_ou))
else:
ou_id = [value for key, value in ou_name_to_id_map.items()
if ou_name == key]
ou_ids_manifest.extend(ou_id)
self.logger.debug("[manifest_parser.get_accounts_in_ou] ou_name: {}; ou_id: {}; ou_ids_manifest for non-nested ous: {}" \
.format(ou_name, ou_id, ou_ids_manifest))
for ou_id, accounts in ou_id_to_account_map.items():
if ou_id in ou_ids_manifest:
accounts_in_ou.extend(accounts)
self.logger.debug("[manifest_parser.get_accounts_in_ou] Accounts in non_nested OUs: {}" \
.format(accounts_in_ou))
self.logger.debug("[manifest_parser.get_accounts_in_ou] Accounts in nested OUs: {}" \
.format(accounts_in_nested_ou))
# add accounts for nested ous
accounts_in_ou.extend(accounts_in_nested_ou)
self.logger.info(">>> Accounts: {} in OUs: {}"
.format(accounts_in_ou, ou_list))
return accounts_in_ou