62 lines
2.3 KiB
Ruby
62 lines
2.3 KiB
Ruby
module Devops
|
|
module API2_0
|
|
module Routes
|
|
module StackRoutes
|
|
|
|
def self.registered(app)
|
|
|
|
app.get_with_headers '/stacks', :headers => [:accept] do
|
|
check_privileges("stack", "r")
|
|
json Devops::API2_0::Handler::Stack.new(request, params).stacks.map(&:to_hash)
|
|
end
|
|
|
|
app.get_with_headers '/stacks/provider/:provider', :headers => [:accept] do |provider|
|
|
check_privileges("stack", "r")
|
|
check_provider(provider)
|
|
json Devops::API2_0::Handler::Stack.new(request, params).stacks_for_provider(provider).map(&:to_hash)
|
|
end
|
|
|
|
app.post_with_headers "/stack", :headers => [:accept] do
|
|
check_privileges("stack", "w")
|
|
object = create_object_from_json_body
|
|
m = Devops::API2_0::Handler::Stack.new(request, params).create_stack object
|
|
create_response "Created", m.to_hash, 201
|
|
end
|
|
|
|
hash = {}
|
|
|
|
hash['GET'] = lambda { |stack_id|
|
|
check_privileges("stack", "r")
|
|
json Devops::API2_0::Handler::Stack.new(request, params).stack(stack_id).to_hash
|
|
}
|
|
|
|
hash['DELETE'] = lambda { |stack_id|
|
|
check_privileges("stack", "w")
|
|
Devops::API2_0::Handler::Stack.new(request, params).delete_stack(stack_id)
|
|
create_response("Stack '#{stack_id}' has been removed")
|
|
}
|
|
app.multi_routes '/stack/:stack_id', {:headers => [:accept]}, hash
|
|
|
|
app.post_with_headers "/stack/:stack_id/sync_details", :headers => [:accept] do |stack_id|
|
|
check_privileges("stack", "w")
|
|
json Devops::API2_0::Handler::Stack.new(request, params).sync_details(stack_id).to_hash
|
|
end
|
|
|
|
app.get_with_headers "/stack/:stack_id/resources", :headers => [:accept] do |stack_id|
|
|
check_privileges("stack", "r")
|
|
json Devops::API2_0::Handler::Stack.new(request, params).resources(stack_id, nil)
|
|
end
|
|
|
|
app.get_with_headers "/stack/:stack_id/resources/:resource_id", :headers => [:accept] do |stack_id, resource_id|
|
|
check_privileges("stack", "r")
|
|
json Devops::API2_0::Handler::Stack.new(request, params).resource(stack_id, resource_id)
|
|
end
|
|
|
|
puts "Stack routes initialized"
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|