You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2016/11/23 22:31:43 UTC
[1/3] incubator-ranger git commit: RANGER-1228: removed
ServiceFileStore, ServiceRESTStore, TagFileStore
Repository: incubator-ranger
Updated Branches:
refs/heads/master a15af08ca -> ccd0badd9
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
deleted file mode 100644
index d8d61d4..0000000
--- a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ranger.plugin.store;
-
-import static org.junit.Assert.*;
-
-import java.io.*;
-import java.util.*;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.ranger.authorization.hadoop.config.RangerConfiguration;
-import org.apache.ranger.plugin.model.*;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
-import org.apache.ranger.plugin.store.file.ServiceFileStore;
-import org.apache.ranger.plugin.store.file.TagFileStore;
-import org.apache.ranger.plugin.util.SearchFilter;
-import org.apache.ranger.plugin.util.ServiceTags;
-import org.junit.BeforeClass;
-import org.junit.AfterClass;
-import org.junit.Test;
-
-
-public class TestTagStore {
- static TagStore tagStore = null;
- static TagValidator validator = null;
- static RangerServiceDef serviceDef = null;
- static RangerService service = null;
- static SearchFilter filter = null;
-
- static final String serviceDefJsonFile = "/admin/service-defs/test-hive-servicedef.json";
- static final String serviceName = "tag-unit-test-TestTagStore";
- static File tagStoreDir = null;
-
- static Gson gsonBuilder = null;
-
- @BeforeClass
- public static void setupTest() throws Exception {
-
- String textTemplate = "<configuration>\n" +
- " <property>\n" +
- " <name>ranger.tag.store.file.dir</name>\n" +
- " <value>%s</value>\n" +
- " </property>\n" +
- " <property>\n" +
- " <name>ranger.service.store.file.dir</name>\n" +
- " <value>%s</value>\n" +
- " </property>\n" +
- "</configuration>\n";
-
- File file = File.createTempFile("ranger-admin-test-site", ".xml");
- file.deleteOnExit();
-
- tagStoreDir = File.createTempFile("tagStore", "dir");
-
- if (tagStoreDir.exists()) {
- tagStoreDir.delete();
- }
-
- tagStoreDir.mkdirs();
-
- String tagStoreDirName = tagStoreDir.getAbsolutePath();
-
- String text = String.format(textTemplate, tagStoreDirName, tagStoreDirName);
-
- FileOutputStream outStream = new FileOutputStream(file);
- OutputStreamWriter writer = new OutputStreamWriter(outStream);
- writer.write(text);
- writer.close();
-
- RangerConfiguration config = RangerConfiguration.getInstance();
- config.addResource(new org.apache.hadoop.fs.Path(file.toURI()));
-
- ServiceStore svcStore = new ServiceFileStore();
- svcStore.init();
-
- tagStore = TagFileStore.getInstance();
- tagStore.init();
- tagStore.setServiceStore(svcStore);
-
- validator = new TagValidator();
- validator.setTagStore(tagStore);
-
- gsonBuilder = new GsonBuilder().setDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z")
- .setPrettyPrinting()
- .create();
-
- InputStream inStream = TestTagStore.class.getResourceAsStream(serviceDefJsonFile);
- InputStreamReader reader = new InputStreamReader(inStream);
-
- serviceDef = gsonBuilder.fromJson(reader, RangerServiceDef.class);
-
- service = svcStore.createService(new RangerService(serviceDef.getName(), serviceName, serviceName, null, null));
-
- reader.close();
- inStream.close();
-
- }
-
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
- if (tagStoreDir != null) {
- try {
- File[] filesInTagStoreDir = tagStoreDir.listFiles();
- if (filesInTagStoreDir != null) {
- for (File file : filesInTagStoreDir) {
- if (file.isFile()) {
- file.delete();
- }
- }
- }
- tagStoreDir.delete();
- tagStoreDir = null;
- } catch (Throwable t) {
- // Ignore
- }
- }
- }
-
- @Test
- public void testTagStore_tag() throws Exception {
-
- String tagType = "ssn";
- String newTagType = "new-ssn";
-
- List<RangerTag> tags = tagStore.getTags(filter);
-
- int initTagCount = tags == null ? 0 : tags.size();
-
- RangerTag tag = new RangerTag(tagType, new HashMap<String, String>());
- tag.setGuid("GUID_TAG_TEST");
-
- validator.preCreateTag(tag);
- RangerTag createdTag = tagStore.createTag(tag);
-
- assertNotNull("createTag() failed", createdTag);
- assertTrue("createTag() type mismatch", createdTag.getType().equals(tag.getType()));
- assertTrue("createTag() GUID mismatch", createdTag.getGuid().equals(tag.getGuid()));
-
- tags = tagStore.getTags(filter);
-
- assertEquals("createTag() failed", initTagCount + 1, tags == null ? 0 : tags.size());
-
- createdTag.setType(newTagType);
- validator.preUpdateTag(createdTag.getId(), createdTag);
- RangerTag updatedTag = tagStore.updateTag(createdTag);
-
- tag = tagStore.getTag(updatedTag.getId());
-
- assertTrue("updateTag() type mismatch", tag.getType().equals(updatedTag.getType()));
- assertTrue("updatedTag() GUID mismatch", tag.getGuid().equals(updatedTag.getGuid()));
-
- validator.preDeleteTag(createdTag.getId());
- tagStore.deleteTag(createdTag.getId());
-
- tags = tagStore.getTags(filter);
-
- assertEquals("deleteTag() failed", initTagCount, tags == null ? 0 : tags.size());
-
- // Try deleting it again
- try {
- validator.preDeleteTag(createdTag.getId());
- tagStore.deleteTag(createdTag.getId());
- assertTrue("deleteTag() failed. Deleted tag again successfully? ", false);
- } catch (Exception exception) {
- assertTrue(true);
- }
- }
-
- @Test
- public void testTagStore_serviceresource() throws Exception {
-
- String guid = "GUID_SERVICERESOURCE_TEST";
- String newGuid = "NEW_GUID_SERVICERESOURCE_TEST";
-
- Map<String, RangerPolicyResource> resourceElements = new HashMap<String, RangerPolicyResource>();
-
- RangerPolicyResource resourceElement = new RangerPolicyResource();
- resourceElement.setValue("*");
- resourceElements.put("database", resourceElement);
-
- List<RangerServiceResource> serviceResources = tagStore.getServiceResources(filter);
-
- int initServiceResourceCount = serviceResources == null ? 0 : serviceResources.size();
-
- RangerServiceResource serviceResource = new RangerServiceResource();
- serviceResource.setServiceName(serviceName);
- serviceResource.setResourceElements(resourceElements);
- serviceResource.setGuid(guid);
-
- validator.preCreateServiceResource(serviceResource);
- RangerServiceResource createdServiceResource = tagStore.createServiceResource(serviceResource);
-
- assertNotNull("createServiceResource() failed", createdServiceResource);
- assertTrue("createServiceResource() GUID mismatch", createdServiceResource.getGuid().equals(createdServiceResource.getGuid()));
-
- serviceResources = tagStore.getServiceResources(filter);
-
- assertEquals("createServiceResource() failed", initServiceResourceCount + 1, serviceResources == null ? 0 : serviceResources.size());
-
- createdServiceResource.setGuid(newGuid);
- validator.preUpdateServiceResource(createdServiceResource.getId(), createdServiceResource);
- RangerServiceResource updatedServiceResource = tagStore.updateServiceResource(createdServiceResource);
-
- serviceResource = tagStore.getServiceResource(updatedServiceResource.getId());
-
- assertTrue("updatedServiceResource() GUID mismatch", serviceResource.getGuid().equals(updatedServiceResource.getGuid()));
-
- validator.preDeleteServiceResource(updatedServiceResource.getId());
- tagStore.deleteServiceResource(updatedServiceResource.getId());
-
- serviceResources = tagStore.getServiceResources(filter);
-
- assertEquals("deleteServiceResource() failed", initServiceResourceCount, serviceResources == null ? 0 : serviceResources.size());
-
- // Try deleting it again
- try {
- validator.preDeleteServiceResource(createdServiceResource.getId());
- tagStore.deleteServiceResource(createdServiceResource.getId());
- assertTrue("deleteServiceResource() failed. Deleted serviceResource again successfully? ", false);
- } catch (Exception exception) {
- assertTrue(true);
- }
- }
-
- @Test
- public void testTagStore_tagResourceMap() throws Exception {
-
- String tagType = "ssn";
-
- String resourceGuid = "GUID_SERVICERESOURCE_TEST";
- String tagGuid = "GUID_TAG_TEST";
-
- List<RangerTag> tags = tagStore.getTags(filter);
-
- int initTagCount = tags == null ? 0 : tags.size();
-
- RangerTag tag = new RangerTag(tagType, new HashMap<String, String>());
- tag.setGuid(tagGuid);
-
- validator.preCreateTag(tag);
- RangerTag createdTag = tagStore.createTag(tag);
-
- assertNotNull("createTag() failed", createdTag);
- tags = tagStore.getTags(filter);
-
- assertEquals("createTag() failed", initTagCount + 1, tags == null ? 0 : tags.size());
-
- Map<String, RangerPolicyResource> resourceElements = new HashMap<String, RangerPolicyResource>();
-
- RangerPolicyResource resource = new RangerPolicyResource();
- resource.setValue("*");
- resourceElements.put("database", resource);
-
- List<RangerServiceResource> serviceResources = tagStore.getServiceResources(filter);
-
- int initServiceResourceCount = serviceResources == null ? 0 : serviceResources.size();
-
- RangerServiceResource serviceResource = new RangerServiceResource();
- serviceResource.setServiceName(serviceName);
- serviceResource.setResourceElements(resourceElements);
-
- serviceResource.setGuid(resourceGuid);
- validator.preCreateServiceResource(serviceResource);
- RangerServiceResource createdServiceResource = tagStore.createServiceResource(serviceResource);
-
- assertNotNull("createServiceResource() failed", createdServiceResource);
-
- serviceResources = tagStore.getServiceResources(filter);
-
- assertEquals("createServiceResource() failed", initServiceResourceCount + 1, serviceResources == null ? 0 : serviceResources.size());
-
- // Now create map
-
- RangerTagResourceMap tagResourceMap = validator.preCreateTagResourceMap(tagGuid, resourceGuid);
-
- RangerTagResourceMap createdTagResourceMap = tagStore.createTagResourceMap(tagResourceMap);
-
- assertNotNull("createTagResourceMap() failed", createdTagResourceMap);
-
- ServiceTags serviceTags = tagStore.getServiceTagsIfUpdated(serviceName, -1L);
- List<RangerServiceResource> resourceList = serviceTags.getServiceResources();
-
- assertTrue("No tagged resources found!", CollectionUtils.isNotEmpty(resourceList) && CollectionUtils.size(resourceList) == 1);
-
- // Delete all created entities
- RangerTagResourceMap map = validator.preDeleteTagResourceMap(tagGuid, resourceGuid);
- tagStore.deleteTagResourceMap(map.getId());
-
- validator.preDeleteServiceResource(createdServiceResource.getId());
- tagStore.deleteServiceResource(createdServiceResource.getId());
-
- // private tags are deleted when TagResourceMap is deleted.. No need for deleting it here
- //validator.preDeleteTag(createdTag.getId());
- //tagStore.deleteTag(createdTag.getId());
-
- }
-}
-
-
-
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
index 3841785..dfe927f 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
@@ -1101,8 +1101,10 @@ public class ServiceDBStore extends AbstractServiceStore {
}
}
- @Override
- public void deleteServiceDef(Long serviceDefId) throws Exception {
+ public void deleteServiceDef(Long serviceDefId, Boolean forceDelete) throws Exception {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("==> ServiceDefDBStore.deleteServiceDef(" + serviceDefId + ", " + forceDelete + ")");
+ }
UserSessionBase session = ContextUtil.getCurrentUserSession();
if (session == null) {
@@ -1117,14 +1119,6 @@ public class ServiceDBStore extends AbstractServiceStore {
MessageEnums.OPER_NO_PERMISSION);
}
- deleteServiceDef(serviceDefId, false);
- }
-
- public void deleteServiceDef(Long serviceDefId, Boolean forceDelete) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefDBStore.deleteServiceDef(" + serviceDefId + ")");
- }
-
RangerServiceDef serviceDef = getServiceDef(serviceDefId);
if(serviceDef == null) {
throw restErrorUtil.createRESTException("No Service Definiton found for Id: " + serviceDefId,
@@ -1212,7 +1206,7 @@ public class ServiceDBStore extends AbstractServiceStore {
postDelete(serviceDef);
if (LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefDBStore.deleteServiceDef(" + serviceDefId + ")");
+ LOG.debug("<== ServiceDefDBStore.deleteServiceDef(" + serviceDefId + ", " + forceDelete + ")");
}
}
[3/3] incubator-ranger git commit: RANGER-1228: removed
ServiceFileStore, ServiceRESTStore, TagFileStore
Posted by ma...@apache.org.
RANGER-1228: removed ServiceFileStore, ServiceRESTStore, TagFileStore
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/ccd0badd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/ccd0badd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/ccd0badd
Branch: refs/heads/master
Commit: ccd0badd900f4358b9d1db4c8441a4fbd61c63a0
Parents: a15af08
Author: Abhay Kulkarni <ak...@hortonworks.com>
Authored: Mon Nov 21 17:53:21 2016 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Wed Nov 23 14:31:26 2016 -0800
----------------------------------------------------------------------
.../RangerTagFileStoreRetriever.java | 71 -
.../plugin/store/AbstractServiceStore.java | 146 +-
.../ranger/plugin/store/AbstractTagStore.java | 103 --
.../ranger/plugin/store/ServiceStore.java | 10 -
.../plugin/store/file/ServiceFileStore.java | 990 ------------
.../ranger/plugin/store/file/TagFileStore.java | 1485 ------------------
.../plugin/store/rest/ServiceRESTStore.java | 653 --------
.../ranger/plugin/store/TestServiceStore.java | 275 ----
.../ranger/plugin/store/TestTagStore.java | 319 ----
.../org/apache/ranger/biz/ServiceDBStore.java | 16 +-
10 files changed, 10 insertions(+), 4058 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java
deleted file mode 100644
index 85cf420..0000000
--- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ranger.plugin.contextenricher;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.ranger.plugin.store.TagStore;
-import org.apache.ranger.plugin.store.file.TagFileStore;
-import org.apache.ranger.plugin.util.ServiceTags;
-
-import java.nio.channels.ClosedByInterruptException;
-import java.util.Map;
-
-public class RangerTagFileStoreRetriever extends RangerTagRetriever {
- private static final Log LOG = LogFactory.getLog(RangerTagFileStoreRetriever.class);
-
- private TagStore tagStore;
-
- @Override
- public void init(Map<String, String> options) {
-
- if (StringUtils.isNotBlank(serviceName) && serviceDef != null && StringUtils.isNotBlank(appId)) {
-
- tagStore = TagFileStore.getInstance();
-
- } else {
- LOG.error("FATAL: Cannot find service-name to use for retrieving tags. Will NOT be able to retrieve tags.");
- }
- }
-
- @Override
- public ServiceTags retrieveTags(long lastKnownVersion, long lastActivationTimeInMillis) throws InterruptedException {
-
- ServiceTags serviceTags = null;
-
- if (tagStore != null) {
- try {
- // Ignore lastActivationTimeInMillis for TagFileStore
- serviceTags = tagStore.getServiceTagsIfUpdated(serviceName, lastKnownVersion);
- } catch (InterruptedException interruptedException) {
- LOG.error("Tag-retriever thread was interrupted");
- throw interruptedException;
- } catch (ClosedByInterruptException closedByInterruptException) {
- LOG.error("Tag-retriever thread was interrupted while blocked on I/O");
- throw new InterruptedException();
- } catch (Exception exception) {
- LOG.error("RangerTagFileStoreRetriever.retrieveTags() - Error retrieving resources, exception=", exception);
- }
- }
- return serviceTags;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
index ebb4b78..121dd49 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
@@ -31,11 +31,9 @@ import org.apache.ranger.plugin.util.SearchFilter;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
-import java.util.UUID;
public abstract class AbstractServiceStore implements ServiceStore {
private static final Log LOG = LogFactory.getLog(AbstractServiceStore.class);
@@ -44,6 +42,9 @@ public abstract class AbstractServiceStore implements ServiceStore {
private static final int MAX_ACCESS_TYPES_IN_SERVICE_DEF = 1000;
+ // when a service-def is updated, the updated service-def should be made available to plugins
+ // this is achieved by incrementing policyVersion of all its services
+ protected abstract void updateServicesForServiceDefUpdate(RangerServiceDef serviceDef) throws Exception;
@Override
public void updateTagServiceDefForAccessTypes() throws Exception {
@@ -60,11 +61,6 @@ public abstract class AbstractServiceStore implements ServiceStore {
}
@Override
- public void deleteServiceDef(Long id, Boolean forceDelete) throws Exception {
- deleteServiceDef(id); // Ignore forceDelete flag
- }
-
- @Override
public PList<RangerServiceDef> getPaginatedServiceDefs(SearchFilter filter) throws Exception {
List<RangerServiceDef> resultList = getServiceDefs(filter);
@@ -105,39 +101,6 @@ public abstract class AbstractServiceStore implements ServiceStore {
}
@Override
- public RangerPolicy getPolicyFromEventTime(String eventTimeStr, Long policyId) {
- RangerPolicy ret = null;
- try {
- ret = getPolicy(policyId);
- } catch (Exception e) {
- // Do nothing
- }
- return ret;
- }
-
- @Override
- public RangerPolicy getPolicyForVersionNumber(Long policyId, Integer versionNo) {
- RangerPolicy ret = null;
- try {
- ret = getPolicy(policyId);
- } catch (Exception e) {
- // Do nothing
- }
- return ret;
- }
-
- @Override
- public String getPolicyForVersionNumber(Long policyId) {
- RangerPolicy ret = null;
- try {
- ret = getPolicy(policyId);
- } catch (Exception e) {
- // Do nothing
- }
- return ret == null ? null : ret.getName();
- }
-
- @Override
public Long getServicePolicyVersion(String serviceName) {
RangerService service = null;
try {
@@ -148,57 +111,12 @@ public abstract class AbstractServiceStore implements ServiceStore {
return service != null ? service.getPolicyVersion() : null;
}
- protected void preCreate(RangerBaseModelObject obj) throws Exception {
- obj.setId(0L);
- if(obj.getGuid() == null) {
- obj.setGuid(UUID.randomUUID().toString());
- }
- obj.setCreateTime(new Date());
- obj.setUpdateTime(obj.getCreateTime());
- obj.setVersion(1L);
- }
-
- protected void preCreate(RangerService service) throws Exception {
- preCreate((RangerBaseModelObject)service);
-
- service.setPolicyVersion(0L);
- service.setPolicyUpdateTime(service.getCreateTime());
-
- service.setTagVersion(0L);
- service.setTagUpdateTime(service.getCreateTime());
- }
-
protected void postCreate(RangerBaseModelObject obj) throws Exception {
if(obj instanceof RangerServiceDef) {
updateTagServiceDefForUpdatingAccessTypes((RangerServiceDef)obj);
}
}
- protected void preUpdate(RangerBaseModelObject obj) throws Exception {
- if(obj.getId() == null) {
- obj.setId(0L);
- }
-
- if(obj.getGuid() == null) {
- obj.setGuid(UUID.randomUUID().toString());
- }
-
- if(obj.getCreateTime() == null) {
- obj.setCreateTime(new Date());
- }
-
- Long version = obj.getVersion();
-
- if(version == null) {
- version = 1L;
- } else {
- version = version + 1;
- }
-
- obj.setVersion(version);
- obj.setUpdateTime(new Date());
- }
-
protected void postUpdate(RangerBaseModelObject obj) throws Exception {
if(obj instanceof RangerServiceDef) {
RangerServiceDef serviceDef = (RangerServiceDef)obj;
@@ -208,65 +126,14 @@ public abstract class AbstractServiceStore implements ServiceStore {
}
}
- protected void preDelete(RangerBaseModelObject obj) throws Exception {
- // TODO:
- }
-
protected void postDelete(RangerBaseModelObject obj) throws Exception {
if(obj instanceof RangerServiceDef) {
updateTagServiceDefForDeletingAccessTypes(((RangerServiceDef) obj).getName());
}
}
- protected long getMaxId(List<? extends RangerBaseModelObject> objs) {
- long ret = -1;
-
- if (objs != null) {
- for (RangerBaseModelObject obj : objs) {
- if (obj.getId() > ret) {
- ret = obj.getId();
- }
- }
- }
- return ret;
- }
-
- // when a service-def is updated, the updated service-def should be made available to plugins
- // this is achieved by incrementing policyVersion of all its services
- protected void updateServicesForServiceDefUpdate(RangerServiceDef serviceDef) throws Exception {
- boolean isTagServiceDef = StringUtils.equals(serviceDef.getName(), EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_TAG_NAME);
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.SERVICE_TYPE, serviceDef.getName());
-
- List<RangerService> services = getServices(filter);
-
- if(CollectionUtils.isNotEmpty(services)) {
- for(RangerService service : services) {
- service.setPolicyVersion(getNextVersion(service.getPolicyVersion()));
- service.setPolicyUpdateTime(serviceDef.getUpdateTime());
-
- updateService(service);
-
- if(isTagServiceDef) {
- filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_SERVICE_NAME, service.getName());
-
- List<RangerService> referrringServices = getServices(filter);
-
- if(CollectionUtils.isNotEmpty(referrringServices)) {
- for(RangerService referringService : referrringServices) {
- referringService.setPolicyVersion(getNextVersion(referringService.getPolicyVersion()));
- referringService.setPolicyUpdateTime(serviceDef.getUpdateTime());
-
- updateService(referringService);
- }
- }
- }
- }
- }
+ protected final long getNextVersion(Long currentVersion) {
+ return currentVersion == null ? 1L : currentVersion + 1;
}
private RangerServiceDef.RangerAccessTypeDef findAccessTypeDef(long itemId, List<RangerServiceDef.RangerAccessTypeDef> accessTypeDefs) {
@@ -445,7 +312,4 @@ public abstract class AbstractServiceStore implements ServiceStore {
}
}
- protected long getNextVersion(Long currentVersion) {
- return currentVersion == null ? 1L : currentVersion + 1;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
index ebf7d6e..90c1da6 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
@@ -19,15 +19,7 @@
package org.apache.ranger.plugin.store;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.ranger.plugin.model.*;
-
-import java.util.*;
-
public abstract class AbstractTagStore implements TagStore {
- private static final Log LOG = LogFactory.getLog(AbstractTagStore.class);
-
protected ServiceStore svcStore;
@@ -41,101 +33,6 @@ public abstract class AbstractTagStore implements TagStore {
this.svcStore = svcStore;
}
- protected void preCreate(RangerBaseModelObject obj) throws Exception {
- obj.setId(0L);
-
- if(obj.getGuid() == null) {
- obj.setGuid(UUID.randomUUID().toString());
- }
-
- obj.setCreateTime(new Date());
- obj.setUpdateTime(obj.getCreateTime());
- obj.setVersion(1L);
- }
-
- protected void postCreate(RangerBaseModelObject obj) throws Exception {
- }
-
- protected void preUpdate(RangerBaseModelObject obj) throws Exception {
- if(obj.getId() == null) {
- obj.setId(0L);
- }
-
- if(obj.getGuid() == null) {
- obj.setGuid(UUID.randomUUID().toString());
- }
-
- if(obj.getCreateTime() == null) {
- obj.setCreateTime(new Date());
- }
-
- Long version = obj.getVersion();
-
- if(version == null) {
- version = 1L;
- } else {
- version = version + 1;
- }
-
- obj.setVersion(version);
- obj.setUpdateTime(new Date());
- }
-
- protected void postUpdate(RangerBaseModelObject obj) throws Exception {
- }
-
- protected void preDelete(RangerBaseModelObject obj) throws Exception {
- }
-
- protected void postDelete(RangerBaseModelObject obj) throws Exception {
- }
-
- protected long getMaxId(List<? extends RangerBaseModelObject> objs) {
- long ret = -1;
-
- if (objs != null) {
- for (RangerBaseModelObject obj : objs) {
- if (obj.getId() > ret) {
- ret = obj.getId();
- }
- }
- }
- return ret;
- }
-
- @Override
- public void deleteAllTagObjectsForService(String serviceName) throws Exception {
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> AbstractTagStore.deleteAllTagObjectsForService(serviceName=" + serviceName + ")");
- }
-
- List<RangerServiceResource> serviceResources = getServiceResourcesByService(serviceName);
-
- if (serviceResources != null) {
-
- for (RangerServiceResource serviceResource : serviceResources) {
- Long resourceId = serviceResource.getId();
-
- List<RangerTagResourceMap> tagResourceMapsForService = getTagResourceMapsForResourceId(resourceId);
-
- for (RangerTagResourceMap tagResourceMap : tagResourceMapsForService) {
- deleteTagResourceMap(tagResourceMap.getId());
- }
- }
-
- for (RangerServiceResource serviceResource : serviceResources) {
- deleteServiceResource(serviceResource.getId());
- }
-
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== AbstractTagStore.deleteAllTagObjectsForService(serviceName=" + serviceName + ")");
- }
-
- }
-
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
index b30f2c8..89c3326 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
@@ -34,19 +34,16 @@ public interface ServiceStore {
RangerServiceDef updateServiceDef(RangerServiceDef serviceDef) throws Exception;
- void deleteServiceDef(Long id) throws Exception;
void deleteServiceDef(Long id, Boolean forceDelete) throws Exception;
void updateTagServiceDefForAccessTypes() throws Exception;
-
RangerServiceDef getServiceDef(Long id) throws Exception;
RangerServiceDef getServiceDefByName(String name) throws Exception;
List<RangerServiceDef> getServiceDefs(SearchFilter filter) throws Exception;
-
PList<RangerServiceDef> getPaginatedServiceDefs(SearchFilter filter) throws Exception;
RangerService createService(RangerService service) throws Exception;
@@ -73,14 +70,12 @@ public interface ServiceStore {
List<RangerPolicy> getPolicies(SearchFilter filter) throws Exception;
-
PList<RangerPolicy> getPaginatedPolicies(SearchFilter filter) throws Exception;
List<RangerPolicy> getPoliciesByResourceSignature(String serviceName, String policySignature, Boolean isPolicyEnabled) throws Exception;
List<RangerPolicy> getServicePolicies(Long serviceId, SearchFilter filter) throws Exception;
-
PList<RangerPolicy> getPaginatedServicePolicies(Long serviceId, SearchFilter filter) throws Exception;
List<RangerPolicy> getServicePolicies(String serviceName, SearchFilter filter) throws Exception;
@@ -95,11 +90,6 @@ public interface ServiceStore {
RangerPolicy getPolicyFromEventTime(String eventTimeStr, Long policyId);
- RangerPolicy getPolicyForVersionNumber(Long policyId, Integer versionNo);
-
- String getPolicyForVersionNumber(Long policyId);
-
-
void setPopulateExistingBaseFields(Boolean populateExistingBaseFields);
Boolean getPopulateExistingBaseFields();
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
deleted file mode 100644
index b2e06f9..0000000
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
+++ /dev/null
@@ -1,990 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ranger.plugin.store.file;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ObjectUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.fs.Path;
-import org.apache.ranger.authorization.hadoop.config.RangerConfiguration;
-import org.apache.ranger.plugin.model.RangerBaseModelObject;
-import org.apache.ranger.plugin.model.RangerPolicy;
-import org.apache.ranger.plugin.model.RangerService;
-import org.apache.ranger.plugin.model.RangerServiceDef;
-import org.apache.ranger.plugin.store.AbstractServiceStore;
-import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
-import org.apache.ranger.plugin.store.ServicePredicateUtil;
-import org.apache.ranger.plugin.util.SearchFilter;
-import org.apache.ranger.plugin.util.ServicePolicies;
-
-public class ServiceFileStore extends AbstractServiceStore {
- private static final Log LOG = LogFactory.getLog(ServiceFileStore.class);
-
- public static final String PROPERTY_SERVICE_FILE_STORE_DIR = "ranger.service.store.file.dir";
-
- protected static final String FILE_PREFIX_SERVICE_DEF = "ranger-servicedef-";
- protected static final String FILE_PREFIX_SERVICE = "ranger-service-";
- protected static final String FILE_PREFIX_POLICY = "ranger-policy-";
-
- private String dataDir = null;
- private long nextServiceDefId = 0;
- private long nextServiceId = 0;
- private long nextPolicyId = 0;
-
- private ServicePredicateUtil predicateUtil = null;
- private FileStoreUtil fileStoreUtil = null;
- private Boolean populateExistingBaseFields = false;
-
- public ServiceFileStore() {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.ServiceFileStore()");
- }
-
- this.dataDir = RangerConfiguration.getInstance().get(PROPERTY_SERVICE_FILE_STORE_DIR, "file:///etc/ranger/data");
- predicateUtil = new ServicePredicateUtil(this);
- fileStoreUtil = new FileStoreUtil();
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.ServiceFileStore()");
- }
- }
-
- public ServiceFileStore(String dataDir) {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.ServiceFileStore()");
- }
-
- this.dataDir = dataDir;
- predicateUtil = new ServicePredicateUtil(this);
- fileStoreUtil = new FileStoreUtil();
- fileStoreUtil.initStore(dataDir);
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.ServiceFileStore()");
- }
- }
-
- @Override
- public void init() throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.init()");
- }
-
- fileStoreUtil.initStore(dataDir);
-
- EmbeddedServiceDefsUtil.instance().init(this);
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.init()");
- }
- }
-
- @Override
- public RangerServiceDef createServiceDef(RangerServiceDef serviceDef) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.createServiceDef(" + serviceDef + ")");
- }
-
- RangerServiceDef existing = getServiceDefByName(serviceDef.getName());
-
- if(existing != null) {
- throw new Exception(serviceDef.getName() + ": service-def already exists (id=" + existing.getId() + ")");
- }
-
- RangerServiceDef ret = null;
-
- try {
- preCreate(serviceDef);
-
- serviceDef.setId(nextServiceDefId++);
-
- ret = fileStoreUtil.saveToFile(serviceDef, FILE_PREFIX_SERVICE_DEF, false);
-
- postCreate(ret);
- } catch(Exception excp) {
- LOG.warn("ServiceDefFileStore.createServiceDef(): failed to save service-def '" + serviceDef.getName() + "'", excp);
-
- throw new Exception("failed to save service-def '" + serviceDef.getName() + "'", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.createServiceDef(" + serviceDef + ")");
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceDef updateServiceDef(RangerServiceDef serviceDef) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.updateServiceDef(" + serviceDef + ")");
- }
-
- RangerServiceDef existing = getServiceDef(serviceDef.getId());
-
- if(existing == null) {
- throw new Exception(serviceDef.getId() + ": service-def does not exist");
- }
-
- String existingName = existing.getName();
-
- boolean renamed = !StringUtils.equalsIgnoreCase(serviceDef.getName(), existingName);
-
- // renaming service-def would require updating services that refer to this service-def
- if(renamed) {
- LOG.warn("ServiceDefFileStore.updateServiceDef(): service-def renaming not supported. " + existingName + " ==> " + serviceDef.getName());
-
- throw new Exception("service-def renaming not supported. " + existingName + " ==> " + serviceDef.getName());
- }
-
- RangerServiceDef ret = null;
-
- try {
- existing.updateFrom(serviceDef);
-
- preUpdate(existing);
-
- ret = fileStoreUtil.saveToFile(existing, FILE_PREFIX_SERVICE_DEF, true);
-
- postUpdate(ret);
- } catch(Exception excp) {
- LOG.warn("ServiceDefFileStore.updateServiceDef(): failed to save service-def '" + existing.getName() + "'", excp);
-
- throw new Exception("failed to save service-def '" + existing.getName() + "'", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.updateServiceDef(" + serviceDef + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deleteServiceDef(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.deleteServiceDef(" + id + ")");
- }
-
- RangerServiceDef existing = getServiceDef(id);
-
- if(existing == null) {
- throw new Exception("service-def does not exist. id=" + id);
- }
-
- // TODO: deleting service-def would require deleting services that refer to this service-def
-
- try {
- preDelete(existing);
-
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_SERVICE_DEF, id));
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(existing);
- } catch(Exception excp) {
- throw new Exception("failed to delete service-def. id=" + id + "; name=" + existing.getName(), excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.deleteServiceDef(" + id + ")");
- }
- }
-
- @Override
- public RangerServiceDef getServiceDef(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.getServiceDef(" + id + ")");
- }
-
- RangerServiceDef ret = null;
-
- if(id != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_TYPE_ID, id.toString());
-
- List<RangerServiceDef> serviceDefs = getServiceDefs(filter);
-
- ret = CollectionUtils.isEmpty(serviceDefs) ? null : serviceDefs.get(0);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.getServiceDef(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceDef getServiceDefByName(String name) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.getServiceDefByName(" + name + ")");
- }
-
- RangerServiceDef ret = null;
-
- if(name != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_TYPE, name);
-
- List<RangerServiceDef> serviceDefs = getServiceDefs(filter);
-
- ret = CollectionUtils.isEmpty(serviceDefs) ? null : serviceDefs.get(0);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.getServiceDefByName(" + name + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerServiceDef> getServiceDefs(SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.getServiceDefs()");
- }
-
- List<RangerServiceDef> ret = getAllServiceDefs();
-
- if(ret != null && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
-
- Comparator<RangerBaseModelObject> comparator = predicateUtil.getSorter(filter);
-
- if(comparator != null) {
- Collections.sort(ret, comparator);
- }
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.getServiceDefs(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
-
- @Override
- public RangerService createService(RangerService service) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.createService(" + service + ")");
- }
-
- RangerService existing = getServiceByName(service.getName());
-
- if(existing != null) {
- throw new Exception("service already exists - '" + service.getName() + "'. ID=" + existing.getId());
- }
-
- RangerService ret = null;
-
- try {
- preCreate(service);
-
- service.setId(nextServiceId++);
-
- ret = fileStoreUtil.saveToFile(service, FILE_PREFIX_SERVICE, false);
-
- postCreate(service);
- } catch(Exception excp) {
- throw new Exception("failed to save service '" + service.getName() + "'", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.createService(" + service + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerService updateService(RangerService service) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.updateService(" + service + ")");
- }
-
- RangerService existing = getService(service.getId());
-
- if(existing == null) {
- throw new Exception("no service exists with ID=" + service.getId());
- }
-
- String existingName = existing.getName();
-
- boolean renamed = !StringUtils.equalsIgnoreCase(service.getName(), existingName);
-
- if(renamed) {
- RangerService newNameService = getServiceByName(service.getName());
-
- if(newNameService != null) {
- throw new Exception("another service already exists with name '" + service.getName() + "'. ID=" + newNameService.getId());
- }
- }
-
- boolean hasIsEnabledChanged = !existing.getIsEnabled().equals(service.getIsEnabled());
-
- if (hasIsEnabledChanged) {
- handlePolicyUpdate(service);
- }
-
- RangerService ret = null;
-
- try {
- existing.updateFrom(service);
-
- preUpdate(existing);
-
- ret = fileStoreUtil.saveToFile(existing, FILE_PREFIX_SERVICE, true);
-
- postUpdate(ret);
-
- if(renamed) {
- handleServiceRename(ret, existingName);
- }
- } catch(Exception excp) {
- throw new Exception("failed to update service '" + existing.getName() + "'", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.updateService(" + service + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deleteService(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.deleteService(" + id + ")");
- }
-
- RangerService existing = getService(id);
-
- if(existing == null) {
- throw new Exception("no service exists with ID=" + id);
- }
-
- try {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_SERVICE, id));
-
- preDelete(existing);
-
- handleServiceDelete(existing);
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(existing);
- } catch(Exception excp) {
- throw new Exception("failed to delete service with ID=" + id, excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.deleteService(" + id + ")");
- }
- }
-
- @Override
- public RangerService getService(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getService(" + id + ")");
- }
-
- RangerService ret = null;
-
- try {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_SERVICE, id));
-
- ret = fileStoreUtil.loadFromFile(filePath, RangerService.class);
- } catch(Exception excp) {
- LOG.error("ServiceFileStore.getService(" + id + "): failed to read service", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getService(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerService getServiceByName(String name) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getServiceByName(" + name + ")");
- }
-
- RangerService ret = null;
-
- if(name != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_NAME, name);
-
- List<RangerService> services = getServices(filter);
-
- ret = CollectionUtils.isEmpty(services) ? null : services.get(0);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getServiceByName(" + name + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerService> getServices(SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getServices()");
- }
-
- List<RangerService> ret = getAllServices();
-
- if(ret != null && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
-
- Comparator<RangerBaseModelObject> comparator = predicateUtil.getSorter(filter);
-
- if(comparator != null) {
- Collections.sort(ret, comparator);
- }
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getServices(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public RangerPolicy createPolicy(RangerPolicy policy) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.createPolicy(" + policy + ")");
- }
-
- RangerService service = getServiceByName(policy.getService());
-
- if(service == null) {
- throw new Exception("service does not exist - name=" + policy.getService());
- }
-
- RangerPolicy existing = findPolicyByName(policy.getService(), policy.getName());
-
- if(existing != null) {
- throw new Exception("policy already exists: ServiceName=" + policy.getService() + "; PolicyName=" + policy.getName() + ". ID=" + existing.getId());
- }
-
- RangerPolicy ret = null;
-
- try {
- preCreate(policy);
-
- policy.setId(nextPolicyId++);
-
- ret = fileStoreUtil.saveToFile(policy, FILE_PREFIX_POLICY, service.getId(), false);
-
- handlePolicyUpdate(service);
-
- postCreate(ret);
- } catch(Exception excp) {
- throw new Exception("failed to save policy: ServiceName=" + policy.getService() + "; PolicyName=" + policy.getName(), excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.createPolicy(" + policy + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerPolicy updatePolicy(RangerPolicy policy) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.updatePolicy(" + policy + ")");
- }
-
- RangerPolicy existing = getPolicy(policy.getId());
-
- if(existing == null) {
- throw new Exception("no policy exists with ID=" + policy.getId());
- }
-
- RangerService service = getServiceByName(policy.getService());
-
- if(service == null) {
- throw new Exception("service does not exist - name=" + policy.getService());
- }
-
- if(! StringUtils.equalsIgnoreCase(existing.getService(), policy.getService())) {
- throw new Exception("policy id=" + policy.getId() + " already exists in service " + existing.getService() + ". It can not be moved to service " + policy.getService());
- }
-
- boolean renamed = !StringUtils.equalsIgnoreCase(policy.getName(), existing.getName());
-
- if(renamed) {
- RangerPolicy newNamePolicy = findPolicyByName(service.getName(), policy.getName());
-
- if(newNamePolicy != null) {
- throw new Exception("another policy already exists with name '" + policy.getName() + "'. ID=" + newNamePolicy.getId());
- }
- }
-
- RangerPolicy ret = null;
-
- try {
- existing.updateFrom(policy);
-
- preUpdate(existing);
-
- ret = fileStoreUtil.saveToFile(existing, FILE_PREFIX_POLICY, service.getId(), true);
-
- handlePolicyUpdate(service);
-
- postUpdate(ret);
- } catch(Exception excp) {
- throw new Exception("failed to update policy - ID=" + existing.getId(), excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.updatePolicy(" + policy + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deletePolicy(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.deletePolicy(" + id + ")");
- }
-
- RangerPolicy existing = getPolicy(id);
-
- if(existing == null) {
- throw new Exception("no policy exists with ID=" + id);
- }
-
- RangerService service = getServiceByName(existing.getService());
-
- if(service == null) {
- throw new Exception("service does not exist - name='" + existing.getService());
- }
-
- try {
- preDelete(existing);
-
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_POLICY, service.getId(), existing.getId()));
-
- fileStoreUtil.deleteFile(filePath);
-
- handlePolicyUpdate(service);
-
- postDelete(existing);
- } catch(Exception excp) {
- throw new Exception(existing.getId() + ": failed to delete policy", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.deletePolicy(" + id + ")");
- }
- }
-
- @Override
- public RangerPolicy getPolicy(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getPolicy(" + id + ")");
- }
-
- RangerPolicy ret = null;
-
- if(id != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.POLICY_ID, id.toString());
-
- List<RangerPolicy> policies = getPolicies(filter);
-
- ret = CollectionUtils.isEmpty(policies) ? null : policies.get(0);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getPolicy(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getPoliciesByResourceSignature(String serviceName, String policySignature, Boolean isPolicyEnabled) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("==> ServiceFileStore.getPoliciesByResourceSignature(%s, %s, %s)", serviceName, policySignature, isPolicyEnabled));
- }
-
- List<RangerPolicy> ret = getAllPolicies();
-
- CollectionUtils.filter(ret, predicateUtil.createPredicateForResourceSignature(policySignature));
-
- if (LOG.isDebugEnabled()) {
- LOG.debug(String.format("<== ServiceFileStore.getPoliciesByResourceSignature(%s, %s, %s): count[%d]: %s",
- serviceName, policySignature, isPolicyEnabled, (ret == null ? 0 : ret.size()), ret));
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getPolicies(SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getPolicies()");
- }
-
- List<RangerPolicy> ret = getAllPolicies();
-
- if(ret != null && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
-
- Comparator<RangerBaseModelObject> comparator = predicateUtil.getSorter(filter);
-
- if(comparator != null) {
- Collections.sort(ret, comparator);
- }
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getPolicies(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getServicePolicies(Long serviceId, SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getServicePolicies(" + serviceId + ")");
- }
-
- RangerService service = getService(serviceId);
-
- if(service == null) {
- throw new Exception("service does not exist - id='" + serviceId);
- }
-
- List<RangerPolicy> ret = getServicePolicies(service.getName(), filter);
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getServicePolicies(" + serviceId + "): " + ((ret == null) ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getServicePolicies(String serviceName, SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getServicePolicies(" + serviceName + ")");
- }
-
- List<RangerPolicy> ret = new ArrayList<RangerPolicy>();
-
- try {
- if(filter == null) {
- filter = new SearchFilter();
- }
-
- filter.setParam(SearchFilter.SERVICE_NAME, serviceName);
-
- ret = getPolicies(filter);
- } catch(Exception excp) {
- LOG.error("ServiceFileStore.getServicePolicies(" + serviceName + "): failed to read policies", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getServicePolicies(" + serviceName + "): count=" + ((ret == null) ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public ServicePolicies getServicePoliciesIfUpdated(String serviceName, Long lastKnownVersion) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getServicePoliciesIfUpdated(" + serviceName + ", " + lastKnownVersion + ")");
- }
-
- ServicePolicies ret = null;
-
- RangerService service = getServiceByName(serviceName);
-
- if(service == null) {
- throw new Exception("service does not exist - name=" + serviceName);
- }
-
- RangerServiceDef serviceDef = getServiceDefByName(service.getType());
-
- if(serviceDef == null) {
- throw new Exception(service.getType() + ": unknown service-def)");
- }
-
- if(lastKnownVersion == null || service.getPolicyVersion() == null || lastKnownVersion.longValue() != service.getPolicyVersion().longValue()) {
-
- List<RangerPolicy> policies = null;
-
- if (service.getIsEnabled()) {
- SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_NAME, serviceName);
-
- policies = getPolicies(filter);
- } else {
- policies = new ArrayList<RangerPolicy>();
- }
-
- ret = new ServicePolicies();
-
- ret.setServiceId(service.getId());
- ret.setServiceName(service.getName());
- ret.setPolicyVersion(service.getPolicyVersion());
- ret.setPolicyUpdateTime(service.getPolicyUpdateTime());
- ret.setPolicies(policies);
- ret.setServiceDef(serviceDef);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getServicePoliciesIfUpdated(" + serviceName + ", " + lastKnownVersion + "): count=" + ((ret == null || ret.getPolicies() == null) ? 0 : ret.getPolicies().size()));
- }
-
- if(ret != null && ret.getPolicies() != null) {
- Collections.sort(ret.getPolicies(), ServicePredicateUtil.idComparator);
- }
-
- return ret;
- }
-
- @Override
- public ServicePolicies getServicePolicies(String serviceName) throws Exception {
- return getServicePoliciesIfUpdated(serviceName, -1L);
- }
-
- private void handleServiceRename(RangerService service, String oldName) throws Exception {
- List<RangerPolicy> policies = getAllPolicies();
-
- if(policies != null) {
- for(RangerPolicy policy : policies) {
- if(StringUtils.equalsIgnoreCase(policy.getService(), oldName)) {
- policy.setService(service.getName());
- preUpdate(policy);
-
- fileStoreUtil.saveToFile(policy, FILE_PREFIX_POLICY, service.getId(), true);
-
- postUpdate(policy);
- }
- }
- }
- }
-
- private void handleServiceDelete(RangerService service) throws Exception {
- List<RangerPolicy> policies = getAllPolicies();
-
- if(policies != null) {
- for(RangerPolicy policy : policies) {
- if(! StringUtils.equals(policy.getService(), service.getName())) {
- continue;
- }
-
- preDelete(policy);
-
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_POLICY, service.getId(), policy.getId()));
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(policy);
- }
- }
- }
-
- private void handlePolicyUpdate(RangerService service) throws Exception {
- if(service == null) {
- return;
- }
-
- service.setPolicyVersion(getNextVersion(service.getPolicyVersion()));
- service.setPolicyUpdateTime(new Date());
-
- fileStoreUtil.saveToFile(service, FILE_PREFIX_SERVICE, true);
-
- boolean isTagServiceDef = StringUtils.equals(service.getType(), EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_TAG_NAME);
-
- if(isTagServiceDef) {
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.TAG_SERVICE_NAME, service.getName());
-
- List<RangerService> referringServices = getServices(filter);
-
- if(CollectionUtils.isNotEmpty(referringServices)) {
- for(RangerService referringService : referringServices) {
- referringService.setPolicyVersion(getNextVersion(referringService.getPolicyVersion()));
- referringService.setPolicyUpdateTime(service.getPolicyUpdateTime());
-
- fileStoreUtil.saveToFile(referringService, FILE_PREFIX_SERVICE, true);
- }
- }
- }
- }
-
- private RangerPolicy findPolicyByName(String serviceName, String policyName) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.findPolicyByName(" + serviceName + ", " + policyName + ")");
- }
-
- RangerService service = getServiceByName(serviceName);
-
- if(service == null) {
- throw new Exception("service does not exist - name='" + serviceName);
- }
-
- RangerPolicy ret = null;
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.SERVICE_NAME, serviceName);
- filter.setParam(SearchFilter.POLICY_NAME, policyName);
-
- List<RangerPolicy> policies = getPolicies(filter);
-
- ret = CollectionUtils.isEmpty(policies) ? null : policies.get(0);
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.findPolicyByName(" + serviceName + ", " + policyName + "): " + ret);
- }
-
- return ret;
- }
-
- private List<RangerServiceDef> getAllServiceDefs() throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceDefFileStore.getAllServiceDefs()");
- }
-
- List<RangerServiceDef> ret = new ArrayList<RangerServiceDef>();
-
- try {
- // load service definitions from file system
- List<RangerServiceDef> sds = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_SERVICE_DEF, RangerServiceDef.class);
-
- if(sds != null) {
- for(RangerServiceDef sd : sds) {
- if(sd != null) {
- // if the ServiceDef is already found, remove the earlier definition
- for(int i = 0; i < ret.size(); i++) {
- RangerServiceDef currSd = ret.get(i);
-
- if(StringUtils.equals(currSd.getName(), sd.getName()) ||
- ObjectUtils.equals(currSd.getId(), sd.getId())) {
- ret.remove(i);
- }
- }
-
- ret.add(sd);
- }
- }
- }
- nextServiceDefId = getMaxId(ret) + 1;
- } catch(Exception excp) {
- LOG.error("ServiceDefFileStore.getAllServiceDefs(): failed to read service-defs", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceDefFileStore.getAllServiceDefs(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- if(ret != null) {
- Collections.sort(ret, ServicePredicateUtil.idComparator);
-
- for(RangerServiceDef sd : ret) {
- Collections.sort(sd.getResources(), ServicePredicateUtil.resourceLevelComparator);
- }
- }
-
- return ret;
- }
-
- private List<RangerService> getAllServices() throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getAllServices()");
- }
-
- List<RangerService> ret = null;
-
- try {
- ret = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_SERVICE, RangerService.class);
-
- nextServiceId = getMaxId(ret) + 1;
- } catch(Exception excp) {
- LOG.error("ServiceFileStore.getAllServices(): failed to read services", excp);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getAllServices(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- if(ret != null) {
- Collections.sort(ret, ServicePredicateUtil.idComparator);
- }
-
- return ret;
- }
-
- private List<RangerPolicy> getAllPolicies() throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceFileStore.getAllPolicies()");
- }
-
- List<RangerPolicy> ret = null;
-
- try {
- ret = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_POLICY, RangerPolicy.class);
-
- nextPolicyId = getMaxId(ret) + 1;
- } catch(Exception excp) {
- LOG.error("ServiceFileStore.getAllPolicies(): failed to read policies", excp);
- }
-
- if(ret != null) {
- Collections.sort(ret, ServicePredicateUtil.idComparator);
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceFileStore.getAllPolicies(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public void setPopulateExistingBaseFields(Boolean populateExistingBaseFields) {
- this.populateExistingBaseFields = populateExistingBaseFields;
- }
-
- @Override
- public Boolean getPopulateExistingBaseFields() {
- return populateExistingBaseFields;
- }
-}
[2/3] incubator-ranger git commit: RANGER-1228: removed
ServiceFileStore, ServiceRESTStore, TagFileStore
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
deleted file mode 100644
index 780d379..0000000
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java
+++ /dev/null
@@ -1,1485 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ranger.plugin.store.file;
-
-import java.util.*;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ObjectUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.fs.Path;
-import org.apache.ranger.authorization.hadoop.config.RangerConfiguration;
-import org.apache.ranger.plugin.model.*;
-import org.apache.ranger.plugin.store.AbstractTagStore;
-import org.apache.ranger.plugin.store.PList;
-import org.apache.ranger.plugin.store.RangerServiceResourceSignature;
-import org.apache.ranger.plugin.store.TagPredicateUtil;
-import org.apache.ranger.plugin.store.TagStore;
-import org.apache.ranger.plugin.util.SearchFilter;
-import org.apache.ranger.plugin.util.ServiceTags;
-
-
-public class TagFileStore extends AbstractTagStore {
- private static final Log LOG = LogFactory.getLog(TagFileStore.class);
-
- public static final String PROPERTY_TAG_FILE_STORE_DIR = "ranger.tag.store.file.dir";
-
-
- protected static final String FILE_PREFIX_TAG_DEF = "ranger-tagdef-";
- protected static final String FILE_PREFIX_TAG = "ranger-tag-";
- protected static final String FILE_PREFIX_RESOURCE = "ranger-serviceresource-";
- protected static final String FILE_PREFIX_TAG_RESOURCE_MAP = "ranger-tagresourcemap-";
-
- private String tagDataDir = null;
- private long nextTagDefId = 0;
- private long nextTagId = 0;
- private long nextServiceResourceId = 0;
- private long nextTagResourceMapId = 0;
-
- private TagPredicateUtil predicateUtil = null;
- private FileStoreUtil fileStoreUtil = null;
-
- private volatile static TagFileStore instance = null;
-
- public static TagStore getInstance() {
- if (instance == null) {
- synchronized (TagFileStore.class) {
- if (instance == null) {
- instance = new TagFileStore();
- instance.initStore();
- }
- }
- }
- return instance;
- }
-
- TagFileStore() {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.TagFileStore()");
- }
-
- tagDataDir = RangerConfiguration.getInstance().get(PROPERTY_TAG_FILE_STORE_DIR, "file:///etc/ranger/data");
- fileStoreUtil = new FileStoreUtil();
- predicateUtil = new TagPredicateUtil();
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.TagFileStore()");
- }
- }
-
- @Override
- public void init() throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.init()");
- }
-
- super.init();
- fileStoreUtil.initStore(tagDataDir);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.init()");
- }
- }
-
- protected void initStore() {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.initStore()");
- }
-
- fileStoreUtil.initStore(tagDataDir);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.initStore()");
- }
- }
-
- @Override
- public RangerTagDef createTagDef(RangerTagDef tagDef) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.createTagDef(" + tagDef + ")");
- }
-
- RangerTagDef ret = null;
-
- try {
- preCreate(tagDef);
-
- tagDef.setId(nextTagDefId);
-
- ret = fileStoreUtil.saveToFile(tagDef, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_DEF, nextTagDefId++)), false);
-
- postCreate(ret);
- } catch (Exception excp) {
- LOG.warn("TagFileStore.createTagDef(): failed to save tag-def '" + tagDef.getName() + "'", excp);
-
- throw new Exception("failed to save tag-def '" + tagDef.getName() + "'", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.createTagDef(" + tagDef + ")");
- }
-
- return ret;
- }
-
- @Override
- public RangerTagDef updateTagDef(RangerTagDef tagDef) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.updateTagDef(" + tagDef + ")");
- }
-
- RangerTagDef existing = null;
-
- if(tagDef.getId() == null) {
- existing = getTagDefByName(tagDef.getName());
-
- if (existing == null) {
- throw new Exception("tag-def does not exist: name=" + tagDef.getName());
- }
- } else {
- existing = getTagDef(tagDef.getId());
-
- if (existing == null) {
- throw new Exception("tag-def does not exist: id=" + tagDef.getId());
- }
- }
-
- RangerTagDef ret = null;
-
- try {
- preUpdate(existing);
-
- existing.setSource(tagDef.getSource());
- existing.setAttributeDefs(tagDef.getAttributeDefs());
-
- ret = fileStoreUtil.saveToFile(existing, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_DEF, existing.getId())), true);
-
- postUpdate(existing);
- } catch (Exception excp) {
- LOG.warn("TagFileStore.updateTagDef(): failed to save tag-def '" + tagDef.getName() + "'", excp);
-
- throw new Exception("failed to save tag-def '" + tagDef.getName() + "'", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.updateTagDef(" + tagDef + ")");
- }
-
- return ret;
- }
-
- @Override
- public void deleteTagDefByName(String name) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteTagDef(" + name + ")");
- }
-
- RangerTagDef existing = getTagDefByName(name);
-
- if (existing != null) {
- try {
- deleteTagDef(existing);
- } catch (Exception excp) {
- throw new Exception("failed to delete tag-def with ID=" + name, excp);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTagDef(" + name + ")");
- }
- }
-
- @Override
- public void deleteTagDef(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteTagDef(" + id + ")");
- }
-
- RangerTagDef existing = getTagDef(id);
-
- if(existing != null) {
- deleteTagDef(existing);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTagDef(" + id + ")");
- }
- }
-
- @Override
- public RangerTagDef getTagDef(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagDef(" + id + ")");
- }
-
- RangerTagDef ret = null;
-
- if (id != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_ID, id.toString());
-
- List<RangerTagDef> tagDefs = getTagDefs(filter);
-
- ret = CollectionUtils.isEmpty(tagDefs) ? null : tagDefs.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDef(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTagDef getTagDefByGuid(String guid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagDefByGuid(" + guid + ")");
- }
-
- RangerTagDef ret = null;
-
- if (StringUtils.isNotBlank(guid)) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_DEF_GUID, guid);
-
- List<RangerTagDef> tagDefs = getTagDefs(filter);
-
- if(CollectionUtils.isNotEmpty(tagDefs)) {
- ret = tagDefs.get(0);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDefByGuid(" + guid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTagDef getTagDefByName(String name) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagDefByName(" + name + ")");
- }
-
- RangerTagDef ret = null;
-
- if (StringUtils.isNotBlank(name)) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_TYPE, name);
-
- List<RangerTagDef> tagDefs = getTagDefs(filter);
-
- ret = CollectionUtils.isEmpty(tagDefs) ? null : tagDefs.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDefByName(" + name + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTagDef> getTagDefs(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagDefs()");
- }
-
- List<RangerTagDef> ret = getAllTagDefs();
-
- if (CollectionUtils.isNotEmpty(ret) && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDefs(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public PList<RangerTagDef> getPaginatedTagDefs(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getPaginatedTagDefs()");
- }
-
- PList<RangerTagDef> ret = null;
-
- List<RangerTagDef> list = getTagDefs(filter);
-
- if(list != null) {
- ret = new PList<RangerTagDef>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getPaginatedTagDefs(): count=" + (ret == null ? 0 : ret.getPageSize()));
- }
-
- return ret;
- }
-
- @Override
- public List<String> getTagTypes() throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagTypes()");
- }
-
- List<String> ret = new ArrayList<String>();
-
- List<RangerTag> allTags = getAllTags();
-
- for (RangerTag tag : allTags) {
- ret.add(tag.getType());
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagTypes(): count=" + ret.size());
- }
-
- return ret;
- }
-
- @Override
- public RangerTag createTag(RangerTag tag) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.createTag(" + tag + ")");
- }
-
- RangerTag ret = null;
-
- try {
- preCreate(tag);
-
- tag.setId(nextTagId);
-
- ret = fileStoreUtil.saveToFile(tag, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG, nextTagId++)), false);
-
- postCreate(ret);
- } catch (Exception excp) {
- LOG.warn("TagFileStore.createTag(): failed to save tag '" + tag.getType() + "'", excp);
-
- throw new Exception("failed to save tag '" + tag.getType() + "'", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.createTag(" + tag + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTag updateTag(RangerTag tag) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.updateTag(" + tag + ")");
- }
-
- RangerTag ret = null;
-
- try {
- preUpdate(tag);
-
- ret = fileStoreUtil.saveToFile(tag, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG, tag.getId())), true);
-
- postUpdate(tag);
- } catch (Exception excp) {
- LOG.warn("TagFileStore.updateTag(): failed to save tag '" + tag.getType() + "'", excp);
-
- throw new Exception("failed to save tag '" + tag.getType() + "'", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.updateTag(" + tag + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deleteTag(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteTag(" + id + ")");
- }
-
- try {
- RangerTag tag = getTag(id);
-
- if (tag != null) {
- deleteTag(tag);
- }
- } catch (Exception excp) {
- throw new Exception("failed to delete tag with ID=" + id, excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTag(" + id + ")");
- }
- }
-
- @Override
- public RangerTag getTag(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTag(" + id + ")");
- }
-
- RangerTag ret = null;
-
- if (id != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_ID, id.toString());
-
- List<RangerTag> tags = getTags(filter);
-
- if (CollectionUtils.isNotEmpty(tags) && CollectionUtils.size(tags) == 1) {
- ret = tags.get(0);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagDef(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTag getTagByGuid(String guid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagByGuid(" + guid + ")");
- }
-
- RangerTag ret = null;
-
- if (guid != null) {
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_GUID, guid);
-
- List<RangerTag> tags = getTags(filter);
-
- if (CollectionUtils.isNotEmpty(tags) && CollectionUtils.size(tags) == 1) {
- ret = tags.get(0);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagByGuid(" + guid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTag> getTagsByType(String type) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagsByType(" + type + ")");
- }
-
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_TYPE, type);
-
- List<RangerTag> ret = getTags(filter);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagsByType(" + type + "): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public List<Long> getTagIdsForResourceId(Long resourceId) throws Exception {
- List<Long> ret = new ArrayList<Long>();
-
- List<RangerTag> tags = getTagsForResourceId(resourceId);
-
- if(CollectionUtils.isNotEmpty(tags)) {
- for(RangerTag tag : tags) {
- ret.add(tag.getId());
- }
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTag> getTagsForResourceId(Long resourceId) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagsForResourceId(" + resourceId + ")");
- }
-
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_ID, resourceId.toString());
-
- List<RangerTag> ret = getTags(filter);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagsForResourceId(" + resourceId + "): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTag> getTagsForResourceGuid(String resourceGuid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagsForResourceGuid(" + resourceGuid + ")");
- }
-
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_GUID, resourceGuid);
-
- List<RangerTag> ret = getTags(filter);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagsForResourceGuid(" + resourceGuid + "): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTag> getTags(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTags()");
- }
-
- List<RangerTag> ret = getAllTags();
-
- if (CollectionUtils.isNotEmpty(ret) && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTags(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public PList<RangerTag> getPaginatedTags(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getPaginatedTags()");
- }
-
- PList<RangerTag> ret = null;
-
- List<RangerTag> list = getTags(filter);
-
- if(list != null) {
- ret = new PList<RangerTag>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getPaginatedTags(): count=" + (ret == null ? 0 : ret.getPageSize()));
- }
-
- return ret;
- }
-
-
- @Override
- public RangerServiceResource createServiceResource(RangerServiceResource resource) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.createServiceResource(" + resource + ")");
- }
-
- RangerServiceResource ret = null;
-
- try {
- preCreate(resource);
-
- if (StringUtils.isEmpty(resource.getResourceSignature())) {
- RangerServiceResourceSignature serializer = new RangerServiceResourceSignature(resource);
-
- resource.setResourceSignature(serializer.getSignature());
- }
-
- resource.setId(nextServiceResourceId);
-
- ret = fileStoreUtil.saveToFile(resource, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_RESOURCE, nextServiceResourceId++)), false);
-
- postCreate(ret);
- } catch (Exception excp) {
- LOG.warn("TagFileStore.createServiceResource(): failed to save resource '" + resource.getId() + "'", excp);
-
- throw new Exception("failed to save service-resource '" + resource.getId() + "'", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.createServiceResource(" + resource + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceResource updateServiceResource(RangerServiceResource resource) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.updateServiceResource(" + resource + ")");
- }
-
- RangerServiceResource ret = null;
-
- try {
- preUpdate(resource);
-
- if (StringUtils.isEmpty(resource.getResourceSignature())) {
- RangerServiceResourceSignature serializer = new RangerServiceResourceSignature(resource);
-
- resource.setResourceSignature(serializer.getSignature());
- }
-
- ret = fileStoreUtil.saveToFile(resource, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_RESOURCE, resource.getId())), true);
-
- postUpdate(resource);
- } catch (Exception excp) {
- LOG.warn("TagFileStore.updateServiceResource(): failed to save resource '" + resource.getId() + "'", excp);
-
- throw new Exception("failed to save service-resource '" + resource.getId() + "'", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.updateServiceResource(" + resource + "): " + ret);
- }
-
- return ret;
-
- }
-
- @Override
- public void deleteServiceResource(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteServiceResource(" + id + ")");
- }
-
- try {
- RangerServiceResource resource = getServiceResource(id);
-
- if (resource != null) {
- deleteServiceResource(resource);
- }
- } catch (Exception excp) {
- throw new Exception("failed to delete service-resource with ID=" + id, excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteServiceResource(" + id + ")");
- }
- }
-
- @Override
- public void deleteServiceResourceByGuid(String guid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteServiceResourceByGuid(" + guid + ")");
- }
-
- try {
- RangerServiceResource resource = getServiceResourceByGuid(guid);
-
- if (resource != null) {
- deleteServiceResource(resource);
- }
- } catch (Exception excp) {
- throw new Exception("failed to delete service-resource with GUID=" + guid, excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteServiceResourceByGuid(" + guid + ")");
- }
-
- }
-
- @Override
- public RangerServiceResource getServiceResource(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceResource(" + id + ")");
- }
-
- RangerServiceResource ret = null;
-
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_ID, id.toString());
-
- List<RangerServiceResource> resources = getServiceResources(filter);
-
- if (CollectionUtils.isNotEmpty(resources)) {
- ret = resources.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceResource(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceResource getServiceResourceByGuid(String guid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceResourcesByGuid(" + guid + ")");
- }
-
- RangerServiceResource ret = null;
-
- SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_GUID, guid);
-
- List<RangerServiceResource> resources = getServiceResources(filter);
-
- if (CollectionUtils.isNotEmpty(resources)) {
- ret = resources.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceResourcesByGuid(" + guid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerServiceResource> getServiceResourcesByService(String serviceName) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceResourcesByService(" + serviceName + ")");
- }
-
- List<RangerServiceResource> ret = null;
-
- if (StringUtils.isNotBlank(serviceName)) {
- SearchFilter filter = new SearchFilter(SearchFilter.SERVICE_NAME, serviceName);
-
- ret = getServiceResources(filter);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceResourcesByService(" + serviceName + "): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public List<String> getServiceResourceGuidsByService(String serviceName) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceResourceGuidsByService(" + serviceName + ")");
- }
-
- List<String> ret = null;
-
- if (StringUtils.isNotBlank(serviceName)) {
- List<RangerServiceResource> serviceResources = this.getServiceResourcesByService(serviceName);
-
- if(CollectionUtils.isNotEmpty(serviceResources)) {
- ret = new ArrayList<String>(serviceResources.size());
-
- for(RangerServiceResource serviceResource : serviceResources) {
- ret.add(serviceResource.getGuid());
- }
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceResourceGuidsByService(" + serviceName + "): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceResource getServiceResourceByServiceAndResourceSignature(String serviceName, String resourceSignature) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceResourceByServiceAndResourceSignature(" + serviceName + ", " + resourceSignature + ")");
- }
-
- RangerServiceResource ret = null;
-
- if (StringUtils.isNotBlank(resourceSignature)) {
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.TAG_RESOURCE_SERVICE_NAME, serviceName);
- filter.setParam(SearchFilter.TAG_RESOURCE_SIGNATURE, resourceSignature);
-
- List<RangerServiceResource> resources = getServiceResources(filter);
-
- ret = CollectionUtils.isNotEmpty(resources) ? resources.get(0) : null;
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceResourceByServiceAndResourceSignature(" + serviceName + ", " + resourceSignature + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerServiceResource> getServiceResources(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceResources()");
- }
-
- List<RangerServiceResource> ret = getAllResources();
-
- if (CollectionUtils.isNotEmpty(ret) && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServicesResources(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
- }
-
- @Override
- public PList<RangerServiceResource> getPaginatedServiceResources(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getPaginatedServiceResources()");
- }
-
- PList<RangerServiceResource> ret = null;
-
- List<RangerServiceResource> list = getServiceResources(filter);
-
- if(list != null) {
- ret = new PList<RangerServiceResource>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getPaginatedServiceResources(): count=" + (ret == null ? 0 : ret.getPageSize()));
- }
-
- return ret;
- }
-
-
- @Override
- public RangerTagResourceMap createTagResourceMap(RangerTagResourceMap tagResourceMap) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.createTagResourceMap(" + tagResourceMap + ")");
- }
-
- preCreate(tagResourceMap);
-
- tagResourceMap.setId(nextTagResourceMapId);
-
- RangerTagResourceMap ret = fileStoreUtil.saveToFile(tagResourceMap, new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_RESOURCE_MAP, nextTagResourceMapId++)), false);
-
- postCreate(ret);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.createTagResourceMap(" + tagResourceMap + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deleteTagResourceMap(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.deleteTagResourceMap(" + id + ")");
- }
-
- try {
- RangerTagResourceMap tagResourceMap = getTagResourceMap(id);
- if (tagResourceMap != null) {
- Long tagId = tagResourceMap.getTagId();
- RangerTag tag = getTag(tagId);
-
- deleteTagResourceMap(tagResourceMap);
- if (tag != null && tag.getOwner() == RangerTag.OWNER_SERVICERESOURCE) {
- deleteTag(tagId);
- }
- }
- } catch (Exception excp) {
- throw new Exception("failed to delete tagResourceMap with ID=" + id, excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.deleteTagResourceMap(" + id + ")");
- }
- }
-
- @Override
- public RangerTagResourceMap getTagResourceMap(Long id) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMap(" + id + ")");
- }
-
- RangerTagResourceMap ret = null;
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_MAP_ID, id.toString());
-
- List<RangerTagResourceMap> list = getTagResourceMaps(filter);
-
- if (CollectionUtils.isNotEmpty(list)) {
- ret = list.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMap(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTagResourceMap getTagResourceMapByGuid(String guid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMapByGuid(" + guid + ")");
- }
-
- RangerTagResourceMap ret = null;
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_MAP_GUID, guid.toString());
-
- List<RangerTagResourceMap> list = getTagResourceMaps(filter);
-
- if (CollectionUtils.isNotEmpty(list)) {
- ret = list.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMapByGuid(" + guid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMapsForTagId(Long tagId) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMapsForTagId(" + tagId + ")");
- }
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_ID, tagId.toString());
-
- List<RangerTagResourceMap> ret = getTagResourceMaps(filter);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMapsForTagId(" + tagId + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMapsForTagGuid(String tagGuid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMapsForTagGuid(" + tagGuid + ")");
- }
-
- List<RangerTagResourceMap> ret = null;
-
- RangerTag tag = getTagByGuid(tagGuid);
-
- if(tag != null) {
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.TAG_ID, tag.getId().toString());
-
- ret = getTagResourceMaps(filter);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMapsForTagGuid(" + tagGuid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMapsForResourceId(Long resourceId) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMap(" + resourceId + ")");
- }
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_RESOURCE_ID, resourceId.toString());
-
- List<RangerTagResourceMap> ret = getTagResourceMaps(filter);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMap(" + resourceId + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMapsForResourceGuid(String resourceGuid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMapsForResourceGuid(" + resourceGuid + ")");
- }
-
- List<RangerTagResourceMap> ret = null;
-
- RangerServiceResource resource = getServiceResourceByGuid(resourceGuid);
-
- if (resource != null) {
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.TAG_RESOURCE_ID, resource.getId().toString());
- ret = getTagResourceMaps(filter);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMapsForResourceGuid(" + resourceGuid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTagResourceMap getTagResourceMapForTagAndResourceId(Long tagId, Long resourceId) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMapForTagAndResourceId(" + tagId + ", " + resourceId + ")");
- }
-
- RangerTagResourceMap ret = null;
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_ID, tagId.toString());
- filter.setParam(SearchFilter.TAG_RESOURCE_ID, resourceId.toString());
-
- List<RangerTagResourceMap> tagResourceMaps = getTagResourceMaps(filter);
-
- if(CollectionUtils.isNotEmpty(tagResourceMaps)) {
- ret = tagResourceMaps.get(0);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMapForTagAndResourceId(" + tagId + ", " + resourceId + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerTagResourceMap getTagResourceMapForTagAndResourceGuid(String tagGuid, String resrouceGuid) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMapForTagAndResourceGuid(" + tagGuid + ", " + resrouceGuid + ")");
- }
-
- RangerTagResourceMap ret = null;
-
- SearchFilter filter = new SearchFilter();
-
- RangerTag tag = getTagByGuid(tagGuid);
- RangerServiceResource resource = getServiceResourceByGuid(resrouceGuid);
-
- if(tag != null && resource != null) {
- filter.setParam(SearchFilter.TAG_ID, tag.getId().toString());
- filter.setParam(SearchFilter.TAG_RESOURCE_ID, resource.getId().toString());
-
- List<RangerTagResourceMap> tagResourceMaps = getTagResourceMaps(filter);
-
- if(CollectionUtils.isNotEmpty(tagResourceMaps)) {
- ret = tagResourceMaps.get(0);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMapForTagAndResourceGuid(" + tagGuid + ", " + resrouceGuid + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerTagResourceMap> getTagResourceMaps(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getTagResourceMaps()");
- }
-
- List<RangerTagResourceMap> ret = getAllTaggedResources();
-
- if (CollectionUtils.isNotEmpty(ret) && filter != null && !filter.isEmpty()) {
- CollectionUtils.filter(ret, predicateUtil.getPredicate(filter));
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getTagResourceMaps(): count=" + (ret == null ? 0 : ret.size()));
- }
-
- return ret;
-
- }
-
- @Override
- public PList<RangerTagResourceMap> getPaginatedTagResourceMaps(SearchFilter filter) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getPaginatedTagResourceMaps()");
- }
-
- PList<RangerTagResourceMap> ret = null;
-
- List<RangerTagResourceMap> list = getTagResourceMaps(filter);
-
- if(CollectionUtils.isNotEmpty(list)) {
- ret = new PList<RangerTagResourceMap>(list, 0, list.size(), list.size(), list.size(), filter.getSortType(), filter.getSortBy());
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getPaginatedTagResourceMaps(): count=" + (ret == null ? 0 : ret.getPageSize()));
- }
-
- return ret;
- }
-
-
- @Override
- public ServiceTags getServiceTagsIfUpdated(String serviceName, Long lastKnownVersion) throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceTagsIfUpdated(" + serviceName + ", " + lastKnownVersion + ")");
- }
-
- ServiceTags ret = null;
-
- boolean tagsChanged = true;
-
- RangerService service = null;
-
- try {
- service = svcStore.getServiceByName(serviceName);
- } catch (Exception exception) {
- LOG.error("Cannot find service for serviceName=" + serviceName);
- tagsChanged = false;
- }
-
- if (lastKnownVersion != null
- && service != null && service.getTagVersion() != null
- && lastKnownVersion.equals(service.getTagVersion())) {
- tagsChanged = false;
- }
-
- if (tagsChanged) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Changes to tagVersion detected, tagVersion in service=" + (service == null ? null : service.getTagVersion())
- + ", Plugin-provided lastKnownVersion=" + lastKnownVersion);
- }
- ret = getServiceTags(serviceName);
- } else {
- if (LOG.isDebugEnabled()) {
- LOG.debug("No changes to tagVersion detected, tagVersion in service=" + (service == null ? null : service.getTagVersion())
- + ", Plugin-provided lastKnownVersion=" + lastKnownVersion);
- }
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceTagsIfUpdated(" + serviceName + ", " + lastKnownVersion + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public ServiceTags getServiceTags(String serviceName) throws Exception {
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getServiceTags(" + serviceName + ")");
- }
-
- ServiceTags ret = new ServiceTags();
-
- RangerService service = null;
-
- try {
- service = svcStore.getServiceByName(serviceName);
- } catch (Exception exception) {
- LOG.error("Cannot find service for serviceName=" + serviceName);
- }
-
- SearchFilter filter = new SearchFilter();
-
- filter.setParam(SearchFilter.TAG_RESOURCE_SERVICE_NAME, serviceName);
-
- List<RangerServiceResource> serviceResources = getServiceResources(filter);
- List<RangerServiceResource> filteredServiceResources = new ArrayList<RangerServiceResource>();
-
- Map<Long, RangerTag> tagsMap = new HashMap<Long, RangerTag>();
- Map<Long, List<Long>> resourceToTagIdsMap = new HashMap<Long, List<Long>>();
-
- for (RangerServiceResource serviceResource : serviceResources) {
- List<RangerTag> tagList = getTagsForServiceResourceObject(serviceResource);
-
- if (CollectionUtils.isNotEmpty(tagList)) {
- List<Long> tagIdList = new ArrayList<Long>();
- for (RangerTag tag : tagList) {
- tagsMap.put(tag.getId(), tag);
- tagIdList.add(tag.getId());
- }
- resourceToTagIdsMap.put(serviceResource.getId(), tagIdList);
- filteredServiceResources.add(serviceResource);
- }
- }
-
- ret.setServiceName(serviceName);
- ret.setServiceResources(filteredServiceResources);
- ret.setResourceToTagIds(resourceToTagIdsMap);
- ret.setTags(tagsMap);
-
- if (service != null && service.getTagVersion() != null) {
- ret.setTagVersion(service.getTagVersion());
- }
- if (service != null && service.getTagUpdateTime() != null) {
- ret.setTagUpdateTime(service.getTagUpdateTime());
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getServiceTags(" + serviceName + "): " + ret);
- }
-
- return ret;
-
- }
-
- @Override
- public Long getTagVersion(String serviceName) {
-
- RangerService service = null;
-
- try {
- service = svcStore.getServiceByName(serviceName);
- } catch (Exception exception) {
- LOG.error("Cannot find service for serviceName=" + serviceName);
- }
-
- return service != null ? service.getTagVersion() : null;
- }
-
- private List<RangerTag> getTagsForServiceResourceObject(RangerServiceResource serviceResource) throws Exception {
-
- List<RangerTag> tagList = new ArrayList<RangerTag>();
-
- if (serviceResource != null) {
- SearchFilter mapFilter = new SearchFilter();
- mapFilter.setParam(SearchFilter.TAG_RESOURCE_ID, serviceResource.getId().toString());
-
- List<RangerTagResourceMap> associations = getTagResourceMaps(mapFilter);
- if (CollectionUtils.isNotEmpty(associations)) {
-
- for (RangerTagResourceMap association : associations) {
- RangerTag tag = getTag(association.getTagId());
- if (tag != null) {
- tagList.add(tag);
- }
- }
- }
- }
- return tagList;
- }
-
- private List<RangerTagDef> getAllTagDefs() throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getAllTagDefs()");
- }
-
- List<RangerTagDef> ret = new ArrayList<RangerTagDef>();
-
- try {
- // load Tag definitions from file system
- List<RangerTagDef> sds = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_TAG_DEF, RangerTagDef.class);
-
- if (CollectionUtils.isNotEmpty(sds)) {
- for (RangerTagDef sd : sds) {
- if (sd != null) {
- // if the TagDef is already found, remove the earlier definition
- for (int i = 0; i < ret.size(); i++) {
- RangerTagDef currSd = ret.get(i);
-
- if (StringUtils.equals(currSd.getName(), sd.getName()) ||
- ObjectUtils.equals(currSd.getId(), sd.getId())) {
- ret.remove(i);
- }
- }
-
- ret.add(sd);
- }
- }
- }
- nextTagDefId = getMaxId(ret) + 1;
- } catch (Exception excp) {
- LOG.error("TagFileStore.getAllTagDefs(): failed to read Tag-defs", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getAllTagDefs(): count=" + ret.size());
- }
-
- return ret;
- }
-
- private List<RangerTag> getAllTags() throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getAllTags()");
- }
-
- List<RangerTag> ret = new ArrayList<RangerTag>();
-
- try {
- List<RangerTag> sds = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_TAG, RangerTag.class);
-
- if (CollectionUtils.isNotEmpty(sds)) {
- for (RangerTag sd : sds) {
- if (sd != null) {
- // if the Tag is already found, remove the earlier one
- for (int i = 0; i < ret.size(); i++) {
- RangerTag currSd = ret.get(i);
-
- if (StringUtils.equals(currSd.getType(), sd.getType()) ||
- ObjectUtils.equals(currSd.getId(), sd.getId())) {
- ret.remove(i);
- }
- }
-
- ret.add(sd);
- }
- }
- }
- nextTagId = getMaxId(ret) + 1;
- } catch (Exception excp) {
- LOG.error("TagFileStore.getAllTags(): failed to read Tags", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getAllTags(): count=" + ret.size());
- }
-
- return ret;
- }
-
- private List<RangerServiceResource> getAllResources() throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getAllResources()");
- }
-
- List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>();
-
- try {
- List<RangerServiceResource> sds = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_RESOURCE, RangerServiceResource.class);
-
- if (CollectionUtils.isNotEmpty(sds)) {
- for (RangerServiceResource sd : sds) {
- if (sd != null) {
- // if the resource is already found, remove the earlier one
- for (int i = 0; i < ret.size(); i++) {
- RangerServiceResource currSd = ret.get(i);
-
- if (ObjectUtils.equals(currSd.getId(), sd.getId())) {
- ret.remove(i);
- }
- }
-
- ret.add(sd);
- }
- }
- }
- nextServiceResourceId = getMaxId(ret) + 1;
- } catch (Exception excp) {
- LOG.error("TagFileStore.getAllResources(): failed to read Resources", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getAllResourcess(): count=" + ret.size());
- }
-
- return ret;
- }
-
- private List<RangerTagResourceMap> getAllTaggedResources() throws Exception {
- if (LOG.isDebugEnabled()) {
- LOG.debug("==> TagFileStore.getAllTaggedResources()");
- }
-
- List<RangerTagResourceMap> ret = new ArrayList<RangerTagResourceMap>();
-
- try {
- // load resource definitions from file system
- List<RangerTagResourceMap> resources = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_TAG_RESOURCE_MAP, RangerTagResourceMap.class);
-
- if (CollectionUtils.isNotEmpty(resources)) {
- for (RangerTagResourceMap resource : resources) {
- if (resource != null) {
- // if the RangerTagResourceMap is already found, remove the earlier definition
- for (int i = 0; i < ret.size(); i++) {
- RangerTagResourceMap currResource = ret.get(i);
-
- if (ObjectUtils.equals(currResource.getId(), resource.getId())) {
- ret.remove(i);
- }
- }
-
- ret.add(resource);
- }
- }
- }
- nextTagResourceMapId = getMaxId(ret) + 1;
- } catch (Exception excp) {
- LOG.error("TagFileStore.getAllTaggedResources(): failed to read tagged resources", excp);
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("<== TagFileStore.getAllTaggedResources(): count=" + ret.size());
- }
-
- return ret;
- }
-
- private void deleteTagDef(RangerTagDef tagDef) throws Exception {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_DEF, tagDef.getId()));
-
- preDelete(tagDef);
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(tagDef);
- }
-
- private void deleteTag(RangerTag tag) throws Exception {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG, tag.getId()));
-
- preDelete(tag);
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(tag);
- }
-
- private void deleteServiceResource(RangerServiceResource resource) throws Exception {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_RESOURCE, resource.getId()));
-
- preDelete(resource);
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(resource);
- }
-
- private void deleteTagResourceMap(RangerTagResourceMap tagResourceMap) throws Exception {
- Path filePath = new Path(fileStoreUtil.getDataFile(FILE_PREFIX_TAG_RESOURCE_MAP, tagResourceMap.getId()));
-
- preDelete(tagResourceMap);
-
- fileStoreUtil.deleteFile(filePath);
-
- postDelete(tagResourceMap);
- }
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/main/java/org/apache/ranger/plugin/store/rest/ServiceRESTStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/rest/ServiceRESTStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/rest/ServiceRESTStore.java
deleted file mode 100644
index 8f01934..0000000
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/rest/ServiceRESTStore.java
+++ /dev/null
@@ -1,653 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ranger.plugin.store.rest;
-
-import java.security.PrivilegedAction;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.apache.ranger.admin.client.datatype.RESTResponse;
-import org.apache.ranger.audit.provider.MiscUtil;
-import org.apache.ranger.authorization.hadoop.config.RangerConfiguration;
-import org.apache.ranger.plugin.model.RangerPolicy;
-import org.apache.ranger.plugin.model.RangerService;
-import org.apache.ranger.plugin.model.RangerServiceDef;
-import org.apache.ranger.plugin.store.AbstractServiceStore;
-import org.apache.ranger.plugin.util.RangerRESTClient;
-import org.apache.ranger.plugin.util.SearchFilter;
-import org.apache.ranger.plugin.util.ServicePolicies;
-
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
-import com.sun.jersey.api.client.WebResource;
-
-
-public class ServiceRESTStore extends AbstractServiceStore {
- private static final Log LOG = LogFactory.getLog(ServiceRESTStore.class);
-
-
- public final String REST_URL_SERVICEDEF_CREATE = "/service/plugins/definitions";
- public final String REST_URL_SERVICEDEF_UPDATE = "/service/plugins/definitions/";
- public final String REST_URL_SERVICEDEF_DELETE = "/service/plugins/definitions/";
- public final String REST_URL_SERVICEDEF_GET = "/service/plugins/definitions/";
- public final String REST_URL_SERVICEDEF_GET_BY_NAME = "/service/plugins/definitions/name/";
- public final String REST_URL_SERVICEDEF_GET_ALL = "/service/plugins/definitions";
-
- public final String REST_URL_SERVICE_CREATE = "/service/plugins/services";
- public final String REST_URL_SERVICE_UPDATE = "/service/plugins/services/";
- public final String REST_URL_SERVICE_DELETE = "/service/plugins/services/";
- public final String REST_URL_SERVICE_GET = "/service/plugins/services/";
- public final String REST_URL_SERVICE_GET_BY_NAME = "/service/plugins/services/name/";
- public final String REST_URL_SERVICE_GET_ALL = "/service/plugins/services";
-
- public final String REST_URL_POLICY_CREATE = "/service/plugins/policies";
- public final String REST_URL_POLICY_UPDATE = "/service/plugins/policies/";
- public final String REST_URL_POLICY_DELETE = "/service/plugins/policies/";
- public final String REST_URL_POLICY_GET = "/service/plugins/policies/";
- public final String REST_URL_POLICY_GET_BY_NAME = "/service/plugins/policies/name/";
- public final String REST_URL_POLICY_GET_ALL = "/service/plugins/policies";
- public final String REST_URL_POLICY_GET_FOR_SERVICE = "/service/plugins/policies/service/";
- public final String REST_URL_POLICY_GET_FOR_SERVICE_BY_NAME = "/service/plugins/policies/service/name/";
- public final String REST_URL_POLICY_GET_FOR_SERVICE_IF_UPDATED = "/service/plugins/policies/download/";
- public final String REST_URL_POLICY_GET_FOR_SECURE_SERVICE_IF_UPDATED = "/service/plugins/secure/policies/download/";
-
- public static final String REST_MIME_TYPE_JSON = "application/json";
-
- private Boolean populateExistingBaseFields = false;
-
- private RangerRESTClient restClient;
-
- public ServiceRESTStore() {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.ServiceRESTStore()");
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.ServiceRESTStore()");
- }
- }
-
- @Override
- public void init() throws Exception {
- String restUrl = RangerConfiguration.getInstance().get("ranger.service.store.rest.url");
- String sslConfigFile = RangerConfiguration.getInstance().get("ranger.service.store.rest.ssl.config.file");
- String userName = RangerConfiguration.getInstance().get("ranger.service.store.rest.basicauth.username");
- String password = RangerConfiguration.getInstance().get("ranger.service.store.rest.basicauth.password");
-
- restClient = new RangerRESTClient(restUrl, sslConfigFile);
- restClient.setBasicAuthInfo(userName, password);
- }
-
- @Override
- public RangerServiceDef createServiceDef(RangerServiceDef serviceDef) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.createServiceDef(" + serviceDef + ")");
- }
-
- RangerServiceDef ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICEDEF_CREATE);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).type(REST_MIME_TYPE_JSON).post(ClientResponse.class, restClient.toJson(serviceDef));
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerServiceDef.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.createServiceDef(" + serviceDef + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceDef updateServiceDef(RangerServiceDef serviceDef) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.updateServiceDef(" + serviceDef + ")");
- }
-
- RangerServiceDef ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICEDEF_UPDATE + serviceDef.getId());
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).type(REST_MIME_TYPE_JSON).put(ClientResponse.class, restClient.toJson(serviceDef));
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerServiceDef.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.updateServiceDef(" + serviceDef + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deleteServiceDef(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.deleteServiceDef(" + id + ")");
- }
-
- WebResource webResource = createWebResource(REST_URL_SERVICEDEF_DELETE + id);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).delete(ClientResponse.class);
-
- if(response == null || (response.getStatus() != 200 && response.getStatus() != 204)) {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.deleteServiceDef(" + id + ")");
- }
- }
-
- @Override
- public RangerServiceDef getServiceDef(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServiceDef(" + id + ")");
- }
-
- RangerServiceDef ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICEDEF_GET + id);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerServiceDef.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServiceDef(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerServiceDef getServiceDefByName(String name) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServiceDefByName(" + name + ")");
- }
-
- RangerServiceDef ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICEDEF_GET_BY_NAME + name);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerServiceDef.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServiceDefByName(" + name + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerServiceDef> getServiceDefs(SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServiceDefs()");
- }
-
- List<RangerServiceDef> ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICEDEF_GET_ALL, filter);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(new GenericType<List<RangerServiceDef>>() { });
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getAllServiceDefs(): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerService createService(RangerService service) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.createService(" + service + ")");
- }
-
- RangerService ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICE_CREATE);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).type(REST_MIME_TYPE_JSON).post(ClientResponse.class, restClient.toJson(service));
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerService.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.createService(" + service + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerService updateService(RangerService service) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.updateService(" + service + ")");
- }
-
- RangerService ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICE_UPDATE + service.getId());
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).type(REST_MIME_TYPE_JSON).put(ClientResponse.class, restClient.toJson(service));
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerService.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.updateService(" + service + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deleteService(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.deleteService(" + id + ")");
- }
-
- WebResource webResource = createWebResource(REST_URL_SERVICE_DELETE + id);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).delete(ClientResponse.class);
-
- if(response == null || (response.getStatus() != 200 && response.getStatus() != 204)) {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.deleteService(" + id + ")");
- }
- }
-
- @Override
- public RangerService getService(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getService(" + id + ")");
- }
-
- RangerService ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICE_GET + id);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerService.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getService(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerService getServiceByName(String name) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServiceByName(" + name + ")");
- }
-
- RangerService ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICE_GET_BY_NAME + name);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerService.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServiceByName(" + name + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerService> getServices(SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServices()");
- }
-
- List<RangerService> ret = null;
-
- WebResource webResource = createWebResource(REST_URL_SERVICE_GET_ALL, filter);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(new GenericType<List<RangerService>>() { });
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServices(): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerPolicy createPolicy(RangerPolicy policy) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.createPolicy(" + policy + ")");
- }
-
- RangerPolicy ret = null;
-
- WebResource webResource = createWebResource(REST_URL_POLICY_CREATE);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).type(REST_MIME_TYPE_JSON).post(ClientResponse.class, restClient.toJson(policy));
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerPolicy.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.createPolicy(" + policy + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public RangerPolicy updatePolicy(RangerPolicy policy) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.updatePolicy(" + policy + ")");
- }
-
- RangerPolicy ret = null;
-
- WebResource webResource = createWebResource(REST_URL_POLICY_UPDATE + policy.getId());
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).type(REST_MIME_TYPE_JSON).put(ClientResponse.class, restClient.toJson(policy));
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerPolicy.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.updatePolicy(" + policy + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public void deletePolicy(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.deletePolicy(" + id + ")");
- }
-
- WebResource webResource = createWebResource(REST_URL_POLICY_DELETE + id);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).delete(ClientResponse.class);
-
- if(response == null || (response.getStatus() != 200 && response.getStatus() != 204)) {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.deletePolicy(" + id + ")");
- }
- }
-
- @Override
- public RangerPolicy getPolicy(Long id) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getPolicy(" + id + ")");
- }
-
- RangerPolicy ret = null;
-
- WebResource webResource = createWebResource(REST_URL_POLICY_GET + id);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(RangerPolicy.class);
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getPolicy(" + id + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getPolicies(SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getPolicies()");
- }
-
- List<RangerPolicy> ret = null;
-
- WebResource webResource = createWebResource(REST_URL_POLICY_GET_ALL, filter);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(new GenericType<List<RangerPolicy>>() { });
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getPolicies(): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getServicePolicies(Long serviceId, SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServicePolicies(" + serviceId + ")");
- }
-
- List<RangerPolicy> ret = null;
-
- WebResource webResource = createWebResource(REST_URL_POLICY_GET_FOR_SERVICE + serviceId, filter);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(new GenericType<List<RangerPolicy>>() { });
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServicePolicies(" + serviceId + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getServicePolicies(String serviceName, SearchFilter filter) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServicePolicies(" + serviceName + ")");
- }
-
- List<RangerPolicy> ret = null;
-
- WebResource webResource = createWebResource(REST_URL_POLICY_GET_FOR_SERVICE_BY_NAME + serviceName, filter);
- ClientResponse response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(new GenericType<List<RangerPolicy>>() { });
- } else {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServicePolicies(" + serviceName + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public ServicePolicies getServicePoliciesIfUpdated(final String serviceName, final Long lastKnownVersion) throws Exception {
- if(LOG.isDebugEnabled()) {
- LOG.debug("==> ServiceRESTStore.getServicePoliciesIfUpdated(" + serviceName + ", " + lastKnownVersion + ")");
- }
-
- ServicePolicies ret = null;
- ClientResponse response = null;
- if (MiscUtil.getUGILoginUser() != null && UserGroupInformation.isSecurityEnabled()) {
- LOG.info("Checking Service policy if updated as user : "+ MiscUtil.getUGILoginUser());
- PrivilegedAction<ClientResponse> action = new PrivilegedAction<ClientResponse>() {
- public ClientResponse run() {
- WebResource secureWebResource = createWebResource(REST_URL_POLICY_GET_FOR_SECURE_SERVICE_IF_UPDATED + serviceName + "/" + lastKnownVersion);
- return secureWebResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
- };
- };
- response = MiscUtil.getUGILoginUser().doAs(action);
- } else {
- WebResource webResource = createWebResource(REST_URL_POLICY_GET_FOR_SERVICE_IF_UPDATED + serviceName + "/" + lastKnownVersion);
- response = webResource.accept(REST_MIME_TYPE_JSON).get(ClientResponse.class);
- }
-
- if(response != null && response.getStatus() == 200) {
- ret = response.getEntity(ServicePolicies.class);
- } else if(!(response != null && response.getStatus() == 304)) {
- RESTResponse resp = RESTResponse.fromClientResponse(response);
-
- throw new Exception(resp.getMessage());
- }
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("<== ServiceRESTStore.getServicePoliciesIfUpdated(" + serviceName + ", " + lastKnownVersion + "): " + ret);
- }
-
- return ret;
- }
-
- @Override
- public ServicePolicies getServicePolicies(String serviceName) throws Exception {
- return getServicePoliciesIfUpdated(serviceName, -1L);
- }
-
- private WebResource createWebResource(String url) {
- return createWebResource(url, null);
- }
-
- private WebResource createWebResource(String url, SearchFilter filter) {
- WebResource ret = restClient.getResource(url);
-
- if(filter != null && !MapUtils.isEmpty(filter.getParams())) {
- for(Map.Entry<String, String> e : filter.getParams().entrySet()) {
- String name = e.getKey();
- String value = e.getValue();
-
- ret.queryParam(name, value);
- }
- }
-
- return ret;
- }
-
- @Override
- public List<RangerPolicy> getPoliciesByResourceSignature(String serviceName, String policySignature, Boolean isPolicyEnabled) throws Exception {
- throw new UnsupportedOperationException("Querying policies by resource signature is not supported!");
- }
-
- @Override
- public void setPopulateExistingBaseFields(Boolean populateExistingBaseFields) {
- this.populateExistingBaseFields = populateExistingBaseFields;
- }
-
- @Override
- public Boolean getPopulateExistingBaseFields() {
- return populateExistingBaseFields;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ccd0badd/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
----------------------------------------------------------------------
diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
deleted file mode 100644
index 90e97b7..0000000
--- a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ranger.plugin.store;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.ranger.plugin.model.RangerPolicy;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemAccess;
-import org.apache.ranger.plugin.model.RangerService;
-import org.apache.ranger.plugin.model.RangerServiceDef;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
-import org.apache.ranger.plugin.store.file.ServiceFileStore;
-import org.apache.ranger.plugin.util.SearchFilter;
-import org.apache.ranger.plugin.util.ServicePolicies;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-
-public class TestServiceStore {
- static ServiceStore svcStore = null;
- static SearchFilter filter = null;
-
- static final String sdName = "svcDef-unit-test-TestServiceStore";
- static final String serviceName = "svc-unit-test-TestServiceStore";
- static final String policyName = "testPolicy-1";
-
- @BeforeClass
- public static void setupTest() throws Exception {
-
-
- File file = File.createTempFile("fileStore", "dir");
-
- if (file.exists()) {
- file.delete();
- }
-
- file.deleteOnExit();
-
- file.mkdirs();
-
- String fileStoreDir = file.getAbsolutePath();
-
- System.out.println("Using fileStoreDirectory as [" + fileStoreDir + "]");
-
- svcStore = new ServiceFileStore(fileStoreDir);
- svcStore.init();
-
- // cleanup if the test service and service-def if they already exist
- List<RangerService> services = svcStore.getServices(filter);
- for(RangerService service : services) {
- if(service.getName().startsWith(serviceName)) {
- svcStore.deleteService(service.getId());
- }
- }
-
- List<RangerServiceDef> serviceDefs = svcStore.getServiceDefs(filter);
- for(RangerServiceDef serviceDef : serviceDefs) {
- if(serviceDef.getName().startsWith(sdName)) {
- svcStore.deleteServiceDef(serviceDef.getId());
- }
- }
- }
-
- @Test
- public void testServiceStore() throws Exception {
- String updatedName, updatedDescription;
-
- List<RangerServiceDef> sds = svcStore.getServiceDefs(filter);
-
- int initSdCount = sds == null ? 0 : sds.size();
-
- RangerServiceDef sd = new RangerServiceDef(sdName, "org.apache.ranger.services.TestService", "TestService", "test servicedef description", null, null, null, null, null, null, null);
-
- RangerServiceDef createdSd = svcStore.createServiceDef(sd);
- assertNotNull("createServiceDef() failed", createdSd != null);
-
- sds = svcStore.getServiceDefs(filter);
- assertEquals("createServiceDef() failed", initSdCount + 1, sds == null ? 0 : sds.size());
-
- updatedDescription = sd.getDescription() + ": updated";
- createdSd.setDescription(updatedDescription);
- RangerServiceDef updatedSd = svcStore.updateServiceDef(createdSd);
- assertNotNull("updateServiceDef(updatedDescription) failed", updatedSd);
- assertEquals("updateServiceDef(updatedDescription) failed", updatedDescription, updatedSd.getDescription());
-
- sds = svcStore.getServiceDefs(filter);
- assertEquals("updateServiceDef(updatedDescription) failed", initSdCount + 1, sds == null ? 0 : sds.size());
-
- /*
- updatedName = sd.getName() + "-Renamed";
- updatedSd.setName(updatedName);
- updatedSd = sdMgr.update(updatedSd);
- assertNotNull("updateServiceDef(updatedName) failed", updatedSd);
- assertEquals("updateServiceDef(updatedName) failed", updatedName, updatedSd.getName());
-
- sds = getAllServiceDef();
- assertEquals("updateServiceDef(updatedName) failed", initSdCount + 1, sds == null ? 0 : sds.size());
- */
-
- List<RangerService> services = svcStore.getServices(filter);
-
- int initServiceCount = services == null ? 0 : services.size();
-
- RangerService svc = new RangerService(sdName, serviceName, "test service description", null, null);
-
- RangerService createdSvc = svcStore.createService(svc);
- assertNotNull("createService() failed", createdSvc);
-
- services = svcStore.getServices(filter);
- assertEquals("createServiceDef() failed", initServiceCount + 1, services == null ? 0 : services.size());
-
- updatedDescription = createdSvc.getDescription() + ": updated";
- createdSvc.setDescription(updatedDescription);
- RangerService updatedSvc = svcStore.updateService(createdSvc);
- assertNotNull("updateService(updatedDescription) failed", updatedSvc);
- assertEquals("updateService(updatedDescription) failed", updatedDescription, updatedSvc.getDescription());
-
- services = svcStore.getServices(filter);
- assertEquals("updateService(updatedDescription) failed", initServiceCount + 1, services == null ? 0 : services.size());
-
- updatedName = serviceName + "-Renamed";
- updatedSvc.setName(updatedName);
- updatedSvc = svcStore.updateService(updatedSvc);
- assertNotNull("updateService(updatedName) failed", updatedSvc);
- assertEquals("updateService(updatedName) failed", updatedName, updatedSvc.getName());
-
- services = svcStore.getServices(filter);
- assertEquals("updateService(updatedName) failed", initServiceCount + 1, services == null ? 0 : services.size());
-
- List<RangerPolicy> policies = svcStore.getPolicies(filter);
-
- int initPolicyCount = policies == null ? 0 : policies.size();
-
- RangerPolicy policy = new RangerPolicy(updatedSvc.getName(), policyName, 0, "test policy description", null, null, null);
- policy.getResources().put("path", new RangerPolicyResource("/demo/test/finance", Boolean.FALSE, Boolean.TRUE));
-
- RangerPolicyItem item1 = new RangerPolicyItem();
- item1.getAccesses().add(new RangerPolicyItemAccess("read"));
- item1.getAccesses().add(new RangerPolicyItemAccess("write"));
- item1.getAccesses().add(new RangerPolicyItemAccess("execute"));
- item1.getUsers().add("admin");
- item1.getGroups().add("finance");
-
- RangerPolicyItem item2 = new RangerPolicyItem();
- item2.getAccesses().add(new RangerPolicyItemAccess("read"));
- item2.getGroups().add("public");
-
- policy.getPolicyItems().add(item1);
- policy.getPolicyItems().add(item2);
-
- RangerPolicy createdPolicy = svcStore.createPolicy(policy);
- assertNotNull(createdPolicy);
- assertNotNull(createdPolicy.getPolicyItems());
- assertEquals(createdPolicy.getPolicyItems().size(), 2);
-
- RangerPolicyItem createItem1 = createdPolicy.getPolicyItems().get(0);
- RangerPolicyItem createItem2 = createdPolicy.getPolicyItems().get(1);
-
- assertNotNull(createItem1.getAccesses());
- assertEquals(createItem1.getAccesses().size(), 3);
- assertNotNull(createItem1.getUsers());
- assertEquals(createItem1.getUsers().size(), 1);
- assertNotNull(createItem1.getGroups());
- assertEquals(createItem1.getGroups().size(), 1);
-
- assertNotNull(createItem2.getAccesses());
- assertEquals(createItem2.getAccesses().size(), 1);
- assertNotNull(createItem2.getUsers());
- assertEquals(createItem2.getUsers().size(), 0);
- assertNotNull(createItem2.getGroups());
- assertEquals(createItem2.getGroups().size(), 1);
-
- policies = svcStore.getPolicies(filter);
- assertEquals("createPolicy() failed", initPolicyCount + 1, policies == null ? 0 : policies.size());
-
- updatedDescription = policy.getDescription() + ":updated";
- createdPolicy.setDescription(updatedDescription);
- RangerPolicy updatedPolicy = svcStore.updatePolicy(createdPolicy);
- assertNotNull("updatePolicy(updatedDescription) failed", updatedPolicy != null);
-
- policies = svcStore.getPolicies(filter);
- assertEquals("updatePolicy(updatedDescription) failed", initPolicyCount + 1, policies == null ? 0 : policies.size());
-
- updatedName = policyName + "-Renamed";
- updatedPolicy.setName(updatedName);
- updatedPolicy = svcStore.updatePolicy(updatedPolicy);
- assertNotNull("updatePolicy(updatedName) failed", updatedPolicy);
-
- policies = svcStore.getPolicies(filter);
- assertEquals("updatePolicy(updatedName) failed", initPolicyCount + 1, policies == null ? 0 : policies.size());
-
- // rename the service; all the policies for this service should reflect the new service name
- updatedName = serviceName + "-Renamed2";
- updatedSvc.setName(updatedName);
- updatedSvc = svcStore.updateService(updatedSvc);
- assertNotNull("updateService(updatedName2) failed", updatedSvc);
- assertEquals("updateService(updatedName2) failed", updatedName, updatedSvc.getName());
-
- services = svcStore.getServices(filter);
- assertEquals("updateService(updatedName2) failed", initServiceCount + 1, services == null ? 0 : services.size());
-
- updatedPolicy = svcStore.getPolicy(createdPolicy.getId());
- assertNotNull("updateService(updatedName2) failed", updatedPolicy);
- assertEquals("updateService(updatedName2) failed", updatedPolicy.getService(), updatedSvc.getName());
-
- ServicePolicies svcPolicies = svcStore.getServicePoliciesIfUpdated(updatedSvc.getName(), 0l);
- assertNotNull("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies);
- assertNotNull("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicies());
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getServiceName(), updatedSvc.getName());
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getServiceId(), updatedSvc.getId());
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicyVersion(), updatedSvc.getPolicyVersion());
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicyUpdateTime(), updatedSvc.getPolicyUpdateTime());
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getServiceDef().getId(), updatedSd.getId());
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicies().size(), 1);
- assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicies().get(0).getName(), updatedPolicy.getName());
-
- ServicePolicies updatedPolicies = svcStore.getServicePoliciesIfUpdated(updatedSvc.getName(), svcPolicies.getPolicyVersion());
- assertNull(updatedPolicies);
-
- filter = new SearchFilter();
- filter.setParam(SearchFilter.POLICY_NAME, policyName);
- policies = svcStore.getPolicies(filter);
- assertEquals("getPolicies(filter=origPolicyName) failed", 0, policies == null ? 0 : policies.size());
- filter = null;
-
- filter = new SearchFilter();
- filter.setParam(SearchFilter.POLICY_NAME, updatedPolicy.getName());
- policies = svcStore.getPolicies(filter);
- assertEquals("getPolicies(filter=origPolicyName) failed", 1, policies == null ? 0 : policies.size());
- filter = null;
-
- String osName = System.getProperty("os.name");
- boolean windows = (osName != null && osName.toLowerCase().startsWith("windows"));
-
- if (! windows ) {
-
- svcStore.deletePolicy(policy.getId());
-
- policies = svcStore.getPolicies(filter);
-
- assertEquals("deletePolicy() failed", initPolicyCount, policies == null ? 0 : policies.size());
-
-
- svcStore.deleteService(svc.getId());
- services = svcStore.getServices(filter);
- assertEquals("deleteService() failed", initServiceCount, services == null ? 0 : services.size());
-
- svcStore.deleteServiceDef(sd.getId());
- sds = svcStore.getServiceDefs(filter);
- assertEquals("deleteServiceDef() failed", initSdCount, sds == null ? 0 : sds.size());
-
- }
- }
-}