Repository: ranger Updated Branches: refs/heads/master 80c819833 -> 06d081356
RANGER-2124: Total groups count is derived based on the groups that are updated to ranger admin instead of all the groups read from OS for unix as syn source Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/06d08135 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/06d08135 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/06d08135 Branch: refs/heads/master Commit: 06d0813563d118f69ba04a60396016007ac1d77e Parents: 80c8198 Author: Sailaja Polavarapu <[email protected]> Authored: Thu Jun 7 11:23:19 2018 -0700 Committer: Sailaja Polavarapu <[email protected]> Committed: Thu Jun 7 11:23:19 2018 -0700 ---------------------------------------------------------------------- .../ranger/unixusersync/process/UnixUserGroupBuilder.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/06d08135/ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java ---------------------------------------------------------------------- diff --git a/ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java b/ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java index f314bd8..ddab629 100644 --- a/ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java +++ b/ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java @@ -86,6 +86,8 @@ public class UnixUserGroupBuilder implements UserGroupSource { private UgsyncAuditInfo ugsyncAuditInfo; private UnixSyncSourceInfo unixSyncSourceInfo; private boolean isStartupFlag = false; + Set<String> allGroups = new HashSet<>(); + public static void main(String[] args) throws Throwable { UnixUserGroupBuilder ugbuilder = new UnixUserGroupBuilder(); @@ -168,7 +170,6 @@ public class UnixUserGroupBuilder implements UserGroupSource { for (Map.Entry<String, List<String>> entry : user2GroupListMap.entrySet()) { String user = entry.getKey(); List<String> groups = entry.getValue(); - try { sink.addOrUpdateUser(user, groups); } catch (Throwable t) { @@ -181,7 +182,7 @@ public class UnixUserGroupBuilder implements UserGroupSource { } try { unixSyncSourceInfo.setTotalUsersSynced(user2GroupListMap.size()); - unixSyncSourceInfo.setTotalGroupsSynced(groupId2groupNameMap.size()); + unixSyncSourceInfo.setTotalGroupsSynced(allGroups.size()); sink.postUserGroupAuditInfo(ugsyncAuditInfo); } catch (Throwable t) { LOG.error("sink.postUserGroupAuditInfo failed with exception: ", t); @@ -193,6 +194,7 @@ public class UnixUserGroupBuilder implements UserGroupSource { private void buildUserGroupInfo() throws Throwable { user2GroupListMap = new HashMap<String,List<String>>(); groupId2groupNameMap = new HashMap<String, String>(); + allGroups = new HashSet<>(); if (OS.startsWith("Mac")) { buildUnixGroupList(MAC_GET_ALL_GROUPS_CMD, MAC_GET_GROUP_CMD, false); @@ -294,6 +296,7 @@ public class UnixUserGroupBuilder implements UserGroupSource { groupList.addAll(map); } user2GroupListMap.put(userName, groupList); + allGroups.addAll(groupList); } else { // we are ignoring the possibility that this user was present in /etc/groups. LOG.warn("Group Name could not be found for group id: [" + groupId + "]. Skipping adding user [" + userName + "] with id [" + userId + "]."); @@ -368,6 +371,7 @@ public class UnixUserGroupBuilder implements UserGroupSource { } user2GroupListMap.put(entry.getKey(), allowedGroups); + allGroups.addAll(allowedGroups); } LOG.debug("End drill down group members"); }
