sinatra multi routes
This commit is contained in:
parent
ad4c823251
commit
d7ac68c592
@ -5,15 +5,6 @@ module Devops
|
|||||||
module DeployRoutes
|
module DeployRoutes
|
||||||
|
|
||||||
def self.registered(app)
|
def self.registered(app)
|
||||||
app.after "/deploy" do
|
|
||||||
statistic
|
|
||||||
end
|
|
||||||
|
|
||||||
app.before "/deploy" do
|
|
||||||
check_headers :content_type
|
|
||||||
check_privileges("server", "x")
|
|
||||||
broadcast(:devops_deploy, "deploy")
|
|
||||||
end
|
|
||||||
|
|
||||||
# Run chef-client on reserved server
|
# Run chef-client on reserved server
|
||||||
#
|
#
|
||||||
@ -29,7 +20,7 @@ module Devops
|
|||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
# * *Returns* : text stream
|
# * *Returns* : text stream
|
||||||
app.post "/deploy", &Devops::Version2_0::Handler::Deploy.deploy
|
app.post_with_headers "/deploy", :headers => [:content_type], &Devops::Version2_0::Handler::Deploy.deploy
|
||||||
|
|
||||||
puts "Deploy routes initialized"
|
puts "Deploy routes initialized"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -14,15 +14,6 @@ module Devops
|
|||||||
check_array(@images, "Request body should contains an array with strings")
|
check_array(@images, "Request body should contains an array with strings")
|
||||||
end
|
end
|
||||||
|
|
||||||
app.after "/filter/:provider/image" do
|
|
||||||
statistic
|
|
||||||
end
|
|
||||||
|
|
||||||
app.before "/filter/:provider/images" do
|
|
||||||
check_headers :accept
|
|
||||||
check_privileges("filter", "r")
|
|
||||||
check_provider(params[:provider])
|
|
||||||
end
|
|
||||||
# Get list of images filters for :provider
|
# Get list of images filters for :provider
|
||||||
#
|
#
|
||||||
# Devops can works with images from filters list only
|
# Devops can works with images from filters list only
|
||||||
@ -41,7 +32,9 @@ module Devops
|
|||||||
# [
|
# [
|
||||||
# "36dc7618-4178-4e29-be43-286fbfe90f50"
|
# "36dc7618-4178-4e29-be43-286fbfe90f50"
|
||||||
# ]
|
# ]
|
||||||
app.get "/filter/:provider/images", &Devops::Version2_0::Handler::Filter.get_filters
|
app.get_with_headers "/filter/:provider/images", :headers => [:accept], &Devops::Version2_0::Handler::Filter.get_filters
|
||||||
|
|
||||||
|
hash = {}
|
||||||
|
|
||||||
# Add image ids to filter for :provider
|
# Add image ids to filter for :provider
|
||||||
#
|
#
|
||||||
@ -56,7 +49,7 @@ module Devops
|
|||||||
# ] -> array of image ids to add to filter
|
# ] -> array of image ids to add to filter
|
||||||
#
|
#
|
||||||
# * *Returns* : list of images filters for :provider
|
# * *Returns* : list of images filters for :provider
|
||||||
app.put "/filter/:provider/image", &Devops::Version2_0::Handler::Filter.add_filter
|
hash["PUT"] = Devops::Version2_0::Handler::Filter.add_filter
|
||||||
|
|
||||||
# Delete image ids from filter for :provider
|
# Delete image ids from filter for :provider
|
||||||
#
|
#
|
||||||
@ -71,7 +64,9 @@ module Devops
|
|||||||
# ] -> array of image ids to delete from filter
|
# ] -> array of image ids to delete from filter
|
||||||
#
|
#
|
||||||
# * *Returns* : list of images filters for :provider
|
# * *Returns* : list of images filters for :provider
|
||||||
app.delete "/filter/:provider/image", &Devops::Version2_0::Handler::Filter.delete_filter
|
hash["DELETE"] = Devops::Version2_0::Handler::Filter.delete_filter
|
||||||
|
|
||||||
|
app.multi_routes "/filter/:provider/image", {:headers => [:accept, :content_type]}, hash
|
||||||
|
|
||||||
puts "Filter routes initialized"
|
puts "Filter routes initialized"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -11,6 +11,9 @@ module Devops
|
|||||||
|
|
||||||
def self.deploy
|
def self.deploy
|
||||||
lambda {
|
lambda {
|
||||||
|
check_privileges("server", "x")
|
||||||
|
# TODO: send message
|
||||||
|
#broadcast(:devops_deploy, "deploy")
|
||||||
r = create_object_from_json_body
|
r = create_object_from_json_body
|
||||||
names = check_array(r["names"], "Parameter 'names' should be a not empty array of strings")
|
names = check_array(r["names"], "Parameter 'names' should be a not empty array of strings")
|
||||||
tags = check_array(r["tags"], "Parameter 'tags' should be an array of strings", String, true) || []
|
tags = check_array(r["tags"], "Parameter 'tags' should be an array of strings", String, true) || []
|
||||||
|
|||||||
@ -5,6 +5,8 @@ module Devops
|
|||||||
|
|
||||||
def self.get_filters
|
def self.get_filters
|
||||||
lambda {
|
lambda {
|
||||||
|
check_privileges("filter", "r")
|
||||||
|
check_provider(params[:provider])
|
||||||
json settings.mongo.available_images(params[:provider])
|
json settings.mongo.available_images(params[:provider])
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -55,23 +55,6 @@ module Devops
|
|||||||
# ]
|
# ]
|
||||||
app.get "/images/provider/:provider", :headers => [:accept], &Devops::Version2_0::Handler::Image.get_provider_images
|
app.get "/images/provider/:provider", :headers => [:accept], &Devops::Version2_0::Handler::Image.get_provider_images
|
||||||
|
|
||||||
# Get devops image by id
|
|
||||||
#
|
|
||||||
# * *Request*
|
|
||||||
# - method : GET
|
|
||||||
# - headers :
|
|
||||||
# - Accept: application/json
|
|
||||||
#
|
|
||||||
# * *Returns* :
|
|
||||||
# {
|
|
||||||
# "provider": "openstack",
|
|
||||||
# "name": "centos-6.4-x86_64",
|
|
||||||
# "remote_user": "root",
|
|
||||||
# "bootstrap_template": null,
|
|
||||||
# "id": "36dc7618-4178-4e29-be43-286fbfe90f50"
|
|
||||||
# }
|
|
||||||
app.get "/image/:image_id", :headers => [:accept], &Devops::Version2_0::Handler::Image.get_image
|
|
||||||
|
|
||||||
# Create devops image
|
# Create devops image
|
||||||
#
|
#
|
||||||
# * *Request*
|
# * *Request*
|
||||||
@ -92,6 +75,24 @@ module Devops
|
|||||||
# 201 - Created
|
# 201 - Created
|
||||||
app.post "/image", &Devops::Version2_0::Handler::Image.create_image
|
app.post "/image", &Devops::Version2_0::Handler::Image.create_image
|
||||||
|
|
||||||
|
hash = {}
|
||||||
|
# Get devops image by id
|
||||||
|
#
|
||||||
|
# * *Request*
|
||||||
|
# - method : GET
|
||||||
|
# - headers :
|
||||||
|
# - Accept: application/json
|
||||||
|
#
|
||||||
|
# * *Returns* :
|
||||||
|
# {
|
||||||
|
# "provider": "openstack",
|
||||||
|
# "name": "centos-6.4-x86_64",
|
||||||
|
# "remote_user": "root",
|
||||||
|
# "bootstrap_template": null,
|
||||||
|
# "id": "36dc7618-4178-4e29-be43-286fbfe90f50"
|
||||||
|
# }
|
||||||
|
hash["GET"] = Devops::Version2_0::Handler::Image.get_image
|
||||||
|
|
||||||
# Update devops image
|
# Update devops image
|
||||||
#
|
#
|
||||||
# * *Request*
|
# * *Request*
|
||||||
@ -110,7 +111,7 @@ module Devops
|
|||||||
#
|
#
|
||||||
# * *Returns* :
|
# * *Returns* :
|
||||||
# 200 - Updated
|
# 200 - Updated
|
||||||
app.put "/image/:image_id", &Devops::Version2_0::Handler::Image.update_image
|
hash["PUT"] = Devops::Version2_0::Handler::Image.update_image
|
||||||
|
|
||||||
# Delete devops image
|
# Delete devops image
|
||||||
#
|
#
|
||||||
@ -121,7 +122,9 @@ module Devops
|
|||||||
#
|
#
|
||||||
# * *Returns* :
|
# * *Returns* :
|
||||||
# 200 - Deleted
|
# 200 - Deleted
|
||||||
app.delete "/image/:image_id", &Devops::Version2_0::Handler::Image.delete_image
|
hash["DELETE"] = Devops::Version2_0::Handler::Image.delete_image
|
||||||
|
|
||||||
|
app.multi_routes "/image/:image_id", {}, hash
|
||||||
|
|
||||||
puts "Image routes initialized"
|
puts "Image routes initialized"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -59,6 +59,21 @@ module Sinatra
|
|||||||
statistic
|
statistic
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def multi_routes path, opts={}, hash={}
|
||||||
|
headers = opt.delete(:headers) || []
|
||||||
|
before path do
|
||||||
|
check_headers *headers
|
||||||
|
end
|
||||||
|
|
||||||
|
hash.each do |method, block|
|
||||||
|
route(method, path, opts, &block)
|
||||||
|
end
|
||||||
|
|
||||||
|
after path do
|
||||||
|
statistic
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Check request headers
|
# Check request headers
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user