class Kennel::Models::Slo
Constants
- DEFAULTS
- READONLY_ATTRIBUTES
- TRACKING_FIELD
Public Class Methods
api_resource()
click to toggle source
# File lib/kennel/models/slo.rb, line 58 def self.api_resource "slo" end
new(*)
click to toggle source
Calls superclass method
Kennel::Models::Record::new
# File lib/kennel/models/slo.rb, line 27 def initialize(*) super if thresholds.any? { |t| t[:warning] && t[:warning].to_f <= t[:critical].to_f } raise ValidationError, "Threshold warning must be greater-than critical value" end end
normalize(expected, actual)
click to toggle source
Calls superclass method
Kennel::Models::Record::normalize
# File lib/kennel/models/slo.rb, line 77 def self.normalize(expected, actual) super # remove readonly values actual[:thresholds]&.each do |threshold| threshold.delete(:warning_display) threshold.delete(:target_display) end # tags come in a semi-random order and order is never updated expected[:tags]&.sort! actual[:tags].sort! ignore_default(expected, actual, DEFAULTS) end
parse_url(url)
click to toggle source
# File lib/kennel/models/slo.rb, line 66 def self.parse_url(url) url[/\/slo(\?.*slo_id=|\/edit\/)([a-z\d]{10,})(&|$)/, 2] end
url(id)
click to toggle source
# File lib/kennel/models/slo.rb, line 62 def self.url(id) Utils.path_to_url "/slo?slo_id=#{id}" end
Public Instance Methods
as_json()
click to toggle source
# File lib/kennel/models/slo.rb, line 34 def as_json return @as_json if @as_json data = { name: "#{name}#{LOCK}", description: description, thresholds: thresholds, monitor_ids: monitor_ids, tags: tags.uniq, type: type } if v = query data[:query] = v end if v = id data[:id] = v end if v = groups data[:groups] = v end @as_json = data end
resolve_linked_tracking_ids!(id_map, **args)
click to toggle source
# File lib/kennel/models/slo.rb, line 70 def resolve_linked_tracking_ids!(id_map, **args) return unless as_json[:monitor_ids] # ignore_default can remove it as_json[:monitor_ids] = as_json[:monitor_ids].map do |id| id.is_a?(String) ? (resolve_link(id, :monitor, id_map, **args) || id) : id end end