1*** Settings *** 2Documentation This module is for SSH connection override to QEMU 3... based openbmc systems. 4 5Library SSHLibrary timeout=30 seconds 6Library OperatingSystem 7Library Collections 8 9*** Variables *** 10 11*** Keywords *** 12Open Connection And Log In 13 [Documentation] Opens a connection with the given arguments, and logs in. 14 ... Defaults to logging into the BMC. 15 [Arguments] ${username}=${OPENBMC_USERNAME} 16 ... ${password}=${OPENBMC_PASSWORD} &{connection_args} 17 18 # username The username to log into the connection with. 19 # password The password to log into the connection with. 20 # connection_args A dictionary of acceptable inputs to the Open Connection 21 # keyword. This includes, but is not limited to, the 22 # following: 23 # host, alias, port, timeout, newline, prompt, term_type, 24 # width, height, path_separator, endcoding 25 # (For more information, please visit the SSHLibrary doc) 26 27 # Of the above arguments to Open Connection, this keyword 28 # will provide the following default values: 29 # host ${OPENBMC_HOST} 30 31 # If no host was provided, add ${OPENBMC_HOST} to the dictionary 32 ${has_host}= Run Keyword and Return Status 33 ... Dictionary Should Contain Key ${connection_args} host 34 Run Keyword If ${has_host} == ${FALSE} 35 ... Set To Dictionary ${connection_args} host=${OPENBMC_HOST} 36 37 Run Keyword If 38 ... '${SSH_PORT}' != '${EMPTY}' and '${HTTPS_PORT}' != '${EMPTY}' 39 ... User input SSH and HTTPs Ports 40 41 # Check to see if a port to connect to was provided. 42 ${has_port}= Run Keyword and Return Status 43 ... Dictionary Should Contain Key ${connection_args} port 44 45 # If the ${SSH_PORT} is set and no port was provided, add the defined port 46 # to the dictionary and open the connection. Otherwise, open the connection 47 # with the either the provided port or the default port. 48 Run Keyword If '${SSH_PORT}' != '${EMPTY}' and ${has_port} == ${FALSE} 49 ... Run Keywords 50 ... Set To Dictionary ${connection_args} port=${SSH_PORT} AND 51 ... SSHLibrary.Open connection &{connection_args} 52 ... ELSE Run Keyword SSHLibrary.Open connection &{connection_args} 53 54 Login ${username} ${password} 55 56Open Connection for SCP 57 Import Library SCPLibrary WITH NAME scp 58 Run Keyword If '${SSH_PORT}' == '${EMPTY}' scp.Open connection ${OPENBMC_HOST} 59 ... username=${OPENBMC_USERNAME} password=${OPENBMC_PASSWORD} 60 ... ELSE Run Keyword scp.Open connection ${OPENBMC_HOST} port=${SSH_PORT} 61 ... username=${OPENBMC_USERNAME} password=${OPENBMC_PASSWORD} 62 63 64User input SSH and HTTPs Ports 65 [Documentation] Update the global SSH and HTTPs port variable for QEMU 66 ${port_num}= Convert To Integer ${SSH_PORT} 67 ${SSH_PORT}= Replace Variables ${port_num} 68 69 ${https_num}= Convert To Integer ${HTTPS_PORT} 70 Set Global Variable ${AUTH_URI} https://${OPENBMC_HOST}:${https_num} 71