gazer 0.3.15 → 0.3.16
Sign up to get free protection for your applications and to get access to all the features.
- 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
|