This is an automated email from the ASF dual-hosted git repository.
nikhil pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 184c9b7 RANGER-2445 : Import of Tagservice for zone
184c9b7 is described below
commit 184c9b74f9999daeed51f5240ce1d47d3829283b
Author: Nikhil P <[email protected]>
AuthorDate: Mon May 27 12:12:02 2019 +0530
RANGER-2445 : Import of Tagservice for zone
---
.../ranger/db/XXSecurityZoneRefTagServiceDao.java | 13 +++++++++++++
.../java/org/apache/ranger/rest/ServiceREST.java | 5 ++++-
.../main/resources/META-INF/jpa_named_queries.xml | 6 ++++++
.../main/webapp/scripts/views/UploadServicePolicy.js | 20 ++++++++++++++++++++
.../java/org/apache/ranger/rest/TestServiceREST.java | 16 ++++++++++++++--
5 files changed, 57 insertions(+), 3 deletions(-)
diff --git
a/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
b/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
index 8006272..c30dba1 100644
---
a/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
+++
b/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
@@ -18,6 +18,7 @@
*/
package org.apache.ranger.db;
+import java.util.Collections;
import java.util.List;
import javax.persistence.NoResultException;
@@ -45,4 +46,16 @@ public class XXSecurityZoneRefTagServiceDao extends
BaseDao<XXSecurityZoneRefTag
return null;
}
}
+
+ public List<XXSecurityZoneRefTagService>
findByTagServiceNameAndZoneId(String tagServiceName, Long zoneId) {
+ if (tagServiceName == null) {
+ return Collections.emptyList();
+ }
+ try {
+ return
getEntityManager().createNamedQuery("XXSecurityZoneRefTagService.findByTagServiceNameAndZoneId",
tClass)
+ .setParameter("tagServiceName",
tagServiceName).setParameter("zoneId", zoneId).getResultList();
+ } catch (NoResultException e) {
+ return Collections.emptyList();
+ }
+ }
}
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 0e7cd8f..b5caea8 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
@@ -83,6 +83,7 @@ import org.apache.ranger.db.XXGroupUserDao;
import org.apache.ranger.entity.XXPolicyExportAudit;
import org.apache.ranger.entity.XXSecurityZone;
import org.apache.ranger.entity.XXSecurityZoneRefService;
+import org.apache.ranger.entity.XXSecurityZoneRefTagService;
import org.apache.ranger.entity.XXService;
import org.apache.ranger.entity.XXServiceDef;
import org.apache.ranger.entity.XXTrxLog;
@@ -2403,8 +2404,10 @@ public class ServiceREST {
}
List<XXSecurityZoneRefService> serviceZoneMapping =
daoManager.getXXSecurityZoneRefService()
.findByServiceNameAndZoneId(serviceNameToCheck,
xdestZone.getId());
+ List<XXSecurityZoneRefTagService> tagServiceZoneMapping =
daoManager.getXXSecurityZoneRefTagService()
+
.findByTagServiceNameAndZoneId(serviceNameToCheck, xdestZone.getId());
- if (!CollectionUtils.isEmpty(serviceZoneMapping)) {
+ if (!CollectionUtils.isEmpty(serviceZoneMapping) ||
!CollectionUtils.isEmpty(tagServiceZoneMapping)) {
isZoneServiceExistAtDestination = true;
}
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index e4647b1..2fa12f9 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -1380,6 +1380,12 @@
</query>
</named-query>
+ <named-query
name="XXSecurityZoneRefTagService.findByTagServiceNameAndZoneId">
+ <query>
+ select obj from XXSecurityZoneRefTagService obj where
obj.tagServiceName = :tagServiceName and obj.zoneId = :zoneId
+ </query>
+ </named-query>
+
<named-query name="XXSecurityZoneRefUser.findByZoneId">
<query>
select obj from XXSecurityZoneRefUser obj where obj.zoneId =
:zoneId
diff --git
a/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
b/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
index 94362bf..7371c2b 100644
--- a/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
+++ b/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
@@ -229,6 +229,16 @@ define(function(require){
selectedZoneServices.push(model);
}
})
+ if(selectedZone.has('tagServices') &&
!_.isEmpty(selectedZone.get('tagServices'))){
+
_.filter(selectedZone.get('tagServices'), function(tag){
+ var
zoneServiceModelTags = that.serviceNames.find(function(serviceModel){
+ return
serviceModel.get('name') === tag
+ })
+
if(zoneServiceModelTags){
+
selectedZoneServices.push(zoneServiceModelTags);
+ }
+ })
+ }
}else{
selectedZoneServices =
this.serviceNames;
}
@@ -370,6 +380,16 @@ define(function(require){
zoneServiceList.push(zoneServiceModel);
}
});
+ if(selectedZone.has('tagServices') &&
!_.isEmpty(selectedZone.get('tagServices'))){
+
_.filter(selectedZone.get('tagServices'), function(tag){
+ var
zoneServiceModelTags = that.serviceNames.find(function(serviceModel){
+ return
serviceModel.get('name') === tag
+ })
+
if(zoneServiceModelTags){
+
zoneServiceList.push(zoneServiceModelTags);
+ }
+ })
+ }
that.serviceNames = zoneServiceList;
that.setServiceSourceData();
}else{
diff --git
a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
index 19f162b..321d1c5 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
@@ -55,12 +55,14 @@ import org.apache.ranger.common.UserSessionBase;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.db.XXSecurityZoneDao;
import org.apache.ranger.db.XXSecurityZoneRefServiceDao;
+import org.apache.ranger.db.XXSecurityZoneRefTagServiceDao;
import org.apache.ranger.db.XXGroupUserDao;
import org.apache.ranger.db.XXServiceDao;
import org.apache.ranger.db.XXServiceDefDao;
import org.apache.ranger.entity.XXPortalUser;
import org.apache.ranger.entity.XXSecurityZone;
import org.apache.ranger.entity.XXSecurityZoneRefService;
+import org.apache.ranger.entity.XXSecurityZoneRefTagService;
import org.apache.ranger.entity.XXService;
import org.apache.ranger.entity.XXServiceDef;
import org.apache.ranger.plugin.model.RangerPluginInfo;
@@ -1670,11 +1672,15 @@ public class TestServiceREST {
XXServiceDef xServiceDef = serviceDef();
XXServiceDefDao xServiceDefDao =
Mockito.mock(XXServiceDefDao.class);
XXSecurityZoneRefServiceDao xSecZoneRefServiceDao =
Mockito.mock(XXSecurityZoneRefServiceDao.class);
+ XXSecurityZoneRefTagServiceDao xSecZoneRefTagServiceDao =
Mockito.mock(XXSecurityZoneRefTagServiceDao.class);
XXSecurityZoneRefService xSecZoneRefService =
Mockito.mock(XXSecurityZoneRefService.class);
+ XXSecurityZoneRefTagService xSecZoneRefTagService =
Mockito.mock(XXSecurityZoneRefTagService.class);
XXSecurityZoneDao xSecZoneDao =
Mockito.mock(XXSecurityZoneDao.class);
XXSecurityZone xSecZone = Mockito.mock(XXSecurityZone.class);
List<XXSecurityZoneRefService> zoneServiceList = new
ArrayList<>();
+ List<XXSecurityZoneRefTagService> zoneTagServiceList = new
ArrayList<>();
zoneServiceList.add(xSecZoneRefService);
+ zoneTagServiceList.add(xSecZoneRefTagService);
Map<String, String> zoneMappingMap = new LinkedHashMap<String,
String>();
zoneMappingMap.put("ZoneSource", "ZoneDestination");
@@ -1710,7 +1716,8 @@ public class TestServiceREST {
Mockito.when(xSecZoneDao.findByZoneName(Mockito.anyString())).thenReturn(xSecZone);
Mockito.when(daoManager.getXXSecurityZoneRefService()).thenReturn(xSecZoneRefServiceDao);
Mockito.when(xSecZoneRefServiceDao.findByServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneServiceList);
-
+
Mockito.when(daoManager.getXXSecurityZoneRefTagService()).thenReturn(xSecZoneRefTagServiceDao);
+
Mockito.when(xSecZoneRefTagServiceDao.findByTagServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneTagServiceList);
serviceREST.importPoliciesFromFile(request, null,
zoneInputStream, uploadedInputStream, fileDetail, isOverride , "unzoneToZone");
Mockito.verify(svcStore).createPolicy(rangerPolicy);
@@ -1729,11 +1736,15 @@ public class TestServiceREST {
XXServiceDef xServiceDef = serviceDef();
XXServiceDefDao xServiceDefDao =
Mockito.mock(XXServiceDefDao.class);
XXSecurityZoneRefServiceDao xSecZoneRefServiceDao =
Mockito.mock(XXSecurityZoneRefServiceDao.class);
+ XXSecurityZoneRefTagServiceDao xSecZoneRefTagServiceDao =
Mockito.mock(XXSecurityZoneRefTagServiceDao.class);
XXSecurityZoneRefService xSecZoneRefService =
Mockito.mock(XXSecurityZoneRefService.class);
+ XXSecurityZoneRefTagService xSecZoneRefTagService =
Mockito.mock(XXSecurityZoneRefTagService.class);
XXSecurityZoneDao xSecZoneDao =
Mockito.mock(XXSecurityZoneDao.class);
XXSecurityZone xSecZone = Mockito.mock(XXSecurityZone.class);
List<XXSecurityZoneRefService> zoneServiceList = new
ArrayList<>();
+ List<XXSecurityZoneRefTagService> zoneTagServiceList = new
ArrayList<>();
zoneServiceList.add(xSecZoneRefService);
+ zoneTagServiceList.add(xSecZoneRefTagService);
Map<String, String> zoneMappingMap = new LinkedHashMap<String,
String>();
zoneMappingMap.put("ZoneSource", "ZoneDestination");
@@ -1769,7 +1780,8 @@ public class TestServiceREST {
Mockito.when(xSecZoneDao.findByZoneName(Mockito.anyString())).thenReturn(xSecZone);
Mockito.when(daoManager.getXXSecurityZoneRefService()).thenReturn(xSecZoneRefServiceDao);
Mockito.when(xSecZoneRefServiceDao.findByServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneServiceList);
-
+
Mockito.when(daoManager.getXXSecurityZoneRefTagService()).thenReturn(xSecZoneRefTagServiceDao);
+
Mockito.when(xSecZoneRefTagServiceDao.findByTagServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneTagServiceList);
serviceREST.importPoliciesFromFile(request, null,
zoneInputStream, uploadedInputStream, fileDetail, isOverride, "unzoneToUnZone");
Mockito.verify(svcStore).createPolicy(rangerPolicy);