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