You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2015/10/22 00:23:34 UTC

ambari git commit: AMBARI-13482. [CapSchedView] Mappings should be validated and invalid mappings should be disallowed. (Gaurav Nagar via yusaku)

Repository: ambari
Updated Branches:
  refs/heads/trunk 844b1e9d3 -> 383aac0f5


AMBARI-13482. [CapSchedView] Mappings should be validated and invalid mappings should be disallowed. (Gaurav Nagar via yusaku)


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

Branch: refs/heads/trunk
Commit: 383aac0f581e833614b4307635d263e90ad90171
Parents: 844b1e9
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Wed Oct 21 15:23:00 2015 -0700
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Wed Oct 21 15:23:29 2015 -0700

----------------------------------------------------------------------
 .../main/resources/ui/app/controllers/queues.js | 36 ++++++++++++++++++--
 .../ui/app/templates/schedulerPanel.hbs         |  2 +-
 2 files changed, 35 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/383aac0f/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queues.js
----------------------------------------------------------------------
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queues.js b/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queues.js
index 429832f..416ff43 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queues.js
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/controllers/queues.js
@@ -336,7 +336,7 @@ App.QueuesController = Ember.ArrayController.extend({
    * check if can save configs
    * @type {bool}
    */
-  canNotSave: cmp.any('hasOverCapacity', 'hasUncompetedAddings','hasNotValid','hasNotValidLabels'),
+  canNotSave: cmp.any('hasOverCapacity', 'hasUncompetedAddings','hasNotValid','hasNotValidLabels','hasInvalidQueueMappings'),
 
   /**
    * List of not valid queues.
@@ -384,5 +384,37 @@ App.QueuesController = Ember.ArrayController.extend({
    * True if uncompetedAddings is not empty.
    * @type {Boolean}
    */
-  hasUncompetedAddings:cmp.notEmpty('uncompetedAddings.[]')
+  hasUncompetedAddings:cmp.notEmpty('uncompetedAddings.[]'),
+
+  /**
+   * True if queue_mapping is not valid
+   * @type {Boolean}
+   */
+  hasInvalidQueueMappings : function() {
+    var mappings = this.get('scheduler.queue_mappings') || '',
+      queues = this.get('content.content'),
+      hasInvalidMapping = false;
+
+    if(mappings == '' || mappings == 'u:%user:%primary_group' || mappings == 'u:%user:%user') {
+      return false;
+    }
+
+    mappings.split(',').forEach(function(item) {
+      // item should be in format [u or g]:[name]:[queue_name]
+      var mapping= item.split(":");
+
+      if(mapping.length!=3 || (mapping[0] != 'u'&& mapping[0] != 'g')) {
+        hasInvalidMapping = true;
+      }else{
+        hasInvalidMapping = queues.filter(function(queue){
+            return !queue.get("queues"); //get all leaf queues
+          }).map(function(queue){
+            return queue.get("name");
+          }).indexOf(mapping[2]) == -1;
+      }
+
+    })
+
+    return hasInvalidMapping;
+  }.property('scheduler.queue_mappings','content.length','content.@each.capacity')
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/383aac0f/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/schedulerPanel.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/schedulerPanel.hbs b/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/schedulerPanel.hbs
index 388bc60..4419aa0 100644
--- a/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/schedulerPanel.hbs
+++ b/contrib/views/capacity-scheduler/src/main/resources/ui/app/templates/schedulerPanel.hbs
@@ -126,7 +126,7 @@
         }}
         {{#if isOperator}}
           <div class="col-xs-7 control-value">
-            {{expandable-input value=scheduler.queue_mappings class="input-sm form-control input-expand"}}
+            {{expandable-input value=scheduler.queue_mappings classNameBindings="hasInvalidQueueMappings:list-group-item-danger" class="input-sm form-control input-expand"}}
             {{#if schedulerDirtyFilelds.queue_mappings}}
               <div class="btn-group btn-group-xs" >
                   <a {{action 'rollbackProp' 'queue_mappings' scheduler}} href="#" class="btn btn-default btn-warning"><i class="fa fa-undo"></i></a>