kennel 1.43.0 → 1.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6af54a490e2bace86bb51b365a2d1bdfe48bd2949ed2a3a7d870acc41dba33a1
4
- data.tar.gz: d2576aea2e2908a0f8c45af918d5a18f45efd2c05b4246ad9c53b31d9ade50af
3
+ metadata.gz: fd52c4d2d7fde7372320bfa6643d3ac3e56d908ea4f97929d06f8221faa428fc
4
+ data.tar.gz: a17fc2854a60fd5a1c6bb97b2ce46eebcaa88096239358aeb83978bcd52f2b5b
5
5
  SHA512:
6
- metadata.gz: 258c7088f6e55629fb61e0b95701cd59cfc9615925e0b89753179fdf15289c9e309fba1bda9221b4c68d6519d228c03005b8535621881347f21bd8e5a884d5c7
7
- data.tar.gz: 4dc69e5a620edbf36e65f8ae550e40a202c7b6e7aa47945e36eb2ab201e497daf4e32b0af038f7fa5b3039f025f301474d08c691c8c4b8f1f101760d3d5d698c
6
+ metadata.gz: b614a905978f2cda66a67f77b037af24f899ae57a8fe400ea46663568aa056ea2ec8c8c0948f6f9b7375cbf92830f5d294256cd5d201341ac1e86cb885ec4c94
7
+ data.tar.gz: 1973330596e721ad7c74a219eba95e8a019dd3d799df47595d7e61e613e59c1c576f4575fd30e8acd08ed2c381b89261aefd22e3cdc603bdfa5001a8c559feca
@@ -83,8 +83,34 @@ module Kennel
83
83
  Utils.path_to_url "/dashboard/#{id}"
84
84
  end
85
85
 
86
+ def resolve_linked_tracking_ids(id_map)
87
+ as_json[:widgets].each do |widget|
88
+ next unless definition = widget[:definition]
89
+ case definition[:type]
90
+ when "uptime"
91
+ if ids = definition[:monitor_ids]
92
+ definition[:monitor_ids] = ids.map { |id| resolve_link(id, id_map) }
93
+ end
94
+ when "alert_graph"
95
+ if id = definition[:alert_id]
96
+ definition[:alert_id] = resolve_link(id, id_map).to_s
97
+ end
98
+ end
99
+ end
100
+ end
101
+
86
102
  private
87
103
 
104
+ def resolve_link(id, id_map)
105
+ return id unless tracking_id?(id)
106
+ id_map[id] ||
107
+ Kennel.err.puts("Unable to find #{id} in existing monitors (they need to be created first to link them)")
108
+ end
109
+
110
+ def tracking_id?(id)
111
+ id.is_a?(String) && !id.match?(/\A\d+\z/)
112
+ end
113
+
88
114
  def validate_json(data)
89
115
  super
90
116
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.43.0"
3
+ VERSION = "1.44.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kennel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.43.0
4
+ version: 1.44.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-06 00:00:00.000000000 Z
11
+ date: 2019-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday