pass code check; make GRE_KEY a class var

This commit is contained in:
Bob Lantz
2017-03-13 17:03:11 -07:00
parent 6977633de1
commit d282c55831
+12 -8
View File
@@ -287,7 +287,7 @@ class RemoteMixin( object ):
return super( RemoteMixin, self).popen( *args, tt=False, **kwargs ) return super( RemoteMixin, self).popen( *args, tt=False, **kwargs )
def addIntf( self, *args, **kwargs ): def addIntf( self, *args, **kwargs ):
# "Override: use RemoteLink.moveIntf" "Override: use RemoteLink.moveIntf"
# kwargs.update( moveIntfFn=RemoteLink.moveIntf ) # kwargs.update( moveIntfFn=RemoteLink.moveIntf )
return super( RemoteMixin, self).addIntf( *args, **kwargs ) return super( RemoteMixin, self).addIntf( *args, **kwargs )
@@ -393,12 +393,11 @@ class RemoteLink( Link ):
return self.tunnel return self.tunnel
@staticmethod @staticmethod
def moveIntf( intf, node, printError=True ): def moveIntf( intf, node ):
"""Move remote interface from root ns to node """Move remote interface from root ns to node
intf: string, interface intf: string, interface
dstNode: destination Node dstNode: destination Node
srcNode: source Node or None (default) for root ns srcNode: source Node or None (default) for root ns"""
printError: if true, print error"""
intf = str( intf ) intf = str( intf )
cmd = 'ip link set %s netns %s' % ( intf, node.pid ) cmd = 'ip link set %s netns %s' % ( intf, node.pid )
result = node.rcmd( cmd ) result = node.rcmd( cmd )
@@ -474,12 +473,17 @@ class RemoteLink( Link ):
class RemoteSSHLink( RemoteLink ): class RemoteSSHLink( RemoteLink ):
"Remote link using SSH tunnels"
def __init__(self, node1, node2, **kwargs): def __init__(self, node1, node2, **kwargs):
RemoteLink.__init__( self, node1, node2, **kwargs ) RemoteLink.__init__( self, node1, node2, **kwargs )
GRE_KEY = 0
class RemoteGRELink( RemoteLink ): class RemoteGRELink( RemoteLink ):
"Remote link using GRE tunnels"
GRE_KEY = 0
def __init__(self, node1, node2, **kwargs): def __init__(self, node1, node2, **kwargs):
RemoteLink.__init__( self, node1, node2, **kwargs ) RemoteLink.__init__( self, node1, node2, **kwargs )
@@ -535,13 +539,13 @@ class RemoteGRELink( RemoteLink ):
' == ' + node2.server + ':' + intfname2 ) ' == ' + node2.server + ':' + intfname2 )
tun1 = 'local ' + IP1 + ' remote ' + IP2 tun1 = 'local ' + IP1 + ' remote ' + IP2
tun2 = 'local ' + IP2 + ' remote ' + IP1 tun2 = 'local ' + IP2 + ' remote ' + IP1
global GRE_KEY self.__class__.GRE_KEY += 1
GRE_KEY += 1
for (node, intfname, addr, tun) in [(node1, intfname1, addr1, tun1), for (node, intfname, addr, tun) in [(node1, intfname1, addr1, tun1),
(node2, intfname2, addr2, tun2)]: (node2, intfname2, addr2, tun2)]:
node.rcmd('ip link delete ' + intfname) node.rcmd('ip link delete ' + intfname)
result = node.rcmd('ip link add name ' + intfname + ' type gretap ' result = node.rcmd('ip link add name ' + intfname + ' type gretap '
+ tun + ' ttl 64 key ' + str(GRE_KEY)) + tun + ' ttl 64 key '
+ str( self.__class__.GRE_KEY) )
if result: if result:
raise Exception('error creating gretap on %s: %s' raise Exception('error creating gretap on %s: %s'
% (node, result)) % (node, result))