@Override public PermissionsUpdate retrieveFullImage(long currSeqNum) { final Timer.Context timerContext = SentryHdfsMetricsUtil.getRetrieveFullImageTimer.time(); Map<String, HashMap<String, String>> privilegeImage = sentryStore.retrieveFullPrivilegeImage(); Map<String, LinkedList<String>> roleImage = sentryStore.retrieveFullRoleImage(); TPermissionsUpdate tPermUpdate = new TPermissionsUpdate(true, currSeqNum, new HashMap<String, TPrivilegeChanges>(), new HashMap<String, TRoleChanges>()); for (Map.Entry<String, HashMap<String, String>> privEnt : privilegeImage.entrySet()) { String authzObj = privEnt.getKey(); HashMap<String,String> privs = privEnt.getValue(); tPermUpdate.putToPrivilegeChanges(authzObj, new TPrivilegeChanges( authzObj, privs, new HashMap<String, String>())); } for (Map.Entry<String, LinkedList<String>> privEnt : roleImage.entrySet()) { String role = privEnt.getKey(); LinkedList<String> groups = privEnt.getValue(); tPermUpdate.putToRoleChanges(role, new TRoleChanges(role, groups, new LinkedList<String>())); } PermissionsUpdate permissionsUpdate = new PermissionsUpdate(tPermUpdate); permissionsUpdate.setSeqNum(currSeqNum); timerContext.stop(); SentryHdfsMetricsUtil.getPrivilegeChangesHistogram.update( tPermUpdate.getPrivilegeChangesSize()); SentryHdfsMetricsUtil.getRoleChangesHistogram.update( tPermUpdate.getRoleChangesSize()); return permissionsUpdate; }