def list_stack_instances_account_ids()

in source/state_machine_handler.py [0:0]


    def list_stack_instances_account_ids(self):
        self.logger.info("Executing: " + self.__class__.__name__ + "/"
                         + inspect.stack()[0][3])
        self.logger.info(self.params)

        if self.event.get('NextToken') is None \
                or self.event.get('NextToken') == 'Complete':
            accounts = []
        else:
            accounts = self.event.get('StackInstanceAccountList', [])

        # Check if stack instances exist
        stack_set = StackSet(self.logger)
        if self.event.get('NextToken') is not None and \
                self.event.get('NextToken') != 'Complete':
            response = stack_set.list_stack_instances(
                StackSetName=self.params.get('StackSetName'),
                MaxResults=20,
                NextToken=self.event.get('NextToken'))
        else:
            response = stack_set.list_stack_instances(
                StackSetName=self.params.get('StackSetName'),
                MaxResults=20)

        self.logger.info("List SI Accounts Response")
        self.logger.info(response)

        if response:
            if not response.get('Summaries'):  # 'True' if list is empty
                self.event.update({'NextToken': 'Complete'})
                self.logger.info("No existing stack instances found."
                                 " (Summaries List: Empty)")
            else:
                for instance in response.get('Summaries'):
                    account_id = instance.get('Account')
                    accounts.append(account_id)
                self.event.update({'StackInstanceAccountList':
                                   list(set(accounts))})
                self.logger.info("Next Token Returned: {}"
                                 .format(response.get('NextToken')))

                if response.get('NextToken') is None:
                    self.event.update({'NextToken': 'Complete'})
                    self.logger.info("No existing stack instances found."
                                     " (Summaries List: Empty)")
                else:
                    self.event.update({'NextToken':
                                       response.get('NextToken')})
        return self.event