69 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | 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 | ||
|  |           @params[:key] | ||
|  |         end | ||
|  | 
 | ||
|  |         def instance_key | ||
|  |           body = create_object_from_json_body(Hash, true) | ||
|  |           (body.nil? ? nil : body["key"]) | ||
|  |         end | ||
|  | 
 | ||
|  |         def create | ||
|  |           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"] | ||
|  |           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 | ||
|  |           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) | ||
|  |           body | ||
|  |         end | ||
|  | 
 | ||
|  |         def bootstrap | ||
|  |           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) | ||
|  |           unless rl.nil? | ||
|  |             validator = Validators::Helpers::RunList.new(rl) | ||
|  |             halt_response(validator.message) unless validator.valid? | ||
|  |           end | ||
|  |           t = check_string(body["bootstrap_template"], "Parameter 'bootstrap_template' should be a not empty string", true) | ||
|  |           body | ||
|  |         end | ||
|  | 
 | ||
|  |         def add_server | ||
|  |           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) | ||
|  |           body | ||
|  |         end | ||
|  | 
 | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |