Backporting AMBARI-1794, AMBARI-1795, and AMBARI-1815 to 1.2 branch. (yusaku)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/branches/branch-1.2@1464877 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 741f9c2..2a07324 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -310,6 +310,15 @@
 
  BUG FIXES
 
+ AMBARI-1795. Add Hosts - retrying install shows all progress bars in red
+ and causes the wizard to get stuck on the progress page. (yusaku)
+
+ AMBARI-1794. Add Host install retry shuts down all services in the cluster.
+ (yusaku)
+
+ AMBARI-1815. After modifying custom configs, properties are shown as blank,
+ leading to corrupt core-site.xml upon save. (yusaku)
+
  AMBARI-1748. JDK option on the UI when used is not passed onto the global 
  parameters. (srimanth)
  
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index bba0a60..229864e 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -638,7 +638,7 @@
       this.setConfigValue(uiConfig, _config);
       uiConfig.pushObject({
         "id": "site property",
-        "name": _config.name,
+        "name": _config._name || _config.name,
         "value": _config.value,
         "filename": _config.filename
       });
@@ -729,7 +729,7 @@
         var index = parseInt(_fkValue.match(/\[([\d]*)(?=\])/)[1]);
         if (uiConfig.someProperty('name', config.foreignKey[index])) {
           var globalValue = uiConfig.findProperty('name', config.foreignKey[index]).value;
-          config.name = config.name.replace(_fkValue, globalValue);
+          config._name = config.name.replace(_fkValue, globalValue);
         } else if (this.get('globalConfigs').someProperty('name', config.foreignKey[index])) {
           var globalValue;
           if (this.get('globalConfigs').findProperty('name', config.foreignKey[index]).value === '') {
@@ -737,7 +737,7 @@
           } else {
             globalValue = this.get('globalConfigs').findProperty('name', config.foreignKey[index]).value;
           }
-          config.name = config.name.replace(_fkValue, globalValue);
+          config._name = config.name.replace(_fkValue, globalValue);
         }
       }, this);
     }
diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js
index ea39dc2..b8177f1 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -270,7 +270,7 @@
     switch (this.get('content.controllerName')) {
       case 'addHostController':
         if (isRetry) {
-          url = App.apiPrefix + '/clusters/' + clusterName + '/host_components?HostRoles/state!=INSTALLED';
+          url = App.apiPrefix + '/clusters/' + clusterName + '/host_components?HostRoles/state=INSTALLED';
           data = '{"HostRoles": {"state": "INSTALLED"}}';
         } else {
           url = App.apiPrefix + '/clusters/' + clusterName + '/host_components?HostRoles/state=INIT';
diff --git a/ambari-web/app/routes/add_host_routes.js b/ambari-web/app/routes/add_host_routes.js
index de4d22b..b603ac1 100644
--- a/ambari-web/app/routes/add_host_routes.js
+++ b/ambari-web/app/routes/add_host_routes.js
@@ -242,6 +242,7 @@
           var isRetry = true;
           addHostController.installServices(isRetry);
           addHostController.setInfoForStep9();
+          wizardStep9Controller.resetHostsForRetry();
           // We need to do recovery based on whether we are in Add Host or Installer wizard
           App.clusterStatus.setClusterStatus({
             clusterName: this.get('clusterName'),