2015-07-30 15:37:43 +03:00
|
|
|
require_relative "request_parser"
|
|
|
|
|
|
|
|
|
|
module Devops
|
|
|
|
|
module API2_0
|
|
|
|
|
module Parser
|
|
|
|
|
class ServerParser < RequestParser
|
|
|
|
|
|
|
|
|
|
def servers
|
|
|
|
|
fields = []
|
|
|
|
|
if @params.key?("fields") and @params["fields"].is_a?(Array)
|
|
|
|
|
Devops::Model::Server.fields.each do |k|
|
|
|
|
|
fields.push k if @params["fields"].include?(k)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return fields, (@params.key?("reserved") ? true : nil)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def server
|
2015-09-14 14:12:51 +03:00
|
|
|
@params[:key] || @params["key"]
|
2015-07-30 15:37:43 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def instance_key
|
2015-08-03 18:01:50 +03:00
|
|
|
@body ||= create_object_from_json_body(Hash, true)
|
|
|
|
|
(@body.nil? ? nil : @body["key"])
|
2015-07-30 15:37:43 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def create
|
2015-08-03 18:01:50 +03:00
|
|
|
@body ||= create_object_from_json_body
|
|
|
|
|
project_name = check_string(@body["project"], "Parameter 'project' must be a not empty string")
|
|
|
|
|
env_name = check_string(@body["deploy_env"], "Parameter 'deploy_env' must be a not empty string")
|
|
|
|
|
server_name = check_string(@body["name"], "Parameter 'name' should be null or not empty string", true)
|
|
|
|
|
without_bootstrap = @body["without_bootstrap"]
|
|
|
|
|
force = @body["force"]
|
2015-07-30 15:37:43 +03:00
|
|
|
raise InvalidRecord.new("Parameter 'without_bootstrap' should be a null or true") unless without_bootstrap.nil? or without_bootstrap == true
|
|
|
|
|
raise InvalidRecord.new("Parameter 'force' should be a null or true") unless force.nil? or force == true
|
2015-08-03 18:01:50 +03:00
|
|
|
groups = check_array(@body["groups"], "Parameter 'groups' should be null or not empty array of string", String, true)
|
|
|
|
|
key_name = check_string(@body["key"], "Parameter 'key' should be null or not empty string", true)
|
2015-08-04 12:36:10 +03:00
|
|
|
rl = check_array(@body["run_list"], "Parameter 'run_list' should be a not empty array of string", String, true, true)
|
|
|
|
|
Validators::Helpers::RunList.new(rl).validate! unless rl.nil?
|
2015-08-03 18:01:50 +03:00
|
|
|
@body
|
2015-07-30 15:37:43 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def bootstrap
|
2015-08-03 18:01:50 +03:00
|
|
|
@body ||= create_object_from_json_body(Hash, true)
|
|
|
|
|
id = check_string(@body["instance_id"], "Parameter 'instance_id' must be a not empty string")
|
|
|
|
|
name = check_string(@body["name"], "Parameter 'name' should be a not empty string", true)
|
|
|
|
|
rl = check_array(@body["run_list"], "Parameter 'run_list' should be a not empty array of string", String, true)
|
2015-08-04 12:36:10 +03:00
|
|
|
Validators::Helpers::RunList.new(rl).validate! unless rl.nil?
|
2015-08-03 18:01:50 +03:00
|
|
|
t = check_string(@body["bootstrap_template"], "Parameter 'bootstrap_template' should be a not empty string", true)
|
|
|
|
|
@body
|
2015-07-30 15:37:43 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def add_server
|
2015-08-03 18:01:50 +03:00
|
|
|
@body ||= create_object_from_json_body
|
|
|
|
|
project = check_string(@body["project"], "Parameter 'project' must be a not empty string")
|
|
|
|
|
deploy_env = check_string(@body["deploy_env"], "Parameter 'deploy_env' must be a not empty string")
|
|
|
|
|
key = check_string(@body["key"], "Parameter 'key' must be a not empty string")
|
|
|
|
|
remote_user = check_string(@body["remote_user"], "Parameter 'remote_user' must be a not empty string")
|
|
|
|
|
private_ip = check_string(@body["private_ip"], "Parameter 'private_ip' must be a not empty string")
|
|
|
|
|
public_ip = check_string(@body["public_ip"], "Parameter 'public_ip' should be a not empty string", true)
|
2015-08-04 12:36:10 +03:00
|
|
|
rl = check_array(@body["run_list"], "Parameter 'run_list' should be a not empty array of string", String, true, true)
|
|
|
|
|
Validators::Helpers::RunList.new(rl).validate! unless rl.nil?
|
2015-08-03 18:01:50 +03:00
|
|
|
@body
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def tags
|
|
|
|
|
@body ||= create_object_from_json_body
|
2015-08-04 12:36:10 +03:00
|
|
|
check_param(@body["tags"], Hash, "Parameter 'tags' should be a hash", false, true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def run_list
|
|
|
|
|
@body ||= create_object_from_json_body
|
|
|
|
|
rl = check_array(@body["run_list"], "Parameter 'run_list' should be a not empty array of string", String, false, true)
|
|
|
|
|
Validators::Helpers::RunList.new(rl).validate!
|
|
|
|
|
rl
|
2015-07-30 15:37:43 +03:00
|
|
|
end
|
|
|
|
|
|
2016-02-12 16:18:17 +03:00
|
|
|
def delete_list
|
|
|
|
|
@body ||= create_object_from_json_body
|
|
|
|
|
check_array(@body["servers_ids"], "Parameter 'servers_ids' should be a not empty array of string", String, false)
|
|
|
|
|
end
|
|
|
|
|
|
2015-07-30 15:37:43 +03:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|