Skip to content

Commit 1bddbdb

Browse files
authored
Merge pull request #427 from mmojzis/ec2_stack_methods
[RFR]EC2 create_stack method
2 parents b725b0a + def6aac commit 1bddbdb

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

wrapanapi/systems/ec2.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,11 @@ def creation_time(self):
268268
self.refresh()
269269
return self.raw.creation_time
270270

271+
@property
272+
def status_active(self):
273+
self.refresh()
274+
return self.raw.stack_status in StackStates.ACTIVE
275+
271276
def delete(self):
272277
"""
273278
Removes the stack on the provider
@@ -1425,3 +1430,24 @@ def list_regions(self, verbose=False):
14251430
ssm_response = self.ssm_connection.get_parameter(Name=tmp)
14261431
verbose_region_names.append(ssm_response['Parameter']['Value'])
14271432
return verbose_region_names
1433+
1434+
def create_stack(self, name, template_url=None, template_body=None, parameters=None,
1435+
capabilities=None):
1436+
if (not template_body and not template_url) or (template_body and template_url):
1437+
raise ValueError("Either template_body or template_url must be set and not both!")
1438+
stack_kwargs = {
1439+
'StackName': name,
1440+
}
1441+
if template_body:
1442+
stack_kwargs['TemplateBody'] = template_body
1443+
else:
1444+
stack_kwargs['TemplateURL'] = template_url
1445+
if parameters:
1446+
stack_kwargs['Parameters'] = parameters
1447+
if capabilities:
1448+
stack_kwargs['Capabilities'] = capabilities
1449+
1450+
response = self.cloudformation_connection.create_stack(**stack_kwargs)
1451+
stack_id = response.get('StackId')
1452+
return CloudFormationStack(system=self, uuid=stack_id,
1453+
raw=self.cloudformation_resource.Stack(stack_id))

0 commit comments

Comments
 (0)