87 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			4.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] || @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)
 | |
|           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?
 | |
|           @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)
 | |
|           Validators::Helpers::RunList.new(rl).validate! unless rl.nil?
 | |
|           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)
 | |
|           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?
 | |
|           @body
 | |
|         end
 | |
| 
 | |
|         def tags
 | |
|           @body ||= create_object_from_json_body
 | |
|           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
 | |
|         end
 | |
| 
 | |
|         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
 | |
| 
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
