Author: srimanth
Date: Thu Apr 11 21:01:25 2013
New Revision: 1467083

URL: http://svn.apache.org/r1467083
Log:
AMBARI-1894. Refactor configs of Capacity Scheduler category. (srimanth)

Modified:
    incubator/ambari/trunk/CHANGES.txt
    
incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js
    incubator/ambari/trunk/ambari-web/app/controllers/wizard/step7_controller.js
    incubator/ambari/trunk/ambari-web/app/utils/config.js

Modified: incubator/ambari/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1467083&r1=1467082&r2=1467083&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Thu Apr 11 21:01:25 2013
@@ -690,6 +690,8 @@ Trunk (unreleased changes):
 
  BUG FIXES
 
+ AMBARI-1894. Refactor configs of Capacity Scheduler category. (srimanth)
+
  AMBARI-1893. Parsing new alerts format fails. (srimanth)
 
  AMBARI-1891. Impossibility to scroll metric window after browser width 

Modified: 
incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js?rev=1467083&r1=1467082&r2=1467083&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js 
(original)
+++ 
incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js 
Thu Apr 11 21:01:25 2013
@@ -423,9 +423,8 @@ App.MainServiceInfoConfigsController = E
 
     //var serviceConfigs = this.getSitesConfigProperties(advancedConfigs);
     var configs = configSet.configs;
-    //put global configs into globalConfigs to save them separetely
+    //put global configs into globalConfigs to save them separately
     this.set('globalConfigs', configSet.globalConfigs);
-    this.set('customConfig', configSet.customConfigs);
 
     //STEP 6: add advanced configs
     App.config.addAdvancedConfigs(configs, advancedConfigs, serviceName);

Modified: 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step7_controller.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/wizard/step7_controller.js?rev=1467083&r1=1467082&r2=1467083&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step7_controller.js 
(original)
+++ 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step7_controller.js 
Thu Apr 11 21:01:25 2013
@@ -75,7 +75,7 @@ App.WizardStep7Controller = Em.Controlle
     //STEP 2: Load on-site configs by service from local DB
     var storedConfigs = this.get('content.serviceConfigProperties');
     //STEP 3: Merge pre-defined configs with loaded on-site configs
-    var configs = App.config.mergePreDefinedWithStored(storedConfigs);
+    var configs = App.config.mergePreDefinedWithStored(storedConfigs, 
advancedConfigs);
     //STEP 4: Add advanced configs
     App.config.addAdvancedConfigs(configs, advancedConfigs);
     //STEP 5: Add custom configs

Modified: incubator/ambari/trunk/ambari-web/app/utils/config.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/utils/config.js?rev=1467083&r1=1467082&r2=1467083&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/utils/config.js (original)
+++ incubator/ambari/trunk/ambari-web/app/utils/config.js Thu Apr 11 21:01:25 
2013
@@ -30,6 +30,8 @@ App.config = Em.Object.create({
   preDefinedCustomConfigs: require('data/custom_configs'),
   //categories which contain custom configs
   categoriesWithCustom: ['CapacityScheduler'],
+  //configs with these filenames go to appropriate category not in Advanced
+  customFileNames: ['capacity-scheduler.xml', 'mapred-queue-acls.xml'],
   /**
    * Cache of loaded configurations. This is useful in not loading
    * same configuration multiple times. It is populated in multiple
@@ -78,11 +80,11 @@ App.config = Em.Object.create({
   mergePreDefinedWithLoaded: function (configGroups, advancedConfigs, tags, 
serviceName) {
     var configs = [];
     var globalConfigs = [];
-    var customConfigs = [];
     var preDefinedConfigs = this.get('preDefinedConfigProperties');
     var mappingConfigs = [];
 
     tags.forEach(function (_tag) {
+      var isAdvanced = null;
       var properties = configGroups.filter(function (serviceConfigProperties) {
         return _tag.tagName === serviceConfigProperties.tag && _tag.siteName 
=== serviceConfigProperties.type;
       });
@@ -137,19 +139,20 @@ App.config = Em.Object.create({
           serviceConfigObj.options = configsPropertyDef ? 
configsPropertyDef.options : null;
           globalConfigs.push(serviceConfigObj);
         } else if (!this.get('configMapping').computed().someProperty('name', 
index)) {
+          isAdvanced = advancedConfigs.someProperty('name', index);
           serviceConfigObj.id = 'site property';
           serviceConfigObj.displayType = 'advanced';
           serviceConfigObj.displayName = configsPropertyDef ? 
configsPropertyDef.displayName : index;
           serviceConfigObj.serviceName = serviceName;
-          if (advancedConfigs.someProperty('name', index)) {
-            serviceConfigObj.category = 'Advanced';
-            serviceConfigObj.filename = advancedConfigs.findProperty('name', 
index).filename;
-          } else {
+          if (!isAdvanced || 
this.get('customFileNames').contains(serviceConfigObj.filename)) {
             var categoryMetaData = this.identifyCategory(serviceConfigObj);
             if (categoryMetaData != null) {
               serviceConfigObj.category = categoryMetaData.get('name');
-              serviceConfigObj.isUserProperty = true;
+              if(!isAdvanced) serviceConfigObj.isUserProperty = true;
             }
+          } else {
+            serviceConfigObj.category = 'Advanced';
+            serviceConfigObj.filename = isAdvanced && 
advancedConfigs.findProperty('name', index).filename;
           }
           configs.push(serviceConfigObj);
         } else {
@@ -160,63 +163,71 @@ App.config = Em.Object.create({
     return {
       configs: configs,
       globalConfigs: globalConfigs,
-      mappingConfigs: mappingConfigs,
-      customConfigs: customConfigs
+      mappingConfigs: mappingConfigs
     }
   },
 
   /**
    * merge stored configs with pre-defined
    * @param storedConfigs
+   * @param advancedConfigs
    * @return {*}
    */
-  mergePreDefinedWithStored: function (storedConfigs) {
+  mergePreDefinedWithStored: function (storedConfigs, advancedConfigs) {
     var mergedConfigs = [];
     var preDefinedConfigs = $.extend(true, [], 
this.get('preDefinedConfigProperties'));
     var preDefinedNames = [];
     var storedNames = [];
     var names = [];
+    var categoryMetaData = null;
+    storedConfigs = (storedConfigs) ? storedConfigs : [];
 
-    if (storedConfigs) {
-      preDefinedNames = 
this.get('preDefinedConfigProperties').mapProperty('name');
-      storedNames = storedConfigs.mapProperty('name');
-      names = preDefinedNames.concat(storedNames).uniq();
-      names.forEach(function (name) {
-        var stored = storedConfigs.findProperty('name', name);
-        var preDefined = preDefinedConfigs.findProperty('name', name);
-        var configData = {};
-        var configCategory = 'Advanced';
-        if (preDefined && stored) {
-          configData = preDefined;
-          configData.value = stored.value;
-          configData.overrides = stored.overrides;
-        } else if (!preDefined && stored) {
-          var categoryMetaData = this.identifyCategory(stored);
+    preDefinedNames = 
this.get('preDefinedConfigProperties').mapProperty('name');
+    storedNames = storedConfigs.mapProperty('name');
+    names = preDefinedNames.concat(storedNames).uniq();
+    names.forEach(function (name) {
+      var stored = storedConfigs.findProperty('name', name);
+      var preDefined = preDefinedConfigs.findProperty('name', name);
+      var configData = {};
+      var configCategory = 'Advanced';
+      var isAdvanced = advancedConfigs.someProperty('name', name);
+      if (preDefined && stored) {
+        configData = preDefined;
+        configData.value = stored.value;
+        configData.overrides = stored.overrides;
+        if (isAdvanced) {
+          configData.category = (configData.category === undefined) ? 
configCategory : configData.category;
+        }
+      } else if (!preDefined && stored) {
+        configData = {
+          id: stored.id,
+          name: stored.name,
+          displayName: stored.name,
+          serviceName: stored.serviceName,
+          value: stored.value,
+          defaultValue: stored.defaultValue,
+          displayType: "advanced",
+          filename: stored.filename,
+          category: configCategory,
+          isUserProperty: stored.isUserProperty === true,
+          isOverridable: true,
+          overrides: stored.overrides
+        }
+        if (!isAdvanced || 
this.get('customFileNames').contains(configData.filename)) {
+          var categoryMetaData = this.identifyCategory(configData);
           if (categoryMetaData != null) {
-            configCategory = categoryMetaData.get('name');
+            configData.category = categoryMetaData.get('name');
+            if(!isAdvanced) configData.isUserProperty = true;
           }
-          configData = {
-            id: stored.id,
-            name: stored.name,
-            displayName: stored.name,
-            serviceName: stored.serviceName,
-            value: stored.value,
-            defaultValue: stored.defaultValue,
-            displayType: "advanced",
-            filename: stored.filename,
-            category: configCategory,
-            isUserProperty: true,
-            isOverridable: true,
-            overrides: stored.overrides
-          }
-        } else if (preDefined && !stored) {
-          configData = preDefined;
         }
-        mergedConfigs.push(configData);
-      }, this);
-    } else {
-      return preDefinedConfigs;
-    }
+      } else if (preDefined && !stored) {
+        configData = preDefined;
+        if (isAdvanced) {
+          configData.category = (configData.category === undefined) ? 
configCategory : configData.category;
+        }
+      }
+      mergedConfigs.push(configData);
+    }, this);
     return mergedConfigs;
   },
   /**
@@ -228,14 +239,17 @@ App.config = Em.Object.create({
    */
   addAdvancedConfigs: function (serviceConfigs, advancedConfigs, serviceName) {
     serviceConfigs = (serviceName) ? 
serviceConfigs.filterProperty('serviceName', serviceName) : serviceConfigs;
-    var configCategory = 'Advanced';
     advancedConfigs.forEach(function (_config) {
+      var configCategory = 'Advanced';
+      var categoryMetaData = null;
       if (_config) {
         if (this.get('configMapping').computed().someProperty('name', 
_config.name)) {
         } else if (!(serviceConfigs.someProperty('name', _config.name))) {
-          var categoryMetaData = this.identifyCategory(_config);
-          if (categoryMetaData != null) {
-            configCategory = categoryMetaData.get('name');
+          if(this.get('customFileNames').contains(_config.filename)){
+            categoryMetaData = this.identifyCategory(_config);
+            if (categoryMetaData != null) {
+              configCategory = categoryMetaData.get('name');
+            }
           }
           _config.id = "site property";
           _config.category = configCategory;


Reply via email to