Skip to content
Snippets Groups Projects
Commit 80d647a9 authored by Bob Lantz's avatar Bob Lantz
Browse files

add findUser() to clean up user identification

parent 3df36101
No related branches found
No related tags found
No related merge requests found
...@@ -125,12 +125,8 @@ def __init__( self, name, server=None, user=None, serverIP=None, ...@@ -125,12 +125,8 @@ def __init__( self, name, server=None, user=None, serverIP=None,
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 @@ def __init__( self, name, server=None, user=None, serverIP=None, ...@@ -146,6 +142,20 @@ def __init__( self, name, server=None, user=None, serverIP=None,
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 @@ def __init__( self, *args, **kwargs ): ...@@ -593,9 +603,7 @@ def __init__( self, *args, **kwargs ):
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 = {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment