fluke/devops-service/app/api2/routes/stack_template_presets.rb

72 lines
2.5 KiB
Ruby
Raw Normal View History

module Devops
2015-07-27 11:14:01 +03:00
module API2_0
module Routes
2015-07-08 13:43:31 +03:00
module StackTemplatePresetRoutes
def self.registered(app)
# Get list of available stack_template_presets
#
# * *Request*
# - method : GET
# - headers :
# - Accept: application/json
#
# * *Returns* : array of hashes
# [ {id: 'preset id', template_preset_body: 'long body'} ]
#
2015-07-27 11:14:01 +03:00
app.get_with_headers "/stack_template_presets", :headers => [:accept] do
# check_privileges("stack_template_presets", "r")
json Devops::API2_0::Handler::StackTemplatePreset.new(request, params).templates.map(&:to_hash)
end
# Get information about stack_template_preset
#
# * *Request*
# - method : GET
# - headers :
# - Accept: application/json
#
2015-07-08 15:56:24 +03:00
# * *Returns* : hash
# {id: 'preset id', template_preset_body: 'long body'}
#
2015-07-27 11:14:01 +03:00
app.get_with_headers "/stack_template_presets/:id", :headers => [:accept] do |id|
# check_privileges("stack_template_presets", "r")
json Devops::API2_0::Handler::StackTemplatePreset.new(request, params).template(id).to_hash
end
# Build stack template from preset
#
# * *Request*
# - method : POST
# - headers :
# - Accept: application/json
# - params :
# - provider: string
# - stack_template_id: id of stack template to create
# - template_attrs: hash with template attributes
#
2015-07-08 15:56:24 +03:00
# TODO: not stack template, but stack itself
#
# * *Returns* : created stack template model
# {
# id: 'template id',
# provider: 'provider',
# template_body: 'long body'
# }
#
2015-07-27 11:14:01 +03:00
app.post_with_headers "/stack_template_presets/:id/build_stack_template", :headers => [:accept] do |id|
# check_privileges("stack_template_presets", "r")
check_privileges('stack_template', 'w')
body = create_object_from_json_body
stack = Devops::API2_0::Handler::StackTemplatePreset.new(request, params).build_stack_template(id, body)
create_response 'Created', stack.to_hash, 201
end
puts "Stack template presets routes initialized"
end
end
end
end
end