41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
module Devops
|
|
module Model
|
|
class StackEc2 < StackBase
|
|
|
|
def initialize attr={}
|
|
self.provider = 'ec2'
|
|
super(attr)
|
|
end
|
|
|
|
def stack_status
|
|
self.details['StackStatus'] if self.details
|
|
end
|
|
|
|
def bson_safe_details
|
|
return unless details
|
|
result = details.dup
|
|
result['CreationTime'] = result['CreationTime'].to_s
|
|
result
|
|
end
|
|
|
|
def update_in_cloud!(params)
|
|
parameters = params.keep_if do |key, value|
|
|
%w(Parameters TemplateBody TemplateURL Capabilities)
|
|
end
|
|
|
|
provider_instance.update_stack(self, parameters)
|
|
end
|
|
|
|
# We should improve this functionality: stack will be rollbacked
|
|
# if there are errors during stack_template changing, so we should track
|
|
# that process and persist changes only in case of success.
|
|
def change_stack_template!(stack_template)
|
|
self.stack_template = stack_template
|
|
update_in_cloud!('TemplateBody' => template_body)
|
|
Devops::Db.connector.stack_update(self)
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|