def __get_provision_status()

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


    def __get_provision_status(self, provision_name):
        """return status of provisioning product"""

        status = ''

        search_query = f'name:{provision_name}'

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

            for provision in provision_info['ProvisionedProducts']:
                if provision['Status'] == 'AVAILABLE':
                    status = 'done'
                elif provision['Status'] in ['ERROR', 'TAINTED']:
                    status = 'failed'
                else:
                    status = 'progress'

        except ClientError as error:
            self._log_error(f'Error obtain provision status for {provision_name}. Error: {error.response["Error"]}')
            self._send_notification('Error obtain provision status', f'Error obtain provision status for {provision_name}. Error: {error.response["Error"]}')
            status = 'error'

        return status