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