This is an automated email from the ASF dual-hosted git repository.
abhay 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 df07b0d RANGER-3562: Redesign post commit tasks for updating
ref-tables when policy/role is updated
df07b0d is described below
commit df07b0da94dced97e6022b1d0d243c8b2e358803
Author: Abhay Kulkarni
AuthorDate: Mon Jan 3 18:38:55 2022 -0800
RANGER-3562: Redesign post commit tasks for updating ref-tables when
policy/role is updated
---
.../main/java/org/apache/ranger/biz/AssetMgr.java | 18 +-
.../org/apache/ranger/biz/PolicyRefUpdater.java| 474 ++---
.../java/org/apache/ranger/biz/RoleRefUpdater.java | 395 +
.../ranger/service/RangerPluginActivityLogger.java | 15 +-
.../service/TestRangerPluginActivityLogger.java| 3 +-
5 files changed, 436 insertions(+), 469 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
index 36f137e..08255b3 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
@@ -48,6 +48,7 @@ import org.apache.ranger.common.RangerCommonEnums;
import org.apache.ranger.common.RangerConstants;
import org.apache.ranger.common.SearchCriteria;
import org.apache.ranger.common.StringUtil;
+import org.apache.ranger.common.db.RangerTransactionSynchronizationAdapter;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.elasticsearch.ElasticSearchAccessAuditsService;
import org.apache.ranger.entity.XXPermMap;
@@ -121,7 +122,7 @@ public class AssetMgr extends AssetMgrBase {
XPolicyService xPolicyService;
@Autowired
- RangerPluginActivityLogger activityLogger;
+ RangerTransactionSynchronizationAdapter
transactionSynchronizationAdapter;
@Autowired
RangerPluginInfoService pluginInfoService;
@@ -663,7 +664,7 @@ public class AssetMgr extends AssetMgrBase {
}
};
-
activityLogger.commitAfterTransactionComplete(commitWork);
+
transactionSynchronizationAdapter.executeOnTransactionCompletion(commitWork);
}
} else {
ret =
rangerDaoManager.getXXPolicyExportAudit().create(xXPolicyExportAudit);
@@ -733,6 +734,7 @@ public class AssetMgr extends AssetMgrBase {
}
final boolean isTagVersionResetNeeded;
+ final Runnable commitWork;
if (httpCode == HttpServletResponse.SC_NOT_MODIFIED) {
// Create or update PluginInfo record after transaction
is completed. If it is created in-line here
@@ -757,15 +759,13 @@ public class AssetMgr extends AssetMgrBase {
break;
}
- Runnable commitWork = new Runnable() {
+ commitWork = new Runnable() {
@Override
public void run() {
doCreateOrUpdateXXPluginInfo(pluginInfo, entityType, isTagVersionResetNeeded,
clusterName);
}
};
-
activityLogger.commitAfterTransactionComplete(commitWork);
} else if (httpCode == HttpServletResponse.SC_NOT_FOUND) {
- Runnable commitWork;
if ((isPolicyDownloadRequest(entityType) &&
(pluginInfo.getPolicyActiveVersion() == null ||
pluginInfo.getPolicyActiveVersion() == -1))
|| (isTagDownloadRequest(entityType) &&
(pluginInfo.getTagActiveVersion() == null || pluginInfo.getTagActiveVersion()
== -1))
|| (isRoleDownloadRequest(entityType)
&& (pluginInfo.getRoleActiveVersion() == null ||
pluginInfo.getRoleActiveVersion() == -1))
@@ -784,12 +784,16 @@ public class AssetMgr extends AssetMgrBase {
}
};
}
-
activityLogger.commitAfterTransactionComplete(commitWork);
-
} else {
isTagVersionResetNeeded = false;
+ commitWork = null;
doCreateOrUpdateXXPluginInfo(pluginInfo, entityType,
isTagVersionResetNeeded, clusterName);
}
+
+ if (commitWork != null) {
+
transactionSynchronizationAdapter.executeOnTransactionCompletion(commitWork);
+ }
+
if (logger.isDebugEnabled()) {