fixes issue 39472:

With python 3.6 spwd.getspnam returns PermissionError instead of
KeyError if user does not have privileges
pull/40341/head
Artem Goncharov 7 years ago
parent 0f16b26080
commit 0023b1ee9e

@ -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…
Cancel
Save