*** Settings *** Library OperatingSystem Resource ../common.robot Suite Teardown Run Keyword Cleanup *** Variables *** ${lab-name} e2e-maglev ${lab-file-name} e2e-lab/maglev.clab.yml ${runtime} docker *** Test Cases *** Deploy ${lab-name} lab Log ${CURDIR} ${rc} ${output} = Run And Return Rc And Output ... ${CLAB_BIN} --runtime ${runtime} deploy -t ${CURDIR}/${lab-file-name} Log ${output} Should Be Equal As Integers ${rc} 0 Wait for VPP dataplane startup Sleep 5s Client cl1 can ping app server as1 via VPP ${rc} ${output} = Run And Return Rc And Output ... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=cl1 --cmd "ping -c 3 -W 2 10.82.98.82" Log ${output} Should Be Equal As Integers ${rc} 0 Should Not Contain ${output} 0 received Client cl2 can ping app server as2 via VPP ${rc} ${output} = Run And Return Rc And Output ... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=cl2 --cmd "ping -c 3 -W 2 10.82.98.83" Log ${output} Should Be Equal As Integers ${rc} 0 Should Not Contain ${output} 0 received App server as1 can reach app server as3 via VPP ${rc} ${output} = Run And Return Rc And Output ... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=as1 --cmd "ping -c 3 -W 2 10.82.98.84" Log ${output} Should Be Equal As Integers ${rc} 0 Should Not Contain ${output} 0 received App servers have nginx running [Template] Nginx Should Be Serving as1 10.82.98.82 as2 10.82.98.83 as3 10.82.98.84 *** Keywords *** Cleanup Run ${CLAB_BIN} --runtime ${runtime} destroy -t ${CURDIR}/${lab-file-name} --cleanup Nginx Should Be Serving [Arguments] ${node} ${ip} ${rc} ${output} = Run And Return Rc And Output ... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=${node} --cmd "wget -q -O- http://${ip}/" Log ${output} Should Be Equal As Integers ${rc} 0 Should Contain ${output} ${node}