Class: Gzr::Commands::Plan::RunIt

Inherits:
Gzr::Command show all
Includes:
Plan
Defined in:
lib/gzr/commands/plan/run.rb

Instance Method Summary collapse

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) ⇒ RunIt

Returns a new instance of RunIt.



32
33
34
35
36
# File 'lib/gzr/commands/plan/run.rb', line 32

def initialize(plan_id,options)
  super()
  @plan_id = plan_id
  @options = options
end

Instance Method Details

#execute(input: $stdin, output: $stdout) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/gzr/commands/plan/run.rb', line 38

def execute(input: $stdin, output: $stdout)
  say_warning("options: #{@options.inspect}") if @options[:debug]
  with_session do
    plan = query_scheduled_plan(@plan_id)
    # The api call scheduled_plan_run_once is an odd duck. It accepts
    # the output of any of the calls to retrieve a scheduled plan
    # even though many of the attributes passed are marked read-only.
    # Furthermore, if there is a "secret" - like the password for
    # sftp or s3 - it will match the plan body up with the plan
    # as known in the server and if they are identical apart from
    # the secret, the api will effectively include to secret in order
    # execute the plan.
    plan.delete(:id)
    run_scheduled_plan(plan)
    output.puts "Executed plan #{@plan_id}" unless @options[:plain]
  end
end