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