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

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


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

commit 5f7c504392276ab3060dc473908c0aec54ece755
Author: Madhan Neethiraj <mad...@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
    
    (cherry picked from commit 54a2cd0a452aa8eeb3e54b3ba4a1ca6150b79791)
---
 .../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 a6f553340..0280d674b 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
@@ -110,6 +110,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();
@@ -117,16 +119,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);
                        }
                }
 

Reply via email to