178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
|
# File 'lib/kennel/models/dashboard.rb', line 178
def resolve_linked_tracking_ids!(id_map, **args)
widgets = as_json[:widgets].flat_map { |w| [w, *w.dig(:definition, :widgets) || []] }
widgets.each do |widget|
next unless definition = widget[:definition]
case definition[:type]
when "uptime"
if ids = definition[:monitor_ids]
definition[:monitor_ids] = ids.map do |id|
resolve(id, :monitor, id_map, **args) || id
end
end
when "alert_graph"
if id = definition[:alert_id]
resolved = resolve(id, :monitor, id_map, **args) || id
definition[:alert_id] = resolved.to_s end
when "slo"
if id = definition[:slo_id]
definition[:slo_id] = resolve(id, :slo, id_map, **args) || id
end
end
end
end
|