fluke/devops-service/db/mongo/models/stack/stack_ec2.rb
2015-11-18 22:45:39 +03:00

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|
%w(Parameters TemplateBody TemplateURL Capabilities).include?(key)
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