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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 19da88dfdf66e5ee6b7d206b737004e50944ee708320ae299ab3cffa572e93fc
4
- data.tar.gz: 5f8e87c4aa8d1c49f72981eb4f31ee8acc7a480279b6ae186130b3f87c82ae97
3
+ metadata.gz: 4f0f256eacac62e394fa8bb882ccee6f8a52d8a0c82581a91c492482b1a2c8c8
4
+ data.tar.gz: d8de023ad0a721adf0dde8efc9114f2f6067a56d64f16f7577e85e2895a52c70
5
5
  SHA512:
6
- metadata.gz: 5b314d1e8f9211e4cb169d1f962ce24372c15c8ece2a5c80e18a351ed09f1d00e68123359c5620f366cfb8cf17dd72ff646eb43ffb2d769d2abeb6591fb6d10d
7
- data.tar.gz: a99be73907a90200453fc1959ca4fa3de1599704df6e003f908ac0e69c116f6c29be0198a24dde339ea1380c648e5f18c92b37f98b7f68f69ec07623c2203167
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gazer (0.3.15)
4
+ gazer (0.3.16)
5
5
  faraday (~> 2.7.8)
6
6
  faraday-multipart (~> 1.0)
7
7
  looker-sdk (~> 0.1.6)
@@ -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
- req = {}
54
- req[:disabled] = false
55
- req[:all_owners] = @options[:all] unless @options[:all].nil?
56
- alerts = search_alerts(**req)
57
- begin
58
- say_ok "No alerts found"
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
- crontab = randomize_cron(crontab, window)
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
- alert[:cron] = crontab
71
- update_alert(alert[:id], alert)
72
- rescue LookerSDK::UnprocessableEntity => e
73
- say_warning("Skipping invalid entry")
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
@@ -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
- plans = query_all_scheduled_plans( @options[:all]?'all':@me[:id] )
54
- plans.each do |plan|
55
- crontab = plan[:crontab]
56
- if crontab == ""
57
- say_warning("skipping plan #{plan[:id]} with no crontab")
58
- next
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
- crontab = randomize_cron(crontab, window)
61
- begin
62
- update_scheduled_plan(plan[:id], { crontab: crontab })
63
- rescue LookerSDK::UnprocessableEntity => e
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
@@ -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
@@ -44,7 +44,7 @@ module Gzr
44
44
  hour = 0
45
45
  end
46
46
  cronfields[0] = minute
47
- cronfields[1] = hour
47
+ cronfields[1] = hour if /^[[:digit:]]+$/.match? cronfields[1]
48
48
  return cronfields.join(' ')
49
49
  end
50
50
  end
data/lib/gzr/version.rb CHANGED
@@ -20,5 +20,5 @@
20
20
  # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
22
  module Gzr
23
- VERSION = '0.3.15'.freeze
23
+ VERSION = '0.3.16'.freeze
24
24
  end
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.15
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-12 00:00:00.000000000 Z
11
+ date: 2024-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-reader