Cleaned up emulator driver
diff --git a/TestON/drivers/common/cli/emulator/lincoedriver.py b/TestON/drivers/common/cli/emulator/lincoedriver.py
index 2cb7c98..944eded 100644
--- a/TestON/drivers/common/cli/emulator/lincoedriver.py
+++ b/TestON/drivers/common/cli/emulator/lincoedriver.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-'''
+"""
This driver handles the optical switch emulator linc-oe.
Please follow the coding style demonstrated by existing
@@ -13,8 +13,7 @@
shreya@onlab.us
OCT 20 2014
-'''
-
+"""
import traceback
import pexpect
import struct
@@ -25,117 +24,122 @@
import sys
import core.teston
import time
-sys.path.append("../")
+sys.path.append( "../" )
from math import pow
from drivers.common.cli.emulatordriver import Emulator
from drivers.common.clidriver import CLI
-class LincOEDriver(Emulator):
- '''
- LincOEDriver class will handle all emulator functions
- '''
- def __init__(self):
- super(Emulator, self).__init__()
+
+class LincOEDriver( Emulator ):
+
+ """
+ LincOEDriver class will handle all emulator functions
+ """
+ def __init__( self ):
+ super( Emulator, self ).__init__()
self.handle = self
- self.wrapped = sys.modules[__name__]
+ self.wrapped = sys.modules[ __name__ ]
self.flag = 0
- def connect(self, **connectargs):
- '''
+ def connect( self, **connectargs ):
+ """
Create ssh handle for Linc-OE cli
- '''
+ """
import time
for key in connectargs:
- vars(self)[key] = connectargs[key]
-
- self.name = self.options['name']
+ vars( self )[ key ] = connectargs[ key ]
+
+ self.name = self.options[ 'name' ]
self.handle = \
- super(LincOEDriver, self).connect(\
- user_name = self.user_name,
- ip_address = self.ip_address,
- port = None,
- pwd = self.pwd)
-
+ super( LincOEDriver, self ).connect(
+ user_name=self.user_name,
+ ip_address=self.ip_address,
+ port=None,
+ pwd=self.pwd )
+
self.ssh_handle = self.handle
-
- if self.handle :
- main.log.info("Handle successfully created")
+
+ if self.handle:
+ main.log.info( "Handle successfully created" )
self.home = "~/linc-oe"
-
- self.handle.sendline("cd "+self.home)
- self.handle.expect("oe$")
-
- #self.handle.sendline("pgrep -g linc")
- #self.handle.expect("\$")
- print "handle = ", self.handle.before
-
- return main.TRUE
- '''
- main.log.info("Building Linc-OE")
- self.handle.sendline("make rel")
- i = self.handle.expect(["ERROR","linc-oe\$"],timeout=60)
+
+ self.handle.sendline( "cd " + self.home )
+ self.handle.expect( "oe$" )
+
+ #self.handle.sendline( "pgrep -g linc" )
+ # self.handle.expect( "\$" )
+ print "handle = ", self.handle.before
+
+ return main.TRUE
+ """
+ main.log.info( "Building Linc-OE" )
+ self.handle.sendline( "make rel" )
+ i = self.handle.expect( [ "ERROR","linc-oe\$" ],timeout=60 )
if i == 0:
- self.handle.sendline("sudo pkill -9 epmd")
- self.handle.expect("\$")
- self.handle.sendline("make rel")
- x = self.handle.expect(["\$",pexpect.EOF,pexpect.TIMEOUT])
- main.log.info("make rel returned: "+ str(x))
- else:
-
- main.log.info(self.name+": Starting Linc-OE CLI.. This may take a while")
- time.sleep(30)
- self.handle.sendline("sudo ./rel/linc/bin/linc console")
- j = self.handle.expect(["linc@",pexpect.EOF,pexpect.TIMEOUT])
+ self.handle.sendline( "sudo pkill -9 epmd" )
+ self.handle.expect( "\$" )
+ self.handle.sendline( "make rel" )
+ x = self.handle.expect( [ "\$",pexpect.EOF,pexpect.TIMEOUT ] )
+ main.log.info( "make rel returned: "+ str( x ) )
+ else:
+
+ main.log.info( self.name+": Starting Linc-OE CLI.. This may take a while" )
+ time.sleep( 30 )
+ self.handle.sendline( "sudo ./rel/linc/bin/linc console" )
+ j = self.handle.expect( [ "linc@",pexpect.EOF,pexpect.TIMEOUT ] )
if j == 0:
- main.log.info("Linc-OE CLI started")
+ main.log.info( "Linc-OE CLI started" )
return main.TRUE
- '''
+ """
else:
- main.log.error(self.name+
- ": Connection failed to the host "+
- self.user_name+"@"+self.ip_address)
- main.log.error(self.name+
- ": Failed to connect to Linc-OE")
+ main.log.error( self.name +
+ ": Connection failed to the host " +
+ self.user_name + "@" + self.ip_address )
+ main.log.error( self.name +
+ ": Failed to connect to Linc-OE" )
return main.FALSE
-
- def start_console(self):
+ def start_console( self ):
import time
- main.log.info(self.name+": Starting Linc-OE CLI.. This may take a while")
- time.sleep(30)
- self.handle.sendline("sudo ./rel/linc/bin/linc console")
- j = self.handle.expect(["linc@",pexpect.EOF,pexpect.TIMEOUT])
+ main.log.info(
+ self.name +
+ ": Starting Linc-OE CLI.. This may take a while" )
+ time.sleep( 30 )
+ self.handle.sendline( "sudo ./rel/linc/bin/linc console" )
+ j = self.handle.expect( [ "linc@", pexpect.EOF, pexpect.TIMEOUT ] )
start_result = self.handle.before
if j == 0:
- main.log.info("Linc-OE CLI started")
+ main.log.info( "Linc-OE CLI started" )
return main.TRUE
else:
- main.log.error(self.name+
- ": Connection failed to the host "+self.user_name+"@"+self.ip_address)
- main.log.error(self.name+
- ": Failed to connect to Linc-OE")
+ main.log.error(
+ self.name +
+ ": Connection failed to the host " +
+ self.user_name +
+ "@" +
+ self.ip_address )
+ main.log.error( self.name +
+ ": Failed to connect to Linc-OE" )
return main.FALSE
-
-
- def build(self):
- '''
+ def build( self ):
+ """
Build Linc-OE with the specified settings
- '''
+ """
try:
- self.handle.sendline("make rel")
- i = self.handle.expect([
+ self.handle.sendline( "make rel" )
+ i = self.handle.expect( [
"ERROR",
- "\$"])
+ "\$" ] )
if i == 0:
- #If error, try to resolve the most common error
- #(epmd running and cannot compile)
- self.handle.sendline("sudo pkill -9 epmd")
- self.handle.sendline("make rel")
- self.handle.expect("\$")
-
+ # If error, try to resolve the most common error
+ #( epmd running and cannot compile )
+ self.handle.sendline( "sudo pkill -9 epmd" )
+ self.handle.sendline( "make rel" )
+ self.handle.expect( "\$" )
+
handle = self.handle.before
return handle
@@ -143,226 +147,225 @@
return main.TRUE
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
- def set_interface_up(self, intfs):
- '''
+ def set_interface_up( self, intfs ):
+ """
Specify interface to bring up.
When Linc-OE is started, tap interfaces should
be created. They must be brought up manually
- '''
+ """
try:
- self.handle.sendline("ifconfig "+str(intfs)+" up")
- self.handle.expect("linc@")
-
+ self.handle.sendline( "ifconfig " + str( intfs ) + " up" )
+ self.handle.expect( "linc@" )
+
handle = self.handle.before
return handle
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
- def start_switch(self, sw_id):
- '''
+ def start_switch( self, sw_id ):
+ """
Start a logical switch using switch id
- '''
+ """
try:
- self.handle.sendline("linc:start_switch("+str(sw_id)+").")
- self.handle.expect("linc@")
+ self.handle.sendline( "linc:start_switch(" + str( sw_id ) + ")." )
+ self.handle.expect( "linc@" )
handle = self.handle.before
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
- def stop_switch(self, sw_id):
- '''
+ def stop_switch( self, sw_id ):
+ """
Stop a logical switch using switch id
- '''
+ """
try:
- self.handle.sendline("linc:stop_switch("+str(sw_id)+").")
- self.handle.expect("linc@")
+ self.handle.sendline( "linc:stop_switch(" + str( sw_id ) + ")." )
+ self.handle.expect( "linc@" )
handle = self.handle.before
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
-
- def get_datapath_id(self, sw_id):
- '''
+
+ def get_datapath_id( self, sw_id ):
+ """
Get datapath id of a specific switch by switch id
- '''
+ """
try:
- self.handle.sendline("linc_logic:get_datapath_id("+
- str(sw_id)+").")
- self.handle.expect("linc@")
+ self.handle.sendline( "linc_logic:get_datapath_id(" +
+ str( sw_id ) + ")." )
+ self.handle.expect( "linc@" )
handle = self.handle.before
-
+
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
- def list_ports(self, sw_id):
- '''
+ def list_ports( self, sw_id ):
+ """
List all ports of a switch by switch id
- '''
+ """
try:
- self.handle.sendline("linc:ports("+str(sw_id)+").")
- self.handle.expect("linc@")
+ self.handle.sendline( "linc:ports(" + str( sw_id ) + ")." )
+ self.handle.expect( "linc@" )
handle = self.handle.before
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
- def port_up(self, sw_id, pt_id):
- '''
+ def port_up( self, sw_id, pt_id ):
+ """
Bring port up using switch id and port id
- '''
+ """
try:
- self.handle.sendline("linc:port_up("+
- str(sw_id)+", "+str(pt_id)+").")
- self.handle.expect("linc@")
+ self.handle.sendline( "linc:port_up(" +
+ str( sw_id ) + ", " + str( pt_id ) + ")." )
+ self.handle.expect( "linc@" )
handle = self.handle.before
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
-
- def port_down(self, sw_id, pt_id):
- '''
+
+ def port_down( self, sw_id, pt_id ):
+ """
Bring port down using switch id and port id
- '''
+ """
try:
- self.handle.sendline("linc:port_down("+
- str(sw_id)+", "+str(pt_id)+").")
- self.handle.expect("linc@")
+ self.handle.sendline( "linc:port_down(" +
+ str( sw_id ) + ", " + str( pt_id ) + ")." )
+ self.handle.expect( "linc@" )
handle = self.handle.before
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
-
- def stopLincOEConsole(self):
- '''
+
+ def stopLincOEConsole( self ):
+ """
This function is only used for packet optical testing
Send disconnect prompt to Linc-OE CLI
- (CTRL+C) and kill the linc process
- '''
+ ( CTRL+C ) and kill the linc process
+ """
try:
cmd = "pgrep -f linc"
- self.handle.sendline("pgrep -f linc")
- self.handle.expect("linc")
+ self.handle.sendline( "pgrep -f linc" )
+ self.handle.expect( "linc" )
print "stophandle = ", self.handle.before
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
- def disconnect(self):
- '''
+ def disconnect( self ):
+ """
Send disconnect prompt to Linc-OE CLI
- (CTRL+C) and kill the linc process
- '''
+ ( CTRL+C ) and kill the linc process
+ """
try:
- #Send CTRL+C twice to exit CLI
- self.handle.send("\x03")
- self.handle.send("\x03")
- self.handle.expect("\$")
+ # Send CTRL+C twice to exit CLI
+ self.handle.send( "\x03" )
+ self.handle.send( "\x03" )
+ self.handle.expect( "\$" )
handle1 = self.handle.before
cmd = "pgrep -f linc"
- self.handle.sendline(cmd)
- self.handle.expect("\$")
+ self.handle.sendline( cmd )
+ self.handle.expect( "\$" )
handle2 = self.handle.before
- main.log.info("pid's = "+handle2)
+ main.log.info( "pid's = " + handle2 )
cmd = "sudo kill -9 `pgrep -f linc`"
- self.handle.sendline(cmd)
- self.handle.expect("\$")
-
+ self.handle.sendline( cmd )
+ self.handle.expect( "\$" )
+
except pexpect.EOF:
- main.log.error(self.name+ ": EOF exception")
- main.log.error(self.name+ ": " + self.handle.before)
+ main.log.error( self.name + ": EOF exception" )
+ main.log.error( self.name + ": " + self.handle.before )
main.cleanup()
main.exit()
except:
- main.log.info(self.name+" :::::::")
- main.log.error( traceback.print_exc())
- main.log.info(self.name+" :::::::")
+ main.log.info( self.name + " :::::::" )
+ main.log.error( traceback.print_exc() )
+ main.log.info( self.name + " :::::::" )
main.cleanup()
main.exit()
if __name__ != "__main__":
import sys
- sys.modules[__name__] = LincOEDriver()
-
+ sys.modules[ __name__ ] = LincOEDriver()