add findUser() to clean up user identification
This commit is contained in:
+17
-9
@@ -125,12 +125,8 @@ class RemoteMixin( object ):
|
|||||||
if server == 'localhost':
|
if server == 'localhost':
|
||||||
server = None
|
server = None
|
||||||
self.server = server
|
self.server = server
|
||||||
if not serverIP:
|
self.serverIP = serverIP if serverIP else self.findServerIP( server )
|
||||||
serverIP = self.findServerIP( server )
|
self.user = user if user else self.findUser()
|
||||||
self.serverIP = serverIP
|
|
||||||
if not user:
|
|
||||||
user = quietRun( 'echo $SUDO_USER' )
|
|
||||||
self.user = user
|
|
||||||
if self.user and self.server:
|
if self.user and self.server:
|
||||||
self.dest = '%s@%s' % ( self.user, self.serverIP )
|
self.dest = '%s@%s' % ( self.user, self.serverIP )
|
||||||
else:
|
else:
|
||||||
@@ -146,6 +142,20 @@ class RemoteMixin( object ):
|
|||||||
self.splitInit = splitInit
|
self.splitInit = splitInit
|
||||||
super( RemoteMixin, self ).__init__( name, **kwargs )
|
super( RemoteMixin, self ).__init__( name, **kwargs )
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def findUser():
|
||||||
|
"Try to return logged-in (usually non-root) user"
|
||||||
|
try:
|
||||||
|
# If we're running sudo
|
||||||
|
return os.environ[ 'SUDO_USER' ]
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
# Logged-in user (if we have a tty)
|
||||||
|
return quietRun( 'who am i' ).split()[ 0 ]
|
||||||
|
except:
|
||||||
|
# Give up and return effective user
|
||||||
|
return quietRun( 'whoami' )
|
||||||
|
|
||||||
# Determine IP address of local host
|
# Determine IP address of local host
|
||||||
_ipMatchRegex = re.compile( r'\d+\.\d+\.\d+\.\d+' )
|
_ipMatchRegex = re.compile( r'\d+\.\d+\.\d+\.\d+' )
|
||||||
|
|
||||||
@@ -593,9 +603,7 @@ class MininetCluster( Mininet ):
|
|||||||
if not self.serverIP:
|
if not self.serverIP:
|
||||||
self.serverIP = { server: RemoteMixin.findServerIP( server )
|
self.serverIP = { server: RemoteMixin.findServerIP( server )
|
||||||
for server in self.servers }
|
for server in self.servers }
|
||||||
self.user = params.pop( 'user', None )
|
self.user = params.pop( 'user', RemoteMixin.findUser() )
|
||||||
if self.servers and not self.user:
|
|
||||||
self.user = quietRun( 'echo $SUDO_USER' )
|
|
||||||
if params.pop( 'precheck' ):
|
if params.pop( 'precheck' ):
|
||||||
self.precheck()
|
self.precheck()
|
||||||
self.connections = {}
|
self.connections = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user