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 <[email protected]>
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);
}
}