From fb0aa1115ee4d526a2de1426a58560e8db4265e8 Mon Sep 17 00:00:00 2001
From: Rohit Gupta <rohit.gupta@eurecom.fr>
Date: Sat, 18 Jun 2016 18:54:23 +0200
Subject: [PATCH] Gitlab CI: minor fixes to bandrich UE conf

---
 .../tools/configure_cots_bandrich_ue.py       | 32 +++++++++++++++----
 cmake_targets/tools/build_helper              | 24 ++++++++++----
 2 files changed, 43 insertions(+), 13 deletions(-)

diff --git a/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py b/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
index cde52c686b..8f1161390f 100755
--- a/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
+++ b/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
@@ -33,6 +33,7 @@
 import time
 import serial
 import os
+from socket import AF_INET
 from pyroute2 import IPRoute
 import sys
 import re
@@ -97,11 +98,12 @@ signal.signal(signal.SIGINT, signal_handler)
 #ser.isOpen()
 
 class pppThread (threading.Thread):
-    def __init__(self, threadID, name, counter):
+    def __init__(self, threadID, name, counter,port):
         threading.Thread.__init__(self)
         self.threadID = threadID
         self.name = name
         self.counter = counter
+        self.port=port
     def run(self):
         print "Starting " + self.name
         #Here we keep running pppd thread in indefinite loop as this script terminates sometimes
@@ -111,6 +113,10 @@ class pppThread (threading.Thread):
            print "Starting wvdial now..."
            print 'exit_flag = ' + str(exit_flag)
            send_command('AT+CGATT=1','OK', 300)
+           
+           #Now we do search and replace on wvdial config file
+           cmd="sed -i \"s%Modem = .*%Modem = " + self.port + "%g\" " +  bandrich_ppd_config
+           os.system(cmd)
            os.system('wvdial -C ' + bandrich_ppd_config + '' )
            if exit_flag == 1:
               print "Exit flag set to true. Exiting pppThread now"
@@ -146,6 +152,7 @@ def send_command (cmd, response, timeout):
 
 def start_ue () :
    #print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
+   global serial_port
    timeout=60 #timeout in seconds
    send_command('AT', 'OK' , timeout)
    send_command('AT+CFUN=1' , 'OK' , timeout)
@@ -153,23 +160,33 @@ def start_ue () :
    send_command('AT+CGATT=1','OK', 300)
    #os.system('wvdial -C ' + bandrich_ppd_config + ' &' )
    
-   thread_ppp = pppThread(1, "ppp_thread", 1)
+   thread_ppp = pppThread(1, "ppp_thread", 1,port=serial_port)
    thread_ppp.start()
 
-   iface='ppp0'
+   #iface='ppp0'
    
    while 1:
      time.sleep ( 2)
+     iface=''
      #Now we check if ppp0 interface is up and running
      try:
         if exit_flag == 1:
           break
+        cmd="ifconfig -a | sed 's/[ \t].*//;/^$/d' | grep ppp"
+        status, out = commands.getstatusoutput(cmd)
+        iface=out
         ip = IPRoute()
         idx = ip.link_lookup(ifname=iface)[0]
-        os.system ('route add ' + gw + ' ppp0')
+        print "iface = " + iface
+        print " Setting route now..."
+        #os.system("status=1; while [ \"$status\" -ne \"0\" ]; do route add -host " + gw + ' ' + iface + " ; status=$? ;sleep 1; echo \"status = $status\"  ; sleep 2; done ")
+        os.system ('route add -host ' + gw + ' ' + iface + ' 2> /dev/null')
+        #ip.route('add', dst=gw, oif=iface)
+        
         os.system('sleep 5')
-        os.system ('ping ' + gw)
-        break
+        #print "Starting ping now..."
+        os.system ('ping -c 1 ' + gw)
+        #break
      except Exception, e:
         error = ' Interface ' + iface + 'does not exist...'
         error = error + ' In function: ' + sys._getframe().f_code.co_name + ': *** Caught exception: '  + str(e.__class__) + " : " + str( e)
@@ -214,14 +231,17 @@ gw='192.172.0.1'
 while i <  len(sys.argv):
     arg=sys.argv[i]
     if arg == '--start-ue' :
+        print "Turning on UE..."
         find_open_port()
         print 'Using Serial port : ' + serial_port  
         start_ue()
     elif arg == '--stop-ue' :
+        print "Turning off UE..."
         find_open_port()
         print 'Using Serial port : ' + serial_port  
         stop_ue()
     elif arg == '--reset-ue' :
+        print "Resetting UE..."
         find_open_port()
         reset_ue()
     elif arg == '-gw' :
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index 00f6842ffd..55598e2832 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -226,7 +226,22 @@ check_install_additional_tools (){
 	valgrind  \
 	vlan	  \
 	ctags \
-        ntpdate
+        ntpdate \
+        iperf3 \
+        android-tools-adb
+
+    $SUDO pip install paramiko
+    $SUDO pip install pyroute2
+    $SUDO rm -fr /opt/ssh
+    $SUDO git clone https://gist.github.com/2190472.git /opt/ssh
+
+    echo "Installing Netinterfaces packge...."
+    $SUDO rm -fr /tmp/netifaces-0.10.4.tar.gz /tmp/netifaces
+    wget -P /tmp  https://pypi.python.org/packages/18/fa/dd13d4910aea339c0bb87d2b3838d8fd923c11869b1f6e741dbd0ff3bc00/netifaces-0.10.4.tar.gz
+    tar -xzvf /tmp/netifaces-0.10.4.tar.gz -C /tmp
+    cd /tmp/netifaces-0.10.4
+    $SUDO python setup.py install
+    cd -
 }
 
 check_install_oai_software() {
@@ -293,8 +308,7 @@ check_install_oai_software() {
         python-numpy \
         sshpass \
         libxslt1-dev \
-        android-tools-adb \
-        iperf3
+        android-tools-adb
 
     $SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
     
@@ -303,11 +317,7 @@ check_install_oai_software() {
     install_nettle_from_source
     install_gnutls_from_source
 
-    $SUDO pip install paramiko
-    $SUDO pip install pyroute2
     install_asn1c_from_source
-    $SUDO rm -fr /opt/ssh
-    $SUDO git clone https://gist.github.com/2190472.git /opt/ssh
 }
 
 install_asn1c_from_source(){
-- 
GitLab