Class: Superbot::CLI::Cloud::Webdriver::ListCommand

Inherits:
Clamp::Command
  • Object
show all
Includes:
Superbot::Cloud::Validations
Defined in:
lib/superbot/cloud/cli/cloud/webdriver/list_command.rb

Constant Summary collapse

OUTPUT_HEADERS =
{
  session_id: "Session ID",
  created_at: "Created at",
  updated_at: "Last activity"
}.freeze

Instance Method Summary collapse

Methods included from Superbot::Cloud::Validations

#require_login

Instance Method Details

#executeObject



18
19
20
21
# File 'lib/superbot/cloud/cli/cloud/webdriver/list_command.rb', line 18

def execute
  
  list_sessions
end

#list_sessionsObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/superbot/cloud/cli/cloud/webdriver/list_command.rb', line 23

def list_sessions
  states = all? ? nil : %w[idle proxying]
  api_response = Superbot::Cloud::Api.request(:webdriver_session_list, params: { 'aasm_state[]': states })
  abort api_response[:error] if api_response[:error]

  abort "No sessions found" if api_response[:webdriver_sessions].empty?

  if quiet?
    puts(api_response[:webdriver_sessions].map { |session| session[:session_id] })
  else
    puts OUTPUT_HEADERS.values.map { |header| header.ljust(35) }.join
    puts ''.ljust(35 * OUTPUT_HEADERS.length, '-')
    api_response[:webdriver_sessions].each do |webdriver_session|
      puts webdriver_session.slice(*OUTPUT_HEADERS.keys).values.map { |v| v.to_s.ljust(35) }.join
    end
  end
end