module Morpheus::Cli::ExecutionRequestHelper
Mixin for Morpheus::Cli
command classes Provides refreshing execution-request records by unique id (uuid)
Public Class Methods
included(klass)
click to toggle source
# File lib/morpheus/cli/mixins/execution_request_helper.rb, line 6 def self.included(klass) klass.send :include, Morpheus::Cli::PrintHelper end
Public Instance Methods
api_client()
click to toggle source
# File lib/morpheus/cli/mixins/execution_request_helper.rb, line 10 def api_client raise "#{self.class} has not defined @api_client" if @api_client.nil? @api_client end
execution_request_interface()
click to toggle source
# File lib/morpheus/cli/mixins/execution_request_helper.rb, line 15 def execution_request_interface # get_interface('execution_request') api_client.execution_request end
wait_for_execution_request(execution_request_id, options={}, print_output = true)
click to toggle source
refresh execution request until it is finished returns json response data of the last execution request when status reached ‘completed’ or ‘failed’
# File lib/morpheus/cli/mixins/execution_request_helper.rb, line 22 def wait_for_execution_request(execution_request_id, options={}, print_output = true) refresh_interval = 10 if options[:refresh_interval].to_i > 0 refresh_interval = options[:refresh_interval] end execution_request = execution_request_interface.get(execution_request_id)['executionRequest'] refresh_display_seconds = refresh_interval % 1.0 == 0 ? refresh_interval.to_i : refresh_interval # unless options[:quiet] # print cyan, "Execution request has not yet finished. Refreshing every #{refresh_display_seconds} seconds...", "\n", reset # end while execution_request['status'] == 'pending' || execution_request['status'] == 'new' do sleep(refresh_interval) execution_request = execution_request_interface.get(execution_request_id)['executionRequest'] end if print_output && options[:quiet] != true if execution_request['stdErr'].to_s.strip != '' && execution_request['stdErr'] != "stdin: is not a tty\n" print_h2 "Error" print execution_request['stdErr'].to_s.strip, reset, "\n" end if execution_request['stdOut'].to_s.strip != '' print_h2 "Output" print execution_request['stdOut'].to_s.strip, reset, "\n" end print reset, "\n" end return execution_request end