kennel 1.133.1 → 1.135.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: 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