Update VPP version downloaded from Nexus. 70/470/24
authorMatej Klotton <mklotton@cisco.com>
Thu, 3 Mar 2016 16:49:13 +0000 (17:49 +0100)
committerGerrit Code Review <gerrit@fd.io>
Fri, 11 Mar 2016 12:22:05 +0000 (12:22 +0000)
Change-Id: Iae2ee6d576347262d9f3f9a9e9b9cc65dbc5bf5e
Signed-off-by: Matej Klotton <mklotton@cisco.com>
bootstrap.sh
resources/libraries/bash/dut_setup.sh
resources/libraries/python/DUTSetup.py
resources/libraries/python/ssh.py
tests/suites/__init__.robot
tests/suites/vxlan/vxlan_untagged.robot

index 3750866..efd5f34 100755 (executable)
@@ -89,16 +89,15 @@ chmod 600 priv_key
 
 rm -f *.deb
 if [ "${#}" -ne "0" ]; then
 
 rm -f *.deb
 if [ "${#}" -ne "0" ]; then
-    echo "let's use the parameters"
     arr=(${@})
     echo ${arr[0]}
 else
     arr=(${@})
     echo ${arr[0]}
 else
-    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp/1.0.0-185~gca0f3b3_amd64/vpp-1.0.0-185~gca0f3b3_amd64.deb" || exit
-    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dbg/1.0.0-185~gca0f3b3_amd64/vpp-dbg-1.0.0-185~gca0f3b3_amd64.deb" || exit
-    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dev/1.0.0-185~gca0f3b3_amd64/vpp-dev-1.0.0-185~gca0f3b3_amd64.deb" || exit
-    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dpdk-dev/1.0.0-185~gca0f3b3_amd64/vpp-dpdk-dev-1.0.0-185~gca0f3b3_amd64.deb" || exit
-    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dpdk-dkms/1.0.0-185~gca0f3b3_amd64/vpp-dpdk-dkms-1.0.0-185~gca0f3b3_amd64.deb" || exit
-    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-lib/1.0.0-185~gca0f3b3_amd64/vpp-lib-1.0.0-185~gca0f3b3_amd64.deb" || exit
+    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp/1.0.0-229~gb1df169_amd64/vpp-1.0.0-229~gb1df169_amd64.deb" || exit
+    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dbg/1.0.0-229~gb1df169_amd64/vpp-dbg-1.0.0-229~gb1df169_amd64.deb" || exit
+    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dev/1.0.0-229~gb1df169_amd64/vpp-dev-1.0.0-229~gb1df169_amd64.deb" || exit
+    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dpdk-dev/1.0.0-229~gb1df169_amd64/vpp-dpdk-dev-1.0.0-229~gb1df169_amd64.deb" || exit
+    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-dpdk-dkms/1.0.0-229~gb1df169_amd64/vpp-dpdk-dkms-1.0.0-229~gb1df169_amd64.deb" || exit
+    wget -q "https://nexus.fd.io/service/local/repositories/fd.io.dev/content/io/fd/vpp/vpp-lib/1.0.0-229~gb1df169_amd64/vpp-lib-1.0.0-229~gb1df169_amd64.deb" || exit
 fi
 
 VPP_DEBS=(*.deb)
 fi
 
 VPP_DEBS=(*.deb)
index 077fdcc..c6bd0fb 100644 (file)
 # limitations under the License.
 
 echo
 # limitations under the License.
 
 echo
-echo Restart VPP
+echo List vpp packages
 echo
 echo
-sudo -S service vpp restart
+dpkg -l vpp\*
 
 echo
 
 echo
-echo List vpp packages
+echo See vpp process
 echo
 echo
-dpkg -l vpp\*
+ps aux | grep vpp
 
 echo
 
 echo
-echo List /proc/meminfo
+echo See /etc/vpp/startup.conf
 echo
 echo
-cat /proc/meminfo
+cat /etc/vpp/startup.conf
 
 echo
 
 echo
-echo See vpp process
+echo Restart VPP
 echo
 echo
-ps aux | grep vpp
+sudo -S service vpp restart
+
+echo
+echo List /proc/meminfo
+echo
+cat /proc/meminfo
 
 echo
 echo See free memory
 echo
 free -m
 
 
 echo
 echo See free memory
 echo
 free -m
 
+echo
+echo See vpp process
+echo
+ps aux | grep vpp
+
 echo UUID
 sudo dmidecode | grep UUID
 
 echo Add dpdk-input trace
 sudo vpp_api_test <<< "exec trace add dpdk-input 100"
 echo UUID
 sudo dmidecode | grep UUID
 
 echo Add dpdk-input trace
 sudo vpp_api_test <<< "exec trace add dpdk-input 100"
+RESULT=$?
+if [ $RESULT -ne 0 ]; then
+  echo
+  echo See /var/log/syslog
+  sudo tail -n 200 /var/log/syslog
+  exit $RESULT
+fi
index e5e5678..d5ebf9a 100644 (file)
 # 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.
 # 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.
+
 from robot.api import logger
 from topology import NodeType
 from ssh import SSH
 from constants import Constants
 
 from robot.api import logger
 from topology import NodeType
 from ssh import SSH
 from constants import Constants
 
-class DUTSetup(object):
 
 
-    def __init__(self):
-        pass
+class DUTSetup(object):
 
     def start_vpp_service_on_all_duts(self, nodes):
         """Start up the VPP service on all nodes."""
 
     def start_vpp_service_on_all_duts(self, nodes):
         """Start up the VPP service on all nodes."""
@@ -48,6 +47,7 @@ class DUTSetup(object):
             ssh.exec_command('sudo -Sn bash {0}/{1}/dut_setup.sh'.format(
                 Constants.REMOTE_FW_DIR, Constants.RESOURCES_LIB_SH))
         logger.trace(stdout)
             ssh.exec_command('sudo -Sn bash {0}/{1}/dut_setup.sh'.format(
                 Constants.REMOTE_FW_DIR, Constants.RESOURCES_LIB_SH))
         logger.trace(stdout)
+        logger.trace(stderr)
         if 0 != int(ret_code):
             logger.debug('DUT {0} setup script failed: "{1}"'.
                     format(node['host'], stdout + stderr))
         if 0 != int(ret_code):
             logger.debug('DUT {0} setup script failed: "{1}"'.
                     format(node['host'], stdout + stderr))
index a2bb9b1..2de6f4a 100644 (file)
@@ -18,6 +18,7 @@ from time import time
 from robot.api import logger
 from interruptingcow import timeout
 from robot.utils.asserts import assert_equal, assert_not_equal
 from robot.api import logger
 from interruptingcow import timeout
 from robot.utils.asserts import assert_equal, assert_not_equal
+from socket import timeout as socket_timeout
 
 __all__ = ["exec_cmd", "exec_cmd_no_error"]
 
 
 __all__ = ["exec_cmd", "exec_cmd_no_error"]
 
@@ -72,7 +73,7 @@ class SSH(object):
         Returns (return_code, stdout, stderr).
         """
         logger.trace('exec_command on {0}: {1}'
         Returns (return_code, stdout, stderr).
         """
         logger.trace('exec_command on {0}: {1}'
-                .format(self._ssh.get_transport().getpeername(), cmd))
+                     .format(self._ssh.get_transport().getpeername(), cmd))
         start = time()
         chan = self._ssh.get_transport().open_session()
         if timeout is not None:
         start = time()
         chan = self._ssh.get_transport().open_session()
         if timeout is not None:
@@ -84,22 +85,33 @@ class SSH(object):
 
         stdout = ""
         while True:
 
         stdout = ""
         while True:
-            buf = chan.recv(self.__MAX_RECV_BUF)
-            stdout += buf
-            if not buf:
+            try:
+                buf = chan.recv(self.__MAX_RECV_BUF)
+                stdout += buf
+                if not buf:
+                    break
+            except socket_timeout:
+                logger.trace('Channels stdout timeout occurred')
                 break
 
         stderr = ""
         while True:
                 break
 
         stderr = ""
         while True:
-            buf = chan.recv_stderr(self.__MAX_RECV_BUF)
-            stderr += buf
-            if not buf:
+            try:
+                buf = chan.recv_stderr(self.__MAX_RECV_BUF)
+                stderr += buf
+                if not buf:
+                    break
+            except socket_timeout:
+                logger.trace('Channels stderr timeout occurred')
                 break
 
         return_code = chan.recv_exit_status()
         logger.trace('chan_recv/_stderr took {} seconds'.format(time()-end))
 
                 break
 
         return_code = chan.recv_exit_status()
         logger.trace('chan_recv/_stderr took {} seconds'.format(time()-end))
 
-        return (return_code, stdout, stderr)
+        logger.trace('return RC {}'.format(return_code))
+        logger.trace('return STDOUT {}'.format(stdout))
+        logger.trace('return STDERR {}'.format(stderr))
+        return return_code, stdout, stderr
 
     def exec_command_sudo(self, cmd, cmd_input=None, timeout=10):
         """Execute SSH command with sudo on a new channel on the connected Node.
 
     def exec_command_sudo(self, cmd, cmd_input=None, timeout=10):
         """Execute SSH command with sudo on a new channel on the connected Node.
index 64f4a99..e025575 100644 (file)
@@ -16,6 +16,6 @@
 | Library | resources/libraries/python/SetupFramework.py
 | Library | resources.libraries.python.topology.Topology
 | Suite Setup | Run Keywords | Setup Framework | ${nodes}
 | Library | resources/libraries/python/SetupFramework.py
 | Library | resources.libraries.python.topology.Topology
 | Suite Setup | Run Keywords | Setup Framework | ${nodes}
-| ...         | AND          | Start VPP Service On All DUTs | ${nodes}
+| ...         | AND          | Setup All DUTs | ${nodes}
 | ...         | AND          | Update All Interface Data On All Nodes | ${nodes}
 
 | ...         | AND          | Update All Interface Data On All Nodes | ${nodes}
 
index 0ec9770..638c056 100644 (file)
@@ -16,7 +16,7 @@
 | Resource | resources/libraries/robot/default.robot
 | Resource | resources/libraries/robot/vxlan.robot
 | Resource | resources/libraries/robot/l2_traffic.robot
 | Resource | resources/libraries/robot/default.robot
 | Resource | resources/libraries/robot/vxlan.robot
 | Resource | resources/libraries/robot/l2_traffic.robot
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | EXPECTED_FAILING | VM_ENV | HW_ENV
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | HW_ENV
 | Suite Setup | Run Keywords | Setup all DUTs before test
 | ...         | AND          | Setup all TGs before traffic script
 | ...         | AND          | Setup VXLAN tunnel on nodes | ${nodes['TG']}
 | Suite Setup | Run Keywords | Setup all DUTs before test
 | ...         | AND          | Setup all TGs before traffic script
 | ...         | AND          | Setup VXLAN tunnel on nodes | ${nodes['TG']}