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);
 

Reply via email to