kennel 1.83.0 → 1.85.2

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: 5c3c766383bf7f533e74b935a6faf2272e552bb7c974fa15261c70aa9d31e800
4
- data.tar.gz: 339c1dcad92fc215d2a26b7091bbe57dc98d3f6ed5a01666e1ee683162bf20e0
3
+ metadata.gz: 80ab3a8fb786a4b556aa1318d3b1ab758a9b7d33e786023c02550ee004abd6e8
4
+ data.tar.gz: 0e5896d464686e750a3973feff199f25030cea119c7ccb03ddc9820a359f0c74
5
5
  SHA512:
6
- metadata.gz: 97abfc77652ab1afb6192c97f038dc6caa33a2f8aa505c62c6782fef1359b431d93cf293c737d9f2ed03c9bb4d22d0474ac916586aa7ed15863900dc8eb1791d
7
- data.tar.gz: 13e247e4ab000410155b9f4835686168a2017c1ee2fd8b4e0f6619c54f0b055581b1acc855d12ac06b0ed3920782722fbffa1d303ea7aa04ed92104ab1ec6908
6
+ metadata.gz: a5df094d658262ddb50a40234be1f371ebd9120ed66a0a625d68a7ec8debde55980ccc8e2c64e84afbdc16160228700c8361108b526f54ca68403e12318f8a19
7
+ data.tar.gz: cb924336b3e9caac886fbc60ffc0301500a6dd59f9af53c42d1c7ac13ad5891765165b28fa7da36751da64491ca8e5070e1e1ce047830e8cb3b78363e9e2da4d
@@ -60,6 +60,9 @@ module Kennel
60
60
  query.sub!(/([><=]) (#{Regexp.escape(critical.to_f.to_s)}|#{Regexp.escape(critical.to_i.to_s)})$/, "\\1 \#{critical}")
61
61
  end
62
62
 
63
+ # using float in query is not allowed, so convert here
64
+ data[:critical] = data[:critical].to_i if data[:type] == "event alert"
65
+
63
66
  data[:type] = "query alert" if data[:type] == "metric alert"
64
67
  when "dashboard"
65
68
  widgets = data[:widgets]&.flat_map { |widget| widget.dig(:definition, :widgets) || [widget] }
@@ -5,7 +5,6 @@ module Kennel
5
5
  include TemplateVariables
6
6
  include OptionalValidations
7
7
 
8
- DASHBOARD_DEFAULTS = { template_variables: [] }.freeze
9
8
  READONLY_ATTRIBUTES = superclass::READONLY_ATTRIBUTES + [
10
9
  :author_handle, :author_name, :modified_at, :url, :is_read_only, :notify_list
11
10
  ]
@@ -22,13 +21,14 @@ module Kennel
22
21
  template_variable_presets: nil
23
22
  }.freeze
24
23
 
25
- settings :title, :description, :definitions, :widgets, :layout_type, :template_variable_presets
24
+ settings :title, :description, :definitions, :widgets, :layout_type, :template_variable_presets, :reflow_type
26
25
 
27
26
  defaults(
28
27
  description: -> { "" },
29
28
  definitions: -> { [] },
30
29
  widgets: -> { [] },
31
30
  template_variable_presets: -> { DEFAULTS.fetch(:template_variable_presets) },
31
+ reflow_type: -> { layout_type == "ordered" ? "auto" : nil },
32
32
  id: -> { nil }
33
33
  )
34
34
 
@@ -41,6 +41,7 @@ module Kennel
41
41
  super
42
42
 
43
43
  ignore_default(expected, actual, DEFAULTS)
44
+ ignore_default(expected, actual, reflow_type: "auto") if expected[:layout_type] == "ordered"
44
45
 
45
46
  widgets_pairs(expected, actual).each do |pair|
46
47
  # conditional_formats ordering is randomly changed by datadog, compare a stable ordering
@@ -116,6 +117,8 @@ module Kennel
116
117
  widgets: all_widgets
117
118
  }
118
119
 
120
+ @json[:reflow_type] = reflow_type if reflow_type # setting nil breaks create with "ordered"
121
+
119
122
  @json[:id] = id if id
120
123
 
121
124
  validate_json(@json) if validate
@@ -5,8 +5,6 @@ module Kennel
5
5
  include OptionalValidations
6
6
 
7
7
  RENOTIFY_INTERVALS = [0, 10, 20, 30, 40, 50, 60, 90, 120, 180, 240, 300, 360, 720, 1440].freeze # minutes
8
- # 2d and 1w are valid timeframes for anomaly monitors
9
- QUERY_INTERVALS = ["1m", "5m", "10m", "15m", "30m", "1h", "2h", "4h", "1d", "2d", "1w"].freeze
10
8
  OPTIONAL_SERVICE_CHECK_THRESHOLDS = [:ok, :warning].freeze
11
9
  READONLY_ATTRIBUTES = superclass::READONLY_ATTRIBUTES + [
12
10
  :multi, :matching_downtimes, :overall_state_modified, :overall_state, :restricted_roles
@@ -202,14 +200,6 @@ module Kennel
202
200
  invalid! "renotify_interval must be one of #{RENOTIFY_INTERVALS.join(", ")}"
203
201
  end
204
202
 
205
- if type == "query alert"
206
- # verify interval is valid
207
- interval = data.fetch(:query)[/\(last_(\S+?)\)/, 1]
208
- if interval && !QUERY_INTERVALS.include?(interval)
209
- invalid! "query interval was #{interval}, but must be one of #{QUERY_INTERVALS.join(", ")}"
210
- end
211
- end
212
-
213
203
  if ["query alert", "service check"].include?(type) # TODO: most likely more types need this
214
204
  # verify is_match/is_exact_match uses available variables
215
205
  message = data.fetch(:message)
data/lib/kennel/tasks.rb CHANGED
@@ -158,7 +158,9 @@ namespace :kennel do
158
158
  found.each do |resource|
159
159
  if ENV["URLS"]
160
160
  parsed = JSON.parse(resource)
161
- Kennel.out.puts models[parsed.fetch("api_resource")].url(parsed.fetch("id"))
161
+ url = models[parsed.fetch("api_resource")].url(parsed.fetch("id"))
162
+ title = parsed["title"] || parsed["name"]
163
+ Kennel.out.puts "#{url} # #{title}"
162
164
  else
163
165
  Kennel.out.puts resource
164
166
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.83.0"
3
+ VERSION = "1.85.2"
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.83.0
4
+ version: 1.85.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-02 00:00:00.000000000 Z
11
+ date: 2021-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday