module Sensu::Settings::Validators::TimeWindow

Public Instance Methods

validate_time_window_condition(definition, scope, attribute, condition) click to toggle source

Validate time window condition Validates: begin, end

@param definition [Hash] sensu definition. @param scope [String] definition scope to validate. @param attribute [String] definition attribute to validate. @param condition [Hash] to have begin and end validated.

# File lib/sensu/settings/validators/time_window.rb, line 12
def validate_time_window_condition(definition, scope, attribute, condition)
  if is_a_hash?(condition)
    must_be_time(condition[:begin], condition[:end]) ||
      invalid(definition, "#{scope} #{attribute} day time window begin and end times must be valid")
  else
    invalid(definition, "#{scope} #{attribute} day time window must be a hash")
  end
end
validate_time_windows(definition, scope, attribute) click to toggle source

Validate time windows Validates: days

@param definition [Hash] sensu definition. @param scope [String] definition scope to validate. @param attribute [String] definition attribute to validate.

# File lib/sensu/settings/validators/time_window.rb, line 55
def validate_time_windows(definition, scope, attribute)
  if is_a_hash?(definition[attribute])
    days = definition[attribute][:days]
    if is_a_hash?(days)
      if !days.empty?
        validate_time_windows_days(definition, scope, attribute, days)
      else
        invalid(definition, "#{scope} #{attribute} days must include at least one day of the week or 'all'")
      end
    else
      invalid(definition, "#{scope} #{attribute} days must be a hash")
    end
  else
    invalid(definition, "#{scope} #{attribute} must be a hash")
  end
end
validate_time_windows_days(definition, scope, attribute, days) click to toggle source

Validate time windows days Validates: days

@param definition [Hash] sensu definition. @param scope [String] definition scope to validate. @param attribute [String] definition attribute to validate. @param days [String] time window days to validate.

# File lib/sensu/settings/validators/time_window.rb, line 28
def validate_time_windows_days(definition, scope, attribute, days)
  valid_days = [:all, :sunday, :monday, :tuesday, :wednesday, :thursday, :friday, :saturday]
  if must_be_either(valid_days, days.keys)
    days.each do |day, conditions|
      if is_an_array?(conditions)
        if !conditions.empty?
          conditions.each do |condition|
            validate_time_window_condition(definition, scope, attribute, condition)
          end
        else
          invalid(definition, "#{scope} #{attribute} days #{day} must include at least one time window")
        end
      else
        invalid(definition, "#{scope} #{attribute} days #{day} must be in an array")
      end
    end
  else
    invalid(definition, "#{scope} #{attribute} days must be valid days of the week or 'all'")
  end
end