def __get_product_provision_list()

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


    def __get_product_provision_list(self, product_id):
        """get products provision name list"""

        provision_name_list = {}

        try:
            provision_list = self.sc_client.search_provisioned_products(
                AccessLevelFilter={
                    'Key': 'Account',
                    'Value': 'self'
                },
                Filters={
                    'SearchQuery': [
                        product_id
                    ]
                }
            )

            if 'ProvisionedProducts' in provision_list:
                for provision in provision_list['ProvisionedProducts']:
                    if provision['Type'] == 'CFN_STACKSET' and 'PhysicalId' in provision:
                        provision_id = provision['Id']
                        stack_set_name = ((provision['PhysicalId']).split('/')[1]).split(':')[0]
                        provision_name_list[provision['Name']] = {"id": provision_id, "stack_set_name": stack_set_name}

        except ClientError as error:
            self._log_error(f'Error obtain provision list for product {product_id}. Error: {error.response["Error"]}')
            self._send_notification('Error obtain provision list for product', f'Product: {product_id} Error: {error.response["Error"]}')

        return provision_name_list