52 lines
2.0 KiB
Ruby
52 lines
2.0 KiB
Ruby
module Devops
|
|
module API2_0
|
|
module Routes
|
|
module StackTemplateRoutes
|
|
|
|
def self.registered(app)
|
|
app.get_with_headers '/stack_templates', :headers => [:accept] do
|
|
check_privileges('stack_template', 'r')
|
|
json Devops::API2_0::Handler::StackTemplate.new(request).stack_templates.map(&:to_hash)
|
|
end
|
|
|
|
app.get_with_headers '/stack_templates/provider/:provider', :headers => [:accept] do |provider|
|
|
check_privileges('stack_template', 'r')
|
|
check_provider(provider)
|
|
json Devops::API2_0::Handler::StackTemplate.new(request).stack_templates_for_provider(provider).map(&:to_hash)
|
|
end
|
|
|
|
app.post_with_headers "/stack_template/:provider", :headers => [:accept] do |provider|
|
|
check_privileges('stack_template', 'w')
|
|
check_provider(provider)
|
|
model = Devops::API2_0::Handler::StackTemplate.new(request).create_stack_template(provider)
|
|
create_response 'Created', model.to_hash, 201
|
|
end
|
|
|
|
app.post_with_headers "/stack_template/:id/update_template_url", :headers => [:accept] do |template_id|
|
|
check_privileges('stack_template', 'w')
|
|
json Devops::API2_0::Handler::StackTemplate.new(request).update_template_url(template_id).to_hash
|
|
end
|
|
|
|
hash = {}
|
|
|
|
hash['GET'] = lambda {|stack_template_id|
|
|
check_privileges('stack_template', 'r')
|
|
json Devops::API2_0::Handler::StackTemplate.new(request).get_stack_template(stack_template_id).to_hash
|
|
}
|
|
|
|
hash['DELETE'] = lambda {|stack_template_id|
|
|
check_privileges('stack_template', 'w')
|
|
Devops::API2_0::Handler::StackTemplate.new(request).delete_stack_template(stack_template_id)
|
|
create_response("Template '#{stack_template_id}' has been removed")
|
|
}
|
|
|
|
app.multi_routes '/stack_template/:stack_template_id', {}, hash
|
|
|
|
puts "Stack_template routes initialized"
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|