def __get_products_to_provision()

in control-tower-account-factory/src/handler.py [0:0]


    def __get_products_to_provision(self, organization_unit, provision_product):
        """process products that need to be provision in new account"""
        self._log_info(f'Validating products for ou: {organization_unit}')
        if (organization_unit in self.configuration['organization_units'] and 'products' in self.configuration['organization_units'][organization_unit]):
            for product in self.configuration['organization_units'][organization_unit]['products']:
                if 'product_name' in product and 'provision_name' in product and 'portfolio_name' in product and 'regions' in product:
                    # check if product version provided in configuration
                    product_version = product['product_version'] if 'product_version' in product else None
                    # obtain product id and artifact id
                    product_id, artifact_id, path_id, version = self._get_product_id(product['product_name'], product_version, product['portfolio_name'])
                    if product_id and artifact_id and path_id:
                        if self._update_product_constraint(product_id, product['portfolio_name'], product['regions'], self.account_id):
                            product['id'] = product_id
                            product['artifact'] = artifact_id
                            product['version'] = version
                            product['path'] = path_id
                            product['provision_name'] = f'{self.account_id }-{product["provision_name"]}'
                            provision_product.append(product)
        return provision_product