You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by db...@apache.org on 2016/02/26 08:29:31 UTC

ambari git commit: AMBARI-14753. Capsched view: The view does not show the effective permissions of a queue. (Akhil PB via dipayanb)

Repository: ambari
Updated Branches:
  refs/heads/trunk d1cec98c9 -> 1485e3f04


AMBARI-14753. Capsched view: The view does not show the effective permissions of a queue. (Akhil PB via dipayanb)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1485e3f0
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1485e3f0
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1485e3f0

Branch: refs/heads/trunk
Commit: 1485e3f04730daa4e425fc72e7d577a5b646b068
Parents: d1cec98
Author: Dipayan Bhowmick <di...@gmail.com>
Authored: Fri Feb 26 12:59:17 2016 +0530
Committer: Dipayan Bhowmick <di...@gmail.com>
Committed: Fri Feb 26 12:59:17 2016 +0530

----------------------------------------------------------------------
 .../main/resources/ui/app/controllers/queue.js  | 72 ++++++++++++++++++++
 .../resources/ui/app/styles/application.less    |  6 +-
 .../main/resources/ui/app/templates/queue.hbs   | 62 ++++++++++++++++-
 3 files changed, 137 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/1485e3f0/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queue.js
----------------------------------------------------------------------
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queue.js b/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queue.js
index 521b473..6d58e6d 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queue.js
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queue.js
@@ -244,6 +244,78 @@ App.QueueController = Ember.ObjectController.extend({
    */
   asa_anyone:Ember.computed.equal('acl_submit_applications', '*'),
 
+ /**
+  * Returns effective permission of the current queue to perform administrative functions on this queue.
+  */
+  aaq_effective_permission: function(key, value){
+    return this.getEffectivePermission('acl_administer_queue');
+  }.property('content.acl_administer_queue'),
+
+  /**
+   * Returns effective permission of the current queue to submit application.
+   */
+  asa_effective_permission: function(key, value){
+    return this.getEffectivePermission('acl_submit_applications');
+  }.property('content.acl_submit_applications'),
+
+  /**
+   * Returns effective permission of the current queue.
+   */
+  getEffectivePermission: function(permissionType){
+    var effectivePermission,
+    users = [],
+    groups = [],
+    currentPermissions = this.getPermissions(permissionType);
+    for(var i = 0; i < currentPermissions.length; i++){
+      var permission = currentPermissions[i];
+      if (permission === '*') {
+        return '*';
+      } else if (permission.trim() === '') {
+        effectivePermission = '';
+      } else {
+        var usersAndGroups = permission.split(' ');
+        this.fillUsersAndGroups(users, usersAndGroups[0]);
+        if (usersAndGroups.length === 2) {
+          this.fillUsersAndGroups(groups, usersAndGroups[1]);
+        }
+      }
+    }
+    if(users.length > 0 || groups.length > 0){
+      effectivePermission = users.join(',') + ' ' + groups.join(',');
+    }
+    return effectivePermission;
+  },
+
+  /**
+   * Removes duplicate users or groups.
+   */
+  fillUsersAndGroups: function(usersOrGroups, list){
+    var splitted = list.split(',');
+    splitted.forEach(function(item){
+      if(usersOrGroups.indexOf(item) === -1){
+        usersOrGroups.push(item);
+      }
+    });
+  },
+
+  /**
+   * Returns array of permissions from root to leaf.
+   */
+  getPermissions: function(permissionType){
+    var currentQ = this.get('content'),
+    permissions = [];
+    while (currentQ != null) {
+      if (currentQ.get(permissionType) !== null) {
+        permissions.push(currentQ.get(permissionType));
+      } else {
+        permissions.push('*');
+      }
+      currentQ = this.store.getById('queue', currentQ.get('parentPath').toLowerCase());
+    }
+    permissions.reverse();//root permission at the 0th position.
+    return permissions;
+  },
+
   /**
    * Error messages for queue path.
    * @type {Array}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1485e3f0/contrib/views/capacity-scheduler/src/main/resources/ui/app/styles/application.less
----------------------------------------------------------------------
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/styles/application.less b/contrib/views/capacity-scheduler/src/main/resources/ui/app/styles/application.less
index c0acf4f..69fb96f 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/styles/application.less
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/styles/application.less
@@ -707,6 +707,10 @@
               opacity: 0.4;
             }
           }
+          .hz-divider {
+            border-bottom: 1px solid #ddd;
+            margin: 15px 5px 15px 5px;
+          }
         }
       }
 
@@ -864,4 +868,4 @@
 
 .tooltip-label span:first-child {
   cursor: help;
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/1485e3f0/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs b/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
index 15550d1..bff1e4e 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/queue.hbs
@@ -106,6 +106,8 @@
               </div>
           </div>
 
+          <div class="hz-divider"></div>
+
           {{#if isOperator}}
 
             <div class="form-group row">
@@ -132,9 +134,23 @@
 
             <div class="form-group row">
               {{tooltip-label
+                tagName='small'
+                class="col-lg-4 col-xs-4 control-label"
+                label='Effective Administraters'
+                message='The effective permissions to perform administrative functions on this queue.'
+              }}
+              <div class="col-lg-6 col-md-6 col-sm-8 col-xs-7 control-value">
+                <label>{{escapeACL aaq_effective_permission}}</label>
+              </div>
+           </div>
+
+           <div class="hz-divider"></div>
+
+           <div class="form-group row">
+              {{tooltip-label
                 class="col-lg-4 col-xs-4 control-label"
                 label='Submit Applications'
-                message='The access control list of users and groups that have authorizatioN to submit applications to this queue.'
+                message='The access control list of users and groups that have authorization to submit applications to this queue.'
               }}
               <div class="col-lg-6 col-md-6 col-sm-8 col-xs-7 control-value">
                 <div class="btn-group btn-group-xs" data-toggle="buttons">
@@ -152,6 +168,18 @@
               {{user-group-input ug=content.acl_submit_applications disabled=asa_anyone}}
             {{/unless}}
 
+            <div class="form-group row">
+               {{tooltip-label
+                 tagName='small'
+                 class="col-lg-4 col-xs-4 control-label"
+                 label='Effective Users'
+                 message='The effective permissions to submit applications to this queue.'
+               }}
+               <div class="col-lg-6 col-md-6 col-sm-8 col-xs-7 control-value">
+                 <label>{{escapeACL asa_effective_permission}}</label>
+               </div>
+            </div>
+
           {{else}}
             <div class="form-group">
               {{tooltip-label
@@ -166,11 +194,27 @@
               </div>
             </div>
 
+            <div class="form-group row">
+               {{tooltip-label
+                 tagName='small'
+                 class="col-lg-4 col-xs-4 control-label"
+                 label='Effective Administraters'
+                 message='The effective permissions to perform administrative functions on this queue.'
+               }}
+               <div class="col-lg-8 col-xs-8 control-value">
+                 <p class="form-control-static">
+                   {{escapeACL aaq_effective_permission}}
+                 </p>
+               </div>
+            </div>
+
+            <div class="hz-divider"></div>
+
             <div class="form-group">
               {{tooltip-label
                 class="col-lg-4 col-xs-4 control-label"
                 label='Submit Applications'
-                message='The access control list of users and groups that have authorizatioN to submit applications to this queue.'
+                message='The access control list of users and groups that have authorization to submit applications to this queue.'
               }}
               <div class="col-lg-8 col-xs-8 control-value">
                <p class="form-control-static">
@@ -178,6 +222,20 @@
                </p>
               </div>
             </div>
+
+            <div class="form-group row">
+               {{tooltip-label
+                 tagName='small'
+                 class="col-lg-4 col-xs-4 control-label"
+                 label='Effective Users'
+                 message='The effective permissions to submit applications to this queue.'
+               }}
+               <div class="col-lg-8 col-xs-8 control-valu">
+                 <p class="form-control-static">
+                   {{escapeACL asa_effective_permission}}
+                 </p>
+               </div>
+            </div>
           {{/if}}
           </form>
         </div>