summaryrefslogtreecommitdiffstats
path: root/Controller/gsmselftest.py
diff options
context:
space:
mode:
authorRefik Hadzialic2011-08-02 16:47:17 +0200
committerRefik Hadzialic2011-08-02 16:47:17 +0200
commit24414ec73f840f3f9050b4724bdeae6fd9731870 (patch)
treef931677f26ab4f7d18d34dc6175316dd125dd030 /Controller/gsmselftest.py
parentModiefied the code to work with ssh tunneling (diff)
parentrename device name on database. (diff)
downloadgsm-selftest-24414ec73f840f3f9050b4724bdeae6fd9731870.tar.gz
gsm-selftest-24414ec73f840f3f9050b4724bdeae6fd9731870.tar.xz
gsm-selftest-24414ec73f840f3f9050b4724bdeae6fd9731870.zip
Merge branch 'master' of lab.ks.uni-freiburg.de:lsfks/projekte/gsm-selftest
Diffstat (limited to 'Controller/gsmselftest.py')
-rwxr-xr-xController/gsmselftest.py271
1 files changed, 271 insertions, 0 deletions
diff --git a/Controller/gsmselftest.py b/Controller/gsmselftest.py
new file mode 100755
index 0000000..400970f
--- /dev/null
+++ b/Controller/gsmselftest.py
@@ -0,0 +1,271 @@
+#! /usr/bin/env python
+import sys
+import ControllerClass
+import DbClass
+import PingClass
+import DeviceAddress
+from time import sleep
+
+def ping(handler):
+
+ global serverStatus
+
+ if handler == 'landline':
+ server = PingClass.Ping('sipgate.de')
+ serverStatus = server.ping(3)
+
+ elif handler == 'sip':
+ server = PingClass.Ping('132.230.4.8')
+ serverStatus = server.ping(3)
+
+ elif handler == 'unisip':
+ server = PingClass.Ping('132.230.252.228')
+ serverStatus = server.ping(3)
+
+ elif handler == 'gsmr1':
+ server = PingClass.Ping('localhost')
+ serverStatus = server.ping(3)
+
+ elif handler == 'gsmr2':
+ server = PingClass.Ping('132.230.4.64')
+ serverStatus = server.ping(3)
+
+
+def doTest(callFrom,callTo):
+ global testResult
+
+ ping(callFrom)
+ device = DeviceAddress.DeviceAddress()
+
+ if serverStatus <> 0:
+
+ ping(callTo)
+ if serverStatus <> 0:
+ device.findDevice(callTo)
+ recAdd = device.add
+ destNo = str(device.num)
+
+ device.findDevice(callFrom)
+ callAdd = device.add
+
+ print '\n'
+ print "Caller: ", callFrom
+ print 'Destination: ', callTo
+ makeTest = ControllerClass.test(callFrom, callAdd, callTo, recAdd, destNo)
+ makeTest.FuncTest()
+
+ #db.addResult(taskID, makeTest.testResult)
+
+ if makeTest.repeatTest == True:
+ testRepeat = True
+
+ print "Result :", makeTest.testResult
+
+ #db.deleteTempTask(taskID)
+ #db.tasksList.remove(item)
+ #db.tasksList.insert(i,'')
+ sleep(3)
+ else:
+ print "[failed] 500 "+callTo+ " Server Internal Error"
+ else:
+ print "[failed] 500 "+callFrom+ " Server Internal Error"
+
+def doSipTest():
+
+ print '--SIP Part Test--'
+ destList = ['sip', 'gsmr1','gsmr2', 'gsmr3', 'landline', 'unisip', 'gsmeO', 'gsmeV', 'gsmeT', 'gsmeE']
+ #destList = ['unisip']
+ for callTo in destList:
+
+ callFrom = 'sip'
+ if callFrom <> callTo:
+ doTest(callFrom, callTo)
+
+def doLandlineTest():
+
+ print '--Landline Part Test--'
+ destList = ['gsmr1', 'gsmr2', 'gsmr3', 'sip']
+
+ for callTo in destList:
+
+ callFrom = 'landline'
+ doTest(callFrom, callTo)
+
+def doGsmrzTest():
+
+ print '--GSM Part Test--'
+ destList = ['sip', 'gsmr1','gsmr2', 'gsmr3', 'landline', 'unisip', 'gsmeO', 'gsmeV', 'gsmeT', 'gsmeE']
+ calllist = ['gsmr1','gsmr2', 'gsmr3']
+
+ for callFrom in calllist:
+
+ for callTo in destList:
+ if callTo <> callFrom:
+ doTest(callFrom, callTo)
+
+ doGsmExtTest()
+
+def doGsmExtTest():
+
+ destList = ['sip', 'gsmr1','gsmr2', 'gsmr3']
+
+ for callTo in destList:
+
+ callFrom = 'gsmeO'
+ doTest(callFrom, callTo)
+
+ callFrom = 'gsmeV'
+ doTest(callFrom, callTo)
+
+ callFrom = 'gsmeT'
+ doTest(callFrom, callTo)
+
+ callFrom = 'gsmeE'
+ doTest(callFrom, callTo)
+
+def doAllTest():
+
+ doSipTest()
+ doLandlineTest()
+ doGsmTest()
+
+if len(sys.argv) > 1:
+
+ command = sys.argv[1]
+ print '\n'
+
+ if command == '--all':
+ doAllTest()
+
+ elif command == '--sip':
+ doSipTest()
+
+ elif command == '--gsm':
+ doGsmTest()
+
+ elif command == '--landline':
+ doLandlineTest()
+
+ elif command == '--help':
+ file = open('help.txt', 'r')
+ print file.read()
+
+ else:
+ print "command not found, Type '--help', '--copyright', '--credits' or '--license' for more information."
+ print '\n'
+else:
+ print '\n'
+ db = DbClass.DBMySQLConnection('root', 'randompasswordSQL', 'localhost', 'gsmselftesting')
+ db.connectDB()
+ dbStatus = db.connectDB()
+
+ if dbStatus == 1:
+
+ if db.anyTasksToDo() == 1:
+
+ allPing()
+ i=0
+ for item in db.tasksList:
+ taskID = item[0]
+ taskNo = item[1]
+ callFrom = item[2]
+ callTo = item[3]
+
+ destination = db.deviceAddress(str(callTo))
+
+ caller = db.deviceAddress(str(callFrom))
+
+ callAdd = caller[0]
+ recAdd = destination[0]
+ destNo = destination[1]
+
+ #if i == 0:
+ # db.updatePingResult(taskNo, sipServer, sipGate, sipLoc, gsmBox1, gsmBox2)
+
+ if callFrom == 'unisip':
+ destNo = destNo[7:]
+
+ print '\n'
+ print "Task ID: ", taskID
+ print "Calling From: ", callFrom
+ print "To: ", callTo
+ print "number: ", destNo
+
+ ping(callFrom)
+
+ if serverStatus <> 0:
+
+ ping(callTo)
+ if serverStatus <> 0:
+
+ makeTest = ControllerClass.test(callFrom, callAdd, callTo, recAdd, destNo)
+ makeTest.FuncTest()
+
+ db.addResult(taskID, makeTest.testResult)
+
+ if makeTest.repeatTest == True:
+ db.insertTaskIn2(callTo,callFrom,taskNo)
+
+ print "Result :", makeTest.testResult
+
+ db.deleteTempTask(taskID)
+ db.tasksList.remove(item)
+ db.tasksList.insert(i,'')
+ i = i+1
+
+ sleep(3)
+ else:
+ print "[failed] 500 "+callTo+ " Server Internal Error"
+ else:
+ print "[failed] 500 "+callFrom+ " Server Internal Error"
+ db.cleanTasksList()
+ else:
+ print "No job at all"
+ else:
+ sys.exit(5)
+
+
+
+def allPing():
+
+ global sipGate
+ global sipServer
+ global sipLoc
+ global gsmBox1
+ global gsmBox2
+
+ server = PingClass.Ping('sipgate.de')
+ sipGate = server.ping(3)
+
+ server = PingClass.Ping('132.230.4.8')
+ sipServer = server.ping(3)
+
+ server = PingClass.Ping('132.230.252.228')
+ sipLoc = server.ping(3)
+
+ server = PingClass.Ping('localhost')
+ gsmBox1 = server.ping(3)
+
+ server = PingClass.Ping('132.230.4.64')
+ gsmBox2 = server.ping(3)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+