initial commit for code clean up
diff --git a/TestON/drivers/common/cli/dpclidriver.py b/TestON/drivers/common/cli/dpclidriver.py
index 1e7015c..057a3f1 100644
--- a/TestON/drivers/common/cli/dpclidriver.py
+++ b/TestON/drivers/common/cli/dpclidriver.py
@@ -1,147 +1,190 @@
-'''
-Driver for blank dataplane VMs. Created for SDNIP test.
-'''
-
+"""
+Driver for blank dataplane VMs. Created for SDNIP test.
+"""
import time
import pexpect
-import struct, fcntl, os, sys, signal
+import struct
+import fcntl
+import os
+import sys
+import signal
import sys
import re
import json
-sys.path.append("../")
+sys.path.append( "../" )
from drivers.common.clidriver import CLI
-class DPCliDriver(CLI):
- def __init__(self):
- super(CLI, self).__init__()
+class DPCliDriver( CLI ):
- def connect(self,**connectargs):
+ def __init__( self ):
+ super( CLI, self ).__init__()
+
+ def connect( self, **connectargs ):
for key in connectargs:
- vars(self)[key] = connectargs[key]
+ vars( self )[ key ] = connectargs[ key ]
-
- self.name = self.options['name']
- self.handle = super(DPCliDriver,self).connect(user_name = self.user_name, ip_address = self.ip_address,port = self.port, pwd = self.pwd)
+ self.name = self.options[ 'name' ]
+ self.handle = super( DPCliDriver, self ).connect( user_name=self.user_name,
+ ip_address=self.ip_address,
+ port=self.port,
+ pwd=self.pwd )
if self.handle:
return self.handle
- else :
- main.log.info("NO HANDLE")
+ else:
+ main.log.info( "NO HANDLE" )
return main.FALSE
- def create_interfaces(self, net, number, start):
- '''
+ def create_interfaces( self, net, number, start ):
+ """
Creates a number,specified by 'number,' of subinterfaces on eth0. Ip addresses start at 'net'.'start'.1.1 with a 24 bit netmask. Addresses increment sequentially in the third quad,
therefore all interfaces are in different subnets on the same machine. When the third quad reaches 255, it is reset to 1 and the second quad is incremented.
Every single ip address is placed in a file in /tmp titled 'ip_table{net}.txt'
The file is used by 'pingall_interfaces()' as a fping argument
This method returns true if all interfaces are created without a hitch, and false if a single interface has issues
- '''
+ """
+ self.handle.sendline( "" )
+ self.handle.expect( "\$" )
- self.handle.sendline("")
- self.handle.expect("\$")
+ self.handle.sendline( "rm /tmp/local_ip.txt" )
+ self.handle.expect( "\$" )
+ self.handle.sendline( "touch /tmp/local_ip.txt" )
+ self.handle.expect( "\$" )
- self.handle.sendline("rm /tmp/local_ip.txt")
- self.handle.expect("\$")
- self.handle.sendline("touch /tmp/local_ip.txt")
- self.handle.expect("\$")
-
- main.log.info("Creating interfaces")
+ main.log.info( "Creating interfaces" )
k = 0
intf = 0
while number != 0:
- k= k + 1
+ k = k + 1
if k == 256:
k = 1
start = start + 1
number = number - 1
intf = intf + 1
- ip = net+"."+str(start)+"."+str(k)+".1"
- self.handle.sendline("sudo ifconfig eth0:"+str(intf)+" "+ip+" netmask 255.255.255.0")
+ ip = net + "." + str( start ) + "." + str( k ) + ".1"
+ self.handle.sendline(
+ "sudo ifconfig eth0:" + str(
+ intf ) + " " + ip + " netmask 255.255.255.0" )
- i = self.handle.expect(["\$","password",pexpect.TIMEOUT,pexpect.EOF], timeout = 120)
- if i == 0:
- self.handle.sendline("echo "+str(ip)+" >> /tmp/local_ip.txt")
- self.handle.expect("\$")
- elif i == 1:
- main.log.info("Sending sudo password")
- self.handle.sendline(self.pwd)
- self.handle.expect("\$")
- else:
- main.log.error("INTERFACES NOT CREATED")
- return main.FALSE
+ i = self.handle.expect( [
+ "\$",
+ "password",
+ pexpect.TIMEOUT,
+ pexpect.EOF ],
+ timeout=120 )
+ if i == 0:
+ self.handle.sendline(
+ "echo " + str( ip ) + " >> /tmp/local_ip.txt" )
+ self.handle.expect( "\$" )
+ elif i == 1:
+ main.log.info( "Sending sudo password" )
+ self.handle.sendline( self.pwd )
+ self.handle.expect( "\$" )
+ else:
+ main.log.error( "INTERFACES NOT CREATED" )
+ return main.FALSE
- def pingall_interfaces(self, netsrc, netstrt, netdst, destlogin, destip):
- '''
- Copies the /tmp/ip_table{net}.txt file from the machine you wish to ping, then runs fping with a source address of {netsrc}.{netstrt}.1.1 on the copied file.
+ def pingall_interfaces( self, netsrc, netstrt, netdst, destlogin, destip ):
+ """
+ Copies the /tmp/ip_table{ net }.txt file from the machine you wish to ping, then runs fping with a source address of { netsrc }.{ netstrt }.1.1 on the copied file.
Check every single response for reachable or unreachable. If all are reachable, function returns true. If a SINGLE host is unreachable, then the function stops and returns false
If fping is not installed, this function will install fping then run the same command
- '''
+ """
+ self.handle.sendline( "" )
+ self.handle.expect( "\$" )
- self.handle.sendline("")
- self.handle.expect("\$")
-
- self.handle.sendline("scp "+str(destlogin)+"@"+str(destip)+":/tmp/local_ip.txt /tmp/ip_table"+str(net)+".txt")
- i = self.handle.expect(["100%","password",pexpect.TIMEOUT], timeout = 30)
+ self.handle.sendline( "scp " + str( destlogin ) + "@" +
+ str( destip ) + ":/tmp/local_ip.txt /tmp/ip_table" +
+ str( net ) + ".txt" )
+
+ i = self.handle.expect( [
+ "100%",
+ "password",
+ pexpect.TIMEOUT ],
+ timeout=30 )
+
if i == 0:
- main.log.info("Copied ping file successfully")
+ main.log.info( "Copied ping file successfully" )
elif i == 1:
- self.handle.sendline(self.pwd)
- self.handle.expect("100%")
- main.log.info("Copied ping file successfully")
+ self.handle.sendline( self.pwd )
+ self.handle.expect( "100%" )
+ main.log.info( "Copied ping file successfully" )
elif i == 2:
- main.log.error("COULD NOT COPY PING FILE FROM "+str(destip))
+ main.log.error( "COULD NOT COPY PING FILE FROM " + str( destip ) )
result = main.FALSE
return result
-
- self.handle.sendline("")
- self.handle.expect("\$")
- main.log.info("Pinging interfaces on the "+str(netdst)+" network from "+str(netsrc)+"."+str(netstrt)+".1.1")
- self.handle.sendline("sudo fping -S "+str(netsrc)+"."+str(netstrt)+".1.1 -f /tmp/ip_table"+str(netdst)+".txt")
+ self.handle.sendline( "" )
+ self.handle.expect( "\$" )
+
+ main.log.info( "Pinging interfaces on the " + str( netdst ) +
+ " network from " + str( netsrc ) + "." +
+ str( netstrt ) + ".1.1" )
+ self.handle.sendline( "sudo fping -S " + str( netsrc ) + "." +
+ str( netstrt ) + ".1.1 -f /tmp/ip_table" +
+ str( netdst ) + ".txt" )
while 1:
- i = self.handle.expect(["reachable","unreachable","\$","password",pexpect.TIMEOUT,"not installed"], timeout=45)
+ i = self.handle.expect( [
+ "reachable",
+ "unreachable",
+ "\$",
+ "password",
+ pexpect.TIMEOUT,
+ "not installed" ],
+ timeout=45 )
if i == 0:
result = main.TRUE
elif i == 1:
- main.log.error("An interface was unreachable")
+ main.log.error( "An interface was unreachable" )
result = main.FALSE
return result
elif i == 2:
- main.log.info("All interfaces reachable")
+ main.log.info( "All interfaces reachable" )
return result
elif i == 3:
- self.handle.sendline(self.pwd)
+ self.handle.sendline( self.pwd )
elif i == 4:
- main.log.error("Unable to fping")
+ main.log.error( "Unable to fping" )
result = main.FALSE
return result
elif i == 5:
- main.log.info("fping not installed, installing fping")
- self.handle.sendline("sudo apt-get install fping")
- i = self.handle.expect(["password","\$",pexpect.TIMEOUT], timeout = 60)
+ main.log.info( "fping not installed, installing fping" )
+ self.handle.sendline( "sudo apt-get install fping" )
+ i = self.handle.expect(
+ [ "password",
+ "\$",
+ pexpect.TIMEOUT ],
+ timeout=60 )
if i == 0:
- self.handle.sendline(self.pwd)
- self.handle.expect("\$", timeout = 30)
- main.log.info("fping installed, now pinging interfaces")
- self.handle.sendline("sudo fping -S "+str(netsrc)+"."+str(netstrt)+".1.1 -f /tmp/ip_table"+str(netdst)+".txt")
+ self.handle.sendline( self.pwd )
+ self.handle.expect( "\$", timeout=30 )
+ main.log.info( "fping installed, now pinging interfaces" )
+ self.handle.sendline(
+ "sudo fping -S " + str(
+ netsrc ) + "." + str(
+ netstrt ) + ".1.1 -f /tmp/ip_table" + str(
+ netdst ) + ".txt" )
elif i == 1:
- main.log.info("fping installed, now pinging interfaces")
- self.handle.sendline("sudo fping -S "+str(netsrc)+"."+str(netstrt)+".1.1 -f /tmp/ip_table"+str(netdst)+".txt")
+ main.log.info( "fping installed, now pinging interfaces" )
+ self.handle.sendline(
+ "sudo fping -S " + str(
+ netsrc ) + "." + str(
+ netstrt ) + ".1.1 -f /tmp/ip_table" + str(
+ netdst ) + ".txt" )
elif i == 2:
- main.log.error("Could not install fping")
+ main.log.error( "Could not install fping" )
result = main.FALSE
return result
- def disconnect(self):
+ def disconnect( self ):
response = ''
try:
- self.handle.sendline("exit")
- self.handle.expect("closed")
+ self.handle.sendline( "exit" )
+ self.handle.expect( "closed" )
except:
- main.log.error("Connection failed to the host")
+ main.log.error( "Connection failed to the host" )
response = main.FALSE
return response