gazer 0.3.15 → 0.3.16
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/lib/gzr/commands/alert/randomize.rb +34 -20
- data/lib/gzr/commands/alert.rb +3 -3
- data/lib/gzr/commands/plan/randomize.rb +26 -12
- data/lib/gzr/commands/plan.rb +4 -4
- data/lib/gzr/modules/cron.rb +1 -1
- data/lib/gzr/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: 4f0f256eacac62e394fa8bb882ccee6f8a52d8a0c82581a91c492482b1a2c8c8
|
4
|
+
data.tar.gz: d8de023ad0a721adf0dde8efc9114f2f6067a56d64f16f7577e85e2895a52c70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b7cb6713fb821ede6bb0ab3618f3aede193b43e0e5b79b9c7fc0f070f692e3c9c224329167d4ed40e018fd769a573c5a166aef8121ebdc865a1a85624b05d5d
|
7
|
+
data.tar.gz: f7678128d9fc3e418b0aee31ae7902fd2c927183f1ad67f5d32597776e3d6b3d039635c41533ff8868d21f6638ad09a50d6ea0ac7213a9a3c9326855f9f8f6d5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [0.3.16](https://github.com/looker-open-source/gzr/compare/v0.3.15...v0.3.16) (2024-06-27)
|
4
|
+
|
5
|
+
|
6
|
+
### Features
|
7
|
+
|
8
|
+
* randomize a specific alert by alert_id ([0e9cf40](https://github.com/looker-open-source/gzr/commit/0e9cf401346845d4f740a75379161cecddf1669b))
|
9
|
+
* randomize a specific plan by plan_id ([99d30f1](https://github.com/looker-open-source/gzr/commit/99d30f1747eafa81989bfd3bfc728c5a367fc1e3))
|
10
|
+
|
3
11
|
## [0.3.15](https://github.com/looker-open-source/gzr/compare/v0.3.14...v0.3.15) (2024-06-12)
|
4
12
|
|
5
13
|
|
data/Gemfile.lock
CHANGED
@@ -33,8 +33,9 @@ module Gzr
|
|
33
33
|
include Gzr::Alert
|
34
34
|
include Gzr::User
|
35
35
|
include Gzr::Cron
|
36
|
-
def initialize(options)
|
36
|
+
def initialize(alert_id,options)
|
37
37
|
super()
|
38
|
+
@alert_id = alert_id
|
38
39
|
@options = options
|
39
40
|
end
|
40
41
|
|
@@ -50,32 +51,45 @@ module Gzr
|
|
50
51
|
with_session do
|
51
52
|
@me ||= query_me("id")
|
52
53
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
return nil
|
60
|
-
end unless alerts && alerts.length > 0
|
61
|
-
|
62
|
-
alerts.each do |alert|
|
63
|
-
crontab = alert[:cron]
|
64
|
-
if crontab == ""
|
65
|
-
say_warning("skipping alert #{alert[:id]} with no cron")
|
66
|
-
next
|
54
|
+
if @alert_id
|
55
|
+
alert = get_alert(@alert_id)
|
56
|
+
if alert
|
57
|
+
randomize_alert(alert,window)
|
58
|
+
else
|
59
|
+
say_warning("Alert #{@alert_id} not found")
|
67
60
|
end
|
68
|
-
|
61
|
+
else
|
62
|
+
req = {}
|
63
|
+
req[:disabled] = false
|
64
|
+
req[:all_owners] = @options[:all] unless @options[:all].nil?
|
65
|
+
alerts = search_alerts(**req)
|
69
66
|
begin
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
67
|
+
say_ok "No alerts found"
|
68
|
+
return nil
|
69
|
+
end unless alerts && alerts.length > 0
|
70
|
+
|
71
|
+
alerts.each do |alert|
|
72
|
+
randomize_alert(alert,window)
|
74
73
|
end
|
75
74
|
end
|
76
75
|
|
77
76
|
end
|
78
77
|
end
|
78
|
+
|
79
|
+
def randomize_alert(alert,window=60)
|
80
|
+
crontab = alert[:cron]
|
81
|
+
if crontab == ""
|
82
|
+
say_warning("skipping alert #{alert[:id]} with no cron")
|
83
|
+
return
|
84
|
+
end
|
85
|
+
crontab = randomize_cron(crontab, window)
|
86
|
+
begin
|
87
|
+
alert[:cron] = crontab
|
88
|
+
update_alert(alert[:id], alert)
|
89
|
+
rescue LookerSDK::UnprocessableEntity => e
|
90
|
+
say_warning("Skipping invalid entry")
|
91
|
+
end
|
92
|
+
end
|
79
93
|
end
|
80
94
|
end
|
81
95
|
end
|
data/lib/gzr/commands/alert.rb
CHANGED
@@ -51,19 +51,19 @@ module Gzr
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
desc 'randomize', 'Randomize the scheduled alerts on a server'
|
54
|
+
desc 'randomize [ALERT_ID]', 'Randomize the scheduled alerts on a server'
|
55
55
|
method_option :help, aliases: '-h', type: :boolean,
|
56
56
|
desc: 'Display usage information'
|
57
57
|
method_option :window, type: :numeric, default: 60,
|
58
58
|
desc: 'Length of window'
|
59
59
|
method_option :all, type: :boolean,
|
60
60
|
desc: 'Randomize all alerts regardless of owner'
|
61
|
-
def randomize(
|
61
|
+
def randomize(alert_id=nil)
|
62
62
|
if options[:help]
|
63
63
|
invoke :help, ['randomize']
|
64
64
|
else
|
65
65
|
require_relative 'alert/randomize'
|
66
|
-
Gzr::Commands::Alert::Randomize.new(options).execute
|
66
|
+
Gzr::Commands::Alert::Randomize.new(alert_id,options).execute
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
@@ -33,8 +33,9 @@ module Gzr
|
|
33
33
|
include Gzr::Plan
|
34
34
|
include Gzr::User
|
35
35
|
include Gzr::Cron
|
36
|
-
def initialize(options)
|
36
|
+
def initialize(plan_id,options)
|
37
37
|
super()
|
38
|
+
@plan_id = plan_id
|
38
39
|
@options = options
|
39
40
|
end
|
40
41
|
|
@@ -50,22 +51,35 @@ module Gzr
|
|
50
51
|
with_session do
|
51
52
|
@me ||= query_me("id")
|
52
53
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
if @plan_id
|
55
|
+
plan = query_scheduled_plan(@plan_id)
|
56
|
+
if plan
|
57
|
+
randomize_plan(plan,window)
|
58
|
+
else
|
59
|
+
say_warning("Plan #{@plan_id} not found")
|
59
60
|
end
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
say_warning("Skipping invalid entry")
|
61
|
+
else
|
62
|
+
plans = query_all_scheduled_plans( @options[:all]?'all':@me[:id] )
|
63
|
+
plans.each do |plan|
|
64
|
+
randomize_plan(plan,window)
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
|
+
|
70
|
+
def randomize_plan(plan,window=60)
|
71
|
+
crontab = plan[:crontab]
|
72
|
+
if crontab == ""
|
73
|
+
say_warning("skipping plan #{plan[:id]} with no crontab")
|
74
|
+
return
|
75
|
+
end
|
76
|
+
crontab = randomize_cron(crontab, window)
|
77
|
+
begin
|
78
|
+
update_scheduled_plan(plan[:id], { crontab: crontab })
|
79
|
+
rescue LookerSDK::UnprocessableEntity => e
|
80
|
+
say_warning("Skipping invalid entry")
|
81
|
+
end
|
82
|
+
end
|
69
83
|
end
|
70
84
|
end
|
71
85
|
end
|
data/lib/gzr/commands/plan.rb
CHANGED
@@ -128,7 +128,7 @@ module Gzr
|
|
128
128
|
desc 'ls', 'List the scheduled plans on a server'
|
129
129
|
method_option :help, aliases: '-h', type: :boolean,
|
130
130
|
desc: 'Display usage information'
|
131
|
-
method_option :fields, type: :string, default: 'id,enabled,name,user(id,display_name),look_id,dashboard_id,lookml_dashboard_id',
|
131
|
+
method_option :fields, type: :string, default: 'id,enabled,name,user(id,display_name),look_id,dashboard_id,lookml_dashboard_id,crontab',
|
132
132
|
desc: 'Fields to display'
|
133
133
|
method_option :disabled, type: :boolean,
|
134
134
|
desc: 'Retrieve disable plans'
|
@@ -145,19 +145,19 @@ module Gzr
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
-
desc 'randomize', 'Randomize the scheduled plans on a server'
|
148
|
+
desc 'randomize [PLAN_ID]', 'Randomize the scheduled plans on a server'
|
149
149
|
method_option :help, aliases: '-h', type: :boolean,
|
150
150
|
desc: 'Display usage information'
|
151
151
|
method_option :window, type: :numeric, default: 60,
|
152
152
|
desc: 'Length of window'
|
153
153
|
method_option :all, type: :boolean,
|
154
154
|
desc: 'Randomize all plans regardless of owner'
|
155
|
-
def randomize(
|
155
|
+
def randomize(plan_id = nil)
|
156
156
|
if options[:help]
|
157
157
|
invoke :help, ['randomize']
|
158
158
|
else
|
159
159
|
require_relative 'plan/randomize'
|
160
|
-
Gzr::Commands::Plan::Randomize.new(options).execute
|
160
|
+
Gzr::Commands::Plan::Randomize.new(plan_id, options).execute
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
data/lib/gzr/modules/cron.rb
CHANGED
data/lib/gzr/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gazer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike DeAngelo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tty-reader
|