Class: Inferno::CLI::Session::SessionStatus
- Inherits:
-
Object
- Object
- Inferno::CLI::Session::SessionStatus
- Includes:
- Connection, Errors
- Defined in:
- lib/inferno/apps/cli/session/session_status.rb
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
-
#initialize(session_id, options) ⇒ SessionStatus
constructor
A new instance of SessionStatus.
- #last_test_executed(run_id) ⇒ Object
- #last_test_run ⇒ Object
- #run ⇒ Object
- #run_results(run_id) ⇒ Object
- #status_for_session ⇒ 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) ⇒ SessionStatus
Returns a new instance of SessionStatus.
14 15 16 17 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 14 def initialize(session_id, ) self.session_id = session_id self. = end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
12 13 14 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 12 def @options end |
#session_id ⇒ Object
Returns the value of attribute session_id.
12 13 14 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 12 def session_id @session_id end |
Instance Method Details
#last_test_executed(run_id) ⇒ Object
56 57 58 59 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 56 def last_test_executed(run_id) results = run_results(run_id) results.sort_by { |r| r['updated_at'] }.reverse.find { |result| result['test_id'].present? } end |
#last_test_run ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 43 def last_test_run response = get("api/test_sessions/#{session_id}/last_test_run", nil, content_type: 'application/json') handle_web_api_error(response, :last_session_run) if response.status != 200 return JSON.parse(response.body) if response.body.present? # no execution has started yet for this session { 'test_session_id' => session_id, 'status' => 'created' } end |
#run ⇒ Object
19 20 21 22 23 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 19 def run session_status = status_for_session puts JSON.pretty_generate(session_status) exit(0) end |
#run_results(run_id) ⇒ Object
61 62 63 64 65 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 61 def run_results(run_id) response = get("api/test_runs/#{run_id}/results", nil, content_type: 'application/json') handle_web_api_error(response, :test_run_results) if response.status != 200 JSON.parse(response.body) end |
#status_for_session ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/inferno/apps/cli/session/session_status.rb', line 25 def status_for_session session_status = last_test_run if session_status['id'].present? run_id = session_status['id'] last_test_executed = last_test_executed(run_id) if last_test_executed.present? session_status['last_test_executed'] = last_test_executed['test_id'] if session_status['status'] == 'waiting' session_status['wait_outputs'] = last_test_executed['outputs'] session_status['wait_result_message'] = last_test_executed['result_message'] end end end session_status end |