class Sensu::Settings::Validator

Attributes

failures[R]

@!attribute [r] failures

@return [Array] validation failures.

Public Class Methods

new() click to toggle source
# File lib/sensu/settings/validator.rb, line 15
def initialize
  @failures = []
end

Public Instance Methods

reset()
Alias for: reset!
reset!() click to toggle source
# File lib/sensu/settings/validator.rb, line 37
def reset!
  failure_count = @failures.size
  @failures = []
  failure_count
end
Also aliased as: reset
run(settings, service=nil) click to toggle source

Run the validator.

@param settings [Hash] sensu settings to validate. @param service [String] sensu service to validate for. @return [Array] validation failures.

# File lib/sensu/settings/validator.rb, line 24
def run(settings, service=nil)
  validate_sensu(settings[:sensu])
  validate_transport(settings[:transport])
  validate_categories(settings)
  case service
  when "client"
    validate_client(settings[:client])
  when "api"
    validate_api(settings[:api])
  end
  @failures
end

Private Instance Methods

invalid(object, message) click to toggle source

Record an invalid object with a message.

@param object [Object] invalid object. @param message [String] message explaining why the object is

invalid.

@return [Array] current validation failures.

# File lib/sensu/settings/validator.rb, line 69
def invalid(object, message)
  @failures << {
    :object => object,
    :message => message
  }
end
validate_categories(settings) click to toggle source

Validate setting categories: checks, filters, mutators, and handlers.

@param settings [Hash] sensu settings to validate.

# File lib/sensu/settings/validator.rb, line 50
def validate_categories(settings)
  CATEGORIES.each do |category|
    if is_a_hash?(settings[category])
      validate_method = ("validate_" + category.to_s.chop).to_sym
      settings[category].each do |name, details|
        send(validate_method, details.merge(:name => name.to_s))
      end
    else
      invalid(settings[category], "#{category} must be a hash")
    end
  end
end