def __init__(self, metadata=None, template={}): self.metadata = metadata or {} self.template = template or {} self._template_raw = clone_safe(self.template) self.template_original = clone_safe(self.template) # initialize resources for resource_id, resource in self.template_resources.items(): resource['LogicalResourceId'] = self.template_original['Resources'][resource_id]['LogicalResourceId'] = ( resource.get('LogicalResourceId') or resource_id) # initialize stack template attributes self.template['StackId'] = self.metadata['StackId'] = (self.metadata.get('StackId') or aws_stack.cloudformation_stack_arn(self.stack_name, short_uid())) self.template['Parameters'] = self.template.get('Parameters') or {} self.template['Outputs'] = self.template.get('Outputs') or {} # initialize metadata self.metadata['Parameters'] = self.metadata.get('Parameters') or [] self.metadata['StackStatus'] = 'CREATE_IN_PROGRESS' self.metadata['CreationTime'] = self.metadata.get('CreationTime') or timestamp_millis() # maps resource id to resource state self.resource_states = {} # maps resource id to moto resource class instance (TODO: remove in the future) self.moto_resource_statuses = {} # list of stack events self.events = [] # list of stack change sets self.change_sets = [] # initialize parameters for i in range(1, 100): key = 'Parameters.member.%s.ParameterKey' % i value = 'Parameters.member.%s.ParameterValue' % i key = self.metadata.get(key) value = self.metadata.get(value) if not key: break self.metadata['Parameters'].append({'ParameterKey': key, 'ParameterValue': value})
def __init__(self, metadata=None, template=None): if template is None: template = {} self.metadata = metadata or {} self.template = template or {} self._template_raw = clone_safe(self.template) self.template_original = clone_safe(self.template) # initialize resources for resource_id, resource in self.template_resources.items(): resource["LogicalResourceId"] = self.template_original["Resources"][resource_id][ "LogicalResourceId" ] = (resource.get("LogicalResourceId") or resource_id) # initialize stack template attributes stack_id = self.metadata.get("StackId") or aws_stack.cloudformation_stack_arn( self.stack_name, short_uid() ) self.template["StackId"] = self.metadata["StackId"] = stack_id self.template["Parameters"] = self.template.get("Parameters") or {} self.template["Outputs"] = self.template.get("Outputs") or {} self.template["Conditions"] = self.template.get("Conditions") or {} # initialize metadata self.metadata["Parameters"] = self.metadata.get("Parameters") or [] self.metadata["StackStatus"] = "CREATE_IN_PROGRESS" self.metadata["CreationTime"] = self.metadata.get("CreationTime") or timestamp_millis() # maps resource id to resource state self._resource_states = {} # list of stack events self.events = [] # list of stack change sets self.change_sets = []
def __init__(self, metadata=None, template=None): if template is None: template = {} self.metadata = metadata or {} self.template = template or {} self._template_raw = clone_safe(self.template) self.template_original = clone_safe(self.template) # initialize resources for resource_id, resource in self.template_resources.items(): resource["LogicalResourceId"] = self.template_original[ "Resources"][resource_id]["LogicalResourceId"] = ( resource.get("LogicalResourceId") or resource_id) # initialize stack template attributes self.template["StackId"] = self.metadata[ "StackId"] = self.metadata.get( "StackId") or aws_stack.cloudformation_stack_arn( self.stack_name, short_uid()) self.template["Parameters"] = self.template.get("Parameters") or {} self.template["Outputs"] = self.template.get("Outputs") or {} self.template["Conditions"] = self.template.get("Conditions") or {} # initialize metadata self.metadata["Parameters"] = self.metadata.get("Parameters") or [] self.metadata["StackStatus"] = "CREATE_IN_PROGRESS" self.metadata["CreationTime"] = self.metadata.get( "CreationTime") or timestamp_millis() # maps resource id to resource state self._resource_states = {} # list of stack events self.events = [] # list of stack change sets self.change_sets = [] # initialize parameters for i in range(1, 100): key = "Parameters.member.%s.ParameterKey" % i value = "Parameters.member.%s.ParameterValue" % i key = self.metadata.get(key) value = self.metadata.get(value) if not key: break self.metadata["Parameters"].append({ "ParameterKey": key, "ParameterValue": value })