def get_accounts_in_ou()

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