summaryrefslogtreecommitdiffstats
path: root/testcases/Controllers/ONOS/Teston/CI
diff options
context:
space:
mode:
authorMorgan Richomme <morgan.richomme@orange.com>2015-09-23 12:50:12 +0000
committerGerrit Code Review <gerrit@172.30.200.206>2015-09-23 12:50:12 +0000
commite57b91259ca69bca11d50429fc09c4c135117935 (patch)
treeeec2309e8f07d03015346f91ae9fd938bbf0db85 /testcases/Controllers/ONOS/Teston/CI
parentb9b2c3e5fc9732ce2c3ada2ba9a6ddb42b72208d (diff)
parentf38566c1a774c370b64288ffbbe709a5e6af3031 (diff)
Merge "onos-test:basic frame work of running onos TestOn test"
Diffstat (limited to 'testcases/Controllers/ONOS/Teston/CI')
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/Readme.txt5
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/dependencies/onos23
-rw-r--r--testcases/Controllers/ONOS/Teston/CI/onosfunctest.py203
3 files changed, 231 insertions, 0 deletions
diff --git a/testcases/Controllers/ONOS/Teston/CI/Readme.txt b/testcases/Controllers/ONOS/Teston/CI/Readme.txt
new file mode 100644
index 000000000..7648b2a98
--- /dev/null
+++ b/testcases/Controllers/ONOS/Teston/CI/Readme.txt
@@ -0,0 +1,5 @@
+1.This is a basic test run about onos,we will make them better and better
+2.This test include two suits:
+(1)Test northbound(network/subnet/ports create/update/delete)
+(2)Ovsdb test,default configuration,openflow connection,vm go onlines.
+3.Later we will make a framework to do this test \ No newline at end of file
diff --git a/testcases/Controllers/ONOS/Teston/CI/dependencies/onos b/testcases/Controllers/ONOS/Teston/CI/dependencies/onos
new file mode 100644
index 000000000..d4d59e0f7
--- /dev/null
+++ b/testcases/Controllers/ONOS/Teston/CI/dependencies/onos
@@ -0,0 +1,23 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# ONOS remote command-line client.
+# -----------------------------------------------------------------------------
+
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. /root/.bashrc
+. $ONOS_ROOT/tools/build/envDefaults
+. $ONOS_ROOT/tools/test/bin/find-node.sh
+
+[ "$1" = "-w" ] && shift && onos-wait-for-start $1
+
+[ -n "$1" ] && OCI=$(find_node $1) && shift
+
+if which client 1>/dev/null 2>&1 && [ -z "$ONOS_USE_SSH" ]; then
+ # Use Karaf client only if we can and are allowed to
+ unset KARAF_HOME
+ client -h $OCI -u karaf "$@" 2>/dev/null
+else
+ # Otherwise use raw ssh; strict checking is off for dev environments only
+ #ssh -p 8101 -o StrictHostKeyChecking=no $OCI "$@"
+ sshpass -p karaf ssh -l karaf -p 8101 $OCI "$@"
+fi
diff --git a/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py b/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py
new file mode 100644
index 000000000..72fa4ae1f
--- /dev/null
+++ b/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py
@@ -0,0 +1,203 @@
+"""
+Description: This test is to run onos Teston VTN scripts
+
+List of test cases:
+CASE1 - Northbound NBI test network/subnet/ports
+CASE2 - Ovsdb test&Default configuration&Vm go online
+
+lanqinglong@huawei.com
+"""
+import os
+import os.path
+import time
+import pexpect
+import re
+import sys
+
+def SSHlogin(ipaddr,username,password):
+ login = pexpect.spawn('ssh %s@%s'%(username,ipaddr))
+ index = 0
+ while index != 2:
+ index = login.expect(['assword:','yes/no','#|$',pexpect.EOF])
+ if index == 0:
+ login.sendline(password)
+ login.interact()
+ if index == 1:
+ login.sendline('yes')
+ print "Login Success!"
+
+def AddKarafUser(ipaddr,username,password):
+ print '\033[1;31;40m'
+ print "Now Adding karaf user to OC1..."
+ print "\033[0m"
+ login = pexpect.spawn("ssh -l %s -p 8101 %s"%(username,ipaddr))
+ index = 0
+ while index != 2:
+ index = login.expect(['assword:','yes/no',pexpect.EOF])
+ if index == 0:
+ login.sendline(password)
+ login.sendline("logout")
+ index = login.expect(["closed",pexpect.EOF])
+ if index == 0:
+ print "Add SSH Known Host Success!"
+ else:
+ print "Add SSH Known Host Failed! Please Check!"
+ login.interact()
+ if index == 1:
+ login.sendline('yes')
+
+def DownLoadCode():
+ print '\033[1;31;40m'
+ print "Now loading test codes!Please wait in patient..."
+ print "\033[0m"
+ os.system("git clone https://github.com/sunyulin/OnosSystemTest.git")
+ time.sleep(1)
+ os.system("git clone https://gerrit.onosproject.org/onos")
+ time.sleep(1)
+ print "Done!"
+
+def CleanEnv():
+ print '\033[1;31;40m'
+ print "Now Cleaning test environment"
+ print "\033[0m"
+ os.system("sudo apt-get install -y mininet")
+ os.system("OnosSystemTest/TestON/bin/cleanup.sh")
+ time.sleep(5)
+ print "Done!"
+
+def OnosPushKeys(cmd,password):
+ print '\033[1;31;40m'
+ print "Now Pushing Onos Keys:"+cmd
+ print "\033[0m"
+ Pushkeys = pexpect.spawn(cmd)
+ Result = 0
+ while Result != 2:
+ Result = Pushkeys.expect(["yes","password",pexpect.EOF,pexpect.TIMEOUT])
+ if (Result == 0):
+ Pushkeys.sendline("yes")
+ if (Result == 1):
+ Pushkeys.sendline(password)
+ if (Result == 3):
+ print("Push keys Error!")
+ print "Done!"
+
+def AddEnvIntoBashrc(name):
+ print '\033[1;31;40m'
+ print "Now Adding bash environment"
+ print "\033[0m"
+ fileopen = open("/etc/profile",'r')
+ findContext = 1
+ while findContext:
+ findContext = fileopen.readline()
+ result = findContext.find('dev/bash_profile')
+ if result != -1:
+ break
+ fileopen.close
+ if result == -1:
+ envAdd = open("/etc/profile",'a+')
+ envAdd.writelines("\nsource /root/onos/tools/dev/bash_profile")
+ envAdd.close()
+
+def SetEnvVar(masterpass,agentpass):
+ print '\033[1;31;40m'
+ print "Now Setting test environment"
+ print "\033[0m"
+ os.environ["OCT"] = "10.1.0.1"
+ os.environ["OC1"] = "10.1.0.50"
+ os.environ["OC2"] = "10.1.0.51"
+ os.environ["OC3"] = "10.1.0.52"
+ os.environ["OCN"] = "10.1.0.53"
+ os.environ["OCN2"] = "10.1.0.54"
+ os.environ["localhost"] = "10.1.0.1"
+ os.system("sudo pip install configobj")
+ os.system("sudo apt-get install -y sshpass")
+ OnosPushKeys("onos-push-keys 10.1.0.1",masterpass)
+ OnosPushKeys("onos-push-keys 10.1.0.50",agentpass)
+ OnosPushKeys("onos-push-keys 10.1.0.53",agentpass)
+ OnosPushKeys("onos-push-keys 10.1.0.54",agentpass)
+
+def Gensshkey():
+ print '\033[1;31;40m'
+ print "Now Generating SSH keys..."
+ print "\033[0m"
+ os.system("rm -rf ~/.ssh/*")
+ keysub = pexpect.spawn("ssh-keygen -t rsa")
+ Result = 0
+ while Result != 2:
+ Result = keysub.expect(["Overwrite","Enter",pexpect.EOF,pexpect.TIMEOUT])
+ if Result == 0:
+ keysub.sendline("y")
+ if Result == 1:
+ keysub.sendline("\n")
+ if Result == 3:
+ printf("Generate SSH key failed.")
+ print "Done!"
+
+def ChangeOnosName(user,password):
+ print '\033[1;31;40m'
+ print "Now Changing ONOS name&password"
+ print "\033[0m"
+ line = open("onos/tools/build/envDefaults",'r').readlines()
+ lenall = len(line)-1
+ for i in range(lenall):
+ if "ONOS_USER=" in line[i]:
+ line[i]=line[i].replace("sdn",user)
+ if "ONOS_GROUP" in line[i]:
+ line[i]=line[i].replace("sdn",user)
+ if "ONOS_PWD" in line[i]:
+ line[i]=line[i].replace("rocks",password)
+ NewFile = open("onos/tools/build/envDefaults",'w')
+ NewFile.writelines(line)
+ NewFile.close
+ print "Done!"
+
+def ChangeTestCasePara(testcase,user,password):
+ print '\033[1;31;40m'
+ print "Now Changing " + testcase + " name&password"
+ print "\033[0m"
+ filepath = "OnosSystemTest/TestON/tests/" + testcase + "/" + testcase + ".topo"
+ line = open(filepath,'r').readlines()
+ lenall = len(line)-1
+ for i in range(lenall-2):
+ if ("localhost" in line[i]) or ("OCT" in line[i]):
+ line[i+1]=re.sub(">\w+",">"+user,line[i+1])
+ line[i+2]=re.sub(">\w+",">"+password,line[i+2])
+ if "OC1" in line [i] \
+ or "OC2" in line [i] \
+ or "OC3" in line [i] \
+ or "OCN" in line [i] \
+ or "OCN2" in line[i]:
+ line[i+1]=re.sub(">\w+",">root",line[i+1])
+ line[i+2]=re.sub(">\w+",">root",line[i+2])
+ NewFile = open(filepath,'w')
+ NewFile.writelines(line)
+ NewFile.close
+ print "Done!"
+
+def RunScript(testname,masterusername,masterpassword):
+ ChangeTestCasePara(testname,masterusername,masterpassword)
+ runtest = "OnosSystemTest/TestON/bin/cli.py run " + testname
+ os.system(runtest)
+ print "Done!"
+
+if __name__=="__main__":
+
+ #This is the compass run machine user&pass,you need to modify
+ masterusername = "root"
+ masterpassword = "root"
+
+ #The config below you don't need to care
+ agentusername = "root"
+ agentpassword = "root"
+
+ print "Test Begin....."
+ Gensshkey()
+ AddKarafUser("10.1.0.50","karaf","karaf")
+ AddEnvIntoBashrc("source onos/tools/dev/bash_profile")
+ SSHlogin("10.1.0.1",masterusername,masterpassword)
+ ChangeOnosName(agentusername,agentpassword)
+ DownLoadCode()
+ CleanEnv()
+ SetEnvVar(masterpassword,agentpassword)
+ RunScript("FUNCvirNetNB",masterusername,masterpassword)
+ RunScript("FUNCovsdbtest",masterusername,masterpassword)