kennel 1.92.0 → 1.93.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: 9c49a8d3df01c51505bd27350f74dde6f4211fe576a97857e68f27f5d86aae4d
4
- data.tar.gz: 72641a908961fe238b70a59d3e952abfccc83bd9522c12757f0d436993f73263
3
+ metadata.gz: f5c90741d459ffe101d85e766085ac9d2687eefa66039bf8956fb87d9ea6856f
4
+ data.tar.gz: 7c1b63c19b108fa86220de5bb6dc96ce05dc4902335a4a8f653448d3c6adeca3
5
5
  SHA512:
6
- metadata.gz: 1789814bea2d153d1428a751ce1b56dbdbd89714cc81608e4a133ae05377a55c724a26809419c995224f5f669387f5116926eb558646307a3415cb0672b10da5
7
- data.tar.gz: 69ea27ba49933d745bf5cf362cb4361bee0bdf74cd4934fad6616b5ec9ba52216e4a5e365723550792c64a866d114b328c3c61483cce5b7b5ec0d2b21cdc476b
6
+ metadata.gz: a015c03ac9583762088c11609f4f321effdab3789cb4f6f4f1b49409da8802db79c1f0c6ac781f524184aef4426fcdd10db3028d7423bced9f787cea9d697fe1
7
+ data.tar.gz: 16385c8f90d7ce325931ddbfaea64e7238d9c33805ed934678f95789839460a3b1c851a5e2b9586173083d72c48eca2df59a67a8759d224de8f97db83cd78b95
@@ -46,7 +46,6 @@ module Kennel
46
46
  font_size: "14"
47
47
  },
48
48
  "query_value" => {
49
- autoscale: true,
50
49
  time: {},
51
50
  title_align: "left",
52
51
  title_size: "16"
data/lib/kennel/syncer.rb CHANGED
@@ -3,6 +3,7 @@ module Kennel
3
3
  class Syncer
4
4
  DELETE_ORDER = ["dashboard", "slo", "monitor", "synthetics/tests"].freeze # dashboards references monitors + slos, slos reference monitors
5
5
  LINE_UP = "\e[1A\033[K" # go up and clear
6
+ DEFAULT_BRANCH = "master"
6
7
 
7
8
  def initialize(api, expected, project: nil)
8
9
  @api = api
@@ -26,11 +27,7 @@ module Kennel
26
27
  def confirm
27
28
  return false if noop?
28
29
  return true if ENV["CI"] || !STDIN.tty?
29
- if @delete.any? && @project_filter
30
- Kennel.out.puts(
31
- Utils.color(:red, "WARNING: deleting resources that had `id: -> { ...` breaks master branch")
32
- )
33
- end
30
+ warn_about_deleting_resources_with_id if @project_filter
34
31
  Utils.ask("Execute Plan ?")
35
32
  end
36
33
 
@@ -63,6 +60,30 @@ module Kennel
63
60
 
64
61
  private
65
62
 
63
+ # this is brittle/hacky since it relies on knowledge from the generation + git + branch knowledge
64
+ def warn_about_deleting_resources_with_id
65
+ @delete.each do |_, _, a|
66
+ tracking_id = a.fetch(:tracking_id)
67
+ api_resource = a.fetch(:klass).api_resource
68
+
69
+ file = "generated/#{tracking_id.sub(":", "/")}.json"
70
+ old = `true && git show #{DEFAULT_BRANCH}:#{file.shellescape} 2>&1` # true && to not crash on missing git
71
+
72
+ next unless $?.success?
73
+ old =
74
+ begin
75
+ JSON.parse(old)
76
+ rescue StandardError
77
+ false
78
+ end
79
+ next if !old || !old["id"]
80
+
81
+ Kennel.out.puts(
82
+ Utils.color(:red, "WARNING: deleting #{api_resource} #{tracking_id} will break #{DEFAULT_BRANCH} branch")
83
+ )
84
+ end
85
+ end
86
+
66
87
  # loop over items until everything is resolved or crash when we get stuck
67
88
  # this solves cases like composite monitors depending on each other or monitor->monitor slo->slo monitor chains
68
89
  def each_resolved(list)
@@ -139,6 +160,7 @@ module Kennel
139
160
  ensure_all_ids_found
140
161
  @create = @expected.map { |e| [nil, e] }
141
162
  @delete.sort_by! { |_, _, a| DELETE_ORDER.index a.fetch(:klass).api_resource }
163
+ @update.sort_by! { |_, e, _| DELETE_ORDER.index e.class.api_resource } # slo needs to come before slo alert
142
164
  end
143
165
  end
144
166
 
data/lib/kennel/tasks.rb CHANGED
@@ -48,7 +48,7 @@ namespace :kennel do
48
48
  url = Kennel::Utils.path_to_url "/account/settings"
49
49
  puts "Invalid mentions found, either ignore them by adding to `KNOWN` env var or add them via #{url}"
50
50
  bad.each { |f, v| puts "Invalid mention #{v} in monitor message of #{f}" }
51
- Kennel::Tasks.abort
51
+ Kennel::Tasks.abort ENV["KNOWN_WARNING"]
52
52
  end
53
53
  end
54
54
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.92.0"
3
+ VERSION = "1.93.0"
4
4
  end
data/lib/kennel.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require "faraday"
3
3
  require "json"
4
+ require "shellwords"
4
5
  require "English"
5
6
 
6
7
  require "kennel/version"
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.92.0
4
+ version: 1.93.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: 2021-07-22 00:00:00.000000000 Z
11
+ date: 2021-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday