in source/manifest/sm_execution_manager.py [0:0]
def run_execution_sequential_mode(self):
status, failed_execution_list = None, []
# start executions at given intervals
for sm_input in self.sm_input_list:
updated_sm_input = self.populate_ssm_params(sm_input)
stack_set_name = sm_input.get('ResourceProperties')\
.get('StackSetName', '')
template_matched, parameters_matched = \
self.compare_template_and_params(sm_input, stack_set_name)
self.logger.info("Stack Set Name: {} | "
"Same Template?: {} | "
"Same Parameters?: {}"
.format(stack_set_name,
template_matched,
parameters_matched))
if template_matched and parameters_matched and self.stack_set_exist:
start_execution_flag = self.compare_stack_instances(
sm_input,
stack_set_name
)
# template and parameter does not require update
updated_sm_input.update({'SkipUpdateStackSet': 'yes'})
else:
# the template or parameters needs to be updated
# start SM execution
start_execution_flag = True
if start_execution_flag:
sm_exec_name = self.get_sm_exec_name(updated_sm_input)
sm_exec_arn = self.setup_execution(updated_sm_input,
sm_exec_name)
self.list_sm_exec_arns.append(sm_exec_arn)
status, failed_execution_list = \
self.monitor_state_machines_execution_status()
if status == 'FAILED':
return status, failed_execution_list
else:
self.logger.info("State Machine execution completed. "
"Starting next execution...")
self.logger.info("All State Machine executions completed.")
return status, failed_execution_list