*** Settings ***
Documentation     Module for capturing BMC serial output

Library           Telnet  newline=LF
Library           OperatingSystem
Library           Collections
Library           String


*** Keywords ***

Open Telnet Connection To BMC Serial Console
    [Documentation]   Open telnet connection session to BMC serial console
    ...               The login prompt expected, for example, for barreleye
    ...               is "barreleye login:".
    [Arguments]   ${i_host}=${OPENBMC_SERIAL_HOST}
    ...           ${i_port}=${OPENBMC_SERIAL_PORT}
    ...           ${i_model}=${OPENBMC_MODEL}

    # Description of argument(s):
    # i_host    The host name or IP of the serial console.
    # i_port    The port of the serial console.
    # i_model   The path to the system data, i.e. "./data/Witherspoon.py".

    ${prompt_string}=  Remove String  ${i_model}  ./data/  .py
    ${prompt_string}=  Convert To Lowercase  ${prompt_string} login:
    Telnet.Open Connection
    ...  ${i_host}  port=${i_port}  prompt=#
    Telnet.Set Newline  \n
    Telnet.Set Newline  CRLF
    Telnet.Write  \n
    Telnet.Login  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
    ...  login_prompt=${prompt_string}  password_prompt=Password:
    Telnet.Set Timeout  30 minute 30 seconds


Read and Log BMC Serial Console Output
    [Documentation]    Reads everything that is currently available
    ...                in the output.

    ${bmc_serial_log}=   Telnet.Read
    Log   ${bmc_serial_log}


Execute Command On Serial Console
    [Documentation]  Execute a command on the BMC serial console.
    [Arguments]  ${command_string}

    # Description of argument(s):
    # command   The command to execute on the BMC.

    Open Telnet Connection To BMC Serial Console
    Telnet.Write  \n
    Telnet.Execute Command  ${command_string}
    Close Serial Console Connection


Close Serial Console Connection
    [Documentation]  Log out of the BMC and close telnet.

    Execute Command On Serial Console  exit
    Telnet.Close Connection