Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 eb06cff41 -> 580277d61


AMBARI-12601 Specifying heterogeneous storage does not work for DataNode 
Directories. (ababiichuk)


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

Branch: refs/heads/branch-2.1
Commit: 580277d615508ff8f41335631081f4380815f5d4
Parents: eb06cff
Author: aBabiichuk <[email protected]>
Authored: Fri Jul 31 12:37:03 2015 +0300
Committer: aBabiichuk <[email protected]>
Committed: Fri Jul 31 12:45:45 2015 +0300

----------------------------------------------------------------------
 ambari-web/app/data/HDP2.2/site_properties.js   | 12 ------
 .../configs/objects/service_config_property.js  | 43 ++++++++++++--------
 ambari-web/app/utils/config.js                  |  1 -
 ambari-web/test/utils/config_test.js            |  6 ++-
 4 files changed, 30 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/580277d6/ambari-web/app/data/HDP2.2/site_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2.2/site_properties.js 
b/ambari-web/app/data/HDP2.2/site_properties.js
index 44d7a82..f8b88e7 100644
--- a/ambari-web/app/data/HDP2.2/site_properties.js
+++ b/ambari-web/app/data/HDP2.2/site_properties.js
@@ -37,7 +37,6 @@ var excludedConfigs = [
   'tez.runtime.intermediate-input.is-compressed',
   'tez.runtime.intermediate-output.compress.codec',
   'tez.runtime.intermediate-output.should-compress',
-  'dfs.datanode.data.dir',
   'hive.heapsize'
 ];
 var hdp22properties = hdp2properties.filter(function (item) {
@@ -98,17 +97,6 @@ hdp22properties.push(
   },
   {
     "id": "site property",
-    "name": "dfs.datanode.data.dir",
-    "displayName": "DataNode directories",
-    "defaultDirectory": "/hadoop/hdfs/data",
-    "displayType": "datanodedirs",
-    "category": "DATANODE",
-    "serviceName": "HDFS",
-    "filename": "hdfs-site.xml",
-    "index": 1
-  },
-  {
-    "id": "site property",
     "name": "hadoop.security.key.provider.path",
     "displayName": "hadoop.security.key.provider.path",
     "defaultValue": "",

http://git-wip-us.apache.org/repos/asf/ambari/blob/580277d6/ambari-web/app/models/configs/objects/service_config_property.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/objects/service_config_property.js 
b/ambari-web/app/models/configs/objects/service_config_property.js
index db09678..4665cfd 100644
--- a/ambari-web/app/models/configs/objects/service_config_property.js
+++ b/ambari-web/app/models/configs/objects/service_config_property.js
@@ -304,7 +304,6 @@ App.ServiceConfigProperty = Em.Object.extend({
         return App.ServiceConfigRadioButtons;
         break;
       case 'directories':
-      case 'datanodedirs':
         return App.ServiceConfigTextArea;
         break;
       case 'content':
@@ -395,25 +394,20 @@ App.ServiceConfigProperty = Em.Object.extend({
           break;
         case 'checkbox':
           break;
-        case 'datanodedirs':
-          if (!validator.isValidDataNodeDir(value)) {
-            this.set('errorMessage', 'dir format is wrong, can be "[{storage 
type}]/{dir name}"');
-            isError = true;
-          }
-          else {
-            if (!validator.isAllowedDir(value)) {
-              this.set('errorMessage', 'Cannot start with "home(s)"');
-              isError = true;
-            }
-          }
-          break;
         case 'directories':
         case 'directory':
-          if (!validator.isValidDir(value)) {
-            this.set('errorMessage', 'Must be a slash or drive at the start');
-            isError = true;
+          if (this.get('configSupportHeterogeneous')) {
+            if (!validator.isValidDataNodeDir(value)) {
+              this.set('errorMessage', 'dir format is wrong, can be "[{storage 
type}]/{dir name}"');
+              isError = true;
+            }
+          } else {
+            if (!validator.isValidDir(value)) {
+              this.set('errorMessage', 'Must be a slash or drive at the 
start');
+              isError = true;
+            }
           }
-          else {
+          if (!isError) {
             if (!validator.isAllowedDir(value)) {
               this.set('errorMessage', 'Can\'t start with "home(s)"');
               isError = true;
@@ -482,6 +476,21 @@ App.ServiceConfigProperty = Em.Object.extend({
   }.observes('value', 'isFinal', 'retypedPassword'),
 
   /**
+   * defines specific directory properties that
+   * allows setting drive type before dir name
+   * ex: [SSD]/usr/local/my_dir
+   * @param config
+   * @returns {*|Boolean|boolean}
+   */
+  configSupportHeterogeneous: function() {
+    if (App.get('isHadoop22Stack')) {
+      return ['directories', 'directory'].contains(this.get('displayType')) && 
['dfs.datanode.data.dir'].contains(this.get('name'));
+    } else {
+      return false;
+    }
+  }.property('displayType', 'name', 'App.isHadoop22Stack'),
+
+  /**
    * Check config overrides and parent config overrides (if exist)
    * @returns {boolean}
    * @private

http://git-wip-us.apache.org/repos/asf/ambari/blob/580277d6/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 1e475f5..8b0b73f 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -1641,7 +1641,6 @@ App.config = Em.Object.create({
     switch (displayType) {
       case 'directories':
       case 'directory':
-      case 'datanodedirs':
         rez = value.replace(/,/g, ' ').trim().split(/\s+/g).join(',');
         break;
       case 'host':

http://git-wip-us.apache.org/repos/asf/ambari/blob/580277d6/ambari-web/test/utils/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/config_test.js 
b/ambari-web/test/utils/config_test.js
index de53c52..a409553 100644
--- a/ambari-web/test/utils/config_test.js
+++ b/ambari-web/test/utils/config_test.js
@@ -276,14 +276,16 @@ describe('App.config', function () {
       },
       {
         config: {
-          displayType: 'datanodedirs',
+          displayType: 'directories',
+          name: 'dfs.datanode.data.dir',
           value: ' [DISK]/a [SSD]/b '
         },
         e: '[DISK]/a,[SSD]/b'
       },
       {
         config: {
-          displayType: 'datanodedirs',
+          displayType: 'directories',
+          name: 'dfs.datanode.data.dir',
           value: '/a,/b, /c\n/d,\n/e  /f'
         },
         e: '/a,/b,/c,/d,/e,/f'

Reply via email to