X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=utils%2Fci%2Fcheck_manual_usage_example.sh;fp=utils%2Fci%2Fcheck_manual_usage_example.sh;h=0000000000000000000000000000000000000000;hb=410e0209ae4d558ffe8f81e167bbc8a45f837633;hp=8bd5584e692383ec37166d1577a5389e7e495176;hpb=fe94c7029fe909612427ef92784a80a8c46e7b67;p=osm%2Fvim-emu.git diff --git a/utils/ci/check_manual_usage_example.sh b/utils/ci/check_manual_usage_example.sh deleted file mode 100755 index 8bd5584..0000000 --- a/utils/ci/check_manual_usage_example.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash -export DOCKER_HOST="unix:///var/run/docker.sock" - -set -e -set -x - -W() { - # Wait until a line appears in the screen session. - # It starts from the beginning of the log and exits after the first match. - local T=${2:-20s} - #timeout -k 3s ${T} stdbuf -o0 grep -q -m 1 "^${1}" <(tail -F -n+0 screenlog.0) - # (HACK) As Jenkins blocks subshell, we must use an intermediate script - local SUBF=$(mktemp) - chmod +x ${SUBF} - cat > ${SUBF} <<- EOF - #!/bin/bash -e - while true; do - if strings screenlog.0 | grep -m 1 "\${1}"; then - exit 0 - fi - sleep 0.5s - done - EOF - local RES=0 - timeout -k 3s ${T} ${SUBF} "${1}" || RES=$? - rm -f ${SUBF} - if [ ! "$RES" = "0" ]; then - sync - echo -e "\n\n\n(Debug) Error while waiting for a pattern to appear in screenlog.0\n\n\n" - strings screenlog.0 - fi - return ${RES} -} - -Cmd() { - # Send a command to the screen session, aka into the containernet prompt - screen -S sonemu -X stuff "${1}^M" -} - -Vnf() { - # Send a command inside the vnf1 container - docker exec -t "mn.${1}" /bin/bash -c "${2}" && sync -} - - -if ! screen --version | grep 'Screen version'; then - # Install screen and do an initial cleanup - sudo apt-get update -qq -y - sudo apt-get install -y screen - screen --version | grep 'Screen version' -fi -if ! timeout --version; then - # Install coreutils for the timeout command - sudo apt-get update -qq -y - sudo apt-get install -y coreutils - timeout --version -fi -# Initial cleanup -pkill --signal KILL -f 'SCREEN -L -S sonemu' || true -sleep 1s -screen -wipe || true -rm -f screenlog.0 - - -# Start containernet with a topology -screen -L -S sonemu -d -m sudo python src/emuvim/examples/simple_topology.py -# Setup screen for immediate flusing -screen -S sonemu -X logfile flush 0 -# Wait for the cli to start -W '^*** Starting CLI:' 60s -# Print nodes -Cmd 'nodes' -# Start vnf1 -son-emu-cli compute start -d datacenter1 -n vnf1 && sleep 1s -# Start vnf2 -son-emu-cli compute start -d datacenter1 -n vnf2 && sleep 1s -# List compute nodes -son-emu-cli compute list && sleep 1s -sync # avoid text overlapping -# Gather some infos -Cmd 'sh sync' -Cmd 'sh echo "... starting various checks"' -sync # avoid text overlappin -Cmd 'links' -Vnf vnf1 'ifconfig' -Vnf vnf2 'ifconfig' -# Try to ping vnfs -IP_2=$(Vnf vnf2 'ip -f inet -o addr show vnf2-eth0' | cut -d\ -f 7 | cut -d/ -f 1) -# IP_1=$(Vnf vnf1 'ip -f inet -o addr show vnf1-eth0' | cut -d\ -f 7 | cut -d/ -f 1) -OUTPUT_A=$(Vnf vnf1 "ping -v -c 2 ${IP_2}") -Cmd 'quit' -# Wait for sonemu to end -W '*** Done' - -echo -e '\n\n******************* Result ******************\n\n' -strings screenlog.0 -echo -e '\n\n*********************************************\n\n' - - -# Check the ping result -if echo ${OUTPUT_A} | grep ', 2 received'; then - echo 'No problems detected' - exit 0 -else - echo 'Ping is broken !' - exit 1 -fi