This is an automated email from the ASF dual-hosted git repository.

pradeep 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 5aaa99e  Ranger-2506: Add Cluster Name On Plugin Status Tab
5aaa99e is described below

commit 5aaa99ef1b1c35c702498138c2b9bc38f957e748
Author: mateenmansoori <[email protected]>
AuthorDate: Wed Jul 24 10:38:56 2019 +0530

    Ranger-2506: Add Cluster Name On Plugin Status Tab
    
    Signed-off-by: Pradeep <[email protected]>
---
 .../apache/ranger/plugin/util/SearchFilter.java    |  1 +
 .../main/java/org/apache/ranger/biz/AssetMgr.java  | 29 ++++++++++++++++------
 .../org/apache/ranger/common/RangerSearchUtil.java |  1 +
 .../java/org/apache/ranger/rest/ServiceREST.java   |  4 +--
 .../main/java/org/apache/ranger/rest/TagREST.java  | 12 +++++++--
 .../ranger/service/RangerPluginInfoService.java    | 15 +++++++++++
 .../webapp/scripts/views/reports/AuditLayout.js    | 17 +++++++++++--
 7 files changed, 66 insertions(+), 13 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
index 7e672c3..029b104 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
@@ -85,6 +85,7 @@ public class SearchFilter {
        public static final String PLUGIN_APP_TYPE           = "pluginAppType";
        public static final String PLUGIN_ENTITY_TYPE        = 
"pluginEntityType";
        public static final String PLUGIN_IP_ADDRESS         = 
"pluginIpAddress";
+       public static final String CLUSTER_NAME              = "clusterName";
 
        private Map<String, String> params;
        private int                 startIndex;
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 f5fce93..63959c9 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
@@ -56,6 +56,7 @@ import org.apache.ranger.entity.XXTrxLog;
 import org.apache.ranger.entity.XXUser;
 import org.apache.ranger.plugin.model.RangerPluginInfo;
 import org.apache.ranger.plugin.util.RangerRESTUtils;
+import org.apache.ranger.plugin.util.SearchFilter;
 import org.apache.ranger.service.*;
 import org.apache.ranger.solr.SolrAccessAuditsService;
 import org.apache.ranger.util.RestUtil;
@@ -660,7 +661,7 @@ public class AssetMgr extends AssetMgrBase {
                return ret;
        }
 
-       public void createPluginInfo(String serviceName, String pluginId, 
HttpServletRequest request, int entityType, Long downloadedVersion, long 
lastKnownVersion, long lastActivationTime, int httpCode) {
+       public void createPluginInfo(String serviceName, String pluginId, 
HttpServletRequest request, int entityType, Long downloadedVersion, long 
lastKnownVersion, long lastActivationTime, int httpCode, String clusterName) {
                RangerRESTUtils restUtils = new RangerRESTUtils();
 
                final String ipAddress = getRemoteAddress(request);
@@ -695,10 +696,10 @@ public class AssetMgr extends AssetMgrBase {
                        pluginSvcVersionInfo.setTagDownloadTime(new 
Date().getTime());
                }
 
-               createOrUpdatePluginInfo(pluginSvcVersionInfo, entityType == 
RangerPluginInfo.ENTITY_TYPE_POLICIES, httpCode);
+               createOrUpdatePluginInfo(pluginSvcVersionInfo, entityType == 
RangerPluginInfo.ENTITY_TYPE_POLICIES, httpCode, clusterName);
        }
 
-       private void createOrUpdatePluginInfo(final RangerPluginInfo 
pluginInfo, final boolean isPolicyDownloadRequest, final int httpCode) {
+       private void createOrUpdatePluginInfo(final RangerPluginInfo 
pluginInfo, final boolean isPolicyDownloadRequest, final int httpCode, String 
clusterName) {
                if (logger.isDebugEnabled()) {
                        logger.debug("==> createOrUpdatePluginInfo(pluginInfo = 
" + pluginInfo + ", isPolicyDownloadRequest = " + isPolicyDownloadRequest + ", 
httpCode = " + httpCode + ")");
                }
@@ -719,7 +720,7 @@ public class AssetMgr extends AssetMgrBase {
                        Runnable commitWork = new Runnable() {
                                @Override
                                public void run() {
-                                       
doCreateOrUpdateXXPluginInfo(pluginInfo, isPolicyDownloadRequest, 
isTagVersionResetNeeded);
+                                       
doCreateOrUpdateXXPluginInfo(pluginInfo, isPolicyDownloadRequest, 
isTagVersionResetNeeded, clusterName);
                                }
                        };
                        
activityLogger.commitAfterTransactionComplete(commitWork);
@@ -737,7 +738,7 @@ public class AssetMgr extends AssetMgrBase {
                                commitWork = new Runnable() {
                                        @Override
                                        public void run() {
-                                               
doCreateOrUpdateXXPluginInfo(pluginInfo, isPolicyDownloadRequest, false);
+                                               
doCreateOrUpdateXXPluginInfo(pluginInfo, isPolicyDownloadRequest, false, 
clusterName);
                                        }
                                };
                        }
@@ -745,7 +746,7 @@ public class AssetMgr extends AssetMgrBase {
 
                } else {
                        isTagVersionResetNeeded = false;
-                       doCreateOrUpdateXXPluginInfo(pluginInfo, 
isPolicyDownloadRequest, isTagVersionResetNeeded);
+                       doCreateOrUpdateXXPluginInfo(pluginInfo, 
isPolicyDownloadRequest, isTagVersionResetNeeded, clusterName);
                }
                if (logger.isDebugEnabled()) {
                        logger.debug("<== createOrUpdatePluginInfo(pluginInfo = 
" + pluginInfo + ", isPolicyDownloadRequest = " + isPolicyDownloadRequest + ", 
httpCode = " + httpCode + ")");
@@ -753,8 +754,9 @@ public class AssetMgr extends AssetMgrBase {
 
        }
 
-       private XXPluginInfo doCreateOrUpdateXXPluginInfo(RangerPluginInfo 
pluginInfo, final boolean isPolicyDownloadRequest, final boolean 
isTagVersionResetNeeded) {
+       private XXPluginInfo doCreateOrUpdateXXPluginInfo(RangerPluginInfo 
pluginInfo, final boolean isPolicyDownloadRequest, final boolean 
isTagVersionResetNeeded, String clusterName) {
                XXPluginInfo ret = null;
+               Map<String, String> infoMap = null;
 
                if (StringUtils.isNotBlank(pluginInfo.getServiceName())) {
 
@@ -762,6 +764,11 @@ public class AssetMgr extends AssetMgrBase {
                                        pluginInfo.getHostName(), 
pluginInfo.getAppType());
 
                        if (xObj == null) {
+                               infoMap = pluginInfo.getInfo();
+                               if(!stringUtil.isEmpty(clusterName) && infoMap 
!= null ) {
+                                       infoMap.put(SearchFilter.CLUSTER_NAME, 
clusterName);
+                                       pluginInfo.setInfo(infoMap);
+                               }
                                // ranger-admin is restarted, plugin contains 
latest versions and no earlier record for this plug-in client
                                if (isPolicyDownloadRequest) {
                                        if 
(pluginInfo.getPolicyDownloadedVersion() != null && 
pluginInfo.getPolicyDownloadedVersion().equals(pluginInfo.getPolicyActiveVersion()))
 {
@@ -783,6 +790,14 @@ public class AssetMgr extends AssetMgrBase {
                                boolean needsUpdating = false;
 
                                RangerPluginInfo dbObj = 
pluginInfoService.populateViewObject(xObj);
+
+                               infoMap = dbObj.getInfo();
+                               if (infoMap != null && 
!stringUtil.isEmpty(clusterName)) {
+                                       
if(!stringUtil.isEmpty(infoMap.get(SearchFilter.CLUSTER_NAME)) && 
!stringUtil.equals(infoMap.get(SearchFilter.CLUSTER_NAME) , clusterName) ) {
+                                               
infoMap.put(SearchFilter.CLUSTER_NAME, clusterName);
+                                               needsUpdating = true;
+                                       }
+                               }
                                if 
(!dbObj.getIpAddress().equals(pluginInfo.getIpAddress())) {
                                        
dbObj.setIpAddress(pluginInfo.getIpAddress());
                                        needsUpdating = true;
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java 
b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
index fc57601..954144b 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
@@ -80,6 +80,7 @@ public class RangerSearchUtil extends SearchUtil {
                ret.setParam(SearchFilter.ROLE_NAME_PARTIAL, 
request.getParameter(SearchFilter.ROLE_NAME_PARTIAL));
                ret.setParam(SearchFilter.GROUP_NAME_PARTIAL, 
request.getParameter(SearchFilter.GROUP_NAME_PARTIAL));
                ret.setParam(SearchFilter.USER_NAME_PARTIAL, 
request.getParameter(SearchFilter.USER_NAME_PARTIAL));
+               ret.setParam(SearchFilter.CLUSTER_NAME, 
request.getParameter(SearchFilter.CLUSTER_NAME));
                for (Map.Entry<String, String[]> e : 
request.getParameterMap().entrySet()) {
                        String name = e.getKey();
                        String[] values = e.getValue();
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 deb8b43..b06273c 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
@@ -3010,7 +3010,7 @@ public class ServiceREST {
                                RangerPerfTracer.log(perf);
                        }
                }
-               assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_POLICIES, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode);
+               assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_POLICIES, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode, clusterName);
 
                if(httpCode != HttpServletResponse.SC_OK) {
                        boolean logError = httpCode != 
HttpServletResponse.SC_NOT_MODIFIED;
@@ -3135,7 +3135,7 @@ public class ServiceREST {
                                RangerPerfTracer.log(perf);
                        }
                }
-               assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_POLICIES, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode);
+               assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_POLICIES, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode, clusterName);
 
                if (httpCode != HttpServletResponse.SC_OK) {
                        boolean logError = httpCode != 
HttpServletResponse.SC_NOT_MODIFIED;
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java 
b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
index e650968..03d06e2 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
@@ -1115,6 +1115,10 @@ public class TagREST {
                int         httpCode = HttpServletResponse.SC_OK;
                String      logMsg   = null;
         Long downloadedVersion = null;
+        String clusterName = null;
+               if (request != null) {
+                       clusterName = 
!StringUtils.isEmpty(request.getParameter(SearchFilter.CLUSTER_NAME)) ? 
request.getParameter(SearchFilter.CLUSTER_NAME) : "";
+               }
 
         try {
             ret = tagStore.getServiceTagsIfUpdated(serviceName, 
lastKnownVersion);
@@ -1135,7 +1139,7 @@ public class TagREST {
                        httpCode = HttpServletResponse.SC_BAD_REQUEST;
                        logMsg   = excp.getMessage();
         } finally {
-            assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_TAGS, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode);
+            assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_TAGS, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode, clusterName);
         }
 
         if(httpCode != HttpServletResponse.SC_OK) {
@@ -1169,6 +1173,10 @@ public class TagREST {
                boolean isAdmin = bizUtil.isAdmin();
                boolean isKeyAdmin = bizUtil.isKeyAdmin();
         Long downloadedVersion = null;
+        String clusterName = null;
+               if (request != null) {
+                       clusterName = 
!StringUtils.isEmpty(request.getParameter(SearchFilter.CLUSTER_NAME)) ? 
request.getParameter(SearchFilter.CLUSTER_NAME) : "";
+               }
 
         try {
                XXService xService = 
daoManager.getXXService().findByName(serviceName);
@@ -1217,7 +1225,7 @@ public class TagREST {
                        httpCode = HttpServletResponse.SC_BAD_REQUEST;
                        logMsg   = excp.getMessage();
         }  finally {
-            assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_TAGS, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode);
+            assetMgr.createPluginInfo(serviceName, pluginId, request, 
RangerPluginInfo.ENTITY_TYPE_TAGS, downloadedVersion, lastKnownVersion, 
lastActivationTime, httpCode, clusterName);
         }
 
         if(httpCode != HttpServletResponse.SC_OK) {
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerPluginInfoService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerPluginInfoService.java
index 3ca3b8f..e2ccb5b 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerPluginInfoService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerPluginInfoService.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
@@ -98,6 +99,7 @@ public class RangerPluginInfoService {
                 if (StringUtils.isNotBlank(serviceTypeToSearch)) {
                         searchFilter.removeParam(SearchFilter.SERVICE_TYPE);
                 }
+                String clusterNameToSearch =  
searchFilter.getParam(SearchFilter.CLUSTER_NAME);
 
                List<XXPluginInfo> xObjList = searchRangerObjects(searchFilter, 
searchFields, sortFields, retList);
 
@@ -138,6 +140,19 @@ public class RangerPluginInfoService {
                         if (StringUtils.isBlank(serviceTypeToSearch) || 
StringUtils.equals(serviceTypeToSearch, obj.getServiceType())) {
                                 objList.add(obj);
                         }
+
+                       if (StringUtils.isNotBlank(clusterNameToSearch)) {
+                               Map<String, String> infoMap = obj.getInfo();
+                               Set<Map.Entry<String, String>> infoSet = 
infoMap.entrySet();
+                               for (Map.Entry<String, String> info : infoSet) {
+                                       if (StringUtils.equals(info.getKey(), 
SearchFilter.CLUSTER_NAME)) {
+                                               if 
(!StringUtils.equals(info.getValue(), clusterNameToSearch)) {
+                                                       objList.remove(obj);
+                                               }
+                                               break;
+                                       }
+                               }
+                       }
                }
 
                retList.setList(objList);
diff --git 
a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js 
b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
index f7237fd..5c5d54e 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
@@ -199,6 +199,7 @@ define(function(require) {
                                        <th class="renderable ruser"></th>\
                                        <th class="renderable ruser"></th>\
                                         <th class="renderable ruser"></th>\
+                                       <th class="renderable ruser"></th>\
                                        <th class="renderable cip" 
colspan="3">Policy ( Time )<i class="icon-info-sign m-l-sm" data-id 
="policyTimeDetails"></th>\
                     <th class="renderable cip" colspan="3">Tag ( Time )<i 
class="icon-info-sign m-l-sm" data-id ="tagPolicyTimeDetails"></th>\
                                </tr>');
@@ -650,10 +651,10 @@ define(function(require) {
                addSearchForPluginStatusTab : function(){
                         var that = this , query = '';
                         var searchOpt = [localization.tt("lbl.serviceName"), 
localization.tt("lbl.serviceType"),localization.tt("lbl.applicationType"),
-                                        localization.tt("lbl.agentIp"), 
localization.tt("lbl.hostName")];
+                                        localization.tt("lbl.agentIp"), 
localization.tt("lbl.hostName"), localization.tt("lbl.clusterName")];
                         var serverAttrName  = [{text : 
localization.tt("lbl.serviceName"), label :"serviceName"},{text : 
localization.tt("lbl.applicationType"), label :"pluginAppType"},
                                                {text : 
localization.tt("lbl.agentIp"), label :"pluginIpAddress"}, {text : 
localization.tt("lbl.hostName"), label :"pluginHostName"},
-                                               {text : 
localization.tt("lbl.serviceType"), label :"serviceType"}];
+                                               {text : 
localization.tt("lbl.serviceType"), label :"serviceType"}, {text : 
localization.tt("lbl.clusterName"),label :'clusterName'}];
                         _.map(App.vsHistory.pluginStatus, function(m){ query 
+= '"'+m.get('category')+'":"'+m.get('value')+'"'; });
                        var pluginAttr = {
                                        placeholder    : 
localization.tt('msg.searchForPluginStatus'),
@@ -1616,6 +1617,18 @@ define(function(require) {
                                        editable:false,
                                         sortable:true,
                                },
+                               clusterName : {
+                                       cell : 'html',
+                                       label   : 
localization.tt("lbl.clusterName"),
+                                       editable:false,
+                                       sortable:true,
+                                       formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
+                                               fromRaw: function (rawValue, 
model) {
+                                                       var clusterName = 
_.escape(model.get('info')['clusterName']);
+                                                       return '<span 
title="'+clusterName+'">'+clusterName+'</span>';
+                                               }
+                                       }),
+                               },
                                lastPolicyUpdateTime : {
                                        cell : 'html',
                                        label : 
localization.tt("lbl.lastUpdate"),

Reply via email to