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>