Class: Kennel::ValidatePlan::MonitorValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/kennel/tasks/validate_plan.rb

Constant Summary collapse

COSMETIC_FIELDS =
["name", "message", "tags"].freeze

Instance Method Summary collapse

Constructor Details

#initialize(item) ⇒ MonitorValidator

Returns a new instance of MonitorValidator.



7
8
9
# File 'lib/kennel/tasks/validate_plan.rb', line 7

def initialize(item)
  @item = item
end

Instance Method Details

#validate(api) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/kennel/tasks/validate_plan.rb', line 11

def validate(api)
  data = @item.expected.as_json

  # ignore unresolved ids from yet to be created monitors
  return nil if ["composite", "slo alert"].include?(data[:type]) && data[:query].include?("%")

  api.send(:request, :post, "/api/v1/monitor/validate", body: data)
  nil
rescue StandardError => e
  "#{Kennel::Console.color(:yellow, "#{@item.api_resource} #{@item.tracking_id}:")}\n#{e.message}"
end