From e359f7cfcf02993896ffa5d9a0bcfcbfd9ec93e5 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Fri, 12 Dec 2014 12:08:03 -0800 Subject: [PATCH] Don't traceback if a gid is specified instead of a group name Fixes https://github.com/ansible/ansible/issues/9796 --- lib/ansible/modules/system/user.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/ansible/modules/system/user.py b/lib/ansible/modules/system/user.py index 6fe20122e91..44dffba3b8d 100644 --- a/lib/ansible/modules/system/user.py +++ b/lib/ansible/modules/system/user.py @@ -447,21 +447,23 @@ class User(object): def group_exists(self,group): try: - if group.isdigit(): - if grp.getgrgid(int(group)): - return True - else: - if grp.getgrnam(group): - return True - except KeyError: - return False + # Try group as a gid first + grp.getgrgid(int(group)) + return True + except (ValueError, KeyError): + try: + grp.getgrnam(group) + return True + except KeyError: + return False - def group_info(self,group): + def group_info(self, group): if not self.group_exists(group): return False - if group.isdigit(): - return list(grp.getgrgid(group)) - else: + try: + # Try group as a gid first + return list(grp.getgrgid(int(group))) + except (ValueError, KeyError): return list(grp.getgrnam(group)) def get_groups_set(self, remove_existing=True):