Method: VMC::Cli::ConsoleHelper#console_login

Defined in:
lib/cli/console_helper.rb

#console_login(auth_info, port) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/cli/console_helper.rb', line 46

def (auth_info, port)
  if !auth_info["username"] || !auth_info["password"]
    err "Unable to verify console credentials."
  end
  @telnet_client = telnet_client(port)
  prompt = nil
  err_msg = "Login attempt timed out."
  5.times do
    begin
      results = @telnet_client.("Name"=>auth_info["username"],
        "Password"=>auth_info["password"])
      lines = results.sub("Login: Password: ", "").split("\n")
      last_line = lines.pop
      if last_line =~ /[$%#>] \z/n
        prompt = last_line
      elsif last_line =~ /Login failed/
        err_msg = last_line
      end
      break
    rescue TimeoutError
      sleep 1
    rescue EOFError
      #This may happen if we login right syster app starts
      close_console
      sleep 5
      @telnet_client = telnet_client(port)
    end
    display ".", false
  end
  unless prompt
    close_console
    err err_msg
  end
  prompt
end