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 2025/10/05 04:28:16 UTC
(ranger) branch ranger-2.8 updated (d6ce6687e -> f6a566bcf)
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a change to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
from d6ce6687e RANGER-5271 : Last login date and time on Ranger Home page (#655)
new 5ea1afafe RANGER-5009: `ranger_in_docker` only determines Docker Compose V1 and not Docker Compose V2 (#603)
new 340b32cb2 RANGER-5315: Enhance Audit Log Filters to Support Resource Name Exclusions (#663)
new 11ebb1c78 RANGER-5294: FileUtils.isOwnerOfFileHierarchy doesn’t have the recurse parameter
new 69487ec0f RANGER-5352: Resource changes in tag does not work correctly when delta sync & dedup is enabled
new f6a566bcf RANGER-5259: Add REST API to delete stale entries of Plugin info (#683)
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../hive/authorizer/RangerHiveAuthorizer.java | 10 +-
pom.xml | 2 +-
ranger_in_docker | 16 +-
security-admin/pom.xml | 13 +
.../org/apache/ranger/AccessAuditsService.java | 2 +
.../main/java/org/apache/ranger/biz/AssetMgr.java | 8 +
.../java/org/apache/ranger/biz/TagDBStore.java | 14 +-
.../java/org/apache/ranger/rest/AssetREST.java | 2 +
.../java/org/apache/ranger/rest/ServiceREST.java | 42 ++
.../ranger/security/context/RangerAPIList.java | 1 +
.../ranger/security/context/RangerAPIMapping.java | 1 +
.../src/views/AuditEvent/AccessLogs.jsx | 6 +
.../java/org/apache/ranger/biz/TestTagDBStore.java | 752 ++++++++++++++++-----
.../java/org/apache/ranger/rest/TestAssetREST.java | 6 +-
14 files changed, 684 insertions(+), 191 deletions(-)
(ranger) 02/05: RANGER-5315: Enhance Audit Log Filters to Support Resource Name Exclusions (#663)
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 340b32cb2196949b09f2d8878743106ed2766655
Author: Rakesh Gupta <10...@users.noreply.github.com>
AuthorDate: Fri Sep 12 15:13:07 2025 +0530
RANGER-5315: Enhance Audit Log Filters to Support Resource Name Exclusions (#663)
(cherry picked from commit c4254ab9b4c29ff0b4a294dc0c019b06ef71d83a)
---
.../src/main/java/org/apache/ranger/AccessAuditsService.java | 2 ++
security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java | 2 ++
.../main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx | 6 ++++++
.../src/test/java/org/apache/ranger/rest/TestAssetREST.java | 6 ++----
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java b/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
index de1feed55..c1310d91c 100644
--- a/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
+++ b/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
@@ -85,6 +85,8 @@ public AccessAuditsService() {
SearchField.DATA_TYPE.INTEGER, SearchField.SEARCH_TYPE.FULL));
searchFields.add(new SearchField("-requestUser", "-reqUser",
SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.FULL));
+ searchFields.add(new SearchField("excludeResourceName", "-resource",
+ SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.PARTIAL));
searchFields.add(new SearchField("resourceType", "resType",
SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.FULL));
searchFields.add(new SearchField("reason", "reason",
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
index 065b9d33e..eb004d9d7 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
@@ -628,6 +628,8 @@ public VXAccessAuditList getAccessLogs(@Context HttpServletRequest request, @Que
"Request Data", StringUtil.VALIDATION_TEXT);
searchUtil.extractString(request, searchCriteria, "resourcePath",
"Resource Name", StringUtil.VALIDATION_TEXT);
+ searchUtil.extractString(request, searchCriteria, "excludeResourceName",
+ "Exclude Resource Name", StringUtil.VALIDATION_TEXT);
searchUtil.extractString(request, searchCriteria, "clientIP",
"Client IP", StringUtil.VALIDATION_TEXT);
searchUtil.extractString(request, searchCriteria, "resourceType",
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx b/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx
index 39d7bcf48..8abeb287a 100644
--- a/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx
@@ -963,6 +963,12 @@ function Access() {
urlLabel: "zoneName",
type: "textoptions",
options: getZones
+ },
+ {
+ category: "excludeResourceName",
+ label: "Exclude Resource Name",
+ urlLabel: "excludeResourceName",
+ type: "text"
}
];
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
index ec7b79677..cd58a80e0 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
@@ -687,8 +687,7 @@ public void testGetAccessLogs() {
Mockito.verify(msBizUtil).isKeyAdmin();
Mockito.verify(assetMgr).getAccessLogs(searchCriteria);
Mockito.verify(daoManager).getXXServiceDef();
- Mockito.verify(searchUtil, Mockito.times(14)).extractString((HttpServletRequest) Mockito.any(),
- (SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
+ Mockito.verify(searchUtil, Mockito.times(15)).extractString(Mockito.any(), Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
Mockito.verify(searchUtil, Mockito.times(4)).extractInt((HttpServletRequest) Mockito.any(),
(SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString());
Mockito.verify(searchUtil, Mockito.times(2)).extractDate((HttpServletRequest) Mockito.any(),
@@ -743,8 +742,7 @@ public void testGetAccessLogsForKms() {
Mockito.verify(msBizUtil).isKeyAdmin();
Mockito.verify(assetMgr).getAccessLogs(searchCriteria);
Mockito.verify(daoManager).getXXServiceDef();
- Mockito.verify(searchUtil, Mockito.times(14)).extractString((HttpServletRequest) Mockito.any(),
- (SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
+ Mockito.verify(searchUtil, Mockito.times(15)).extractString(Mockito.any(), Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
Mockito.verify(searchUtil, Mockito.times(4)).extractInt((HttpServletRequest) Mockito.any(),
(SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString());
Mockito.verify(searchUtil, Mockito.times(2)).extractDate((HttpServletRequest) Mockito.any(),
(ranger) 01/05: RANGER-5009: `ranger_in_docker` only determines Docker Compose V1 and not Docker Compose V2 (#603)
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 5ea1afafe5284e95ac6b56c943d8e91a7fa955ae
Author: Chinmay Hegde <he...@gmail.com>
AuthorDate: Thu Aug 21 17:31:39 2025 +0530
RANGER-5009: `ranger_in_docker` only determines Docker Compose V1 and not Docker Compose V2 (#603)
* RANGER-5009: Added check for presence of Docker compose (V1 or V2)
* RANGER-5009:Changed to docker compose(v2) from docker-compose(v1)
# Conflicts:
# ranger_in_docker
(cherry picked from commit 89d44525d82f0b1650af8af86ca846410f2f0f3c)
---
ranger_in_docker | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/ranger_in_docker b/ranger_in_docker
index 33f4eb6ce..0db00f9aa 100755
--- a/ranger_in_docker
+++ b/ranger_in_docker
@@ -124,11 +124,11 @@ then
exit 1
fi
-docker-compose --version > /dev/null 2>&1
+docker compose --version > /dev/null 2>&1
if [ $? -ne 0 ]
then
- echo "ERROR: You must have a valid DOCKER installed on your system to do a docker build. (error running docker-compose command)"
+ echo "ERROR: You must have a valid DOCKER and Docker Compose V2 installed on your system to do a docker build. (error running docker compose command)"
exit 1
fi
@@ -182,11 +182,11 @@ then
then
cd ${RD_HOME}
- echo "+ docker-compose -f docker-compose.ranger-build.yml down --remove-orphans"
- docker-compose -f docker-compose.ranger-build.yml down --remove-orphans
+ echo "+ docker compose -f docker-compose.ranger-build.yml down --remove-orphans"
+ docker compose -f docker-compose.ranger-build.yml down --remove-orphans
- echo "+ docker-compose -f docker-compose.ranger-build.yml up"
- docker-compose -f docker-compose.ranger-build.yml up
+ echo "+ docker compose -f docker-compose.ranger-build.yml up"
+ docker compose -f docker-compose.ranger-build.yml up
if [ $? -ne 0 ]
then
echo "ERROR: Unable to complete RANGER build using DOCKER. Exiting ...."
@@ -210,7 +210,7 @@ fi
cd ${RD_HOME}
-docker-compose ${OPT} ${DOCKER_ACTION} ${DOCKER_COMPOSE_FLAGS}
+docker compose ${OPT} ${DOCKER_ACTION} ${DOCKER_COMPOSE_FLAGS}
echo
echo "################### LIST OF DOCKER PROCESSES EXPOSING PORTS #####################"
@@ -227,4 +227,4 @@ then
echo
echo "Now, You can run access RANGER portal via http://localhost:6080 (admin/rangerR0cks!)"
echo
-fi
+fi
\ No newline at end of file
(ranger) 05/05: RANGER-5259: Add REST API to delete stale entries of Plugin info (#683)
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit f6a566bcfff7e9ed8f5fa14986dbc716119daea8
Author: PradeeP AgrawaL <pr...@apache.org>
AuthorDate: Fri Oct 3 12:01:17 2025 +0530
RANGER-5259: Add REST API to delete stale entries of Plugin info (#683)
(cherry picked from commit d97fa296951e51c358117d5b710c808735ede9db)
---
.../main/java/org/apache/ranger/biz/AssetMgr.java | 8 +++++
.../java/org/apache/ranger/rest/ServiceREST.java | 42 ++++++++++++++++++++++
.../ranger/security/context/RangerAPIList.java | 1 +
.../ranger/security/context/RangerAPIMapping.java | 1 +
4 files changed, 52 insertions(+)
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
index f1eac0865..a09c64ef3 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
@@ -1023,6 +1023,14 @@ private void doDeleteXXPluginInfo(RangerPluginInfo pluginInfo) {
}
}
+
+ public void doDeleteXXPluginInfo(Long id) {
+ XXPluginInfo xObj = rangerDaoManager.getXXPluginInfo().getById(id);
+ if (xObj != null) {
+ rangerDaoManager.getXXPluginInfo().remove(xObj.getId());
+ }
+ }
+
private String getRemoteAddress(final HttpServletRequest request) {
String ret = null;
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index fbe3463c1..8fe2552cb 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -3969,6 +3969,48 @@ public List<RangerPurgeResult> purgeRecords(@QueryParam("type") String recordTyp
return ret;
}
+ @DELETE
+ @Path("/plugins/info")
+ @Produces("application/json")
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public void deletePluginsInfo(@Context HttpServletRequest request) {
+ LOG.debug("==> ServiceREST.deletePluginsInfo()");
+
+ RangerPluginInfoList ret = null;
+ SearchFilter filter = searchUtil.getSearchFilter(request, pluginInfoService.getSortFields());
+
+ try {
+ PList<RangerPluginInfo> paginatedPluginsInfo = pluginInfoService.searchRangerPluginInfo(filter);
+ if (paginatedPluginsInfo != null) {
+ for (RangerPluginInfo rangerPluginInfo : paginatedPluginsInfo.getList()) {
+ if (rangerPluginInfo != null) {
+ deletePluginsInfo(rangerPluginInfo.getId());
+ LOG.debug("Deleted rangerPluginInfo:[{}]", rangerPluginInfo);
+ }
+ }
+ }
+ } catch (WebApplicationException excp) {
+ throw excp;
+ } catch (Throwable excp) {
+ LOG.error("deletePluginsInfo() failed", excp);
+
+ throw restErrorUtil.createRESTException(excp.getMessage());
+ }
+
+ LOG.debug("<== ServiceREST.deletePluginsInfo()");
+ }
+
+ @DELETE
+ @Path("/plugins/info/{id}")
+ @PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
+ public void deletePluginsInfo(@PathParam("id") Long id) {
+ LOG.debug("==> ServiceREST.deletePluginsInfo({})", id);
+
+ assetMgr.doDeleteXXPluginInfo(id);
+
+ LOG.debug("<== ServiceREST.deletePluginsInfo() - [id={}]", id);
+ }
+
public List<RangerPolicy> getBulkPolicies(@Context HttpServletRequest request) {
LOG.debug("==> ServiceREST.getBulkPolicies()");
diff --git a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
index dad047c93..7c901627b 100644
--- a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
+++ b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
@@ -88,6 +88,7 @@ public class RangerAPIList {
public static final String GET_POLICY_VERSION_LIST = "ServiceREST.getPolicyVersionList";
public static final String GET_POLICY_FOR_VERSION_NO = "ServiceREST.getPolicyForVersionNumber";
public static final String GET_PLUGINS_INFO = "ServiceREST.getPluginsInfo";
+ public static final String DELETE_PLUGINS_INFO = "ServiceREST.deletePluginsInfo";
public static final String GET_METRICS_BY_TYPE = "ServiceREST.getMetricByType";
public static final String DELETE_CLUSTER_SERVICES = "ServiceREST.deleteClusterServices";
diff --git a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
index cbfcabf6e..2558e5246 100644
--- a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
+++ b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
@@ -367,6 +367,7 @@ private void mapAuditWithAPIs() {
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_VERSION_LIST);
apiAssociatedWithAudit.add(RangerAPIList.GET_PLUGINS_INFO);
+ apiAssociatedWithAudit.add(RangerAPIList.DELETE_PLUGINS_INFO);
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE);
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_BY_NAME);
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_DEF);
(ranger) 04/05: RANGER-5352: Resource changes in tag does not work correctly when delta sync & dedup is enabled
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 69487ec0f07dc1168921174ab658d088d562041e
Author: Kishor Gollapalliwar <ki...@gmail.com>
AuthorDate: Tue Sep 30 22:43:11 2025 +0530
RANGER-5352: Resource changes in tag does not work correctly when delta sync & dedup is enabled
(cherry picked from commit 9a79afbc530bc76b1fff1438d4198732dd11345b)
---
pom.xml | 2 +-
security-admin/pom.xml | 13 +
.../java/org/apache/ranger/biz/TagDBStore.java | 14 +-
.../java/org/apache/ranger/biz/TestTagDBStore.java | 752 ++++++++++++++++-----
4 files changed, 603 insertions(+), 178 deletions(-)
diff --git a/pom.xml b/pom.xml
index 10e30a0ee..8aef68777 100644
--- a/pom.xml
+++ b/pom.xml
@@ -167,7 +167,7 @@
<maven.surefire.plugin.version>3.0.0-M6</maven.surefire.plugin.version>
<maven.version.required>3.6.3</maven.version.required>
<metrics.core.version>3.0.2</metrics.core.version>
- <mockito.version>3.0.0</mockito.version>
+ <mockito.version>3.12.4</mockito.version>
<mysql-connector-java.version>5.1.49</mysql-connector-java.version>
<net.minidev.asm.version>1.0.2</net.minidev.asm.version>
<netty-all.version>4.1.124.Final</netty-all.version>
diff --git a/security-admin/pom.xml b/security-admin/pom.xml
index b81c4f0a5..efa2690dd 100644
--- a/security-admin/pom.xml
+++ b/security-admin/pom.xml
@@ -842,6 +842,19 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
+ <version>${mockito.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
+ <version>${mockito.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-junit-jupiter</artifactId>
+ <version>${mockito.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
index 9134e3988..f857a0115 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
@@ -1270,14 +1270,18 @@ private ServiceTags createServiceTagsDelta(List<XXTagChangeLog> changeLogs) thro
}
} finally {
if (tag == null) {
- tag = new RangerTag();
- tag.setId(tagId);
+ if (!isSupportsTagsDedup()) {
+ // Indicating policy engine to remove this TAG
+ tag = new RangerTag();
+ tag.setId(tagId);
+ }
}
}
- RangerServiceTagsDeltaUtil.pruneUnusedAttributes(tag);
-
- ret.getTags().put(tag.getId(), tag);
+ if (tag != null) {
+ RangerServiceTagsDeltaUtil.pruneUnusedAttributes(tag);
+ ret.getTags().put(tag.getId(), tag);
+ }
}
XXTagDefDao tagDefDao = daoManager.getXXTagDef();
diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
index 98459d67b..79f94d8bd 100755
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java
@@ -18,14 +18,17 @@
package org.apache.ranger.biz;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mockStatic;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ws.rs.WebApplicationException;
+import org.apache.ranger.authorization.utils.JsonUtils;
import org.apache.ranger.common.MessageEnums;
import org.apache.ranger.common.RESTErrorUtil;
import org.apache.ranger.common.RangerServiceTagsCache;
@@ -33,6 +36,7 @@
import org.apache.ranger.db.XXServiceDao;
import org.apache.ranger.db.XXServiceResourceDao;
import org.apache.ranger.db.XXServiceVersionInfoDao;
+import org.apache.ranger.db.XXTagChangeLogDao;
import org.apache.ranger.db.XXTagDao;
import org.apache.ranger.db.XXTagDefDao;
import org.apache.ranger.db.XXTagResourceMapDao;
@@ -40,6 +44,8 @@
import org.apache.ranger.entity.XXServiceResource;
import org.apache.ranger.entity.XXServiceVersionInfo;
import org.apache.ranger.entity.XXTag;
+import org.apache.ranger.entity.XXTagChangeLog;
+import org.apache.ranger.entity.XXTagDef;
import org.apache.ranger.entity.XXTagResourceMap;
import org.apache.ranger.plugin.model.RangerServiceDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef;
@@ -63,20 +69,19 @@
import org.apache.ranger.service.RangerTagResourceMapService;
import org.apache.ranger.service.RangerTagService;
import org.apache.ranger.view.RangerServiceResourceWithTagsList;
-import org.junit.Assert;
-import org.junit.FixMethodOrder;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.MethodSorters;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.MockedStatic;
import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
-@RunWith(MockitoJUnitRunner.class)
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+@ExtendWith(MockitoExtension.class)
+@TestMethodOrder(MethodOrderer.MethodName.class)
public class TestTagDBStore {
private final static Long id = 1L;
private final static String name = "test";
@@ -111,9 +116,10 @@ public class TestTagDBStore {
@Mock
ServiceDBStore svcStore;
-
- @Rule
- public ExpectedException thrown = ExpectedException.none();
+ @Mock
+ XXTagDefDao tagDefDao;
+ @Mock
+ XXServiceResourceDao serviceResourceDao;
@Test
public void testCreateTagDef() throws Exception {
@@ -124,9 +130,9 @@ public void testCreateTagDef() throws Exception {
RangerTagDef returnedRangerTagDef = tagDBStore.createTagDef(rangerTagDef);
- Assert.assertNotNull(returnedRangerTagDef);
- Assert.assertEquals(returnedRangerTagDef.getId(), id);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertNotNull(returnedRangerTagDef);
+ Assertions.assertEquals(returnedRangerTagDef.getId(), id);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -138,9 +144,9 @@ public void testUpdateTagDef() throws Exception {
RangerTagDef returnedRangerTagDef = tagDBStore.updateTagDef(rangerTagDef);
- Assert.assertNotNull(returnedRangerTagDef);
- Assert.assertEquals(returnedRangerTagDef.getId(), id);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertNotNull(returnedRangerTagDef);
+ Assertions.assertEquals(returnedRangerTagDef.getId(), id);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -149,9 +155,8 @@ public void testUpdateTagDefWhenItIsNotAvailable() throws Exception {
Mockito.when(rangerTagDefService.read(id)).thenReturn(null).thenReturn(rangerTagDef);
Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
- thrown.expect(WebApplicationException.class);
- tagDBStore.updateTagDef(rangerTagDef);
+ Assertions.assertThrows(WebApplicationException.class, () -> tagDBStore.updateTagDef(rangerTagDef));
}
@Test
@@ -163,9 +168,8 @@ public void testUpdateTagDefForTheSameName() throws Exception {
Mockito.when(rangerTagDefService.read(id)).thenReturn(rangerTagDefInDB);
Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
- thrown.expect(WebApplicationException.class);
- tagDBStore.updateTagDef(rangerTagDef);
+ Assertions.assertThrows(WebApplicationException.class, () -> tagDBStore.updateTagDef(rangerTagDef));
}
@Test
@@ -176,9 +180,9 @@ public void testGetTagDefByName() throws Exception {
RangerTagDef returnedRangerTagDef = tagDBStore.getTagDefByName(rangerTagDef.getName());
- Assert.assertNotNull(returnedRangerTagDef);
- Assert.assertEquals(returnedRangerTagDef.getId(), id);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertNotNull(returnedRangerTagDef);
+ Assertions.assertEquals(returnedRangerTagDef.getId(), id);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -189,10 +193,10 @@ public void testGetTagDefByGuid() throws Exception {
RangerTagDef returnedRangerTagDef = tagDBStore.getTagDefByGuid(rangerTagDef.getGuid());
- Assert.assertNotNull(returnedRangerTagDef);
- Assert.assertEquals(returnedRangerTagDef.getId(), id);
- Assert.assertEquals(returnedRangerTagDef.getGuid(), gId);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertNotNull(returnedRangerTagDef);
+ Assertions.assertEquals(returnedRangerTagDef.getId(), id);
+ Assertions.assertEquals(returnedRangerTagDef.getGuid(), gId);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -203,10 +207,10 @@ public void testGetTagDefById() throws Exception {
RangerTagDef returnedRangerTagDef = tagDBStore.getTagDef(rangerTagDef.getId());
- Assert.assertNotNull(returnedRangerTagDef);
- Assert.assertEquals(returnedRangerTagDef.getId(), id);
- Assert.assertEquals(returnedRangerTagDef.getGuid(), gId);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertNotNull(returnedRangerTagDef);
+ Assertions.assertEquals(returnedRangerTagDef.getId(), id);
+ Assertions.assertEquals(returnedRangerTagDef.getGuid(), gId);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -238,13 +242,13 @@ public void testGetTagDefs() throws Exception {
List<RangerTagDef> rangerTagDefList = tagDBStore.getTagDefs(searchFilter);
- Assert.assertNotNull(rangerTagDefList);
+ Assertions.assertNotNull(rangerTagDefList);
RangerTagDef rangerTagDef = rangerTagDefList.get(0);
- Assert.assertEquals(rangerTagDef.getId(), id);
- Assert.assertEquals(rangerTagDef.getGuid(), gId);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertEquals(rangerTagDef.getId(), id);
+ Assertions.assertEquals(rangerTagDef.getGuid(), gId);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -256,14 +260,14 @@ public void testGetPaginatedTagDefs() throws Exception {
PList<RangerTagDef> returnedRangerTagDefList = tagDBStore.getPaginatedTagDefs(searchFilter);
- Assert.assertNotNull(returnedRangerTagDefList);
+ Assertions.assertNotNull(returnedRangerTagDefList);
RangerTagDef rangerTagDef = returnedRangerTagDefList.getList().get(0);
- Assert.assertEquals(returnedRangerTagDefList.getList().size(), 1);
- Assert.assertEquals(rangerTagDef.getId(), id);
- Assert.assertEquals(rangerTagDef.getGuid(), gId);
- Assert.assertEquals(rangerTagDef.getName(), name);
+ Assertions.assertEquals(returnedRangerTagDefList.getList().size(), 1);
+ Assertions.assertEquals(rangerTagDef.getId(), id);
+ Assertions.assertEquals(rangerTagDef.getGuid(), gId);
+ Assertions.assertEquals(rangerTagDef.getName(), name);
}
@Test
@@ -275,9 +279,9 @@ public void testCreateTag() throws Exception {
RangerTag returnedRangerTag = tagDBStore.createTag(rangerTag);
- Assert.assertNotNull(returnedRangerTag);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTag);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -289,9 +293,9 @@ public void testUpdateTag() throws Exception {
RangerTag returnedRangerTag = tagDBStore.updateTag(rangerTag);
- Assert.assertNotNull(returnedRangerTag);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTag);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -300,9 +304,8 @@ public void testUpdateTagWhenItIsNotAvailable() throws Exception {
Mockito.when(rangerTagService.read(id)).thenReturn(null).thenReturn(rangerTag);
Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
- thrown.expect(WebApplicationException.class);
- tagDBStore.updateTag(rangerTag);
+ Assertions.assertThrows(WebApplicationException.class, () -> tagDBStore.updateTag(rangerTag));
}
@Test
@@ -323,9 +326,9 @@ public void testGetTagById() throws Exception {
RangerTag returnedRangerTag = tagDBStore.getTag(id);
- Assert.assertNotNull(returnedRangerTag);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTag);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -336,9 +339,9 @@ public void testGetTagByGuid() throws Exception {
RangerTag returnedRangerTag = tagDBStore.getTagByGuid(gId);
- Assert.assertNotNull(returnedRangerTag);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTag);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@@ -354,12 +357,12 @@ public void testGetTagsByType() throws Exception {
List<RangerTag> returnedRangerTags = tagDBStore.getTagsByType(type);
- Assert.assertNotNull(returnedRangerTags);
+ Assertions.assertNotNull(returnedRangerTags);
RangerTag returnedRangerTag = returnedRangerTags.get(0);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -373,12 +376,12 @@ public void testGetTagsForResourceId() throws Exception {
List<RangerTag> returnedRangerTags = tagDBStore.getTagsForResourceId(id);
- Assert.assertNotNull(returnedRangerTags);
+ Assertions.assertNotNull(returnedRangerTags);
RangerTag returnedRangerTag = returnedRangerTags.get(0);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -391,12 +394,12 @@ public void testGetTagsForResourceGuid() throws Exception {
List<RangerTag> returnedRangerTags = tagDBStore.getTagsForResourceGuid(gId);
- Assert.assertNotNull(returnedRangerTags);
+ Assertions.assertNotNull(returnedRangerTags);
RangerTag returnedRangerTag = returnedRangerTags.get(0);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -408,12 +411,12 @@ public void testGetTags() throws Exception {
List<RangerTag> returnedRangerTags = tagDBStore.getTags(filter);
- Assert.assertNotNull(returnedRangerTags);
+ Assertions.assertNotNull(returnedRangerTags);
RangerTag returnedRangerTag = returnedRangerTags.get(0);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -425,13 +428,13 @@ public void testGetPaginatedTags() throws Exception {
PList<RangerTag> returnedRangerTagPList = tagDBStore.getPaginatedTags(filter);
- Assert.assertNotNull(returnedRangerTagPList);
- Assert.assertEquals(returnedRangerTagPList.getListSize(), 1);
+ Assertions.assertNotNull(returnedRangerTagPList);
+ Assertions.assertEquals(returnedRangerTagPList.getListSize(), 1);
RangerTag returnedRangerTag = returnedRangerTagPList.getList().get(0);
- Assert.assertEquals(returnedRangerTag.getId(), id);
- Assert.assertEquals(returnedRangerTag.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTag.getId(), id);
+ Assertions.assertEquals(returnedRangerTag.getGuid(), gId);
}
@Test
@@ -450,11 +453,11 @@ public void testCreateServiceResource() throws Exception {
RangerServiceResource returnedRangerServiceResource = tagDBStore.createServiceResource(rangerServiceResource);
- Assert.assertNotNull(returnedRangerServiceResource);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
- Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ Assertions.assertNotNull(returnedRangerServiceResource);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
}
@Test
@@ -466,11 +469,11 @@ public void testUpdateServiceResource() throws Exception {
RangerServiceResource returnedRangerServiceResource = tagDBStore.updateServiceResource(rangerServiceResource);
- Assert.assertNotNull(returnedRangerServiceResource);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
- Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ Assertions.assertNotNull(returnedRangerServiceResource);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
}
@Test
@@ -479,9 +482,8 @@ public void testUpdateServiceResourceWhenItIsNotAvailable() throws Exception {
Mockito.when(rangerServiceResourceService.read(id)).thenReturn(null).thenReturn(rangerServiceResource);
Mockito.when(errorUtil.createRESTException(Mockito.anyString(), Mockito.any(MessageEnums.class))).thenThrow(new WebApplicationException());
- thrown.expect(WebApplicationException.class);
- tagDBStore.updateServiceResource(rangerServiceResource);
+ Assertions.assertThrows(WebApplicationException.class, () -> tagDBStore.updateServiceResource(rangerServiceResource));
}
@Test
@@ -520,11 +522,11 @@ public void tesGetServiceResourceByGuid() throws Exception {
RangerServiceResource returnedRangerServiceResource = tagDBStore.getServiceResourceByGuid(gId);
- Assert.assertNotNull(returnedRangerServiceResource);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
- Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ Assertions.assertNotNull(returnedRangerServiceResource);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
}
@Test
@@ -535,11 +537,11 @@ public void tesGetServiceResourceById() throws Exception {
RangerServiceResource returnedRangerServiceResource = tagDBStore.getServiceResource(id);
- Assert.assertNotNull(returnedRangerServiceResource);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
- Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ Assertions.assertNotNull(returnedRangerServiceResource);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
}
@Test
@@ -557,14 +559,14 @@ public void tesGetServiceResourcesByService() throws Exception {
List<RangerServiceResource> returnedRangerServiceResourceList = tagDBStore.getServiceResourcesByService(serviceName);
- Assert.assertNotNull(returnedRangerServiceResourceList);
+ Assertions.assertNotNull(returnedRangerServiceResourceList);
RangerServiceResource returnedRangerServiceResource = returnedRangerServiceResourceList.get(0);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
- Assert.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getServiceName(), serviceName);
}
@Test
@@ -583,8 +585,8 @@ public void tesGetServiceResourceGuidsByService() throws Exception {
List<String> returnedServiceResourceGuidsInServiceId = tagDBStore.getServiceResourceGuidsByService(serviceName);
- Assert.assertNotNull(returnedServiceResourceGuidsInServiceId);
- Assert.assertEquals(returnedServiceResourceGuidsInServiceId.get(0), gId);
+ Assertions.assertNotNull(returnedServiceResourceGuidsInServiceId);
+ Assertions.assertEquals(returnedServiceResourceGuidsInServiceId.get(0), gId);
}
@Test
@@ -598,10 +600,10 @@ public void tesGetServiceResourceByServiceAndResourceSignature() throws Exceptio
RangerServiceResource returnedRangerServiceResource = tagDBStore.getServiceResourceByServiceAndResourceSignature(serviceName, resourceSignature);
- Assert.assertNotNull(returnedRangerServiceResource);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertNotNull(returnedRangerServiceResource);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
}
@Test
@@ -613,14 +615,14 @@ public void tesGetServiceResources() throws Exception {
List<RangerServiceResource> returnedRangerServiceResourceList = tagDBStore.getServiceResources(searchFilter);
- Assert.assertNotNull(returnedRangerServiceResourceList);
- Assert.assertEquals(returnedRangerServiceResourceList.size(), 1);
+ Assertions.assertNotNull(returnedRangerServiceResourceList);
+ Assertions.assertEquals(returnedRangerServiceResourceList.size(), 1);
RangerServiceResource returnedRangerServiceResource = returnedRangerServiceResourceList.get(0);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
}
@Test
@@ -632,14 +634,14 @@ public void tesGetPaginatedServiceResources() throws Exception {
PList<RangerServiceResource> returnedRangerServiceResourcePList = tagDBStore.getPaginatedServiceResources(searchFilter);
- Assert.assertNotNull(returnedRangerServiceResourcePList);
- Assert.assertEquals(returnedRangerServiceResourcePList.getList().size(), 1);
+ Assertions.assertNotNull(returnedRangerServiceResourcePList);
+ Assertions.assertEquals(returnedRangerServiceResourcePList.getList().size(), 1);
RangerServiceResource returnedRangerServiceResource = returnedRangerServiceResourcePList.getList().get(0);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerServiceResource.getResourceSignature(), resourceSignature);
}
@Test
@@ -659,9 +661,9 @@ public void tesCreateTagResourceMap() throws Exception {
RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.createTagResourceMap(rangerTagResourceMap);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -695,9 +697,9 @@ public void tesGetTagResourceMap() throws Exception {
RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMap(id);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -708,9 +710,9 @@ public void tesGetTagResourceMapByGuid() throws Exception {
RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMapByGuid(gId);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -725,9 +727,9 @@ public void tesGetTagResourceMapsForTagId() throws Exception {
List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForTagId(id);
RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -742,9 +744,9 @@ public void tesGetTagResourceMapsForTagGuid() throws Exception {
List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForTagGuid(gId);
RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -757,9 +759,9 @@ public void tesGetTagIdsForResourceId() throws Exception {
List<Long> returnedTagIdsList = tagDBStore.getTagIdsForResourceId(id);
- Assert.assertNotNull(returnedTagIdsList);
- Assert.assertEquals(returnedTagIdsList.size(), 1);
- Assert.assertEquals(returnedTagIdsList.get(0), id);
+ Assertions.assertNotNull(returnedTagIdsList);
+ Assertions.assertEquals(returnedTagIdsList.size(), 1);
+ Assertions.assertEquals(returnedTagIdsList.get(0), id);
}
@@ -775,9 +777,9 @@ public void testGetTagResourceMapsForResourceId() throws Exception {
List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForResourceId(id);
RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -792,9 +794,9 @@ public void testGetTagResourceMapsForResourceGuid() throws Exception {
List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMapsForResourceGuid(gId);
RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@@ -806,9 +808,9 @@ public void testGetTagResourceMapForTagAndResourceId() throws Exception {
RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMapForTagAndResourceId(id,id);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -819,9 +821,9 @@ public void testGetTagResourceMapForTagAndResourceGuid() throws Exception {
RangerTagResourceMap returnedRangerTagResourceMap = tagDBStore.getTagResourceMapForTagAndResourceGuid(gId,gId);
- Assert.assertNotNull(returnedRangerTagResourceMap);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerTagResourceMap);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -833,13 +835,13 @@ public void testGetPaginatedTagResourceMaps() throws Exception {
PList<RangerTagResourceMap> returnedRangerTagResourceMapPList = tagDBStore.getPaginatedTagResourceMaps(searchFilter);
- Assert.assertNotNull(returnedRangerTagResourceMapPList);
- Assert.assertEquals(returnedRangerTagResourceMapPList.getList().size(), 1);
+ Assertions.assertNotNull(returnedRangerTagResourceMapPList);
+ Assertions.assertEquals(returnedRangerTagResourceMapPList.getList().size(), 1);
RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapPList.getList().get(0);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -851,13 +853,13 @@ public void testGetTagResourceMaps() throws Exception {
List<RangerTagResourceMap> returnedRangerTagResourceMapList = tagDBStore.getTagResourceMaps(searchFilter);
- Assert.assertNotNull(returnedRangerTagResourceMapList);
- Assert.assertEquals(returnedRangerTagResourceMapList.size(), 1);
+ Assertions.assertNotNull(returnedRangerTagResourceMapList);
+ Assertions.assertEquals(returnedRangerTagResourceMapList.size(), 1);
RangerTagResourceMap returnedRangerTagResourceMap = returnedRangerTagResourceMapList.get(0);
- Assert.assertEquals(returnedRangerTagResourceMap.getId(), id);
- Assert.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getId(), id);
+ Assertions.assertEquals(returnedRangerTagResourceMap.getGuid(), gId);
}
@Test
@@ -881,9 +883,9 @@ public void testGetServiceTagsIfUpdated() throws Exception {
ServiceTags serviceTags = tagDBStore.getServiceTagsIfUpdated(serviceName, -1L, true);
- Assert.assertNotNull(serviceTags);
- Assert.assertEquals(serviceTags.getTagVersion(), lastKnownVersion);
- Assert.assertEquals(serviceTags.getServiceName(), serviceName);
+ Assertions.assertNotNull(serviceTags);
+ Assertions.assertEquals(serviceTags.getTagVersion(), lastKnownVersion);
+ Assertions.assertEquals(serviceTags.getServiceName(), serviceName);
}
@Test
@@ -906,9 +908,9 @@ public void testGetServiceTags() throws Exception {
ServiceTags serviceTags = tagDBStore.getServiceTags(serviceName, -1L);
- Assert.assertNotNull(serviceTags);
- Assert.assertEquals(serviceTags.getTagVersion(), lastKnownVersion);
- Assert.assertEquals(serviceTags.getServiceName(), serviceName);
+ Assertions.assertNotNull(serviceTags);
+ Assertions.assertEquals(serviceTags.getTagVersion(), lastKnownVersion);
+ Assertions.assertEquals(serviceTags.getServiceName(), serviceName);
}
@Test
@@ -950,21 +952,21 @@ public void testDeleteAllTagObjectsForService() throws Exception {
public void testGetServiceTagsDeltaWhenTagDeltaSupportsDisabled() throws Exception {
ServiceTags serviceTags = tagDBStore.getServiceTagsDelta(serviceName, lastKnownVersion);
- Assert.assertNull(serviceTags);
+ Assertions.assertNull(serviceTags);
}
@Test
public void testIsSupportsTagDeltas() throws Exception {
boolean isSupportsTagDeltas = tagDBStore.isSupportsTagDeltas();
- Assert.assertFalse(isSupportsTagDeltas);
+ Assertions.assertFalse(isSupportsTagDeltas);
}
@Test
public void testIsInPlaceTagUpdateSupported() throws Exception {
boolean isInPlaceTagUpdateSupported = tagDBStore.isInPlaceTagUpdateSupported();
- Assert.assertFalse(isInPlaceTagUpdateSupported);
+ Assertions.assertFalse(isInPlaceTagUpdateSupported);
}
@Test
@@ -977,9 +979,415 @@ public void testGetTagVersion() throws Exception {
Long tagVersion = tagDBStore.getTagVersion(serviceName);
- Assert.assertEquals(tagVersion, lastKnownVersion);
+ Assertions.assertEquals(tagVersion, lastKnownVersion);
+ }
+
+ /**
+ * Pre:
+ * New tag created: this event will not trigger a policy download, as it will not increment policy version.
+ *
+ * Current:
+ * Associate Resource: associate first resource. This event will trigger a version change. Total resources associated with Tag are before 0, after 1.
+ *
+ * Below method covers one delta case, when a new TAG (no resources) is associated with first resource (eg, hive table)
+ */
+ @Test
+ public void testGetServiceTagsDeltaWhenTagDeltaAndDedupEnabledAdditionOfFirstResource() throws Exception {
+ try (MockedStatic<TagDBStore> mockedTagDBStore = mockStatic(TagDBStore.class); MockedStatic<JsonUtils> mockedJsonUtil = mockStatic(JsonUtils.class)) {
+ final Long tagId = 4L;
+ final Long tagTypeId = 2L;
+ final String tagTypeName = "ranger_atlas_tag1";
+ final String tagSource = "Atlas";
+ final String serviceName = "HIVE_SERVICE";
+ final Long serviceId = 6L;
+ final Long resourceId = 4L;
+ final Long serviceTagVersion = 8L;
+
+ /*
+ * Given
+ */
+ TagDBStore tagDBStoreSpy = Mockito.spy(tagDBStore);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXTagChangeLogDao xxTagChangeLogDao = Mockito.mock(XXTagChangeLogDao.class);
+ XXTagDao tagDao = Mockito.mock(XXTagDao.class);
+ XXTag xTag = createXXTag(tagId, 1L, tagTypeId);
+ RangerTag rangerTag = new RangerTag("6e248648-739a-434a-9c42-a74c8277638d", tagTypeName, Collections.emptyMap(), (short) 0);
+ XXTagDef xxTagDef = createXXTagDef(tagTypeId, 1L, tagTypeName);
+ RangerTagDef rangerTagDef = new RangerTagDef(tagTypeName, tagSource);
+ XXServiceResource xServiceResource = createXXServiceResource(resourceId, "8fa22999-06a4-4d5e-83e7-dc9872082dbc", 2L, serviceId);
+ RangerServiceResource rangerServiceResource = new RangerServiceResource("8fa22999-06a4-4d5e-83e7-dc9872082dbc", serviceName, Collections.emptyMap());
+ List<XXTagChangeLog> changeLogRecords = Collections.singletonList(new XXTagChangeLog(43L, 3, serviceTagVersion, resourceId, tagId));
+
+ rangerTag.setId(tagId);
+ rangerTagDef.setId(tagTypeId);
+ xServiceResource.setTags(tagTypeName);
+ rangerServiceResource.setId(resourceId);
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(daoManager.getXXTagChangeLog()).thenReturn(xxTagChangeLogDao);
+ Mockito.when(xxTagChangeLogDao.findLaterThan(Mockito.anyLong(), Mockito.anyLong())).thenReturn(changeLogRecords);
+ Mockito.when(daoManager.getXXTag()).thenReturn(tagDao);
+ Mockito.when(tagDao.getById(Mockito.anyLong())).thenReturn(xTag);
+ Mockito.when(rangerTagService.getPopulatedViewObject(Mockito.any())).thenReturn(rangerTag);
+
+ mockedTagDBStore.when(TagDBStore::isSupportsTagsDedup).thenReturn(true);
+ mockedTagDBStore.when(TagDBStore::isSupportsTagDeltas).thenReturn(true);
+ mockedJsonUtil.when(() -> JsonUtils.jsonToObject(Mockito.anyString(), Mockito.any(RangerServiceResourceService.duplicatedDataType.getClass()))).thenReturn(Collections.singletonList(rangerTag));
+
+ Mockito.when(daoManager.getXXTagDef()).thenReturn(tagDefDao);
+ Mockito.when(tagDefDao.findByName(tagTypeName)).thenReturn(xxTagDef);
+ Mockito.when(rangerTagDefService.getPopulatedViewObject(Mockito.any())).thenReturn(rangerTagDef);
+
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(serviceResourceDao);
+ Mockito.when(serviceResourceDao.getById(Mockito.anyLong())).thenReturn(xServiceResource);
+ Mockito.when(rangerServiceResourceService.getPopulatedViewObject(Mockito.any())).thenReturn(rangerServiceResource);
+
+ /*
+ * When
+ */
+ ServiceTags serviceTags = tagDBStoreSpy.getServiceTagsDelta(serviceName, (serviceTagVersion - 1));
+
+ /*
+ * Then
+ */
+ Assertions.assertEquals("add_or_update", serviceTags.getOp());
+ Assertions.assertEquals(serviceName, serviceTags.getServiceName());
+ Assertions.assertEquals(serviceTagVersion, serviceTags.getTagVersion());
+ Assertions.assertTrue(serviceTags.getIsDelta());
+ Assertions.assertTrue(serviceTags.getIsTagsDeduped());
+ Assertions.assertEquals(ServiceTags.TagsChangeExtent.SERVICE_RESOURCE, serviceTags.getTagsChangeExtent());
+
+ // tagDefinitions
+ Assertions.assertEquals(1, serviceTags.getTagDefinitions().size());
+ Assertions.assertEquals(tagTypeId, serviceTags.getTagDefinitions().get(tagTypeId).getId());
+ Assertions.assertTrue(serviceTags.getTagDefinitions().get(tagTypeId).getIsEnabled());
+ Assertions.assertEquals(tagTypeName, serviceTags.getTagDefinitions().get(tagTypeId).getName());
+ Assertions.assertEquals(tagSource, serviceTags.getTagDefinitions().get(tagTypeId).getSource());
+
+ // tags
+ Assertions.assertEquals(1, serviceTags.getTags().size());
+ Assertions.assertEquals(tagId, serviceTags.getTags().get(tagId).getId());
+ Assertions.assertTrue(serviceTags.getTags().get(tagId).getIsEnabled());
+ Assertions.assertEquals(tagTypeName, serviceTags.getTags().get(tagId).getType());
+
+ // serviceResources
+ Assertions.assertEquals(1, serviceTags.getServiceResources().size());
+ Assertions.assertEquals(resourceId, serviceTags.getServiceResources().get(0).getId());
+ Assertions.assertTrue(serviceTags.getServiceResources().get(0).getIsEnabled());
+ Assertions.assertEquals(serviceName, serviceTags.getServiceResources().get(0).getServiceName());
+
+ // resourceToTagIds
+ Assertions.assertEquals(1, serviceTags.getResourceToTagIds().size());
+ Assertions.assertEquals(resourceId, serviceTags.getResourceToTagIds().get(serviceTags.getServiceResources().get(0).getId()).get(0));
+ }
+ }
+
+ /**
+ * Pre:
+ * New tag created: this event will not trigger a policy download, as it will not increment policy version
+ * Associate Resource: associate first resource.
+ *
+ * Current:
+ * Associate Resource: associate second resource. This event will trigger a version change. Total resources associated with Tag are before 1, after 2.
+ *
+ * Below method covers one delta case, when a TAG (with 1 resource) is associated with second resource (eg, hive table)
+ */
+ @Test
+ public void testGetServiceTagsDeltaWhenTagDeltaAndDedupEnabledAdditionOfSecondResource() throws Exception {
+ try (MockedStatic<TagDBStore> mockedTagDBStore = mockStatic(TagDBStore.class); MockedStatic<JsonUtils> mockedJsonUtil = mockStatic(JsonUtils.class)) {
+ final Long tagId = 5L;
+ final Long tagTypeId = 2L;
+ final String tagTypeName = "ranger_atlas_tag1";
+ final String tagSource = "Atlas";
+ final String serviceName = "HIVE_SERVICE";
+ final Long serviceId = 6L;
+ final Long resourceId = 5L;
+ final Long serviceTagVersion = 9L;
+
+ /*
+ * Given
+ */
+ TagDBStore tagDBStoreSpy = Mockito.spy(tagDBStore);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXTagChangeLogDao xxTagChangeLogDao = Mockito.mock(XXTagChangeLogDao.class);
+ XXTagDao tagDao = Mockito.mock(XXTagDao.class);
+ XXTag xTag = createXXTag(tagId, 1L, tagTypeId);
+ RangerTag rangerTag = new RangerTag("ef2401cb-f723-4663-a19e-51363efe71ea", tagTypeName, Collections.emptyMap(), (short) 0);
+ XXTagDef xxTagDef = createXXTagDef(tagTypeId, 1L, tagTypeName);
+ RangerTagDef rangerTagDef = new RangerTagDef(tagTypeName, tagSource);
+ XXServiceResource xServiceResource = createXXServiceResource(resourceId, "b6ef4baa-f38e-49ce-bac3-3b2243641d8a", 2L, serviceId);
+ RangerServiceResource rangerServiceResource = new RangerServiceResource("b6ef4baa-f38e-49ce-bac3-3b2243641d8a", serviceName, Collections.emptyMap());
+ List<XXTagChangeLog> changeLogRecords = Collections.singletonList(new XXTagChangeLog(44L, 3, serviceTagVersion, resourceId, tagId));
+
+ rangerTag.setId(tagId);
+ rangerTagDef.setId(tagTypeId);
+ xServiceResource.setTags(tagTypeName);
+ rangerServiceResource.setId(resourceId);
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(daoManager.getXXTagChangeLog()).thenReturn(xxTagChangeLogDao);
+ Mockito.when(xxTagChangeLogDao.findLaterThan(Mockito.anyLong(), Mockito.anyLong())).thenReturn(changeLogRecords);
+ Mockito.when(daoManager.getXXTag()).thenReturn(tagDao);
+ Mockito.when(tagDao.getById(Mockito.anyLong())).thenReturn(xTag);
+ Mockito.when(rangerTagService.getPopulatedViewObject(Mockito.any())).thenReturn(rangerTag);
+
+ mockedTagDBStore.when(TagDBStore::isSupportsTagsDedup).thenReturn(true);
+ mockedTagDBStore.when(TagDBStore::isSupportsTagDeltas).thenReturn(true);
+ mockedJsonUtil.when(() -> JsonUtils.jsonToObject(Mockito.anyString(), Mockito.any(RangerServiceResourceService.duplicatedDataType.getClass()))).thenReturn(Collections.singletonList(rangerTag));
+
+ Mockito.when(daoManager.getXXTagDef()).thenReturn(tagDefDao);
+ Mockito.when(tagDefDao.findByName(tagTypeName)).thenReturn(xxTagDef);
+ Mockito.when(rangerTagDefService.getPopulatedViewObject(Mockito.any())).thenReturn(rangerTagDef);
+
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(serviceResourceDao);
+ Mockito.when(serviceResourceDao.getById(Mockito.anyLong())).thenReturn(xServiceResource);
+ Mockito.when(rangerServiceResourceService.getPopulatedViewObject(Mockito.any())).thenReturn(rangerServiceResource);
+
+ /*
+ * When
+ */
+ ServiceTags serviceTags = tagDBStoreSpy.getServiceTagsDelta(serviceName, (serviceTagVersion - 1));
+
+ /*
+ * Then
+ */
+ Assertions.assertEquals("add_or_update", serviceTags.getOp());
+ Assertions.assertEquals(serviceName, serviceTags.getServiceName());
+ Assertions.assertEquals(serviceTagVersion, serviceTags.getTagVersion());
+ Assertions.assertTrue(serviceTags.getIsDelta());
+ Assertions.assertTrue(serviceTags.getIsTagsDeduped());
+ Assertions.assertEquals(ServiceTags.TagsChangeExtent.SERVICE_RESOURCE, serviceTags.getTagsChangeExtent());
+
+ // tagDefinitions
+ Assertions.assertEquals(1, serviceTags.getTagDefinitions().size());
+ Assertions.assertEquals(tagTypeId, serviceTags.getTagDefinitions().get(tagTypeId).getId());
+ Assertions.assertTrue(serviceTags.getTagDefinitions().get(tagTypeId).getIsEnabled());
+ Assertions.assertEquals(tagTypeName, serviceTags.getTagDefinitions().get(tagTypeId).getName());
+ Assertions.assertEquals(tagSource, serviceTags.getTagDefinitions().get(tagTypeId).getSource());
+
+ // tags
+ Assertions.assertEquals(1, serviceTags.getTags().size());
+ Assertions.assertEquals(tagId, serviceTags.getTags().get(tagId).getId());
+ Assertions.assertTrue(serviceTags.getTags().get(tagId).getIsEnabled());
+ Assertions.assertEquals(tagTypeName, serviceTags.getTags().get(tagId).getType());
+
+ // serviceResources
+ Assertions.assertEquals(1, serviceTags.getServiceResources().size());
+ Assertions.assertEquals(resourceId, serviceTags.getServiceResources().get(0).getId());
+ Assertions.assertTrue(serviceTags.getServiceResources().get(0).getIsEnabled());
+ Assertions.assertEquals(serviceName, serviceTags.getServiceResources().get(0).getServiceName());
+
+ // resourceToTagIds
+ Assertions.assertEquals(1, serviceTags.getResourceToTagIds().size());
+ Assertions.assertEquals(resourceId, serviceTags.getResourceToTagIds().get(serviceTags.getServiceResources().get(0).getId()).get(0));
+ }
+ }
+
+ /**
+ * Pre:
+ * New tag created: this event will not trigger a policy download, as it will not increment policy version
+ * Associate Resource: associate first resource.
+ * Associate Resource: associate second resource.
+ *
+ * Current:
+ * De-associate resource: de-associate first resource. This event will trigger a version change. Total resources associated with Tag are before 2, after 1.
+ *
+ * Below method covers one delta case, when a TAG (with 2 resource) is de-associated with first resource (eg, hive table)
+ */
+ @Test
+ public void testGetServiceTagsDeltaWhenTagDeltaAndDedupEnabledRemovalOfFirstResource() throws Exception {
+ try (MockedStatic<TagDBStore> mockedTagDBStore = mockStatic(TagDBStore.class); MockedStatic<JsonUtils> mockedJsonUtil = mockStatic(JsonUtils.class)) {
+ final Long tagId = 4L;
+ final Long tagTypeId = 2L;
+ final String tagTypeName = "ranger_atlas_tag1";
+ final String tagSource = "Atlas";
+ final String serviceName = "HIVE_SERVICE";
+ final Long serviceId = 6L;
+ final Long resourceId = 4L;
+ final Long serviceTagVersion = 10L;
+
+ /*
+ * Given
+ */
+ TagDBStore tagDBStoreSpy = Mockito.spy(tagDBStore);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXTagChangeLogDao xxTagChangeLogDao = Mockito.mock(XXTagChangeLogDao.class);
+ XXTagDao tagDao = Mockito.mock(XXTagDao.class);
+ RangerTag rangerTag = new RangerTag("6e248648-739a-434a-9c42-a74c8277638d", tagTypeName, Collections.emptyMap(), (short) 0);
+ RangerTagDef rangerTagDef = new RangerTagDef(tagTypeName, tagSource);
+ XXServiceResource xServiceResource = createXXServiceResource(resourceId, "8fa22999-06a4-4d5e-83e7-dc9872082dbc", 2L, serviceId);
+ RangerServiceResource rangerServiceResource = new RangerServiceResource("8fa22999-06a4-4d5e-83e7-dc9872082dbc", serviceName, Collections.emptyMap());
+ List<XXTagChangeLog> changeLogRecords = Collections.singletonList(new XXTagChangeLog(45L, 3, serviceTagVersion, resourceId, tagId));
+
+ rangerTag.setId(tagId);
+ rangerTagDef.setId(tagTypeId);
+ xServiceResource.setTags(tagTypeName);
+ rangerServiceResource.setId(resourceId);
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(daoManager.getXXTagChangeLog()).thenReturn(xxTagChangeLogDao);
+ Mockito.when(xxTagChangeLogDao.findLaterThan(Mockito.anyLong(), Mockito.anyLong())).thenReturn(changeLogRecords);
+ Mockito.when(daoManager.getXXTag()).thenReturn(tagDao);
+
+ mockedTagDBStore.when(TagDBStore::isSupportsTagsDedup).thenReturn(true);
+ mockedTagDBStore.when(TagDBStore::isSupportsTagDeltas).thenReturn(true);
+ mockedJsonUtil.when(() -> JsonUtils.jsonToObject(Mockito.anyString(), Mockito.any(RangerServiceResourceService.duplicatedDataType.getClass()))).thenReturn(Collections.singletonList(rangerTag));
+
+ Mockito.when(daoManager.getXXTagDef()).thenReturn(tagDefDao);
+
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(serviceResourceDao);
+
+ /*
+ * When
+ */
+ ServiceTags serviceTags = tagDBStoreSpy.getServiceTagsDelta(serviceName, (serviceTagVersion - 1));
+
+ /*
+ * Then
+ */
+ Assertions.assertEquals("add_or_update", serviceTags.getOp());
+ Assertions.assertEquals(serviceName, serviceTags.getServiceName());
+ Assertions.assertEquals(serviceTagVersion, serviceTags.getTagVersion());
+ Assertions.assertTrue(serviceTags.getIsDelta());
+ Assertions.assertTrue(serviceTags.getIsTagsDeduped());
+ Assertions.assertEquals(ServiceTags.TagsChangeExtent.SERVICE_RESOURCE, serviceTags.getTagsChangeExtent());
+
+ // tagDefinitions
+ Assertions.assertEquals(0, serviceTags.getTagDefinitions().size());
+
+ // tags
+ Assertions.assertEquals(0, serviceTags.getTags().size());
+
+ // serviceResources
+ Assertions.assertEquals(1, serviceTags.getServiceResources().size());
+ Assertions.assertEquals(resourceId, serviceTags.getServiceResources().get(0).getId());
+ Assertions.assertTrue(serviceTags.getServiceResources().get(0).getIsEnabled());
+
+ // resourceToTagIds
+ Assertions.assertEquals(0, serviceTags.getResourceToTagIds().size());
+ }
+ }
+
+ /**
+ * Pre:
+ * New tag created: this event will not trigger a policy download, as it will not increment policy version
+ * Associate Resource: associate first resource.
+ * Associate Resource: associate second resource.
+ * De-associate resource: de-associate first resource.
+ *
+ * Current:
+ * De-associate resource: de-associate second resource. This event will trigger a version change. Total resources associated with Tag are before 1, after 0.
+ *
+ * Below method covers one delta case, when a TAG (with 1 resource) is de-associated with second/ last resource (eg, hive table)
+ */
+ @Test
+ public void testGetServiceTagsDeltaWhenTagDeltaAndDedupEnabledRemovalOfSecondResource() throws Exception {
+ try (MockedStatic<TagDBStore> mockedTagDBStore = mockStatic(TagDBStore.class); MockedStatic<JsonUtils> mockedJsonUtil = mockStatic(JsonUtils.class)) {
+ final Long tagId = 5L;
+ final Long tagTypeId = 2L;
+ final String tagTypeName = "ranger_atlas_tag1";
+ final String tagSource = "Atlas";
+ final String serviceName = "HIVE_SERVICE";
+ final Long serviceId = 6L;
+ final Long resourceId = 5L;
+ final Long serviceTagVersion = 11L;
+
+ /*
+ * Given
+ */
+ TagDBStore tagDBStoreSpy = Mockito.spy(tagDBStore);
+ XXServiceDao xxServiceDao = Mockito.mock(XXServiceDao.class);
+ XXTagChangeLogDao xxTagChangeLogDao = Mockito.mock(XXTagChangeLogDao.class);
+ XXTagDao tagDao = Mockito.mock(XXTagDao.class);
+ RangerTag rangerTag = new RangerTag("6e248648-739a-434a-9c42-a74c8277638d", tagTypeName, Collections.emptyMap(), (short) 0);
+ RangerTagDef rangerTagDef = new RangerTagDef(tagTypeName, tagSource);
+ XXServiceResource xServiceResource = createXXServiceResource(resourceId, "b6ef4baa-f38e-49ce-bac3-3b2243641d8a", 2L, serviceId);
+ RangerServiceResource rangerServiceResource = new RangerServiceResource("b6ef4baa-f38e-49ce-bac3-3b2243641d8a", serviceName, Collections.emptyMap());
+ List<XXTagChangeLog> changeLogRecords = Collections.singletonList(new XXTagChangeLog(46L, 3, serviceTagVersion, resourceId, tagId));
+
+ rangerTag.setId(tagId);
+ rangerTagDef.setId(tagTypeId);
+ xServiceResource.setTags(tagTypeName);
+ rangerServiceResource.setId(resourceId);
+
+ Mockito.when(daoManager.getXXService()).thenReturn(xxServiceDao);
+ Mockito.when(daoManager.getXXTagChangeLog()).thenReturn(xxTagChangeLogDao);
+ Mockito.when(xxTagChangeLogDao.findLaterThan(Mockito.anyLong(), Mockito.anyLong())).thenReturn(changeLogRecords);
+ Mockito.when(daoManager.getXXTag()).thenReturn(tagDao);
+
+ mockedTagDBStore.when(TagDBStore::isSupportsTagsDedup).thenReturn(true);
+ mockedTagDBStore.when(TagDBStore::isSupportsTagDeltas).thenReturn(true);
+ mockedJsonUtil.when(() -> JsonUtils.jsonToObject(Mockito.anyString(), Mockito.any(RangerServiceResourceService.duplicatedDataType.getClass()))).thenReturn(Collections.singletonList(rangerTag));
+
+ Mockito.when(daoManager.getXXTagDef()).thenReturn(tagDefDao);
+
+ Mockito.when(daoManager.getXXServiceResource()).thenReturn(serviceResourceDao);
+
+ /*
+ * When
+ */
+ ServiceTags serviceTags = tagDBStoreSpy.getServiceTagsDelta(serviceName, (serviceTagVersion - 1));
+
+ /*
+ * Then
+ */
+ Assertions.assertEquals("add_or_update", serviceTags.getOp());
+ Assertions.assertEquals(serviceName, serviceTags.getServiceName());
+ Assertions.assertEquals(serviceTagVersion, serviceTags.getTagVersion());
+ Assertions.assertTrue(serviceTags.getIsDelta());
+ Assertions.assertTrue(serviceTags.getIsTagsDeduped());
+ Assertions.assertEquals(ServiceTags.TagsChangeExtent.SERVICE_RESOURCE, serviceTags.getTagsChangeExtent());
+
+ // tagDefinitions
+ Assertions.assertEquals(0, serviceTags.getTagDefinitions().size());
+
+ // tags
+ Assertions.assertEquals(0, serviceTags.getTags().size());
+
+ // serviceResources
+ Assertions.assertEquals(1, serviceTags.getServiceResources().size());
+ Assertions.assertEquals(resourceId, serviceTags.getServiceResources().get(0).getId());
+ Assertions.assertTrue(serviceTags.getServiceResources().get(0).getIsEnabled());
+
+ // resourceToTagIds
+ Assertions.assertEquals(0, serviceTags.getResourceToTagIds().size());
+ }
+ }
+
+ private XXServiceResource createXXServiceResource(Long id, String gId, Long lastKnownVersion, Long serviceId) {
+ XXServiceResource xxServiceResource = new XXServiceResource();
+
+ xxServiceResource.setId(id);
+ xxServiceResource.setCreateTime(new Date());
+ xxServiceResource.setGuid(gId);
+ xxServiceResource.setVersion(lastKnownVersion);
+ xxServiceResource.setResourceSignature(resourceSignature);
+ xxServiceResource.setServiceId(serviceId);
+
+ return xxServiceResource;
+ }
+
+ private XXTagDef createXXTagDef(Long id, Long version, String name) {
+ XXTagDef ret = new XXTagDef();
+ ret.setId(id);
+ ret.setVersion(version);
+ ret.setGuid("6bd466f5-1ad0-428f-8a87-b89b4f21cc65");
+ ret.setName(name);
+ ret.setIsEnabled(true);
+
+ return ret;
}
+ private XXTag createXXTag(Long id, Long version, Long type) {
+ XXTag xxTag = new XXTag();
+ xxTag.setId(id);
+ xxTag.setVersion(version);
+ xxTag.setType(type);
+
+ return xxTag;
+ }
+
+
private RangerTagDef createRangerTagDef() {
RangerTagDef rangerTagDef = new RangerTagDef();
@@ -1204,15 +1612,15 @@ public void tesGetPaginatedServiceResourcesWithTags() throws Exception {
RangerServiceResourceWithTagsList returnedRangerServiceResourcePList = tagDBStore.getPaginatedServiceResourcesWithTags(searchFilter);
- Assert.assertNotNull(returnedRangerServiceResourcePList);
- Assert.assertEquals(returnedRangerServiceResourcePList.getList().size(), 1);
+ Assertions.assertNotNull(returnedRangerServiceResourcePList);
+ Assertions.assertEquals(returnedRangerServiceResourcePList.getList().size(), 1);
RangerServiceResourceWithTags returnedRangerServiceResource = returnedRangerServiceResourcePList.getResourceList().get(0);
- Assert.assertEquals(returnedRangerServiceResource.getId(), id);
- Assert.assertEquals(returnedRangerServiceResource.getGuid(), gId);
- Assert.assertNotNull(returnedRangerServiceResource.getAssociatedTags());
- Assert.assertEquals(rangerServiceResourceViewList.getResourceList().get(0).getAssociatedTags().size(), returnedRangerServiceResource.getAssociatedTags().size());
+ Assertions.assertEquals(returnedRangerServiceResource.getId(), id);
+ Assertions.assertEquals(returnedRangerServiceResource.getGuid(), gId);
+ Assertions.assertNotNull(returnedRangerServiceResource.getAssociatedTags());
+ Assertions.assertEquals(rangerServiceResourceViewList.getResourceList().get(0).getAssociatedTags().size(), returnedRangerServiceResource.getAssociatedTags().size());
}
private RangerServiceResourceWithTagsList createRangerServiceResourceWithTagsViewList() {
@@ -1257,6 +1665,6 @@ public void testToRangerServiceResource() {
RangerServiceResource expectedResource = new RangerServiceResource(serviceName, resourceElements);
RangerServiceResource actualResource = tagDBStore.toRangerServiceResource(serviceName, resourceMap);
- Assert.assertEquals(expectedResource.getResourceElements(), actualResource.getResourceElements());
+ Assertions.assertEquals(expectedResource.getResourceElements(), actualResource.getResourceElements());
}
-}
\ No newline at end of file
+}
(ranger) 03/05: RANGER-5294: FileUtils.isOwnerOfFileHierarchy doesn’t have the recurse parameter
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 11ebb1c7839742bd79c3e5621796c3e6bfe2fd83
Author: Mahesh Bandal <ma...@apache.org>
AuthorDate: Tue Sep 9 21:49:09 2025 +0530
RANGER-5294: FileUtils.isOwnerOfFileHierarchy doesn’t have the recurse parameter
(cherry picked from commit bc9b02972b349e5624db0fc8832a6703d890a8f9)
---
.../authorization/hive/authorizer/RangerHiveAuthorizer.java | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java b/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
index ca6edf5b2..a28855438 100644
--- a/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
+++ b/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
@@ -96,6 +96,8 @@ public class RangerHiveAuthorizer extends RangerHiveAuthorizerBase {
private static final Logger LOG = LoggerFactory.getLogger(RangerHiveAuthorizer.class);
private static final Logger PERF_HIVEAUTH_REQUEST_LOG = RangerPerfTracer.getPerfLogger("hiveauth.request");
+ private static final Logger PERF_HIVEAUTH_COARSEURI_LOG = RangerPerfTracer.getPerfLogger("hiveauth.coarsecheck");
+
private static final char COLUMN_SEP = ',';
@@ -2187,6 +2189,11 @@ private boolean isURIAccessAllowed(String userName, FsAction action, Path filePa
boolean ret = false;
boolean recurse = !coarseCheck;
+ RangerPerfTracer perf = null;
+ if (RangerPerfTracer.isPerfTraceEnabled(PERF_HIVEAUTH_COARSEURI_LOG)) {
+ perf = RangerPerfTracer.getPerfTracer(PERF_HIVEAUTH_COARSEURI_LOG, "RangerHiveAuthorizer.isURIAccessAllowed(userName=" + userName + " filePath=" + filePath + " coarseCheck=" + coarseCheck + ")");
+ }
+
if(action == FsAction.NONE) {
ret = true;
} else {
@@ -2197,7 +2204,7 @@ private boolean isURIAccessAllowed(String userName, FsAction action, Path filePa
boolean isDenied = false;
for(FileStatus file : filestat) {
- if (FileUtils.isOwnerOfFileHierarchy(fs, file, userName) ||
+ if (FileUtils.isOwnerOfFileHierarchy(fs, file, userName, recurse) ||
FileUtils.isActionPermittedForFileHierarchy(fs, file, userName, action, recurse)) {
continue;
} else {
@@ -2218,6 +2225,7 @@ private boolean isURIAccessAllowed(String userName, FsAction action, Path filePa
}
}
+ RangerPerfTracer.log(perf);
return ret;
}