diff options
Diffstat (limited to 'framework/scripts/function_test/Teston/adapters/environment.py')
-rw-r--r-- | framework/scripts/function_test/Teston/adapters/environment.py | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/framework/scripts/function_test/Teston/adapters/environment.py b/framework/scripts/function_test/Teston/adapters/environment.py deleted file mode 100644 index bdd0e122..00000000 --- a/framework/scripts/function_test/Teston/adapters/environment.py +++ /dev/null @@ -1,226 +0,0 @@ -""" -Description: - This file is used to setup the running environment - Include Download code,setup environment variable - Set onos running config - Set user name/password - Onos-push-keys and so on - lanqinglong@huawei.com -""" - -import os -import time -import pexpect -import re -import sys -import pxssh -from connection import connection - -class environment( connection ): - - def __init__( self ): - connection.__init__( self ) - self.loginfo = connection( ) - self.masterhandle = '' - self.home = '' - - def DownLoadCode( self, handle, codeurl ): - """ - Download Code use 'git clone' - parameters: - handle: current working handle - codeurl: clone code url - """ - print "Now loading test codes! Please wait in patient..." - originalfolder = self.home - gitclone = handle - gitclone.sendline( "git clone " + codeurl ) - index = 0 - while index != 1 or index != 4: - index = gitclone.expect ( ['already exists', 'resolving deltas: 100%', \ - 'Receiving objects', 'Already up-to-date', \ - pexpect.EOF] ) - - filefolder = originalfolder + '/' + codeurl.split('/')[-1].split('.')[0] - if index == 0 : - os.chdir( filefolder ) - os.system( 'git pull' ) - os.chdir( originalfolder ) - self.loginfo.log( 'Download code success!' ) - break - elif index == 1 : - self.loginfo.log( 'Download code success!' ) - break - elif index == 2 : - increment += 1 - if increment == 20: - print '\n' - print '.' - else : - self.loginfo.log( 'Download code failed!' ) - self.loginfo.log( 'Information before' + gitclone.before ) - break - time.sleep(5) - gitclone.prompt( ) - - def InstallDefaultSoftware( self, handle ): - """ - Install default software - parameters: - handle(input): current working handle - """ - print "Now Cleaning test environment" - handle.sendline("sudo apt-get install -y mininet") - handle.prompt( ) - handle.sendline("sudo pip install configobj") - handle.prompt( ) - handle.sendline("sudo apt-get install -y sshpass") - handle.prompt( ) - handle.sendline("OnosSystemTest/TestON/bin/cleanup.sh") - handle.prompt( ) - time.sleep(5) - self.loginfo.log( 'Clean environment success!' ) - - def OnosPushKeys(self, handle, cmd, password): - """ - Using onos-push-keys to make ssh device without password - parameters: - handle(input): working handle - cmd(input): onos-push-keys xxx(xxx is device) - password(input): login in password - """ - print "Now Pushing Onos Keys:"+cmd - Pushkeys = handle - Pushkeys.sendline( cmd ) - Result = 0 - while Result != 2: - Result = Pushkeys.expect( ["(yes/no)", "assword:", "PEXPECT]#", \ - pexpect.EOF, pexpect.TIMEOUT]) - if ( Result == 0 ): - Pushkeys.sendline( "yes" ) - if ( Result == 1 ): - Pushkeys.sendline( password ) - if ( Result == 2 ): - self.loginfo.log( "ONOS Push keys Success!" ) - break - if ( Result == 3 ): - self.loginfo.log( "ONOS Push keys Error!" ) - break - time.sleep(2) - Pushkeys.prompt( ) - print "Done!" - - def SetOnosEnvVar( self, handle, masterpass, agentpass): - """ - Setup onos pushkeys to all devices(3+2) - parameters: - handle(input): current working handle - masterpass: scripts running server's password - agentpass: onos cluster&compute node password - """ - print "Now Setting test environment" - self.OnosPushKeys( handle, "onos-push-keys " + self.OCT, masterpass) - self.OnosPushKeys( handle, "onos-push-keys " + self.OC1, agentpass) - self.OnosPushKeys( handle, "onos-push-keys " + self.OC2, agentpass) - self.OnosPushKeys( handle, "onos-push-keys " + self.OC3, agentpass) - self.OnosPushKeys( handle, "onos-push-keys " + self.OCN, agentpass) - self.OnosPushKeys( handle, "onos-push-keys " + self.OCN2, agentpass) - - def ChangeOnosName( self, user, password): - """ - Change onos name in envDefault file - Because some command depend on this - parameters: - user: onos&compute node user - password: onos&compute node password - """ - print "Now Changing ONOS name&password" - filepath = self.home + '/onos/tools/build/envDefaults' - line = open(filepath, '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(filepath, 'w') - NewFile.writelines(line) - NewFile.close - print "Done!" - - def ChangeTestCasePara(self, testcase, user, password): - """ - When running test script, there's something need \ - to change in every test folder's *.param & *.topo files - user: onos&compute node user - password: onos&compute node password - """ - print "Now Changing " + testcase + " name&password" - if self.masterusername == 'root': - filepath = '/root/' - else : - filepath = '/home/' + self.masterusername + '/' - filepath = 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 - - def SSHlogin ( self, ipaddr, username, password ) : - """ - SSH login provide a connection to destination. - parameters: - ipaddr: ip address - username: login user name - password: login password - return: handle - """ - login = pxssh.pxssh( ) - login.login ( ipaddr, username, password, original_prompt='[$#>]') - #send command ls -l - login.sendline ('ls -l') - #match prompt - login.prompt() - print ("SSH login " + ipaddr + " success!") - return login - - def SSHRelease( self, handle ): - #Release ssh - handle.logout() - - def CopyOnostoTestbin( self ): - sourcefile = os.curdir + '/dependencies/onos' - destifile = self.home + '/onos/tools/test/bin/' - runcommand = 'cp ' + sourcefile + ' ' + destifile - os.system( runcommand ) - - def OnosEnvSetup( self, handle ): - """ - Onos Environment Setup function - """ - self.Gensshkey( handle ) - self.home = self.GetEnvValue( handle, 'HOME' ) - self.AddKnownHost( handle, self.OC1, "karaf", "karaf" ) - self.AddKnownHost( handle, self.OC2, "karaf", "karaf" ) - self.AddKnownHost( handle, self.OC3, "karaf", "karaf" ) - self.DownLoadCode( handle, 'https://github.com/sunyulin/OnosSystemTest.git' ) - self.DownLoadCode( handle, 'https://gerrit.onosproject.org/onos' ) - self.CopyOnostoTestbin() - self.ChangeOnosName(self.agentusername,self.agentpassword) - self.InstallDefaultSoftware( handle ) - self.SetOnosEnvVar(handle, self.masterpassword,self.agentpassword) |