kennel 1.124.0 → 1.125.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kennel/models/monitor.rb +7 -4
- data/lib/kennel/models/slo.rb +1 -1
- data/lib/kennel/syncer.rb +8 -6
- 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: 2464486b37bc4711843991d93789d4844d9c9aac33b40cf8b088ec4b249f39ab
|
4
|
+
data.tar.gz: 794318abfb10fecca670f6a8d2ad22e6f117e8425d0dc964b76163a658593d16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97c3664e939d5776bf4dcc2a8fc72b647af0a8df0112035cadd6105e8117dd116097e85e60838050f96959df5ea0e17d7e00ffe89420712937a32190bcce70ca
|
7
|
+
data.tar.gz: 4a1cf01f15ac6959c7cea683297fb41f3a74791a99b3a16c5391f76af48333d9a1b4ea9a9fc804750844feb75d5c02fae0caced96fc3b85723d128d1ad45e289
|
@@ -21,7 +21,8 @@ module Kennel
|
|
21
21
|
renotify_interval: 0,
|
22
22
|
notify_audit: false,
|
23
23
|
no_data_timeframe: nil, # this works out ok since if notify_no_data is on, it would never be nil
|
24
|
-
groupby_simple_monitor: false
|
24
|
+
groupby_simple_monitor: false,
|
25
|
+
variables: nil
|
25
26
|
}.freeze
|
26
27
|
DEFAULT_ESCALATION_MESSAGE = ["", nil].freeze
|
27
28
|
ALLOWED_PRIORITY_CLASSES = [NilClass, Integer].freeze
|
@@ -30,7 +31,7 @@ module Kennel
|
|
30
31
|
settings(
|
31
32
|
:query, :name, :message, :escalation_message, :critical, :type, :renotify_interval, :warning, :timeout_h, :evaluation_delay,
|
32
33
|
:ok, :no_data_timeframe, :notify_no_data, :notify_audit, :tags, :critical_recovery, :warning_recovery, :require_full_window,
|
33
|
-
:threshold_windows, :new_host_delay, :new_group_delay, :priority, :validate_using_links
|
34
|
+
:threshold_windows, :new_host_delay, :new_group_delay, :priority, :validate_using_links, :variables
|
34
35
|
)
|
35
36
|
|
36
37
|
defaults(
|
@@ -50,7 +51,8 @@ module Kennel
|
|
50
51
|
critical_recovery: -> { nil },
|
51
52
|
warning_recovery: -> { nil },
|
52
53
|
threshold_windows: -> { nil },
|
53
|
-
priority: -> { MONITOR_DEFAULTS.fetch(:priority) }
|
54
|
+
priority: -> { MONITOR_DEFAULTS.fetch(:priority) },
|
55
|
+
variables: -> { MONITOR_OPTION_DEFAULTS.fetch(:variables) }
|
54
56
|
)
|
55
57
|
|
56
58
|
def build_json
|
@@ -73,7 +75,8 @@ module Kennel
|
|
73
75
|
escalation_message: Utils.presence(escalation_message.strip),
|
74
76
|
evaluation_delay: evaluation_delay,
|
75
77
|
locked: false, # setting this to true prevents any edit and breaks updates when using replace workflow
|
76
|
-
renotify_interval: renotify_interval || 0
|
78
|
+
renotify_interval: renotify_interval || 0,
|
79
|
+
variables: variables
|
77
80
|
}
|
78
81
|
)
|
79
82
|
|
data/lib/kennel/models/slo.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
module Kennel
|
3
3
|
module Models
|
4
4
|
class Slo < Record
|
5
|
-
READONLY_ATTRIBUTES = superclass::READONLY_ATTRIBUTES + [:type_id, :monitor_tags]
|
5
|
+
READONLY_ATTRIBUTES = superclass::READONLY_ATTRIBUTES + [:type_id, :monitor_tags, :target_threshold, :timeframe, :warning_threshold]
|
6
6
|
TRACKING_FIELD = :description
|
7
7
|
DEFAULTS = {
|
8
8
|
description: nil,
|
data/lib/kennel/syncer.rb
CHANGED
@@ -6,7 +6,9 @@ module Kennel
|
|
6
6
|
class Syncer
|
7
7
|
DELETE_ORDER = ["dashboard", "slo", "monitor", "synthetics/tests"].freeze # dashboards references monitors + slos, slos reference monitors
|
8
8
|
LINE_UP = "\e[1A\033[K" # go up and clear
|
9
|
+
|
9
10
|
Plan = Struct.new(:changes, keyword_init: true)
|
11
|
+
Change = Struct.new(:type, :api_resource, :tracking_id, :id)
|
10
12
|
|
11
13
|
def initialize(api, expected, kennel:, project_filter: nil, tracking_id_filter: nil)
|
12
14
|
@api = api
|
@@ -32,9 +34,9 @@ module Kennel
|
|
32
34
|
|
33
35
|
Plan.new(
|
34
36
|
changes:
|
35
|
-
@create.map { |_id, e|
|
36
|
-
@update.map { |
|
37
|
-
@delete.map { |
|
37
|
+
@create.map { |_id, e, _a| Change.new(:create, e.class.api_resource, e.tracking_id, nil) } +
|
38
|
+
@update.map { |id, e, _a| Change.new(:update, e.class.api_resource, e.tracking_id, id) } +
|
39
|
+
@delete.map { |id, _e, a| Change.new(:delete, a.fetch(:klass).api_resource, a.fetch(:tracking_id), id) }
|
38
40
|
)
|
39
41
|
end
|
40
42
|
|
@@ -53,7 +55,7 @@ module Kennel
|
|
53
55
|
reply = @api.create e.class.api_resource, e.as_json
|
54
56
|
cache_metadata reply, e.class
|
55
57
|
id = reply.fetch(:id)
|
56
|
-
changes <<
|
58
|
+
changes << Change.new(:create, e.class.api_resource, e.tracking_id, id)
|
57
59
|
populate_id_map [], [reply] # allow resolving ids we could previously no resolve
|
58
60
|
Kennel.out.puts "#{LINE_UP}Created #{message} #{e.class.url(id)}"
|
59
61
|
end
|
@@ -62,7 +64,7 @@ module Kennel
|
|
62
64
|
message = "#{e.class.api_resource} #{e.tracking_id} #{e.class.url(id)}"
|
63
65
|
Kennel.out.puts "Updating #{message}"
|
64
66
|
@api.update e.class.api_resource, id, e.as_json
|
65
|
-
changes <<
|
67
|
+
changes << Change.new(:update, e.class.api_resource, e.tracking_id, id)
|
66
68
|
Kennel.out.puts "#{LINE_UP}Updated #{message}"
|
67
69
|
end
|
68
70
|
|
@@ -71,7 +73,7 @@ module Kennel
|
|
71
73
|
message = "#{klass.api_resource} #{a.fetch(:tracking_id)} #{id}"
|
72
74
|
Kennel.out.puts "Deleting #{message}"
|
73
75
|
@api.delete klass.api_resource, id
|
74
|
-
changes <<
|
76
|
+
changes << Change.new(:delete, klass.api_resource, a.fetch(:tracking_id), id)
|
75
77
|
Kennel.out.puts "#{LINE_UP}Deleted #{message}"
|
76
78
|
end
|
77
79
|
|
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: 1.
|
4
|
+
version: 1.125.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: 2022-11-
|
11
|
+
date: 2022-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: diff-lcs
|