kennel 2.5.0 → 2.6.1
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 +4 -4
- data/lib/kennel/syncer.rb +7 -1
- data/lib/kennel/tasks.rb +8 -4
- data/lib/kennel/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bb95ceae817bc98d083407c5a6b19483e12e1932a98209c13fd097cd9bcf7ebd
|
|
4
|
+
data.tar.gz: 1a0c92f146ab14ffe80bccc86cb12f1561e8d874faefbe7f48f550a4c108cb6e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2b43e7160e79a8174ae60d929d998322cfda2730116500ce8e6ddbfd4114c2217b0d75c5f326ffafbc94c5976155810a858f6d43423430223fa9325207373a75
|
|
7
|
+
data.tar.gz: b9c53626a278cea303b617ec12f792f89b5a5ca858a20dd75f244367a38065ed436e5309184b04e8c5ba5f7060a5c5dab472837b2729c2313ab6cb730d6f0bef
|
data/lib/kennel/syncer.rb
CHANGED
|
@@ -127,6 +127,7 @@ module Kennel
|
|
|
127
127
|
# update it instead to avoid old urls from becoming invalid
|
|
128
128
|
# - careful with unmatched_actual being huge since it has all api resources
|
|
129
129
|
# - don't do it when a monitor type is changing since that would block the update
|
|
130
|
+
# - don't do it when a dashboard layout_type is changing since that would block the update
|
|
130
131
|
# - when using a filter and updating the kennel_id of an existing item, old and new must be in the filter
|
|
131
132
|
def convert_replace_into_update!(matching, unmatched_actual, unmatched_expected)
|
|
132
133
|
unmatched_expected.reject! do |e|
|
|
@@ -135,10 +136,15 @@ module Kennel
|
|
|
135
136
|
break [field, value]
|
|
136
137
|
end
|
|
137
138
|
raise unless e_field # uncovered: should never happen ...
|
|
139
|
+
# TODO: ideally reuse invalid_update! logic and just put the fields somewhere
|
|
138
140
|
e_monitor_type = e.as_json[:type]
|
|
141
|
+
e_dashboard_layout_type = e.as_json[:layout_type]
|
|
139
142
|
|
|
140
143
|
actual = unmatched_actual.detect do |a|
|
|
141
|
-
a[:klass].api_resource == e.class.api_resource &&
|
|
144
|
+
a[:klass].api_resource == e.class.api_resource &&
|
|
145
|
+
a[e_field] == e_value &&
|
|
146
|
+
a[:type] == e_monitor_type &&
|
|
147
|
+
a[:layout_type] == e_dashboard_layout_type
|
|
142
148
|
end
|
|
143
149
|
next false unless actual # keep in unmatched
|
|
144
150
|
|
data/lib/kennel/tasks.rb
CHANGED
|
@@ -67,26 +67,30 @@ namespace :kennel do
|
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
# ideally do this on every run, but it's slow (~1.5s) and brittle
|
|
70
|
-
# (might not find all via the
|
|
70
|
+
# (might not find all via the regex + might find false-positives because random emails can also be sent to)
|
|
71
71
|
# https://help.datadoghq.com/hc/en-us/requests/254114 for automatic validation
|
|
72
|
-
# /monitor/notifications has users+slack+sns
|
|
72
|
+
# /monitor/notifications has users+slack+sns but not @team- and @webhook-
|
|
73
73
|
# got a support ticket open to get sns into api/v2 too
|
|
74
74
|
desc "Verify that all used monitor mentions are valid"
|
|
75
75
|
task validate_mentions: :environment do
|
|
76
76
|
known = []
|
|
77
77
|
|
|
78
|
-
# @slack- @team- @webhook- user-emails
|
|
78
|
+
# @slack- @team- @webhook- @sns- user-emails
|
|
79
79
|
known += Kennel::Api.new.send(:request, :get, "/api/v2/notifications/handles?group_limit=99999")
|
|
80
80
|
.fetch(:data)
|
|
81
81
|
.flat_map { |d| d.dig(:attributes, :handles) }
|
|
82
82
|
.map { |v| v.fetch(:value) }
|
|
83
83
|
|
|
84
|
-
# group emails or other 1-off things
|
|
84
|
+
# group emails or other 1-off things we know are valid
|
|
85
85
|
manual = ENV["KNOWN"].to_s.split(",")
|
|
86
86
|
dupes = (manual & known)
|
|
87
87
|
Kennel::Tasks.abort "KNOWN=#{dupes.join(",")} values are already known and should be removed" if dupes.any?
|
|
88
88
|
known += manual
|
|
89
89
|
|
|
90
|
+
# @sns- handles are randomly invalid so we need to ignore them without checking if the ignore is needed
|
|
91
|
+
# https://help.datadoghq.com/hc/en-us/requests/2310423
|
|
92
|
+
known += ENV["KNOWN_RANDOM"].to_s.split(",")
|
|
93
|
+
|
|
90
94
|
bad = []
|
|
91
95
|
Dir["generated/**/*.json"].each do |f|
|
|
92
96
|
next unless (message = JSON.parse(File.read(f))["message"])
|
data/lib/kennel/version.rb
CHANGED
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: 2.
|
|
4
|
+
version: 2.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Grosser
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-10-
|
|
11
|
+
date: 2025-10-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: diff-lcs
|