Skip to content

Commit 86c235d

Browse files
remote: standardise user name interface
* Replace `pwd.getpwnam().pw_name` with `getpass.getuser()`. * Closes #7240 * This ensures consistency with other parts of Cylc which are already using the `getpass` interface.
1 parent a1ac5a0 commit 86c235d

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

cylc/flow/hostuserutil.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"""
4646

4747
from contextlib import suppress
48+
import getpass
4849
import os
4950
import pwd
5051
import socket
@@ -91,7 +92,7 @@ def __init__(self, expire):
9192
self._host = None # preferred name of localhost
9293
self._host_exs = {} # host: socket.gethostbyname_ex(host), ...
9394
self._remote_hosts = {} # host: is_remote, ...
94-
self.user_pwent = None
95+
self._user_pwent = None
9596

9697
@staticmethod
9798
def get_local_ip_address(target):
@@ -180,21 +181,23 @@ def get_fqdn_by_host(self, target):
180181

181182
def get_user(self):
182183
"""Return name of current user."""
183-
return self._get_user_pwent().pw_name
184+
# NOTE: don't use pwnam
185+
# see https://github.com/cylc/cylc-flow/issues/7240
186+
return getpass.getuser()
184187

185188
def get_user_home(self):
186189
"""Return home directory of current user."""
187190
return self._get_user_pwent().pw_dir
188191

189192
def _get_user_pwent(self):
190193
"""Ensure self.user_pwent is set to current user's password entry."""
191-
if self.user_pwent is None:
194+
if self._user_pwent is None:
192195
my_user_name = os.environ.get('USER')
193196
if my_user_name:
194-
self.user_pwent = pwd.getpwnam(my_user_name)
197+
self._user_pwent = pwd.getpwnam(my_user_name)
195198
else:
196-
self.user_pwent = pwd.getpwuid(os.getuid())
197-
return self.user_pwent
199+
self._user_pwent = pwd.getpwuid(os.getuid())
200+
return self._user_pwent
198201

199202
def is_remote_host(self, name):
200203
"""Return True if name has different IP address than the current host.

0 commit comments

Comments
 (0)