module Sensu::Settings::Validators::Subdue

Public Instance Methods

validate_subdue(definition) click to toggle source

Validate Sensu subdue, for either a check or handler definition.

@param definition [Hash] sensu definition.

# File lib/sensu/settings/validators/subdue.rb, line 55
def validate_subdue(definition)
  subdue = definition[:subdue]
  validate_subdue_time("subdue", definition, subdue)
  if is_a_hash?(subdue)
    must_be_either_if_set(%w[handler publisher], subdue[:at]) ||
      invalid(definition, "subdue at must be either handler or publisher")
    validate_subdue_days(definition)
    validate_subdue_exceptions(definition)
  end
end
validate_subdue_days(definition) click to toggle source

Validate subdue days. Validates: days

@param definition [Hash] sensu definition.

# File lib/sensu/settings/validators/subdue.rb, line 26
def validate_subdue_days(definition)
  subdue = definition[:subdue]
  must_be_an_array_if_set(subdue[:days]) ||
    invalid(definition, "subdue days must be an array")
  if is_an_array?(subdue[:days])
    days = %w[sunday monday tuesday wednesday thursday friday saturday]
    must_be_either(days, subdue[:days]) ||
      invalid(definition, "subdue days must be valid days of the week")
  end
end
validate_subdue_exceptions(definition) click to toggle source

Validate subdue exceptions. Validates: exceptions (begin, end)

@param definition [Hash] sensu definition.

# File lib/sensu/settings/validators/subdue.rb, line 41
def validate_subdue_exceptions(definition)
  subdue = definition[:subdue]
  must_be_an_array_if_set(subdue[:exceptions]) ||
    invalid(definition, "subdue exceptions must be an array")
  if is_an_array?(subdue[:exceptions])
    subdue[:exceptions].each do |exception|
      validate_subdue_time("subdue exceptions", definition, exception)
    end
  end
end
validate_subdue_time(scope, definition, object) click to toggle source

Validate subdue time. Validates: begin, end

@param scope [String] definition scope to report under. @param definition [Hash] sensu definition. @param object [Hash] to have begin and end validated.

# File lib/sensu/settings/validators/subdue.rb, line 11
def validate_subdue_time(scope, definition, object)
  if is_a_hash?(object)
    if either_are_set?(object[:begin], object[:end])
      must_be_time(object[:begin], object[:end]) ||
        invalid(definition, "#{scope} begin and end times must be valid")
    end
  else
    invalid(definition, "#{scope} must be a hash")
  end
end