This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch RANGER-3923
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/RANGER-3923 by this push:
new 97b7f669e RANGER-4267: moved GDS service creation to init, instead of
at resource services creation
97b7f669e is described below
commit 97b7f669e9bc3a5035a58ebc060325a4fdaf970a
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Tue Dec 26 00:28:34 2023 -0800
RANGER-4267: moved GDS service creation to init, instead of at resource
services creation
---
.../plugin/store/EmbeddedServiceDefsUtil.java | 38 ++++++++++++++++++++++
.../java/org/apache/ranger/rest/ServiceREST.java | 18 ----------
2 files changed, 38 insertions(+), 18 deletions(-)
diff --git
a/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
b/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
index 75be1e70e..92ce183bb 100755
---
a/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
+++
b/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
@@ -27,7 +27,9 @@ import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.ranger.authorization.hadoop.config.RangerAdminConfig;
+import org.apache.ranger.plugin.model.RangerService;
import org.apache.ranger.plugin.model.RangerServiceDef;
+import org.apache.ranger.plugin.policyengine.gds.GdsPolicyEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -180,6 +182,8 @@ public class EmbeddedServiceDefsUtil {
// Ensure that tag service def is updated with access
types of all service defs
store.updateTagServiceDefForAccessTypes();
+
+ getOrCreateService(store, EMBEDDED_SERVICEDEF_GDS_NAME,
GdsPolicyEngine.GDS_SERVICE_NAME);
} catch(Throwable excp) {
LOG.error("EmbeddedServiceDefsUtil.init(): failed",
excp);
}
@@ -377,4 +381,38 @@ public class EmbeddedServiceDefsUtil {
}
return supportedServiceDef;
}
+
+ private RangerService getOrCreateService(ServiceStore store, String
serviceType, String serviceName) {
+ if(LOG.isDebugEnabled()) {
+ LOG.debug("==>
EmbeddedServiceDefsUtil.getOrCreateService(" + serviceType + ", " + serviceName
+ ")");
+ }
+
+ RangerService ret = null;
+
+ try {
+ ret = store.getServiceByName(serviceName);
+
+ if(ret == null) {
+ LOG.info("Creating service " + serviceName + "
of type " + serviceType);
+
+ ret = new RangerService();
+
+ ret.setName(serviceName);
+ ret.setDisplayName(serviceName);
+ ret.setType(serviceType);
+
+ ret = store.createService(ret);
+
+ LOG.info("Created service " + serviceName + ".
ID=" + (ret != null ? ret.getId() : null));
+ }
+ } catch(Exception excp) {
+
LOG.error("EmbeddedServiceDefsUtil.getOrCreateService(): failed to load/create
service " + serviceName, excp);
+ }
+
+ if(LOG.isDebugEnabled()) {
+ LOG.debug("<==
EmbeddedServiceDefsUtil.getOrCreateService(" + serviceType + ", " + serviceName
+ "): " + ret);
+ }
+
+ return ret;
+ }
}
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 a14c7a910..49386d08c 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
@@ -4329,17 +4329,7 @@ public class ServiceREST {
}
};
- Runnable createGdsServiceTask = new Runnable() {
- @Override
- public void run() {
- final LinkedServiceCreator creator = new
LinkedServiceCreator(resourceService.getName(), EMBEDDED_SERVICEDEF_GDS_NAME,
ServiceDBStore.GDS_SERVICE_NAME, true, false);
-
- creator.doCreateAndLinkService();
- }
- };
-
rangerTransactionSynchronizationAdapter.executeOnTransactionCommit(createAndLinkTagServiceTask);
-
rangerTransactionSynchronizationAdapter.executeOnTransactionCommit(createGdsServiceTask);
if (LOG.isDebugEnabled()) {
LOG.debug("<==
createOrGetLinkedServices(resourceService=" + resourceService.getName() + ")");
@@ -4363,14 +4353,6 @@ public class ServiceREST {
this.isAutoLink = config.getBoolean("ranger."
+ linkedServiceType + "service.auto.link", true);
}
- LinkedServiceCreator(@Nonnull String resourceServiceName,
@Nonnull String linkedServiceType, String linkedServiceName, boolean
autoCreate, boolean autoLink) {
- this.resourceServiceName = resourceServiceName;
- this.linkedServiceType = linkedServiceType;
- this.linkedServiceName = linkedServiceName;
- this.isAutoCreate = autoCreate;
- this.isAutoLink = autoLink;
- }
-
void doCreateAndLinkService() {
if (LOG.isDebugEnabled()) {
LOG.debug("==> doCreateAndLinkService()");