Class: Inferno::CLI::Session::CancelRun
- Inherits:
-
Object
- Object
- Inferno::CLI::Session::CancelRun
- Includes:
- Connection, Errors
- Defined in:
- lib/inferno/apps/cli/session/cancel_run.rb
Constant Summary collapse
- CANCELLABLE_STATUSES =
%w[queued running waiting].freeze
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
-
#session_id ⇒ Object
Returns the value of attribute session_id.
Instance Method Summary collapse
- #cancel_run(current_run) ⇒ Object
-
#initialize(session_id, options) ⇒ CancelRun
constructor
A new instance of CancelRun.
- #last_test_run ⇒ Object
- #run ⇒ Object
Methods included from Errors
#handle_web_api_error, #not_found_error_message, #parse_error_response, #test_run_not_found_message, #text_error_message
Methods included from Connection
#base_url, #check_session_exists, #connection, #delete, #get, #handle_connection_error, #post
Constructor Details
#initialize(session_id, options) ⇒ CancelRun
Returns a new instance of CancelRun.
17 18 19 20 |
# File 'lib/inferno/apps/cli/session/cancel_run.rb', line 17 def initialize(session_id, ) self.session_id = session_id self. = end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
13 14 15 |
# File 'lib/inferno/apps/cli/session/cancel_run.rb', line 13 def @options end |
#session_id ⇒ Object
Returns the value of attribute session_id.
13 14 15 |
# File 'lib/inferno/apps/cli/session/cancel_run.rb', line 13 def session_id @session_id end |
Instance Method Details
#cancel_run(current_run) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/inferno/apps/cli/session/cancel_run.rb', line 27 def cancel_run(current_run) run_id = current_run['id'] unless CANCELLABLE_STATUSES.include?(current_run['status']) error = { errors: "Run '#{run_id}' cannot be cancelled: status is '#{current_run['status']}'" } puts JSON.pretty_generate(error) exit(3) end response = delete("api/test_runs/#{run_id}") handle_web_api_error(response, :cancel_run) if response.status != 204 { run_id: run_id, cancelled: true } end |
#last_test_run ⇒ Object
41 42 43 |
# File 'lib/inferno/apps/cli/session/cancel_run.rb', line 41 def last_test_run SessionStatus.new(session_id, ).last_test_run end |
#run ⇒ Object
22 23 24 25 |
# File 'lib/inferno/apps/cli/session/cancel_run.rb', line 22 def run puts JSON.pretty_generate(cancel_run(last_test_run)) exit(0) end |