*** Comments ***
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.


*** Settings ***
Documentation   Library providing keywords for testing connectivity to hosts via ping.
Library   OperatingSystem


*** Variables ***
${SUCCESS_RETURN_CODE}   0
${CONNECTIVITY_POL_TIME}   5sec
${CONNECTIVITY_MAX_WAIT_TIME}   30sec


*** Keywords ***
Test Ping Host
    [Documentation]   Run Ping
    ...               Parameters:
    ...                  host: IP or name of the host
    ...               Execution example:
    ...                  Ping Test   \${host}
    [Arguments]   ${host}
    ${rc}   ${stdout}=   Run And Return Rc And Output   ping -c 2 -W 1 ${host}
    Log   ${stdout}
    Should Be Equal As Integers   ${rc}   ${SUCCESS_RETURN_CODE}

Test Connectivity
    [Documentation]   Ping a host several times during ${CONNECTIVITY_MAX_WAIT_TIME} until it succeeds or raises a timeout.
    [Arguments]   ${host}
    Wait Until Keyword Succeeds   ${CONNECTIVITY_MAX_WAIT_TIME}   ${CONNECTIVITY_POL_TIME}   Test Ping Host   ${host}
