44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
require 'json'
|
|
require 'lib/stack_template_presets/factory'
|
|
|
|
module Devops
|
|
module Version2_0
|
|
module Handler
|
|
class StackTemplatePreset
|
|
|
|
def self.get_presets
|
|
lambda {
|
|
# check_privileges("stack_template_presets", "r")
|
|
json Devops::StackTemplatePresetsFactory.list.map(&:to_hash)
|
|
}
|
|
end
|
|
|
|
def self.get_preset
|
|
lambda {
|
|
# check_privileges("stack_template_presets", "r")
|
|
json Devops::StackTemplatePresetsFactory.get(params['id']).to_hash
|
|
}
|
|
end
|
|
|
|
def self.build_stack_template
|
|
lambda {
|
|
# check_privileges("stack_template_presets", "r")
|
|
check_privileges('stack_template', 'w')
|
|
|
|
attrs = create_object_from_json_body
|
|
|
|
provider, stack_id, parameters = attrs.fetch('provider'), attrs.fetch('stack'), attrs.fetch('parameters')
|
|
|
|
preset = Devops::StackTemplatePresetsFactory.get(attrs.fetch('id'))
|
|
stack = preset.create_stack_from_preset(provider, stack_id, parameters)
|
|
|
|
create_response 'Created', stack.to_hash, 201
|
|
}
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|