kennel 1.133.1 → 1.135.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ebfb755b091be3c3c59e5363f7b302b3c69a67a13ec9a768c76bc68ca09ec65
4
- data.tar.gz: ca416980653d8b8965d72693506c246dbce2c03f5937f0beedc246df194f7617
3
+ metadata.gz: df9cbe3093fdce8eaea3d1b3e58fd7f715a2c1ed070f6d133e8ef0bd588856e6
4
+ data.tar.gz: 229af8ec1cccb468c3e5519c4a4292c8889bf0f4386ac5330bd7ec4795b0a608
5
5
  SHA512:
6
- metadata.gz: f4e96b9bdc91ea48b644333b5c5b5c0d774d9c2f47da73b322dd51406358f7435ec4794f52ffb0cd93eb01131b78a306b1fd301c33f3069c96c24729afc07290
7
- data.tar.gz: e7415a9706cb1803ffbef5eb46e45f8acb19c0f17d1f47a168f041886154d1f39d6fd122be072c0ee28bdc07a08061fd3e7582f2d9931349970adff5d268bbb8
6
+ metadata.gz: 70955bc2936c0d055e6f1c9634e4b7797dc29b89faa55c41b3f08d49366251332f16c24a8f54291285a58df464bbca2c969e179def22d2231a96ccad8a24f401
7
+ data.tar.gz: 180ca60ae26ef56c64b26dd0a04dc8e13b1bd0f0101d1f8d8161cdf0289ccfc3146947ec81addff80172adb5efabcaf8be037b83a1333d41ba8a8c76f007a314
data/lib/kennel/api.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # especially 1-off weirdness that should not leak into other parts of the code
4
4
  module Kennel
5
5
  class Api
6
- CACHE_FILE = "tmp/cache/details"
6
+ CACHE_FILE = ENV.fetch("KENNEL_API_CACHE_FILE", "tmp/cache/details")
7
7
 
8
8
  def self.tag(api_resource, reply)
9
9
  klass = Models::Record.api_resource_map[api_resource]
data/lib/kennel/filter.rb CHANGED
@@ -45,7 +45,13 @@ module Kennel
45
45
  end
46
46
 
47
47
  def build_tracking_id_filter
48
- (tracking_id = ENV["TRACKING_ID"]) && tracking_id.split(",").sort.uniq
48
+ (tracking_id = ENV["TRACKING_ID"]) && tracking_id.split(",").map { |id| tracking_id_path_conversion(id) }.sort.uniq
49
+ end
50
+
51
+ # allow users to paste the generated path of an objects to update it without manually converting
52
+ def tracking_id_path_conversion(tracking_id)
53
+ return tracking_id unless tracking_id.end_with?(".json")
54
+ tracking_id.sub("generated/", "").sub(".json", "").sub("/", ":")
49
55
  end
50
56
 
51
57
  def filter_resources(resources, by, expected, name, env)
@@ -148,6 +148,7 @@ module Kennel
148
148
  .gsub(": null", ": nil")
149
149
  .gsub(/(^\s*)"([a-zA-Z][a-zA-Z\d_]*)":/, "\\1\\2:") # "foo": 1 -> foo: 1
150
150
  .gsub(/: \[\n\s+\]/, ": []") # empty arrays on a single line
151
+ .gsub(/: \{\n\s+\}/, ": {}") # empty hash on a single line
151
152
  .gsub('q: "metadata"', "q: :metadata") # bring symbols back
152
153
  .gsub(/^/, " ") # indent
153
154
  pretty = convert_strings_to_heredoc(pretty)
@@ -32,7 +32,7 @@ module Kennel
32
32
  settings(
33
33
  :query, :name, :message, :escalation_message, :critical, :type, :renotify_interval, :warning, :timeout_h, :evaluation_delay,
34
34
  :ok, :no_data_timeframe, :notify_no_data, :notify_audit, :tags, :critical_recovery, :warning_recovery, :require_full_window,
35
- :threshold_windows, :new_host_delay, :new_group_delay, :priority, :validate_using_links, :variables, :on_missing_data
35
+ :threshold_windows, :scheduling_options, :new_host_delay, :new_group_delay, :priority, :validate_using_links, :variables, :on_missing_data
36
36
  )
37
37
 
38
38
  defaults(
@@ -52,6 +52,7 @@ module Kennel
52
52
  critical_recovery: -> { nil },
53
53
  warning_recovery: -> { nil },
54
54
  threshold_windows: -> { nil },
55
+ scheduling_options: -> { nil },
55
56
  priority: -> { MONITOR_DEFAULTS.fetch(:priority) },
56
57
  variables: -> { MONITOR_OPTION_DEFAULTS.fetch(:variables) },
57
58
  on_missing_data: -> { MONITOR_OPTION_DEFAULTS.fetch(:on_missing_data) }
@@ -114,6 +115,10 @@ module Kennel
114
115
  options[:threshold_windows] = windows
115
116
  end
116
117
 
118
+ if schedule = scheduling_options
119
+ options[:scheduling_options] = schedule
120
+ end
121
+
117
122
  # Datadog requires only either new_group_delay or new_host_delay, never both
118
123
  options.delete(options[:new_group_delay] ? :new_host_delay : :new_group_delay)
119
124
 
data/lib/kennel/tasks.rb CHANGED
@@ -111,6 +111,8 @@ namespace :kennel do
111
111
 
112
112
  desc "update datadog (scope with PROJECT=name)"
113
113
  task update_datadog: :environment do
114
+ Kennel::Tasks.kennel.preload
115
+ Kennel::Tasks.kennel.generate
114
116
  Kennel::Tasks.kennel.update
115
117
  end
116
118
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.133.1"
3
+ VERSION = "1.135.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.133.1
4
+ version: 1.135.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: 2023-02-02 00:00:00.000000000 Z
11
+ date: 2023-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs