You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2023/05/11 14:11:46 UTC

[ranger] branch master updated: RANGER-4235: security-zone persistence optimized to avoid creation of unnecessary ref table entries

This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 54a2cd0a4 RANGER-4235: security-zone persistence optimized to avoid creation of unnecessary ref table entries
54a2cd0a4 is described below

commit 54a2cd0a452aa8eeb3e54b3ba4a1ca6150b79791
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Thu May 11 00:49:07 2023 -0700

    RANGER-4235: security-zone persistence optimized to avoid creation of unnecessary ref table entries
---
 .../apache/ranger/biz/SecurityZoneRefUpdater.java    | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/biz/SecurityZoneRefUpdater.java b/security-admin/src/main/java/org/apache/ranger/biz/SecurityZoneRefUpdater.java
index 4cfe62701..ebc26528c 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/SecurityZoneRefUpdater.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/SecurityZoneRefUpdater.java
@@ -125,6 +125,8 @@ public class SecurityZoneRefUpdater {
 
 			daoMgr.getXXSecurityZoneRefService().create(xZoneService);
 
+			Set<String> resourceDefNames = new HashSet<>();
+
 			for(Map<String, List<String>> resourceMap:service.getValue().getResources()){//add all resourcedefs in pre defined set
 				for(Map.Entry<String, List<String>> resource : resourceMap.entrySet()) {
 					String resourceName = resource.getKey();
@@ -132,16 +134,20 @@ public class SecurityZoneRefUpdater {
 						continue;
 					}
 
-					XXResourceDef xResourceDef = daoMgr.getXXResourceDef().findByNameAndServiceDefId(resourceName, xServiceDef.getId());
+					resourceDefNames.add(resourceName);
+				}
+			}
 
-					XXSecurityZoneRefResource xZoneResource = rangerAuditFields.populateAuditFieldsForCreate(new XXSecurityZoneRefResource());
+			for (String resourceName : resourceDefNames) {
+				XXResourceDef xResourceDef = daoMgr.getXXResourceDef().findByNameAndServiceDefId(resourceName, xServiceDef.getId());
 
-					xZoneResource.setZoneId(zoneId);
-					xZoneResource.setResourceDefId(xResourceDef.getId());
-					xZoneResource.setResourceName(resourceName);
+				XXSecurityZoneRefResource xZoneResource = rangerAuditFields.populateAuditFieldsForCreate(new XXSecurityZoneRefResource());
 
-					daoMgr.getXXSecurityZoneRefResource().create(xZoneResource);
-				}
+				xZoneResource.setZoneId(zoneId);
+				xZoneResource.setResourceDefId(xResourceDef.getId());
+				xZoneResource.setResourceName(resourceName);
+
+				daoMgr.getXXSecurityZoneRefResource().create(xZoneResource);
 			}
 		}