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 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