Modified: 
incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks.json
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks.json?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks.json 
(original)
+++ incubator/ambari/trunk/ambari-web/app/assets/data/wizard/stack/stacks.json 
Wed Jun  5 23:27:41 2013
@@ -579,6 +579,159 @@
           }
         }
       ]
+    },
+       {
+      "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.1";,
+      "Versions" : {
+        "stack_version" : "1.3.1",
+        "stack_name" : "HDP",
+        "min_upgrade_version" : "1.2.0"
+      },
+      "stackServices" : [
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/OOZIE";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "OOZIE",
+            "stack_name" : "HDP",
+            "service_version" : "3.2.0",
+            "comments" : "System for workflow coordination and execution of 
Apache Hadoop jobs"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/HCATALOG";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "HCATALOG",
+            "stack_name" : "HDP",
+            "service_version" : "0.5.0",
+            "comments" : "This is comment for HCATALOG service"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/MAPREDUCE";,
+          "StackServices" : {
+            "user_name" : "mapred",
+            "stack_version" : "1.3.0",
+            "service_name" : "MAPREDUCE",
+            "stack_name" : "HDP",
+            "service_version" : "1.1.2",
+            "comments" : "Apache Hadoop Distributed Processing Framework"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/HBASE";,
+          "StackServices" : {
+            "user_name" : "mapred",
+            "stack_version" : "1.3.0",
+            "service_name" : "HBASE",
+            "stack_name" : "HDP",
+            "service_version" : "0.94.5",
+            "comments" : "Non-relational distributed database and centralized 
service for configuration management & synchronization"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/ZOOKEEPER";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "ZOOKEEPER",
+            "stack_name" : "HDP",
+            "service_version" : "3.4.5",
+            "comments" : "This is comment for ZOOKEEPER service"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/HUE";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "HUE",
+            "stack_name" : "HDP",
+            "service_version" : "2.2.0",
+            "comments" : "Hue is a graphical user interface to operate and 
develop\n      applications for Apache Hadoop."
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/HDFS";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "service_version" : "1.1.2",
+            "comments" : "Apache Hadoop Distributed File System"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/GANGLIA";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "GANGLIA",
+            "stack_name" : "HDP",
+            "service_version" : "3.2.0",
+            "comments" : "Ganglia Metrics Collection system"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/WEBHCAT";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "WEBHCAT",
+            "stack_name" : "HDP",
+            "service_version" : "0.5.0",
+            "comments" : "This is comment for WEBHCAT service"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/SQOOP";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "SQOOP",
+            "stack_name" : "HDP",
+            "service_version" : "1.4.2",
+            "comments" : "Tool for transferring bulk data between Apache 
Hadoop and structured data stores such as relational databases"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/NAGIOS";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "NAGIOS",
+            "stack_name" : "HDP",
+            "service_version" : "3.2.3",
+            "comments" : "Nagios Monitoring and Alerting system"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/PIG";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "PIG",
+            "stack_name" : "HDP",
+            "service_version" : "0.10.1",
+            "comments" : "Scripting platform for analyzing large datasets"
+          }
+        },
+        {
+          "href" : 
"http://dev.hortonworks.com:8080/api/v1/stacks2/HDP/versions/1.3.0/stackServices/HIVE";,
+          "StackServices" : {
+            "user_name" : "root",
+            "stack_version" : "1.3.0",
+            "service_name" : "HIVE",
+            "stack_name" : "HDP",
+            "service_version" : "0.10.0",
+            "comments" : "Data warehouse system for ad-hoc queries & analysis 
of large datasets and table & storage management service"
+          }
+        }
+      ]
     }
   ]
 }
\ No newline at end of file

Modified: 
incubator/ambari/trunk/ambari-web/app/controllers/main/admin/cluster.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/admin/cluster.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/main/admin/cluster.js 
(original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/main/admin/cluster.js Wed 
Jun  5 23:27:41 2013
@@ -87,7 +87,7 @@ App.MainAdminClusterController = Em.Cont
             var myService = Em.Object.create({
               serviceName: entry.service_name,
               displayName: displayOrderConfig[i].displayName,
-              isDisabled: i === 0,
+              isDisabled: displayOrderConfig[i].isDisabled,
               isSelected: true,
               isInstalled: false,
               isHidden: displayOrderConfig[i].isHidden,

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=1490077&r1=1490076&r2=1490077&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 
Wed Jun  5 23:27:41 2013
@@ -1124,7 +1124,7 @@ App.MainServiceInfoConfigsController = E
         }
       } else if (_serviceTags.siteName === 'core-site') {
         console.log("TRACE: Inside core-site");
-        if (this.get('content.serviceName') === 'HDFS') {
+        if (this.get('content.serviceName') === 'HDFS' || 
this.get('content.serviceName') === 'HCFS') {
           var coreSiteConfigs = 
this.createCoreSiteObj(_serviceTags.newTagName);
           siteNameToServerDataMap['core-site'] = coreSiteConfigs;
           
if(this.isConfigChanged(App.config.loadedConfigurationsCache['core-site_'+this.loadedClusterSiteToTagMap['core-site']],
 coreSiteConfigs.properties)){
@@ -1534,8 +1534,12 @@ App.MainServiceInfoConfigsController = E
     var serviceConfigs = 
this.get('serviceConfigs').findProperty('serviceName', serviceName).configs;
     //namenode_host is required to derive "fs.default.name" a property of 
core-site
     var nameNodeHost = this.get('serviceConfigs').findProperty('serviceName', 
'HDFS').configs.findProperty('name', 'namenode_host');
-    nameNodeHost.defaultValue = 
App.Service.find('HDFS').get('hostComponents').findProperty('componentName', 
'NAMENODE').get('host.hostName');
-    globalConfigs.push(nameNodeHost);
+    try {
+      nameNodeHost.defaultValue = 
App.Service.find('HDFS').get('hostComponents').findProperty('componentName', 
'NAMENODE').get('host.hostName');
+      globalConfigs.push(nameNodeHost);
+    } catch (err) {
+      console.log("No NameNode Host available.  This is expected if you're 
using HCFS rather than HDFS.");
+    }
 
     //zooKeeperserver_host
     var zooKeperHost = this.get('serviceConfigs').findProperty('serviceName', 
'ZOOKEEPER').configs.findProperty('name', 'zookeeperserver_hosts');

Modified: incubator/ambari/trunk/ambari-web/app/controllers/wizard.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/wizard.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/wizard.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/wizard.js Wed Jun  5 
23:27:41 2013
@@ -490,7 +490,7 @@ App.WizardController = Em.Controller.ext
         var myService = Service.create({
           serviceName: entry.StackServices.service_name,
           displayName: displayOrderConfig[i].displayName,
-          isDisabled: i === 0,
+          isDisabled: displayOrderConfig[i].isDisabled,
           isSelected: displayOrderConfig[i].isSelected,
           canBeSelected: displayOrderConfig[i].canBeSelected,
           isInstalled: false,

Modified: 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step4_controller.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/wizard/step4_controller.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step4_controller.js 
(original)
+++ 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step4_controller.js 
Wed Jun  5 23:27:41 2013
@@ -95,6 +95,24 @@ App.WizardStep4Controller = Em.ArrayCont
     return false;
   },
 
+  /** 
+   * Check whether we should turn on <code>HDFS or HCFS</code> service
+   * @return {Boolean}
+   */
+  needToAddHDFS: function () {
+    return (this.findProperty('serviceName', 'HDFS').get('isSelected') === 
false &&
+               (!this.findProperty('serviceName', 'HCFS') || 
this.findProperty('serviceName', 'HCFS').get('isSelected') === false));
+  },
+
+  /** 
+   * Check if multiple distributed file systems were selected
+   * @return {Boolean}
+   */
+  multipleDFSs: function () {
+       return (this.findProperty('serviceName', 'HDFS').get('isSelected') === 
true &&
+               (this.findProperty('serviceName', 'HCFS') && 
this.findProperty('serviceName', 'HCFS').get('isSelected') === true));
+  },
+
   /**
    * Check do we have any monitoring service turned on
    * @return {Boolean}
@@ -121,11 +139,49 @@ App.WizardStep4Controller = Em.ArrayCont
     if(!this.get("isSubmitDisabled")){
       if (this.needToAddMapReduce()) {
         this.mapReduceCheckPopup();
-      } else {
+      } else if (this.needToAddHDFS()) {
+        this.needToAddHDFSPopup();
+      } else if (this.multipleDFSs()) {
+        this.multipleDFSPopup();        
+      }
+       else {
         this.validateMonitoring();
       }
     }
   },
+  
+  multipleDFSPopup: function() {
+    var self = this;
+    App.ModalPopup.show({
+      header: Em.I18n.t('installer.step4.multipleDFS.popup.header'),
+      body: Em.I18n.t('installer.step4.multipleDFS.popup.body'),
+      onPrimary: function () {
+        self.findProperty('serviceName', 'HDFS').set('isSelected', true);
+        self.findProperty('serviceName', 'HCFS').set('isSelected', false);
+        this.hide();
+        self.validateMonitoring();
+      },
+      onSecondary: function () {
+        this.hide();
+      }
+    });    
+  },
+  
+  needToAddHDFSPopup: function() {
+    var self = this;
+    App.ModalPopup.show({
+      header: Em.I18n.t('installer.step4.hdfsCheck.popup.header'),
+      body: Em.I18n.t('installer.step4.hdfsCheck.popup.body'),
+      onPrimary: function () {
+      self.findProperty('serviceName', 'HDFS').set('isSelected', true);
+      this.hide();
+        self.validateMonitoring();
+      },
+      onSecondary: function () {
+      this.hide();
+      }
+    });    
+  },
 
   mapReduceCheckPopup: function () {
     var self = this;

Modified: 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step6_controller.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/wizard/step6_controller.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step6_controller.js 
(original)
+++ 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step6_controller.js 
Wed Jun  5 23:27:41 2013
@@ -201,10 +201,12 @@ App.WizardStep6Controller = Em.Controlle
       }
     }
     else {
-      headers.pushObject(Ember.Object.create({
-        name: 'DATANODE',
-        label: self.getComponentDisplayName('DATANODE')
-      }));
+      if (this.isServiceSelected('HDFS')) {
+        headers.pushObject(Ember.Object.create({
+          name: 'DATANODE',
+          label: self.getComponentDisplayName('DATANODE')
+        }));
+      }
       if (this.isServiceSelected('MAPREDUCE')) {
         headers.pushObject(Em.Object.create({
           name: 'TASKTRACKER',
@@ -325,10 +327,12 @@ App.WizardStep6Controller = Em.Controlle
         checkboxes.findProperty('title', headers.findProperty('name', 
'CLIENT').get('label')).set('checked', false);
         // First not Master should have Client (only first!)
         if (!client_is_set) {
-          var checkboxDatanode = checkboxes.findProperty('title', 
headers.findProperty('name', 'DATANODE').get('label'));
-          if (checkboxDatanode && checkboxDatanode.get('checked')) {
-            checkboxes.findProperty('title', headers.findProperty('name', 
'CLIENT').get('label')).set('checked', true);
-            client_is_set = true;
+          if (self.isServiceSelected("HDFS")) {
+            var checkboxDatanode = checkboxes.findProperty('title', 
headers.findProperty('name', 'DATANODE').get('label'));
+            if (checkboxDatanode && checkboxDatanode.get('checked')) {
+              checkboxes.findProperty('title', headers.findProperty('name', 
'CLIENT').get('label')).set('checked', true);
+              client_is_set = true;
+            }
           }
         }
       });

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=1490077&r1=1490076&r2=1490077&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 
Wed Jun  5 23:27:41 2013
@@ -88,6 +88,7 @@ App.WizardStep7Controller = Em.Controlle
     this.activateSpecialConfigs();
     this.set('selectedService', 
this.get('stepConfigs').filterProperty('showConfig', true).objectAt(0));
   },
+  
    /**
    * make some configs visible depending on active services
    */

Modified: 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js 
(original)
+++ 
incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js 
Wed Jun  5 23:27:41 2013
@@ -429,6 +429,9 @@ App.WizardStep8Controller = Em.Controlle
           case 'HDFS':
             this.loadHDFS(serviceObj);
             break;
+          case 'HCFS':
+            this.loadHCFS(serviceObj);
+            break;
           case 'MAPREDUCE':
             this.loadMapReduce(serviceObj);
             break;
@@ -498,6 +501,28 @@ App.WizardStep8Controller = Em.Controlle
     //var
     this.get('services').pushObject(hdfsObj);
   },
+  
+  /**
+   * load all info about HCFS service
+   * @param hcfsObj
+   */
+  loadHCFS: function (hcfsObj) {
+    hcfsObj.get('service_components').forEach(function (_component) {
+      switch (_component.get('display_name')) {
+        case 'HCFS Client':
+          this.loadHCFSClientValue(_component);
+          break;
+        default:
+      }
+    }, this);
+    this.get('services').pushObject(hcfsObj);
+  },
+  
+  loadHCFSClientValue: function (hcfsComponent) {
+    var hcfsClientHosts = 
this.get('content.slaveComponentHosts').findProperty('displayName', 'Client');
+    var totalHCFSHosts = hcfsClientHosts.hosts.length;
+    hcfsComponent.set('component_value', totalHCFSHosts + ' hosts');  
+  },
 
   loadNnValue: function (nnComponent) {
     var nnHostName = 
this.get('content.masterComponentHosts').findProperty('display_name', 
nnComponent.display_name);
@@ -1354,11 +1379,15 @@ App.WizardStep8Controller = Em.Controlle
     var hiveUser = this.get('globals').someProperty('name', 'hive_user') ? 
this.get('globals').findProperty('name', 'hive_user').value : null;
     var isHcatSelected = 
this.get('selectedServices').someProperty('serviceName', 'WEBHCAT');
     var hcatUser = this.get('globals').someProperty('name', 'hcat_user') ? 
this.get('globals').findProperty('name', 'hcat_user').value : null;
+    var isHCFSSelected = 
this.get('selectedServices').someProperty('serviceName', 'HCFS');
     coreSiteObj.forEach(function (_coreSiteObj) {
       if ((isOozieSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + 
oozieUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + oozieUser + 
'.groups')) && (isHiveSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + 
hiveUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + hiveUser + 
'.groups')) && (isHcatSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + 
hcatUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + hcatUser + 
'.groups'))) {
         coreSiteProperties[_coreSiteObj.name] = _coreSiteObj.value;
         this._recordHostOverrideFromObj(_coreSiteObj, 'core-site', 'version1', 
this);
       }
+      if (isHCFSSelected && _coreSiteObj.name == "fs.default.name") {
+        coreSiteProperties[_coreSiteObj.name] = 
this.get('globals').someProperty('name', 'fs_default_name') ? 
this.get('globals').findProperty('name', 'fs_default_name').value : null;
+      }
       console.log("STEP*: name of the property is: " + _coreSiteObj.name);
       console.log("STEP8: value of the property is: " + _coreSiteObj.value);
     }, this);

Modified: incubator/ambari/trunk/ambari-web/app/data/config_mapping.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/config_mapping.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/config_mapping.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/config_mapping.js Wed Jun  5 
23:27:41 2013
@@ -21,7 +21,7 @@ var configs = [
     "name": "fs.default.name",
     "templateName": ["namenode_host"],
     "foreignKey": null,
-    "value": "hdfs://<templateName[0]>:8020",
+    "value": "<templateName[0]>",
     "filename": "core-site.xml"
   },
   {
@@ -679,7 +679,42 @@ var configs = [
     "foreignKey": null,
     "value": "/hbase-unsecure",
     "filename": "hbase-site.xml"
-  }
+  },
+  {
+    "name": "fs.glusterfs.impl",
+    "templateName": ["fs_glusterfs_impl"],
+    "foreignKey": null,
+    "value": "<templateName[0]>",
+    "filename": "core-site.xml"
+  },
+  {
+    "name": "fs.glusterfs.volname",
+    "templateName": ["fs_glusterfs_volname"],
+    "foreignKey": null,
+    "value": "<templateName[0]>",
+    "filename": "core-site.xml"
+  },
+  {
+    "name": "fs.glusterfs.mount",
+    "templateName": ["fs_glusterfs_mount"],
+    "foreignKey": null,
+    "value": "<templateName[0]>",
+    "filename": "core-site.xml"
+  },
+  {
+    "name": "fs.glusterfs.server",
+    "templateName": ["fs_glusterfs_server"],
+    "foreignKey": null,
+    "value": "<templateName[0]>",
+    "filename": "core-site.xml"
+  },
+  {
+    "name": "fs.glusterfs.automount",
+    "templateName": ["fs_glusterfs_automount"],
+    "foreignKey": null,
+    "value": "<templateName[0]>",
+    "filename": "core-site.xml"
+  }  
 ];
 
 /**

Modified: incubator/ambari/trunk/ambari-web/app/data/config_properties.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/config_properties.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/config_properties.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/config_properties.js Wed Jun  5 
23:27:41 2013
@@ -453,6 +453,79 @@ module.exports =
       "serviceName": "HDFS",
       "category": "Advanced"
     },
+    
/**********************************************HCFS***************************************/
    
+    {
+      "id": "puppet var",
+      "name": "fs_glusterfs_server",
+      "displayName": "Gluster server",
+      "description": "Gluster server (Slave FQDN)",
+      "defaultValue": "{firstHost}",
+      "displayType": "string",
+      "isVisible": true,
+      "domain": "global",
+      "serviceName": "HCFS",
+      "category": "General"
+    },
+    {
+      "id": "puppet var",
+      "name": "fs_default_name",
+      "displayName": "Gluster default fs name",
+      "description": "Gluster default filesystem name 
(glusterfs://{MasterFQDN}:9000)",
+      "defaultValue": "glusterfs://{firstHost}:9000",
+      "displayType": "string",
+      "isVisible": false,
+      "domain": "global",
+      "serviceName": "HCFS",
+      "category": "General"
+    },
+    {
+      "id": "puppet var",
+      "name": "fs_glusterfs_volname",
+      "displayName": "Gluster volume name",
+      "description": "Gluster volume name",
+      "defaultValue": "HadoopVol",
+      "displayType": "string",
+      "isVisible": true,
+      "domain": "global",
+      "serviceName": "HCFS",
+      "category": "General"
+    },
+    {
+      "id": "puppet var",
+      "name": "fs_glusterfs_mount",
+      "displayName": "Gluster mount point",
+      "description": "Gluster mount point",
+      "defaultValue": "/mnt/glusterfs",
+      "displayType": "string",
+      "isVisible": true,
+      "domain": "global",
+      "serviceName": "HCFS",
+      "category": "General"
+    },
+    {
+      "id": "puppet var",
+      "name": "fs_glusterfs_automount",
+      "displayName": "Automount HCFS",
+      "description": "Automount the HCFS Volume",
+      "defaultValue": "false",
+      "displayType": "string",
+      "isVisible": false,
+      "domain": "global",
+      "serviceName": "HCFS",
+      "category": "General"
+    },
+    {
+      "id": "puppet var",
+      "name": "fs_glusterfs_impl",
+      "displayName": "Gluster fs impl",
+      "description": "Gluster fs impl",
+      "defaultValue": "org.apache.hadoop.fs.glusterfs.GlusterFileSystem",
+      "displayType": "string",
+      "isVisible": false,
+      "domain": "global",
+      "serviceName": "HCFS",
+      "category": "General"
+    },     
   
/**********************************************MAPREDUCE***************************************/
     {
       "id": "puppet var",

Modified: incubator/ambari/trunk/ambari-web/app/data/review_configs.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/review_configs.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/review_configs.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/review_configs.js Wed Jun  5 
23:27:41 2013
@@ -61,6 +61,16 @@ module.exports = [
         ]
       }),
       Ember.Object.create({
+        service_name: 'HCFS',
+        display_name: 'HCFS',
+        service_components: [
+          Ember.Object.create({
+            display_name: 'HCFS Client',
+            component_value: ''
+          })
+        ]
+      }),
+      Ember.Object.create({
         service_name: 'MAPREDUCE',
         display_name: 'MapReduce',
         service_components: [

Modified: incubator/ambari/trunk/ambari-web/app/data/service_components.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/service_components.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/service_components.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/service_components.js Wed Jun  5 
23:27:41 2013
@@ -313,5 +313,13 @@ module.exports = new Ember.Set([
     isMaster: true,
     isClient: false,
     description: ''
+  },
+  { 
+    service_name: 'HCFS',
+    component_name: 'HCFS_CLIENT',
+    display_name: 'HCFS Client', 
+    isMaster: false, 
+    isClient: true, 
+    description: 'Client component for HCFS'
   }
 ]);
\ No newline at end of file

Modified: incubator/ambari/trunk/ambari-web/app/data/service_configs.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/service_configs.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/service_configs.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/service_configs.js Wed Jun  5 
23:27:41 2013
@@ -37,7 +37,16 @@ module.exports = [
     sites: ['global', 'core-site', 'hdfs-site'],
     configs: []
   },
-
+  {
+    serviceName: 'HCFS',
+    displayName: 'HCFS',
+    filename: 'core-site',
+    configCategories: [
+      App.ServiceConfigCategory.create({ name: 'General', displayName : 
'General'})      
+    ],
+    sites: ['core-site'],
+    configs: []
+  },  
   {
     serviceName: 'MAPREDUCE',
     displayName: 'MapReduce',

Modified: incubator/ambari/trunk/ambari-web/app/data/services.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/data/services.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/data/services.js (original)
+++ incubator/ambari/trunk/ambari-web/app/data/services.js Wed Jun  5 23:27:41 
2013
@@ -22,12 +22,20 @@ module.exports = [
   {
     serviceName: 'HDFS',
     displayName: 'HDFS',
-    isDisabled: true,
+    isDisabled: false,
     isSelected: true,
     canBeSelected: true,
     description: Em.I18n.t('services.hdfs.description')
   },
   {
+    serviceName: 'HCFS',
+    displayName: 'HCFS',
+    isDisabled: false,
+    isSelected: false,
+    canBeSelected: true,
+    description: Em.I18n.t('services.hcfs.description')
+  },
+  {
     serviceName: 'MAPREDUCE',
     displayName: 'MapReduce',
     isDisabled: false,

Modified: incubator/ambari/trunk/ambari-web/app/messages.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/messages.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/messages.js (original)
+++ incubator/ambari/trunk/ambari-web/app/messages.js Wed Jun  5 23:27:41 2013
@@ -184,6 +184,7 @@ Em.I18n.translations = {
   'services.nagios.description':'Nagios Monitoring and Alerting system',
   'services.ganglia.description':'Ganglia Metrics Collection system',
   'services.hdfs.description':'Apache Hadoop Distributed File System',
+  'services.hcfs.description':'Apache Hadoop Compatible File System (must be 
installed manually)',
   'services.mapreduce.description':'Apache Hadoop Distributed Processing 
Framework',
   'services.sqoop.description':'Tool for transferring bulk data between Apache 
Hadoop and structured data stores such as relational databases',
   'services.pig.description':'Scripting platform for analyzing large datasets',
@@ -341,6 +342,10 @@ Em.I18n.translations = {
 
   'installer.step4.header':'Choose Services',
   'installer.step4.body':'Choose which services you want to install on your 
cluster.',
+  'installer.step4.hdfsCheck.popup.header':'Hadoop File System Needed',
+  'installer.step4.hdfsCheck.popup.body':'You did not select HDFS or HCFS, but 
one is required.  We will automatically add HDFS.  Is this OK?',
+  'installer.step4.multipleDFS.popup.header':'Multiple File Systems Selected',
+  'installer.step4.multipleDFS.popup.body':'You selected more than one file 
system.  We will automatically select only HDFS.  Is this OK?',
   'installer.step4.mapreduceCheck.popup.header':'MapReduce Needed',
   'installer.step4.mapreduceCheck.popup.body':'You did not select MapReduce, 
but it is needed by other services you selected.  We will automatically add 
MapReduce.  Is this OK?',
   'installer.step4.monitoringCheck.popup.header':'Limited Functionality 
Warning',

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=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/utils/config.js (original)
+++ incubator/ambari/trunk/ambari-web/app/utils/config.js Wed Jun  5 23:27:41 
2013
@@ -414,6 +414,7 @@ App.config = Em.Object.create({
         serviceConfigProperty = App.ServiceConfigProperty.create(_config);
         this.updateHostOverrides(serviceConfigProperty, _config);
         serviceConfigProperty.initialValue(localDB);
+        this.tweakDynamicDefaults(localDB, serviceConfigProperty, _config);
         serviceConfigProperty.validate();
         configsByService.pushObject(serviceConfigProperty);
       }, this);
@@ -425,6 +426,26 @@ App.config = Em.Object.create({
     return renderedServiceConfigs;
   },
   /**
+  Takes care of the "dynamic defaults" for the HCFS configs.  Sets
+  some of the config defaults to previously user-entered data.
+  **/ 
+  tweakDynamicDefaults: function (localDB, serviceConfigProperty, config) {
+    console.log("Step7: Tweaking Dynamic defaults");
+    var firstHost = null;
+    for(var host in localDB.hosts) {
+      firstHost = host;
+      break;
+    }
+    try {
+      if (typeof(config == "string") && 
config.defaultValue.indexOf("{firstHost}") >= 0) {
+        serviceConfigProperty.set('value', 
serviceConfigProperty.value.replace(new RegExp("{firstHost}"), firstHost));
+        serviceConfigProperty.set('defaultValue', 
serviceConfigProperty.defaultValue.replace(new RegExp("{firstHost}"), 
firstHost));
+      } 
+    } catch (err) {
+      // Nothing to worry about here, most likely trying indexOf on a 
non-string
+    }
+  },  
+  /**
    * create new child configs from overrides, attach them to parent config
    * override - value of config, related to particular host(s)
    * @param configProperty

Modified: incubator/ambari/trunk/ambari-web/app/utils/helper.js
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/utils/helper.js?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/utils/helper.js (original)
+++ incubator/ambari/trunk/ambari-web/app/utils/helper.js Wed Jun  5 23:27:41 
2013
@@ -348,6 +348,10 @@ App.format = {
         return 'Update Exclude File';
       case 'HUE_SERVER':
         return 'Hue Server';
+      case 'HCFS_CLIENT':
+        return 'HCFS Client';
+      case 'HCFS_SERVICE_CHECK':
+        return 'HCFS Service Check';
     }
   },
 

Modified: incubator/ambari/trunk/ambari-web/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/pom.xml?rev=1490077&r1=1490076&r2=1490077&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/pom.xml (original)
+++ incubator/ambari/trunk/ambari-web/pom.xml Wed Jun  5 23:27:41 2013
@@ -75,6 +75,9 @@
                   <arg value="-rf"/>
                   <arg value="public"/>
                 </exec>
+                <exec dir="${basedir}" executable="mkdir" failonerror="false">
+                  <arg value="public"/>
+                </exec>
               </target>
             </configuration>
           </execution>


Reply via email to