in source/state_machine_handler.py [0:0]
def delete_stack_instances(self):
self.logger.info("Executing: " + self.__class__.__name__ + "/"
+ inspect.stack()[0][3])
self.logger.info(self.params)
# set to default values (new instance creation)
account_list = self.params.get('AccountList')
# full region list
region_list = self.event.get('ExistingRegionList')
# if DeleteAccountList is not empty
if self.event.get('DeleteAccountList') is not None and len(self.event.get('DeleteAccountList')) != 0:
account_list = self.event.get('DeleteAccountList')
# full region list
region_list = self.event.get('ExistingRegionList')
# if DeleteRegionList is not empty
if self.event.get('DeleteRegionList') is not None and len(self.event.get('DeleteRegionList')) != 0:
region_list = self.event.get('DeleteRegionList')
# both DeleteAccountList and DeleteRegionList is not empty
if self.event.get('LoopFlag') == 'yes':
# delete stack instance in deleted account with all regions
# stack instances in all regions for existing accounts
# will be deletion in the second round
account_list = self.event.get('DeleteAccountList')
# full region list
region_list = self.event.get('ExistingRegionList')
self.event.update({'ActiveAccountList': account_list})
self.event.update({'ActiveRegionList': region_list})
# Delete stack_set_instance(s)
stack_set = StackSet(self.logger)
self.logger.info("Deleting Stack Instance: {}"
.format(self.params.get('StackSetName')))
response = stack_set.delete_stack_instances(
self.params.get('StackSetName'),
account_list,
region_list)
self.logger.info(response)
self.logger.info("Operation ID: {}"
.format(response.get('OperationId')))
self.event.update({'OperationId': response.get('OperationId')})
return self.event