This is an automated email from the ASF dual-hosted git repository.
pradeep 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 d97fa2969 RANGER-5259: Add REST API to delete stale entries of Plugin
info (#683)
d97fa2969 is described below
commit d97fa296951e51c358117d5b710c808735ede9db
Author: PradeeP AgrawaL <[email protected]>
AuthorDate: Fri Oct 3 12:01:17 2025 +0530
RANGER-5259: Add REST API to delete stale entries of Plugin info (#683)
---
.../main/java/org/apache/ranger/biz/AssetMgr.java | 7 ++++
.../java/org/apache/ranger/rest/ServiceREST.java | 42 ++++++++++++++++++++++
.../ranger/security/context/RangerAPIList.java | 1 +
.../ranger/security/context/RangerAPIMapping.java | 1 +
4 files changed, 51 insertions(+)
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 919e2d656..b460d0762 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
@@ -1506,6 +1506,13 @@ private void doDeleteXXPluginInfo(RangerPluginInfo
pluginInfo) {
}
}
+ public void doDeleteXXPluginInfo(Long id) {
+ XXPluginInfo xObj = rangerDaoManager.getXXPluginInfo().getById(id);
+ if (xObj != null) {
+ rangerDaoManager.getXXPluginInfo().remove(xObj.getId());
+ }
+ }
+
private String getRemoteAddress(final HttpServletRequest request) {
String ret = null;
diff --git
a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index dc7f90881..169f078af 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -2852,6 +2852,48 @@ public RangerPluginInfoList getPluginsInfo(@Context
HttpServletRequest request)
return ret;
}
+ @DELETE
+ @Path("/plugins/info")
+ @Produces("application/json")
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public void deletePluginsInfo(@Context HttpServletRequest request) {
+ LOG.debug("==> ServiceREST.deletePluginsInfo()");
+
+ RangerPluginInfoList ret = null;
+ SearchFilter filter = searchUtil.getSearchFilter(request,
pluginInfoService.getSortFields());
+
+ try {
+ PList<RangerPluginInfo> paginatedPluginsInfo =
pluginInfoService.searchRangerPluginInfo(filter);
+ if (paginatedPluginsInfo != null) {
+ for (RangerPluginInfo rangerPluginInfo :
paginatedPluginsInfo.getList()) {
+ if (rangerPluginInfo != null) {
+ deletePluginsInfo(rangerPluginInfo.getId());
+ LOG.debug("Deleted rangerPluginInfo:[{}]",
rangerPluginInfo);
+ }
+ }
+ }
+ } catch (WebApplicationException excp) {
+ throw excp;
+ } catch (Throwable excp) {
+ LOG.error("deletePluginsInfo() failed", excp);
+
+ throw restErrorUtil.createRESTException(excp.getMessage());
+ }
+
+ LOG.debug("<== ServiceREST.deletePluginsInfo()");
+ }
+
+ @DELETE
+ @Path("/plugins/info/{id}")
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public void deletePluginsInfo(@PathParam("id") Long id) {
+ LOG.debug("==> ServiceREST.deletePluginsInfo({})", id);
+
+ assetMgr.doDeleteXXPluginInfo(id);
+
+ LOG.debug("<== ServiceREST.deletePluginsInfo() - [id={}]", id);
+ }
+
public void blockIfGdsService(String serviceName) {
String serviceType =
daoManager.getXXServiceDef().findServiceDefTypeByServiceName(serviceName);
diff --git
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
index 08fccdb7e..d489bb56d 100755
---
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
+++
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
@@ -87,6 +87,7 @@ public class RangerAPIList {
public static final String GET_POLICY_VERSION_LIST =
"ServiceREST.getPolicyVersionList";
public static final String GET_POLICY_FOR_VERSION_NO =
"ServiceREST.getPolicyForVersionNumber";
public static final String GET_PLUGINS_INFO =
"ServiceREST.getPluginsInfo";
+ public static final String DELETE_PLUGINS_INFO =
"ServiceREST.deletePluginsInfo";
public static final String GET_METRICS_BY_TYPE =
"ServiceREST.getMetricByType";
public static final String DELETE_CLUSTER_SERVICES =
"ServiceREST.deleteClusterServices";
diff --git
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
index 115920720..1c4ee1183 100644
---
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
+++
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
@@ -376,6 +376,7 @@ private void mapAuditWithAPIs() {
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_VERSION_LIST);
apiAssociatedWithAudit.add(RangerAPIList.GET_PLUGINS_INFO);
+ apiAssociatedWithAudit.add(RangerAPIList.DELETE_PLUGINS_INFO);
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE);
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_BY_NAME);
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_DEF);