in source/manifest/manifest_parser.py [0:0]
def get_final_account_list(self, account_list, accounts_in_all_ous,
accounts_in_ou, name_to_account_map):
# separate account id and emails
name_list = []
new_account_list = []
self.logger.info(account_list)
for item in account_list:
# if an actual account ID
if item.isdigit() and len(item) == 12:
new_account_list.append(item)
self.logger.info(new_account_list)
else:
name_list.append(item)
self.logger.info(name_list)
# check if name list is empty
if name_list:
# convert OU Name to OU IDs
for name in name_list:
name_account = [value for key, value in
name_to_account_map.items()
if name.lower() == key.lower()]
self.logger.info(f"==== name_account: {name_account}")
self.logger.info("%%%%%%% Name {} - Account {}"
.format(name, name_account))
new_account_list.extend(name_account)
# Remove account ids from the manifest that is not
# in the organization or not active
sanitized_account_list = list(
set(new_account_list).intersection(set(accounts_in_all_ous))
)
self.logger.info("Print Updated Manifest Account List")
self.logger.info(sanitized_account_list)
# merge account lists manifest account list and
# accounts under OUs in the manifest
sanitized_account_list.extend(accounts_in_ou)
# remove duplicate accounts
return list(set(sanitized_account_list))