module Sensu::Settings::Validators::API

Public Instance Methods

validate_api(api) click to toggle source

Validate a Sensu API definition. Validates: port, bind

@param api [Hash] sensu api definition.

# File lib/sensu/settings/validators/api.rb, line 50
def validate_api(api)
  must_be_a_hash_if_set(api) ||
    invalid(api, "api must be a hash")
  if is_a_hash?(api)
    must_be_an_integer_if_set(api[:port]) ||
      invalid(api, "api port must be an integer")
    must_be_a_string_if_set(api[:bind]) ||
      invalid(api, "api bind must be a string")
    validate_api_authentication(api)
    validate_api_endpoints(api) if api[:endpoints]
  end
end
validate_api_authentication(api) click to toggle source

Validate API authentication. Validates: user, password

@param api [Hash] sensu api definition.

# File lib/sensu/settings/validators/api.rb, line 9
def validate_api_authentication(api)
  if either_are_set?(api[:user], api[:password])
    must_be_a_string(api[:user]) ||
      invalid(api, "api user must be a string")
    must_be_a_string(api[:password]) ||
      invalid(api, "api password must be a string")
  end
end
validate_api_endpoints(api) click to toggle source

Validate API endpoints. Validates: endpoints

@param api [Hash] sensu api definition.

# File lib/sensu/settings/validators/api.rb, line 22
def validate_api_endpoints(api)
  if is_an_array?(api[:endpoints])
    api[:endpoints].each do |endpoint|
      if is_a_hash?(endpoint)
        if endpoint[:url]
          must_be_a_string(endpoint[:url]) ||
            invalid(api, "api endpoint url must be a string")
        else
          must_be_a_string(endpoint[:host]) ||
            invalid(api, "api endpoint host must be a string")
          must_be_an_integer(endpoint[:port]) ||
            invalid(api, "api endpoint port must be an integer")
          must_be_boolean_if_set(endpoint[:ssl]) ||
            invalid(api, "api endpoint ssl must be a boolean")
        end
      else
        invalid(api, "api endpoints must each be a hash")
      end
    end
  else
    invalid(api, "api endpoints must be an array")
  end
end