fluke/devops-service/app/api2/routes/stack_presets.rb
2015-07-30 15:37:43 +03:00

71 lines
2.3 KiB
Ruby

module Devops
module API2_0
module Routes
module StackPresetRoutes
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'} ]
#
app.get_with_headers "/stack_presets", :headers => [:accept] do
# check_privileges("stack_template_presets", "r")
json Devops::API2_0::Handler::StackPreset.new(request).presets.map(&:to_hash)
end
# Get information about stack_template_preset
#
# * *Request*
# - method : GET
# - headers :
# - Accept: application/json
#
# * *Returns* : hash
# {id: 'preset id', template_preset_body: 'long body'}
#
app.get_with_headers "/stack_presets/:id", :headers => [:accept] do |id|
# check_privileges("stack_template_presets", "r")
json Devops::API2_0::Handler::StackPreset.new(request).preset(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
#
# TODO: not stack template, but stack itself
#
# * *Returns* : created stack template model
# {
# id: 'template id',
# provider: 'provider',
# template_body: 'long body'
# }
#
app.post_with_headers "/stack_presets/:id/apply", :headers => [:accept] do |id|
# check_privileges("stack_template_presets", "r")
check_privileges('stack_template', 'w')
stack = Devops::API2_0::Handler::StackPreset.new(request).apply(id)
create_response 'Created', stack.to_hash, 201
end
puts "Stack template presets routes initialized"
end
end
end
end
end