Class: Gzr::Commands::Alert::Randomize
- Inherits:
-
Gzr::Command
- Object
- Gzr::Command
- Gzr::Commands::Alert::Randomize
- Defined in:
- lib/gzr/commands/alert/randomize.rb
Instance Method Summary collapse
- #execute(input: $stdin, output: $stdout) ⇒ Object
-
#initialize(alert_id, options) ⇒ Randomize
constructor
A new instance of Randomize.
- #randomize_alert(alert, window = 60) ⇒ Object
Methods included from Gzr::Cron
Methods included from User
#delete_user, #query_all_users, #query_me, #query_user, #search_users, #trim_user, #update_user
Methods included from Alert
#alert_notifications, #create_alert, #delete_alert, #follow_alert, #get_alert, #read_alert_notification, #search_alerts, #unfollow_alert, #update_alert, #update_alert_field
Methods inherited from Gzr::Command
#all_color_collections, #color_collection, #color_palette_lookup!, #create_merge_query, #create_query, #default_color_collection, #field_expressions_eval, #field_names, #find_color_palette_reference, #find_vis_config_reference, #get_auth, #get_user_by_id, #keys_to_keep, #keys_to_keep_internal, #merge_query, #pairs, #query, #render_csv, #rewrite_color_palette!, #run_inline_query, #update_color_palette!
Methods included from Session
#build_connection_hash, #login, #logout_all, #pastel, #read_token_data, #say_error, #say_ok, #say_warning, #sufficient_version?, #token_file, #update_auth, #with_session, #write_token_data
Constructor Details
#initialize(alert_id, options) ⇒ Randomize
Returns a new instance of Randomize.
36 37 38 39 40 |
# File 'lib/gzr/commands/alert/randomize.rb', line 36 def initialize(alert_id,) super() @alert_id = alert_id @options = end |
Instance Method Details
#execute(input: $stdin, output: $stdout) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/gzr/commands/alert/randomize.rb', line 42 def execute(input: $stdin, output: $stdout) say_warning(@options) if @options[:debug] window = @options[:window] if window < 1 or window > 60 say_error("window must be between 1 and 60") raise Gzr::CLI::Error.new() end with_session do @me ||= query_me("id") if @alert_id alert = get_alert(@alert_id) if alert randomize_alert(alert,window) else say_warning("Alert #{@alert_id} not found") end else req = {} req[:disabled] = false req[:all_owners] = @options[:all] unless @options[:all].nil? alerts = search_alerts(**req) begin say_ok "No alerts found" return nil end unless alerts && alerts.length > 0 alerts.each do |alert| randomize_alert(alert,window) end end end end |
#randomize_alert(alert, window = 60) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/gzr/commands/alert/randomize.rb', line 79 def randomize_alert(alert,window=60) crontab = alert[:cron] if crontab == "" say_warning("skipping alert #{alert[:id]} with no cron") return end crontab = randomize_cron(crontab, window) begin alert[:cron] = crontab update_alert(alert[:id], alert) rescue LookerSDK::UnprocessableEntity => e say_warning("Skipping invalid entry") end end |