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 <[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
---
.../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);
}
}