Add UpdateStack functionality for Cloudformation.
This commit is contained in:
parent
7f73d7e26d
commit
53fff2eb84
6 changed files with 210 additions and 29 deletions
|
|
@ -14,19 +14,25 @@ class FakeStack(object):
|
|||
self.stack_id = stack_id
|
||||
self.name = name
|
||||
self.template = template
|
||||
self.template_dict = json.loads(self.template)
|
||||
self.parameters = parameters
|
||||
self.region_name = region_name
|
||||
self.notification_arns = notification_arns if notification_arns else []
|
||||
self.status = 'CREATE_COMPLETE'
|
||||
|
||||
template_dict = json.loads(self.template)
|
||||
self.description = template_dict.get('Description')
|
||||
self.description = self.template_dict.get('Description')
|
||||
self.resource_map = self._create_resource_map()
|
||||
self.output_map = self._create_output_map()
|
||||
|
||||
self.resource_map = ResourceMap(stack_id, name, parameters, region_name, template_dict)
|
||||
self.resource_map.create()
|
||||
def _create_resource_map(self):
|
||||
resource_map = ResourceMap(self.stack_id, self.name, self.parameters, self.region_name, self.template_dict)
|
||||
resource_map.create()
|
||||
return resource_map
|
||||
|
||||
self.output_map = OutputMap(self.resource_map, template_dict)
|
||||
self.output_map.create()
|
||||
def _create_output_map(self):
|
||||
output_map = OutputMap(self.resource_map, self.template_dict)
|
||||
output_map.create()
|
||||
return output_map
|
||||
|
||||
@property
|
||||
def stack_parameters(self):
|
||||
|
|
@ -40,6 +46,11 @@ class FakeStack(object):
|
|||
def stack_outputs(self):
|
||||
return self.output_map.values()
|
||||
|
||||
def update(self, template):
|
||||
self.template = template
|
||||
self.resource_map.update(json.loads(template))
|
||||
self.output_map = self._create_output_map()
|
||||
|
||||
|
||||
class CloudFormationBackend(BaseBackend):
|
||||
|
||||
|
|
@ -86,10 +97,10 @@ class CloudFormationBackend(BaseBackend):
|
|||
# Lookup by stack name
|
||||
return [stack for stack in self.stacks.values() if stack.name == name_or_stack_id][0]
|
||||
|
||||
# def update_stack(self, name, template):
|
||||
# stack = self.get_stack(name)
|
||||
# stack.template = template
|
||||
# return stack
|
||||
def update_stack(self, name, template):
|
||||
stack = self.get_stack(name)
|
||||
stack.update(template)
|
||||
return stack
|
||||
|
||||
def list_stack_resources(self, stack_name_or_id):
|
||||
stack = self.get_stack(stack_name_or_id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue