fixes issue 39472: (#40341)
With python 3.6 spwd.getspnam returns PermissionError instead of KeyError if user does not have privileges
This commit is contained in:
parent
82f6f08712
commit
db786b846f
2 changed files with 11 additions and 0 deletions
3
changelogs/fragments/py36-spwd.yaml
Normal file
3
changelogs/fragments/py36-spwd.yaml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
bugfixes:
|
||||
- spwd - With python 3.6 spwd.getspnam returns PermissionError instead of KeyError if user does not have privileges (https://github.com/ansible/ansible/issues/39472)
|
|
@ -236,6 +236,7 @@ EXAMPLES = '''
|
|||
|
||||
'''
|
||||
|
||||
import errno
|
||||
import grp
|
||||
import os
|
||||
import platform
|
||||
|
@ -646,6 +647,13 @@ class User(object):
|
|||
return passwd, expires
|
||||
except KeyError:
|
||||
return passwd, expires
|
||||
except OSError as e:
|
||||
# Python 3.6 raises PermissionError instead of KeyError
|
||||
# Due to absence of PermissionError in python2.7 need to check
|
||||
# errno
|
||||
if e.errno in (errno.EACCES, errno.EPERM):
|
||||
return passwd, expires
|
||||
raise
|
||||
|
||||
if not self.user_exists():
|
||||
return passwd, expires
|
||||
|
|
Loading…
Reference in a new issue