2014-12-15 14:26:54 +03:00
|
|
|
module Devops
|
2015-07-17 20:22:29 +03:00
|
|
|
module API2_0
|
2014-12-22 14:22:04 +03:00
|
|
|
module Routes
|
2014-12-15 14:26:54 +03:00
|
|
|
module ServerRoutes
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
def self.registered(app)
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Get devops servers list
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : GET
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - params :
|
|
|
|
|
# - fields - show server fields, available values: project, deploy_env, provider, remote_user, private_ip, public_ip, created_at, created_by, static, key, reserved_by
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# [
|
|
|
|
|
# {
|
|
|
|
|
# "id": "instance id",
|
|
|
|
|
# "chef_node_name": "chef name"
|
|
|
|
|
# }
|
|
|
|
|
# ]
|
2015-07-17 20:22:29 +03:00
|
|
|
app.get_with_headers "/servers", :headers => [:accept] do
|
|
|
|
|
check_privileges("server", "r")
|
2015-07-30 15:37:43 +03:00
|
|
|
json Devops::API2_0::Handler::Server.new(request).servers
|
2015-07-17 20:22:29 +03:00
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Get chef nodes list
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : GET
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# [
|
|
|
|
|
# {
|
|
|
|
|
# "chef_node_name": "chef name"
|
|
|
|
|
# }
|
|
|
|
|
# ]
|
2015-07-17 20:22:29 +03:00
|
|
|
app.get_with_headers "/servers/chef", :headers => [:accept] do
|
|
|
|
|
check_privileges("server", "r")
|
2015-07-30 15:37:43 +03:00
|
|
|
json Devops::API2_0::Handler::Server.new(request).chef_servers
|
2015-07-17 20:22:29 +03:00
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Get provider servers list
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : GET
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# -ec2
|
|
|
|
|
# [
|
|
|
|
|
# {
|
|
|
|
|
# "state": "running",
|
|
|
|
|
# "name": "name",
|
|
|
|
|
# "image": "ami-83e4bcea",
|
|
|
|
|
# "flavor": "m1.small",
|
|
|
|
|
# "keypair": "ssh key",
|
|
|
|
|
# "instance_id": "i-8441bfd4",
|
|
|
|
|
# "dns_name": "ec2-204-236-199-49.compute-1.amazonaws.com",
|
|
|
|
|
# "zone": "us-east-1d",
|
|
|
|
|
# "private_ip": "10.215.217.210",
|
|
|
|
|
# "public_ip": "204.236.199.49",
|
|
|
|
|
# "launched_at": "2014-04-25 07:56:33 UTC"
|
|
|
|
|
# }
|
|
|
|
|
# ]
|
|
|
|
|
# -openstack
|
|
|
|
|
# [
|
|
|
|
|
# {
|
|
|
|
|
# "state": "ACTIVE",
|
|
|
|
|
# "name": "name",
|
|
|
|
|
# "image": "image id",
|
|
|
|
|
# "flavor": null,
|
|
|
|
|
# "keypair": "ssh key",
|
|
|
|
|
# "instance_id": "instance id",
|
|
|
|
|
# "private_ip": "172.17.0.1"
|
|
|
|
|
# }
|
|
|
|
|
# ]
|
2015-07-30 15:37:43 +03:00
|
|
|
app.get_with_headers "/servers/:provider", :headers => [:accept] do |provider|
|
2015-07-17 20:22:29 +03:00
|
|
|
check_privileges("server", "r")
|
2015-07-30 15:37:43 +03:00
|
|
|
json Devops::API2_0::Handler::Server.new(request).provider_servers(provider)
|
2015-07-17 20:22:29 +03:00
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2015-10-28 14:16:56 +03:00
|
|
|
app.get_with_headers "/servers/provider/:provider/:account", :headers => [:accept] do |provider, account|
|
|
|
|
|
check_privileges("server", "r")
|
|
|
|
|
json Devops::API2_0::Handler::Server.new(request).provider_servers_with_account(provider, account)
|
|
|
|
|
end
|
|
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Get server info by :name
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : GET
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - parameters:
|
|
|
|
|
# key=instance -> search server by instance_id rather then chef_node_name
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# [
|
|
|
|
|
# {
|
|
|
|
|
# "chef_node_name": "chef name"
|
|
|
|
|
# }
|
|
|
|
|
# ]
|
2015-02-19 11:27:56 +03:00
|
|
|
hash = {}
|
2015-07-27 15:40:10 +03:00
|
|
|
hash["GET"] = lambda {|id|
|
|
|
|
|
check_privileges("server", "r")
|
2015-07-30 15:37:43 +03:00
|
|
|
json Devops::API2_0::Handler::Server.new(request).server(id).to_hash
|
2015-07-27 15:40:10 +03:00
|
|
|
}
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Delete devops server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : DELETE
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Deleted
|
2015-07-27 15:40:10 +03:00
|
|
|
hash["DELETE"] = lambda {|id|
|
|
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
info, r = Devops::API2_0::Handler::Server.new(request).delete(id)
|
2015-07-27 15:40:10 +03:00
|
|
|
create_response(info, r)
|
|
|
|
|
}
|
2015-02-19 11:27:56 +03:00
|
|
|
app.multi_routes "/server/:id", {:headers => [:accept, :content_type]}, hash
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2015-11-02 13:09:53 +03:00
|
|
|
# Run deploy command on reserved server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "names": [], -> array of servers names to run chef-client
|
|
|
|
|
# "tags": [], -> array of tags to apply on each server before running chef-client
|
|
|
|
|
# "build_number": "", -> string, build number to deploy
|
|
|
|
|
# "run_list": [], -> array of strings to set run_list for chef-client
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* : text stream
|
|
|
|
|
app.post_with_headers "/server/:node_name/deploy", :headers => [:content_type, :accept] do |node_name|
|
|
|
|
|
check_privileges("server", "x")
|
|
|
|
|
|
|
|
|
|
if request["HTTP_X_STREAM"]
|
|
|
|
|
stream() do |out|
|
|
|
|
|
status = []
|
|
|
|
|
begin
|
|
|
|
|
status = Devops::API2_0::Handler::Server.new(request).deploy_stream(node_name, out)
|
|
|
|
|
out << create_status(status)
|
|
|
|
|
rescue DeployInfoError => e
|
|
|
|
|
msg = "Can not get deploy info: " + e.message
|
|
|
|
|
DevopsLogger.logger.error "msg:\n#{e.backtrace.join('\n')}"
|
|
|
|
|
out.puts msg
|
|
|
|
|
rescue IOError => e
|
|
|
|
|
logger.error e.message
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end # stream
|
|
|
|
|
else
|
|
|
|
|
files = begin
|
|
|
|
|
Devops::API2_0::Handler::Server.new(request).deploy(node_name)
|
|
|
|
|
rescue DeployInfoError => e
|
|
|
|
|
msg = "Can not get deploy info: " + e.message
|
|
|
|
|
DevopsLogger.logger.error "#{msg}:\n#{e.backtrace.join("\n")}"
|
|
|
|
|
out << "\nError - "
|
|
|
|
|
out.puts msg
|
|
|
|
|
end
|
|
|
|
|
sleep 1
|
|
|
|
|
json files
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Create devops server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
2015-08-03 15:09:04 +03:00
|
|
|
# - X-Stream: true -> return output in text stream
|
2014-12-15 14:26:54 +03:00
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "project": "project name", -> mandatory parameter
|
|
|
|
|
# "deploy_env": "env", -> mandatory parameter
|
|
|
|
|
# "name": "server_name", -> if null, name will be generated
|
|
|
|
|
# "without_bootstrap": null, -> do not install chef on instance if true
|
|
|
|
|
# "force": null, -> do not delete server on error
|
|
|
|
|
# "groups": [], -> specify special security groups, overrides value from project env
|
2015-08-03 15:09:04 +03:00
|
|
|
# "key": "ssh key" -> specify ssh key for server, overrides value from project env
|
2014-12-15 14:26:54 +03:00
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* : text stream
|
2015-08-03 15:09:04 +03:00
|
|
|
app.post_with_headers "/server", :headers => [:accept, :content_type] do
|
2015-07-27 15:40:10 +03:00
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
handler = Devops::API2_0::Handler::Server.new(request)
|
2015-09-28 16:35:38 +03:00
|
|
|
if request["X-Stream"] or request["HTTP_X_STREAM"]
|
2015-07-27 15:40:10 +03:00
|
|
|
stream() do |out|
|
|
|
|
|
begin
|
2015-07-30 15:37:43 +03:00
|
|
|
status = handler.create_server_stream out
|
2015-07-27 15:40:10 +03:00
|
|
|
out << create_status(status)
|
|
|
|
|
rescue IOError => e
|
|
|
|
|
logger.error e.message
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
2015-07-30 15:37:43 +03:00
|
|
|
json handler.create_server
|
2015-07-27 15:40:10 +03:00
|
|
|
end
|
|
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Pause devops server by name
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Paused
|
2015-07-27 15:40:10 +03:00
|
|
|
app.post_with_headers "/server/:node_name/pause", :headers => [:accept, :content_type] do |node_name|
|
|
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
info = Devops::API2_0::Handler::Server.new(request).pause_server(node_name)
|
2015-07-27 15:40:10 +03:00
|
|
|
create_response(info)
|
|
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Unpause devops server by name
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Unpaused
|
2015-07-27 15:40:10 +03:00
|
|
|
app.post_with_headers "/server/:node_name/unpause", :headers => [:accept, :content_type] do |node_name|
|
|
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
info = Devops::API2_0::Handler::Server.new(request).unpause_server(node_name)
|
2015-07-27 15:40:10 +03:00
|
|
|
create_response(info)
|
|
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Reserve devops server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Reserved
|
2015-07-27 15:40:10 +03:00
|
|
|
app.post_with_headers "/server/:node_name/reserve", :headers => [:accept, :content_type] do |node_name|
|
|
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
Devops::API2_0::Handler::Server.new(request).reserve_server(node_name)
|
2015-07-27 15:40:10 +03:00
|
|
|
create_response("Server '#{node_name}' has been reserved")
|
|
|
|
|
end
|
2014-05-23 17:36:16 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Unreserve devops server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Unreserved
|
2015-07-27 15:40:10 +03:00
|
|
|
app.post_with_headers "/server/:node_name/unreserve", :headers => [:accept, :content_type] do |node_name|
|
|
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
Devops::API2_0::Handler::Server.new(request).unreserve_server(node_name)
|
2015-07-27 15:40:10 +03:00
|
|
|
create_response("Server '#{node_name}' has been unreserved")
|
|
|
|
|
end
|
2014-05-23 17:36:16 +04:00
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Bootstrap devops server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
2015-08-03 15:09:04 +03:00
|
|
|
# - X-Stream: true -> return output in text stream
|
2014-12-15 14:26:54 +03:00
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "instance_id": "instance id", -> mandatory parameter
|
|
|
|
|
# "name": "server_name", -> if null, name will be generated
|
|
|
|
|
# "run_list": [], -> specify list of roles and recipes
|
|
|
|
|
# "bootstrap_template": "template" -> specify ssh key for server, overrides value from project env
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* : text stream
|
2015-07-27 15:40:10 +03:00
|
|
|
app.post_with_headers "/server/bootstrap", :headers => [:accept, :content_type] do
|
|
|
|
|
check_privileges("server", "w")
|
|
|
|
|
|
2015-07-30 15:37:43 +03:00
|
|
|
handler = Devops::API2_0::Handler::Server.new(request)
|
2015-08-03 15:09:04 +03:00
|
|
|
if request["X-Stream"]
|
2015-07-27 15:40:10 +03:00
|
|
|
stream() do |out|
|
|
|
|
|
begin
|
2015-07-30 15:37:43 +03:00
|
|
|
status = handler.bootstrap_server_stream out
|
2015-07-27 15:40:10 +03:00
|
|
|
out << create_status(status)
|
|
|
|
|
rescue IOError => e
|
|
|
|
|
logger.error e.message
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
2015-07-30 15:37:43 +03:00
|
|
|
json handler.bootstrap_server()
|
2015-07-27 15:40:10 +03:00
|
|
|
end
|
|
|
|
|
end
|
2014-12-15 14:26:54 +03:00
|
|
|
|
2015-10-22 13:56:16 +03:00
|
|
|
# Unbootstrap devops server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* : 200
|
|
|
|
|
app.post_with_headers "/server/:id/unbootstrap", :headers => [:accept, :content_type] do |id|
|
|
|
|
|
check_privileges("server", "w")
|
|
|
|
|
info = Devops::API2_0::Handler::Server.new(request).unbootstrap_server(id)
|
|
|
|
|
create_response("Unbootstrap", info)
|
|
|
|
|
end
|
|
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
# Add external server to devops
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : POST
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "project": "project name", -> mandatory parameter
|
|
|
|
|
# "deploy_env": "env", -> mandatory parameter
|
|
|
|
|
# "key": "ssh key", -> mandatory parameter
|
|
|
|
|
# "remote_user": "ssh user", -> mandatory parameter
|
|
|
|
|
# "private_ip": "ip", -> mandatory parameter
|
|
|
|
|
# "public_ip": "ip"
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Added
|
2015-07-27 15:40:10 +03:00
|
|
|
app.post_with_headers "/server/add", :headers => [:accept, :content_type] do
|
|
|
|
|
check_privileges("server", "w")
|
2015-07-30 15:37:43 +03:00
|
|
|
info = Devops::API2_0::Handler::Server.new(request).add_server()
|
2015-07-27 15:40:10 +03:00
|
|
|
create_response(info)
|
|
|
|
|
end
|
2014-12-15 14:26:54 +03:00
|
|
|
|
2015-08-03 18:01:50 +03:00
|
|
|
hash = {}
|
2015-09-15 17:14:26 +03:00
|
|
|
# Add instance tags
|
2015-08-03 18:01:50 +03:00
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : PUT
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "tags": {"tag name": "tag value"}
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Added
|
|
|
|
|
hash["PUT"] = lambda {|id|
|
|
|
|
|
check_privileges("server", "w")
|
|
|
|
|
Devops::API2_0::Handler::Server.new(request).set_tags(id)
|
2015-08-04 12:36:10 +03:00
|
|
|
create_response("Added")
|
2015-08-03 18:01:50 +03:00
|
|
|
}
|
|
|
|
|
|
2015-09-15 17:14:26 +03:00
|
|
|
# Delete instance tags
|
2015-08-03 18:01:50 +03:00
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : DELETE
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "tags": {"tag name": "tag value"}
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Deleted
|
|
|
|
|
hash["DELETE"] = lambda {|id|
|
|
|
|
|
check_privileges("server", "w")
|
|
|
|
|
Devops::API2_0::Handler::Server.new(request).unset_tags(id)
|
2015-08-04 12:36:10 +03:00
|
|
|
create_response("Deleted")
|
2015-08-03 18:01:50 +03:00
|
|
|
}
|
|
|
|
|
app.multi_routes "/server/:id/tags", {:headers => [:content_type]}, hash
|
|
|
|
|
|
2015-08-04 12:36:10 +03:00
|
|
|
# Set run_list to server
|
|
|
|
|
#
|
|
|
|
|
# * *Request*
|
|
|
|
|
# - method : PATCH
|
|
|
|
|
# - headers :
|
|
|
|
|
# - Accept: application/json
|
|
|
|
|
# - Content-Type: application/json
|
|
|
|
|
# - body :
|
|
|
|
|
# {
|
|
|
|
|
# "run_list": [
|
|
|
|
|
# "role[role_1]",
|
|
|
|
|
# "recipe[recipe_1]"
|
|
|
|
|
# ],
|
|
|
|
|
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# * *Returns* :
|
|
|
|
|
# 200 - Updated
|
2015-10-09 15:08:39 +03:00
|
|
|
app.put_with_headers "/server/:id/run_list", :headers => [:accept, :content_type] do |node_name|
|
2015-08-04 12:36:10 +03:00
|
|
|
check_privileges("server", "w")
|
2015-10-09 15:02:20 +03:00
|
|
|
Devops::API2_0::Handler::Server.new(request).set_run_list(node_name)
|
2015-08-04 12:36:10 +03:00
|
|
|
create_response("Run list has been changed")
|
|
|
|
|
end
|
|
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
puts "Server routes initialized"
|
2014-05-08 15:34:26 +04:00
|
|
|
end
|
|
|
|
|
|
2014-12-15 14:26:54 +03:00
|
|
|
end
|
|
|
|
|
end
|
2014-05-08 15:34:26 +04:00
|
|
|
end
|
|
|
|
|
end
|