Class: Gzr::Commands::Plan::Randomize
- Inherits:
-
Gzr::Command
- Object
- Gzr::Command
- Gzr::Commands::Plan::Randomize
- Defined in:
- lib/gzr/commands/plan/randomize.rb
Instance Method Summary collapse
- #execute(input: $stdin, output: $stdout) ⇒ Object
-
#initialize(plan_id, options) ⇒ Randomize
constructor
A new instance of Randomize.
- #randomize_plan(plan, 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 Plan
#create_scheduled_plan, #delete_scheduled_plan, #query_all_scheduled_plans, #query_scheduled_plan, #query_scheduled_plans_for_dashboard, #query_scheduled_plans_for_look, #run_scheduled_plan, #update_scheduled_plan, #upsert_plan_for_dashboard, #upsert_plan_for_look, #upsert_plan_for_obj, #upsert_plans_for_dashboard, #upsert_plans_for_look, #upsert_plans_for_obj
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(plan_id, options) ⇒ Randomize
Returns a new instance of Randomize.
36 37 38 39 40 |
# File 'lib/gzr/commands/plan/randomize.rb', line 36 def initialize(plan_id,) super() @plan_id = plan_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 |
# File 'lib/gzr/commands/plan/randomize.rb', line 42 def execute(input: $stdin, output: $stdout) say_warning("options: #{@options.inspect}") 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 @plan_id plan = query_scheduled_plan(@plan_id) if plan randomize_plan(plan,window) else say_warning("Plan #{@plan_id} not found") end else plans = query_all_scheduled_plans( @options[:all]?'all':@me[:id] ) plans.each do |plan| randomize_plan(plan,window) end end end end |
#randomize_plan(plan, window = 60) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/gzr/commands/plan/randomize.rb', line 70 def randomize_plan(plan,window=60) crontab = plan[:crontab] if crontab == "" say_warning("skipping plan #{plan[:id]} with no crontab") return end crontab = randomize_cron(crontab, window) begin update_scheduled_plan(plan[:id], { crontab: crontab }) rescue LookerSDK::UnprocessableEntity => e say_warning("Skipping invalid entry") end end |