Browse Source

AMBARI-6858. Service config page: Advanced section should appear for each affiliated configType. (jaimin)

Jaimin Jetly 10 năm trước cách đây
mục cha
commit
6afba61c64
51 tập tin đã thay đổi với 315 bổ sung394 xóa
  1. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-env.xml
  2. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-log4j.xml
  3. 2 2
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hadoop-env.xml
  4. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-log4j.xml
  5. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-env.xml
  6. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-exec-log4j.xml
  7. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-log4j.xml
  8. 0 85
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-env.xml
  9. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapreduce-log4j.xml
  10. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/oozie-env.xml
  11. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/oozie-log4j.xml
  12. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/configuration/pig-env.xml
  13. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/configuration/pig-log4j.xml
  14. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/SQOOP/configuration/sqoop-env.xml
  15. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/configuration/zookeeper-env.xml
  16. 1 0
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
  17. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/flume-conf.xml
  18. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/flume-log4j.xml
  19. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-env.xml
  20. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-log4j.xml
  21. 2 2
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hadoop-env.xml
  22. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-log4j.xml
  23. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-env.xml
  24. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-exec-log4j.xml
  25. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-log4j.xml
  26. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-env.xml
  27. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-log4j.xml
  28. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/configuration/pig-env.xml
  29. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/configuration/pig-log4j.xml
  30. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/SQOOP/configuration/sqoop-env.xml
  31. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-env.xml
  32. 0 52
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-queue-acls.xml
  33. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/yarn-env.xml
  34. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/yarn-log4j.xml
  35. 0 2
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/metainfo.xml
  36. 0 16
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/package/scripts/yarn.py
  37. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/configuration/zookeeper-env.xml
  38. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
  39. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-env.xml
  40. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-env.xml
  41. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-env.xml
  42. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/configuration/yarn-env.xml
  43. 2 2
      ambari-web/app/controllers/main/service/info/configs.js
  44. 2 1
      ambari-web/app/controllers/wizard.js
  45. 7 2
      ambari-web/app/controllers/wizard/step7_controller.js
  46. 76 59
      ambari-web/app/data/HDP2/site_properties.js
  47. 62 44
      ambari-web/app/data/site_properties.js
  48. 0 1
      ambari-web/app/mappers/stack_service_mapper.js
  49. 63 89
      ambari-web/app/models/stack_service.js
  50. 36 17
      ambari-web/app/utils/config.js
  51. 27 1
      ambari-web/app/views/common/configs/services_config.js

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-env.xml

@@ -60,7 +60,7 @@
   <!-- hbase-env.sh -->
   <property>
     <name>content</name>
-    <description>hbase-env.sh content</description>
+    <description>This is the jinja template for hbase-env.sh file</description>
     <value>
 # Set environment variables here.
 

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 #

+ 2 - 2
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hadoop-env.xml

@@ -76,7 +76,7 @@
   <property>
     <name>hdfs_user</name>
     <value>hdfs</value>
-    <description>User and Groups.</description>
+    <description>User to run HDFS as</description>
   </property>
   <property>
     <name>ignore_groupsusers_create</name>
@@ -97,7 +97,7 @@
   <!-- hadoop-env.sh -->
   <property>
     <name>content</name>
-    <description>hadoop-env.sh content</description>
+    <description>This is the jinja template for hadoop-env.sh file</description>
     <value>
 # Set Hadoop-specific environment variables here.
 

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 # Copyright 2011 The Apache Software Foundation
 #

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-env.xml

@@ -100,7 +100,7 @@
   <!-- hive-env.sh -->
   <property>
     <name>content</name>
-    <description>hive-env.sh content</description>
+    <description>This is the jinja template for hive-env.sh file</description>
     <value>
  if [ "$SERVICE" = "cli" ]; then
    if [ -z "$DEBUG" ]; then

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-exec-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom hive-exec-log4j</description>
     <value>
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file

+ 0 - 85
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-env.xml

@@ -21,21 +21,6 @@
 -->
 
 <configuration>
-  <property>
-    <name>mapred_local_dir</name>
-    <value>/hadoop/mapred</value>
-    <description>MapRed Local Directories.</description>
-  </property>
-  <property>
-    <name>mapred_system_dir</name>
-    <value>/mapred/system</value>
-    <description>MapRed System Directories.</description>
-  </property>
-  <property>
-    <name>scheduler_name</name>
-    <value>org.apache.hadoop.mapred.CapacityTaskScheduler</value>
-    <description>MapRed Capacity Scheduler.</description>
-  </property>
   <property>
     <name>jtnode_opt_newsize</name>
     <value>200</value>
@@ -51,56 +36,6 @@
     <value>1024</value>
     <description>Maximum Java heap size for JobTracker in MB (Java option -Xmx)</description>
   </property>
-  <property>
-    <name>mapred_map_tasks_max</name>
-    <value>4</value>
-    <description>Number of slots that Map tasks that run simultaneously can occupy on a TaskTracker</description>
-  </property>
-  <property>
-    <name>mapred_red_tasks_max</name>
-    <value>2</value>
-    <description>Number of slots that Reduce tasks that run simultaneously can occupy on a TaskTracker</description>
-  </property>
-  <property>
-    <name>mapred_cluster_map_mem_mb</name>
-    <value>-1</value>
-    <description>The virtual memory size of a single Map slot in the MapReduce framework</description>
-  </property>
-  <property>
-    <name>mapred_cluster_red_mem_mb</name>
-    <value>-1</value>
-    <description>The virtual memory size of a single Reduce slot in the MapReduce framework</description>
-  </property>
-  <property>
-    <name>mapred_job_map_mem_mb</name>
-    <value>-1</value>
-    <description>Virtual memory for single Map task</description>
-  </property>
-  <property>
-    <name>mapred_child_java_opts_sz</name>
-    <value>768</value>
-    <description>Java options for the TaskTracker child processes.</description>
-  </property>
-  <property>
-    <name>io_sort_mb</name>
-    <value>200</value>
-    <description>The total amount of Map-side buffer memory to use while sorting files (Expert-only configuration).</description>
-  </property>
-  <property>
-    <name>io_sort_spill_percent</name>
-    <value>0.9</value>
-    <description>Percentage of sort buffer used for record collection (Expert-only configuration.</description>
-  </property>
-  <property>
-    <name>mapreduce_userlog_retainhours</name>
-    <value>24</value>
-    <description>The maximum time, in hours, for which the user-logs are to be retained after the job completion.</description>
-  </property>
-  <property>
-    <name>maxtasks_per_job</name>
-    <value>-1</value>
-    <description>Maximum number of tasks for a single Job</description>
-  </property>
   <property>
     <name>lzo_enabled</name>
     <value>true</value>
@@ -116,26 +51,6 @@
     <value>true</value>
     <description>Enable Job Diagnostics.</description>
   </property>
-  <property>
-    <name>mapred_hosts_exclude</name>
-    <value></value>
-    <description>Exclude entered hosts</description>
-  </property>
-  <property>
-    <name>mapred_hosts_include</name>
-    <value></value>
-    <description>Include entered hosts</description>
-  </property>
-  <property>
-    <name>mapred_jobstatus_dir</name>
-    <value>/mapred/jobstatus</value>
-    <description>Job Status directory</description>
-  </property>
-  <property>
-    <name>task_controller</name>
-    <value>org.apache.hadoop.mapred.DefaultTaskController</value>
-    <description>Task Controller.</description>
-  </property>
   <property>
     <name>mapred_user</name>
     <value>mapred</value>

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapreduce-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #Relative to Mapred LOG DIR Prefix
 mapred.log.dir=.

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/oozie-env.xml

@@ -60,7 +60,7 @@
   <!-- oozie-env.sh -->
   <property>
     <name>content</name>
-    <description>oozie-env.sh content</description>
+    <description>This is the jinja template for oozie-env.sh file</description>
     <value>
 #!/bin/bash
 

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/oozie-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 # Licensed to the Apache Software Foundation (ASF) under one

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/configuration/pig-env.xml

@@ -24,7 +24,7 @@
   <!-- pig-env.sh -->
   <property>
     <name>content</name>
-    <description>pig-env.sh content</description>
+    <description>This is the jinja template for pig-env.sh file</description>
     <value>
 JAVA_HOME={{java64_home}}
 HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/configuration/pig-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 #

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/SQOOP/configuration/sqoop-env.xml

@@ -24,7 +24,7 @@
   <!-- sqoop-env.sh -->
   <property>
     <name>content</name>
-    <description>sqoop-env.sh content</description>
+    <description>This is the jinja template for sqoop-env.sh file</description>
     <value>
 # Set Hadoop-specific environment variables here.
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/configuration/zookeeper-env.xml

@@ -65,7 +65,7 @@
   <!-- zookeeper-env.sh -->
   <property>
     <name>content</name>
-    <description>zookeeper-env.sh content</description>
+    <description>This is the jinja template for zookeeper-env.sh file</description>
     <value>
 export JAVA_HOME={{java64_home}}
 export ZOO_LOG_DIR={{zk_log_dir}}

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/configuration/zookeeper-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 #

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/flume-conf.xml

@@ -22,7 +22,7 @@
 
 <configuration supports_final="false">
   <property>
-    <name>content</name>
+    <name>flume-content</name>
     <description>Describe all the Flume agent configurations</description>
     <value>
 # Flume agent config

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/flume-log4j.xml

@@ -23,6 +23,7 @@
 <configuration supports_final="false">
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 # Flume log4j config
     </value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-env.xml

@@ -60,7 +60,7 @@
   <!-- hbase-env.sh -->
   <property>
     <name>content</name>
-    <description>hbase-env.sh content</description>
+    <description>This is the jinja template for hbase-env.sh file</description>
     <value>
 # Set environment variables here.
 

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file

+ 2 - 2
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hadoop-env.xml

@@ -74,7 +74,7 @@
   <property>
     <name>hdfs_user</name>
     <value>hdfs</value>
-    <description>User and Groups.</description>
+    <description>User to run HDFS as</description>
   </property>
   <property>
     <name>ignore_groupsusers_create</name>
@@ -95,7 +95,7 @@
   <!-- hadoop-env.sh -->
   <property>
     <name>content</name>
-    <description>hadoop-env.sh content</description>
+    <description>This is the jinja template for hadoop-env.sh file</description>
     <value>
 # Set Hadoop-specific environment variables here.
 

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 # Licensed to the Apache Software Foundation (ASF) under one

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-env.xml

@@ -90,7 +90,7 @@
   <!-- hive-env.sh -->
   <property>
     <name>content</name>
-    <description>hive-env.sh content</description>
+    <description>This is the jinja template for hive-env.sh file</description>
     <value>
  if [ "$SERVICE" = "cli" ]; then
    if [ -z "$DEBUG" ]; then

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-exec-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom hive-exec-log4j</description>
     <value>
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-env.xml

@@ -60,7 +60,7 @@
   <!-- oozie-env.sh -->
   <property>
     <name>content</name>
-    <description>oozie-env.sh content</description>
+    <description>This is the jinja template for oozie-env.sh file</description>
     <value>
 #!/bin/bash
 

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 # Licensed to the Apache Software Foundation (ASF) under one

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/configuration/pig-env.xml

@@ -24,7 +24,7 @@
   <!-- pig-env.sh -->
   <property>
     <name>content</name>
-    <description>pig-env.sh content</description>
+    <description>This is the jinja template for pig-env.sh file</description>
     <value>
 JAVA_HOME={{java64_home}}
 HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/configuration/pig-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 #

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/SQOOP/configuration/sqoop-env.xml

@@ -24,7 +24,7 @@
   <!-- sqoop-env.sh -->
   <property>
     <name>content</name>
-    <description>sqoop-env.sh content</description>
+    <description>This is the jinja template for sqoop-env.sh file</description>
     <value>
 # Set Hadoop-specific environment variables here.
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-env.xml

@@ -45,7 +45,7 @@
   <!-- mapred-env.sh -->
   <property>
     <name>content</name>
-    <description>mapred-env.sh content</description>
+    <description>This is the jinja template for mapred-env.sh file</description>
     <value>
 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
 

+ 0 - 52
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-queue-acls.xml

@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-<!-- mapred-queue-acls.xml -->
-<configuration supports_final="true">
-
-
-<!-- queue default -->
-
-  <property>
-    <name>mapred.queue.default.acl-submit-job</name>
-    <value>*</value>
-    <description> Comma separated list of user and group names that are allowed
-      to submit jobs to the 'default' queue. The user list and the group list
-      are separated by a blank. For e.g. alice,bob group1,group2.
-      If set to the special value '*', it means all users are allowed to
-      submit jobs.
-    </description>
-  </property>
-
-  <property>
-    <name>mapred.queue.default.acl-administer-jobs</name>
-    <value>*</value>
-    <description> Comma separated list of user and group names that are allowed
-      to delete jobs or modify job's priority for jobs not owned by the current
-      user in the 'default' queue. The user list and the group list
-      are separated by a blank. For e.g. alice,bob group1,group2.
-      If set to the special value '*', it means all users are allowed to do
-      this operation.
-    </description>
-  </property>
-
-  <!-- END ACLs -->
-
-</configuration>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/yarn-env.xml

@@ -55,7 +55,7 @@
   <!-- yarn-env.sh -->
   <property>
     <name>content</name>
-    <description>yarn-env.sh content</description>
+    <description>This is the jinja template for yarn-env.sh file</description>
     <value>
 export HADOOP_YARN_HOME={{hadoop_yarn_home}}
 export YARN_LOG_DIR={{yarn_log_dir_prefix}}/$USER

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/yarn-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #Relative to Yarn Log Dir Prefix
 yarn.log.dir=.

+ 0 - 2
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/metainfo.xml

@@ -132,7 +132,6 @@
         <config-type>yarn-env</config-type>
         <config-type>core-site</config-type>
         <config-type>mapred-site</config-type>
-        <config-type>mapred-queue-acls</config-type>
         <config-type>yarn-log4j</config-type>
       </configuration-dependencies>
     </service>
@@ -223,7 +222,6 @@
         <config-type>core-site</config-type>
         <config-type>mapred-site</config-type>
         <config-type>mapred-env</config-type>
-        <config-type>mapred-queue-acls</config-type>
       </configuration-dependencies>
     </service>
 

+ 0 - 16
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/package/scripts/yarn.py

@@ -200,22 +200,6 @@ def yarn(name = None):
               group=params.user_group
     )
 
-  if "mapred-queue-acls" in params.config['configurations']:
-    XmlConfig("mapred-queue-acls.xml",
-              conf_dir=params.hadoop_conf_dir,
-              configurations=params.config['configurations'][
-                'mapred-queue-acls'],
-              configuration_attributes=params.config['configuration_attributes']['mapred-queue-acls'],
-              owner=params.mapred_user,
-              group=params.user_group
-    )
-  elif os.path.exists(
-    os.path.join(params.hadoop_conf_dir, "mapred-queue-acls.xml")):
-    File(os.path.join(params.hadoop_conf_dir, "mapred-queue-acls.xml"),
-         owner=params.mapred_user,
-         group=params.user_group
-    )
-
   if "capacity-scheduler" in params.config['configurations']:
     XmlConfig("capacity-scheduler.xml",
               conf_dir=params.hadoop_conf_dir,

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/configuration/zookeeper-env.xml

@@ -65,7 +65,7 @@
   <!-- zookeeper-env.sh -->
   <property>
     <name>content</name>
-    <description>zookeeper-env.sh content</description>
+    <description>This is the jinja template for zookeeper-env.sh file</description>
     <value>
 export JAVA_HOME={{java64_home}}
 export ZOO_LOG_DIR={{zk_log_dir}}

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/configuration/zookeeper-log4j.xml

@@ -24,6 +24,7 @@
 
   <property>
     <name>content</name>
+    <description>Custom log4j.properties</description>
     <value>
 #
 #

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-env.xml

@@ -64,7 +64,7 @@
   <!-- falcon-env.sh -->
   <property>
     <name>content</name>
-    <description>falcon-env.sh content</description>
+    <description>This is the jinja template for falcon-env.sh file</description>
     <value>
 # The java implementation to use. If JAVA_HOME is not found we expect java and jar to be in path
 export JAVA_HOME={{java_home}}

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-env.xml

@@ -40,7 +40,7 @@
   <!-- storm-env.sh -->
   <property>
     <name>content</name>
-    <description>storm-env.sh content</description>
+    <description>This is the jinja template for storm-env.sh file</description>
     <value>
 #!/bin/bash
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-env.xml

@@ -30,7 +30,7 @@
   <!-- tez-env.sh -->
   <property>
     <name>content</name>
-    <description>tez-env.sh content</description>
+    <description>This is the jinja template for tez-env.sh file</description>
     <value>
 # Tez specific configuration
 export TEZ_CONF_DIR={{config_dir}}

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/configuration/yarn-env.xml

@@ -60,7 +60,7 @@
   <!-- yarn-env.sh -->
   <property>
     <name>content</name>
-    <description>yarn-env.sh content</description>
+    <description>This is the jinja template for yarn-env.sh file</description>
     <value>
 export HADOOP_YARN_HOME={{hadoop_yarn_home}}
 export YARN_LOG_DIR={{yarn_log_dir_prefix}}/$USER

+ 2 - 2
ambari-web/app/controllers/main/service/info/configs.js

@@ -643,7 +643,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
       App.config.OnNnHAHideSnn(serviceConfig);
     }
 
-    if ((serviceName || serviceConfig.serviceName === 'MISC') && !App.supports.serverRecommendValidate) {
+    if (serviceName && !App.supports.serverRecommendValidate) {
       // set recommended Defaults first then load the configs (including set validator)
       var s = App.StackService.find().findProperty('serviceName', this.get('content.serviceName'));
       var defaultsProvider = s.get('defaultsProviders');
@@ -654,7 +654,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
       }
     } else {
       if (App.supports.serverRecommendValidate) {
-        var serviceConfig = App.config.createServiceConfig(this.get('content.serviceName'));
+        serviceConfig = App.config.createServiceConfig(this.get('content.serviceName'));
         this.loadConfigs(this.get('allConfigs'), serviceConfig);
         this.checkOverrideProperty(serviceConfig);
         this.checkDatabaseProperties(serviceConfig);

+ 2 - 1
ambari-web/app/controllers/wizard.js

@@ -845,7 +845,8 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, {
           isRequiredByAgent: _configProperties.get('isRequiredByAgent'),
           hasInitialValue: !!_configProperties.get('hasInitialValue'),
           isRequired: _configProperties.get('isRequired'), // flag that allow saving property with empty value
-          group: !!_configProperties.get('group') ? _configProperties.get('group.name') : null
+          group: !!_configProperties.get('group') ? _configProperties.get('group.name') : null,
+          showLabel: _configProperties.get('showLabel'),
         };
         serviceConfigProperties.push(configProperty);
       }, this);

+ 7 - 2
ambari-web/app/controllers/wizard/step7_controller.js

@@ -683,7 +683,7 @@ App.WizardStep7Controller = Em.Controller.extend({
       return;
     }
     this.clearStep();
-    App.config.setPreDefinedServiceConfigs();
+
     var self = this;
     //STEP 1: Load advanced configs
     var advancedConfigs = this.get('content.advancedServiceConfig');
@@ -695,6 +695,7 @@ App.WizardStep7Controller = Em.Controller.extend({
       advancedConfigs,
       this.get('selectedServiceNames').concat(this.get('installedServiceNames'))
     );
+    App.config.setPreDefinedServiceConfigs();
     //STEP 4: Add advanced configs
     App.config.addAdvancedConfigs(configs, advancedConfigs);
     //STEP 5: Add custom configs
@@ -878,6 +879,8 @@ App.WizardStep7Controller = Em.Controller.extend({
    * set configs actual values from server
    * @param serviceConfigTags
    * @param configs
+   * @param configsByTags
+   * @param installedServiceNames
    * @method setInstalledServiceConfigs
    */
   setInstalledServiceConfigs: function (serviceConfigTags, configs, configsByTags, installedServiceNames) {
@@ -893,7 +896,8 @@ App.WizardStep7Controller = Em.Controller.extend({
       }
     });
     configs.forEach(function (_config) {
-      if (!Em.isNone(configsMap[_config.name]) && installedServiceNames && installedServiceNames.contains(_config.serviceName)) {
+      var nonServiceTab = require('data/service_configs');
+      if (!Em.isNone(configsMap[_config.name]) && ((installedServiceNames && installedServiceNames.contains(_config.serviceName)  || nonServiceTab.someProperty('serviceName',_config.serviceName))) ) {
         // prevent overriding already edited properties
         if (_config.defaultValue != configsMap[_config.name])
           _config.value = configsMap[_config.name];
@@ -905,6 +909,7 @@ App.WizardStep7Controller = Em.Controller.extend({
     });
     self.setServiceDatabaseConfigs(configs);
     //add user properties
+
     for (var name in configsMap) {
       configs.push(configMixin.addUserProperty({
         id: 'site property',

+ 76 - 59
ambari-web/app/data/HDP2/site_properties.js

@@ -97,7 +97,7 @@ module.exports =
       "name": "dfs.replication",
       "displayName": "Block replication",
       "displayType": "int",
-      "category": "Advanced",
+      "category": "General",
       "serviceName": "HDFS"
     },
     {
@@ -115,7 +115,7 @@ module.exports =
       "name": "dfs.client.read.shortcircuit",
       "displayName": "HDFS Short-circuit read",
       "displayType": "checkbox",
-      "category": "Advanced",
+      "category": "Advanced hdfs-site",
       "serviceName": "HDFS"
     },
     {
@@ -126,7 +126,7 @@ module.exports =
       "isRequired": false,
       "isRequiredByAgent": false,
       "isVisible": false,
-      "category": "Advanced",
+      "category": "Advanced hdfs-site",
       "serviceName": "HDFS"
     },
     {
@@ -137,7 +137,7 @@ module.exports =
       "isRequiredByAgent": false,
       "isRequired": false,
       "isVisible": false,
-      "category": "Advanced",
+      "category": "Advanced hdfs-site",
       "serviceName": "HDFS"
     },
 
@@ -262,7 +262,7 @@ module.exports =
       "id": "site property",
       "name": "yarn.log.server.url",
       "displayName": "yarn.log.server.url",
-      "category": "Advanced",
+      "category": "Advanced yarn-site",
       "serviceName": "YARN"
     },
     {
@@ -378,14 +378,14 @@ module.exports =
       "displayName": "hadoop.security.auth_to_local",
       "displayType": "multiLine",
       "serviceName": "HDFS",
-      "category": "Advanced"
+      "category": "Advanced core-site"
     },
     {
       "id": "site property",
       "name": "yarn.app.mapreduce.am.resource.mb",
       "displayName": "yarn.app.mapreduce.am.resource.mb",
       "displayType": "int",
-      "category": "Advanced",
+      "category": "Advanced mapred-site",
       "serviceName": "MAPREDUCE2"
     },
 
@@ -510,7 +510,7 @@ module.exports =
       "displayName": "hive.server2.tez.default.queues",
       "isRequired": false,
       "serviceName": "HIVE",
-      "category": "Advanced"
+      "category": "Advanced hive-site"
     },
     {
       "id": "site property",
@@ -522,7 +522,7 @@ module.exports =
       "isReconfigurable": true,
       "isOverridable": false,
       "isVisible": true,
-      "category": "Advanced",
+      "category": "Advanced hive-site",
       "serviceName": "HIVE"
     },
   /**********************************************tez-site*****************************************/
@@ -613,7 +613,7 @@ module.exports =
       "displayName": "HBase local directory",
       "defaultDirectory": "/hadoop/hbase",
       "displayType": "directory",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
 
     },
@@ -626,14 +626,14 @@ module.exports =
     "isOverridable": false,
     "isVisible": true,
     "serviceName": "HBASE",
-    "category": "Advanced"
+    "category": "Advanced hbase-site"
     },
     {
       "id": "site property",
       "name": "hbase.regionserver.global.memstore.upperLimit",
       "displayName": "hbase.regionserver.global.memstore.upperLimit",
       "displayType": "float",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -641,7 +641,7 @@ module.exports =
       "name": "hbase.regionserver.global.memstore.lowerLimit",
       "displayName": "hbase.regionserver.global.memstore.lowerLimit",
       "displayType": "float",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -649,7 +649,7 @@ module.exports =
       "name": "hbase.hstore.blockingStoreFiles",
       "displayName": "hstore blocking storefiles",
       "displayType": "int",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -713,7 +713,7 @@ module.exports =
       "name": "hbase.hregion.memstore.mslab.enabled",
       "displayName": "hbase.hregion.memstore.mslab.enabled",
       "displayType": "checkbox",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -760,7 +760,7 @@ module.exports =
       "id": "site property",
       "name": "hbase.coprocessor.region.classes",
       "displayName": "hbase.coprocessor.region.classes",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "isRequired": false,
       "serviceName": "HBASE"
     },
@@ -768,7 +768,7 @@ module.exports =
       "id": "site property",
       "name": "hbase.coprocessor.master.classes",
       "displayName": "hbase.coprocessor.master.classes",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "isRequired": false,
       "serviceName": "HBASE"
     },
@@ -778,7 +778,7 @@ module.exports =
       "displayName": "hbase.zookeeper.quorum",
       "displayType": "multiLine",
       "serviceName": "HBASE",
-      "category": "Advanced"
+      "category": "Advanced hbase-site"
     },
 
   /**********************************************storm-site***************************************/
@@ -1203,7 +1203,7 @@ module.exports =
     {
       "id": "site property",
       "serviceName": "STORM",
-      "category": "Advanced",
+      "category": "Advanced storm-site",
       "displayName": "worker.childopts",
       "name": "worker.childopts",
       "displayType": "multiLine",
@@ -1565,7 +1565,7 @@ module.exports =
       "displayName": "templeton.hive.archive",
       "isRequired": false,
       "serviceName": "WEBHCAT",
-      "category": "Advanced"
+      "category": "Advanced webhcat-site"
     },
     {
       "id": "site property",
@@ -1573,7 +1573,7 @@ module.exports =
       "displayName": "templeton.pig.archive",
       "isRequired": false,
       "serviceName": "WEBHCAT",
-      "category": "Advanced"
+      "category": "Advanced webhcat-site"
     },
     {
       "id": "site property",
@@ -1581,7 +1581,7 @@ module.exports =
       "displayName": "templeton.zookeeper.hosts",
       "displayType": "multiLine",
       "serviceName": "WEBHCAT",
-      "category": "Advanced"
+      "category": "Advanced webhcat-site"
     },
   /**********************************************pig.properties*****************************************/
     {
@@ -1596,7 +1596,7 @@ module.exports =
       "showLabel": false,
       "serviceName": "PIG",
       "filename": "pig-properties.xml",
-      "category": "Advanced"
+      "category": "Advanced pig-properties"
     },
 
     //***************************************** GLUSTERFS stack********************************************
@@ -1640,7 +1640,7 @@ module.exports =
   /********************************************* flume-agent *****************************/
     {
       "id": "site property",
-      "name": "content",
+      "name": "flume-content",
       "displayName": "content",
       "showLabel": false,
       "isRequired": false,
@@ -1739,7 +1739,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "isRequiredByAgent": false,
-      "domain": "datanode-global",
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
       "category": "DATANODE",
@@ -1754,7 +1753,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": true,
-      "domain": "datanode-global",
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
       "category": "DATANODE",
@@ -1771,6 +1769,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
+      "category": "General",
       "index": 1
     },
     {
@@ -1785,7 +1784,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1799,7 +1798,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1813,7 +1812,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
 
   /**********************************************MAPREDUCE2***************************************/
@@ -1859,7 +1858,7 @@ module.exports =
       "isReconfigurable": false,
       "serviceName": "MAPREDUCE2",
       "filename": "mapred-env.xml",
-      "category": "Advanced"
+      "category": "Advanced mapred-env"
     },
     {
       "id": "puppet var",
@@ -1873,7 +1872,7 @@ module.exports =
       "isReconfigurable": false,
       "serviceName": "MAPREDUCE2",
       "filename": "mapred-env.xml",
-      "category": "Advanced"
+      "category": "Advanced mapred-env"
     },
   /**********************************************YARN***************************************/
     {
@@ -1963,7 +1962,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "YARN",
       "filename": "yarn-env.xml",
-      "category": "Advanced"
+      "category": "Advanced yarn-env"
     },
     {
       "id": "puppet var",
@@ -1977,7 +1976,7 @@ module.exports =
       "isReconfigurable": false,
       "serviceName": "YARN",
       "filename": "yarn-env.xml",
-      "category": "Advanced"
+      "category": "Advanced yarn-env"
     },
     {
       "id": "puppet var",
@@ -2105,7 +2104,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HBASE",
       "filename": "hbase-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hbase-env"
     },
     {
       "id": "puppet var",
@@ -2119,7 +2118,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HBASE",
       "filename": "hbase-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hbase-env"
     },
   /**********************************************GLUSTERFS***************************************/
     {
@@ -2216,7 +2215,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "GLUSTERFS",
       "filename": "glusterfs-env.xml",
-      "category": "category"
+      "category": "Advanced"
     },
     {
       "id": "puppet var",
@@ -2241,7 +2240,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": false,
-      "domain": "datanode-global",
       "serviceName": "GLUSTERFS",
       "filename": "glusterfs-env.xml",
       "category": "Advanced"
@@ -2461,7 +2459,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -2475,7 +2473,7 @@ module.exports =
       "isRequiredByAgent": false, // Make this to true when we expose the property on ui by making "isVisible": true
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -2489,7 +2487,7 @@ module.exports =
       "isRequiredByAgent": false, // Make this to true when we expose the property on ui by making "isVisible": true
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -2503,7 +2501,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -2517,7 +2515,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
   /**********************************************WEBHCAT***************************************/
     {
@@ -2547,7 +2545,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "WEBHCAT",
       "filename": "webhcat-env.xml",
-      "category": "Advanced"
+      "category": "Advanced webhcat-env"
     },
     {
       "id": "puppet var",
@@ -2561,7 +2559,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "WEBHCAT",
       "filename": "webhcat-env.xml",
-      "category": "Advanced"
+      "category": "Advanced webhcat-env"
     },
   /**********************************************OOZIE***************************************/
     {
@@ -2813,7 +2811,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "OOZIE",
       "filename": "oozie-env.xml",
-      "category": "Advanced"
+      "category": "Advanced oozie-env"
     },
     {
       "id": "puppet var",
@@ -2827,7 +2825,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "OOZIE",
       "filename": "oozie-env.xml",
-      "category": "Advanced"
+      "category": "Advanced oozie-env"
     },
     {
       "id": "puppet var",
@@ -2839,7 +2837,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "OOZIE",
       "filename": "oozie-env.xml",
-      "category": "Advanced"
+      "category": "Advanced oozie-env"
     },
   /**********************************************NAGIOS***************************************/
     {
@@ -2853,6 +2851,7 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "serviceName": "NAGIOS",
+      "category": "General",
       "filename": "nagios-env.xml",
       "index": 0
     },
@@ -2868,6 +2867,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "NAGIOS",
       "filename": "nagios-env.xml",
+      "category": "General",
       "index": 1
     },
     {
@@ -2881,6 +2881,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "NAGIOS",
       "filename": "nagios-env.xml",
+      "category": "General",
       "index": 2
     },
   /**********************************************ZOOKEEPER***************************************/
@@ -2985,7 +2986,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "ZOOKEEPER",
       "filename": "zookeeper-env.xml",
-      "category": "Advanced",
+      "category": "Advanced zookeeper-env",
       "index": 0
     },
     {
@@ -3000,7 +3001,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "ZOOKEEPER",
       "filename": "zookeeper-env.xml",
-      "category": "Advanced",
+      "category": "Advanced zookeeper-env",
       "index": 1
     },
   /**********************************************GANGLIA***************************************/
@@ -3016,7 +3017,7 @@ module.exports =
       "isRequiredByAgent": false,
       "serviceName": "GANGLIA",
       "filename": "ganglia-env.xml",
-      "category": "Advanced"
+      "category": "Advanced ganglia-env"
     },
   /**********************************************FALCON***************************************/
     {
@@ -3087,7 +3088,7 @@ module.exports =
       "isReconfigurable": false,
       "serviceName": "FALCON",
       "filename": "falcon-env.xml",
-      "category": "Advanced"
+      "category": "Advanced falcon-env"
     },
     {
       "id": "puppet var",
@@ -3102,7 +3103,7 @@ module.exports =
       "isReconfigurable": false,
       "serviceName": "FALCON",
       "filename": "falcon-env.xml",
-      "category": "Advanced"
+      "category": "Advanced falcon-env"
     },
     {
       "id": "puppet var",
@@ -3117,7 +3118,7 @@ module.exports =
       "isReconfigurable": true,
       "serviceName": "FALCON",
       "filename": "falcon-env.xml",
-      "category": "Advanced"
+      "category": "Advanced falcon-env"
     },
     {
       "id": "puppet var",
@@ -3132,7 +3133,7 @@ module.exports =
       "isReconfigurable": true,
       "serviceName": "FALCON",
       "filename": "falcon-env.xml",
-      "category": "Advanced"
+      "category": "Advanced falcon-env"
     },
     {
       "id": "puppet var",
@@ -3147,7 +3148,7 @@ module.exports =
       "isReconfigurable": true,
       "serviceName": "FALCON",
       "filename": "falcon-env.xml",
-      "category": "Advanced"
+      "category": "Advanced falcon-env"
     },
   /**********************************************STORM***************************************/
     {
@@ -3162,7 +3163,7 @@ module.exports =
       "isRequiredByAgent": true,
       "serviceName": "STORM",
       "filename": "storm-env.xml",
-      "category": "General"
+      "category": "Advanced storm-env"
     },
     {
       "id": "puppet var",
@@ -3176,7 +3177,7 @@ module.exports =
       "isRequiredByAgent": true,
       "serviceName": "STORM",
       "filename": "storm-env.xml",
-      "category": "General"
+      "category": "Advanced storm-env"
     },
     {
       "id": "puppet var",
@@ -3458,6 +3459,22 @@ module.exports =
       "belongsToService": ["ZOOKEEPER"],
       "index": 11
     },
+    {
+      "id": "puppet var",
+      "name": "flume_user",
+      "displayName": "Flume User",
+      "description": "User to run Flume as",
+      "defaultValue": "flume",
+      "isReconfigurable": false,
+      "displayType": "user",
+      "isOverridable": false,
+      "isVisible": true,
+      "serviceName": "MISC",
+      "filename": "flume-env.xml",
+      "category": "Users and Groups",
+      "belongsToService": ["FLUME"],
+      "index": 12
+    },
     {
       "id": "puppet var",
       "name": "gmetad_user",
@@ -3472,7 +3489,7 @@ module.exports =
       "filename": "ganglia-env.xml",
       "category": "Users and Groups",
       "belongsToService": ["GANGLIA"],
-      "index": 12
+      "index": 13
     },
     {
       "id": "puppet var",
@@ -3567,7 +3584,7 @@ module.exports =
       "filename": "hadoop-env.xml",
       "category": "Users and Groups",
       "belongsToService": ["HDFS"],
-      "index": 16
+      "index": 17
     },
     {
       "id": "puppet var",

+ 62 - 44
ambari-web/app/data/site_properties.js

@@ -129,7 +129,7 @@ module.exports =
       "displayType": "int",
       "defaultValue": "",
       "isVisible": true,
-      "category": "Advanced",
+      "category": "General",
       "serviceName": "HDFS"
     },
     {
@@ -168,6 +168,7 @@ module.exports =
       "displayType": "advanced",
       "isOverridable": false,
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 0
     },
     {
@@ -201,6 +202,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 2
     },
     {
@@ -212,6 +214,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 5
     },
     {
@@ -223,6 +226,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 3
     },
     {
@@ -234,6 +238,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 4
     },
     {
@@ -245,6 +250,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 6
     },
     {
@@ -256,6 +262,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 1
     },
     {
@@ -267,6 +274,7 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 7
     },
     {
@@ -277,6 +285,7 @@ module.exports =
       "defaultValue": "",
       "displayType": "float",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 8
     },
     {
@@ -287,7 +296,7 @@ module.exports =
       "defaultValue": "/mapred/system",
       "displayType": "directories",
       "serviceName": "MAPREDUCE",
-      "category": "Advanced"
+      "category": "Advanced mapred-site"
     },
     {
       "id": "site property",
@@ -298,6 +307,7 @@ module.exports =
       "displayType": "int",
       "unit": "hours",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 9
     },
     {
@@ -308,6 +318,7 @@ module.exports =
       "defaultValue": "",
       "displayType": "int",
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "index": 10
     },
     {
@@ -319,7 +330,7 @@ module.exports =
       permitted.",
       "defaultValue": "",
       "displayType": "directory",
-      "category": "Advanced",
+      "category": "Advanced mapred-site",
       "serviceName": "MAPREDUCE"
     },
     {
@@ -331,7 +342,7 @@ module.exports =
       hosts are excluded.",
       "defaultValue": "",
       "displayType": "directory",
-      "category": "Advanced",
+      "category": "Advanced mapred-site",
       "serviceName": "MAPREDUCE"
     },
     {
@@ -503,7 +514,7 @@ module.exports =
       "isReconfigurable": true,
       "isOverridable": false,
       "isVisible": true,
-      "category": "Advanced",
+      "category": "Advanced hive-site",
       "serviceName": "HIVE"
     },
   /**********************************************hbase-site***************************************/
@@ -516,7 +527,7 @@ module.exports =
       "defaultValue": "",
       "displayType": "directory",
       "isVisible": true,
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
 
     },
@@ -529,7 +540,7 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "serviceName": "HBASE",
-      "category": "Advanced"
+      "category": "Advanced hbase-site"
     },
     {
       "id": "site property",
@@ -538,7 +549,7 @@ module.exports =
       "description": "",
       "defaultValue": "",
       "displayType": "float",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -552,7 +563,7 @@ module.exports =
       the minimum possible flushing to occur when updates are blocked due to\
       memstore limiting.",
       "displayType": "float",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -565,7 +576,7 @@ module.exports =
       "defaultValue": "",
       "isRequired": true,
       "displayType": "int",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -648,7 +659,7 @@ module.exports =
       GC pauses on large heaps.",
       "defaultValue": "",
       "displayType": "checkbox",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -705,7 +716,7 @@ module.exports =
       "id": "site property",
       "name": "hbase.coprocessor.region.classes",
       "displayName": "hbase.coprocessor.region.classes",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "isRequired": false,
       "serviceName": "HBASE"
     },
@@ -713,7 +724,7 @@ module.exports =
       "id": "site property",
       "name": "hbase.coprocessor.master.classes",
       "displayName": "hbase.coprocessor.master.classes",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "isRequired": false,
       "serviceName": "HBASE"
     },
@@ -724,7 +735,7 @@ module.exports =
       "description": "This configuration parameter turns on short-circuit local reads.",
       "defaultValue": "",
       "displayType": "checkbox",
-      "category": "Advanced",
+      "category": "Advanced hbase-site",
       "serviceName": "HBASE"
     },
     {
@@ -735,7 +746,7 @@ module.exports =
       "defaultValue": "",
       "displayType": "checkbox",
       "serviceName": "HBASE",
-      "category": "Advanced"
+      "category": "Advanced hbase-site"
     },
     {
       "id": "site property",
@@ -744,7 +755,7 @@ module.exports =
       "defaultValue": "",
       "displayType": "multiLine",
       "serviceName": "HBASE",
-      "category": "Advanced"
+      "category": "Advanced hbase-site"
     },
 
   /**********************************************webhcat-site***************************************/
@@ -754,7 +765,7 @@ module.exports =
       "displayName": "templeton.hive.archive",
       "isRequired": false,
       "serviceName": "WEBHCAT",
-      "category": "Advanced"
+      "category": "Advanced webhcat-site"
     },
     {
       "id": "site property",
@@ -762,7 +773,7 @@ module.exports =
       "displayName": "templeton.pig.archive",
       "isRequired": false,
       "serviceName": "WEBHCAT",
-      "category": "Advanced"
+      "category": "Advanced webhcat-site"
     },
     {
       "id": "site property",
@@ -771,7 +782,7 @@ module.exports =
       "defaultValue": "",
       "displayType": "multiLine",
       "serviceName": "WEBHCAT",
-      "category": "Advanced"
+      "category": "Advanced webhcat-site"
     },
     //***************************************** GLUSTERFS stack********************************************
     {
@@ -931,7 +942,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -945,7 +956,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -973,7 +984,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "HDFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1041,6 +1052,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
+      "category": "General",
       "index": 1
     },
     {
@@ -1055,7 +1067,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1069,7 +1081,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1083,7 +1095,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1097,7 +1109,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
-      "category": "category"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1111,7 +1123,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
     {
       "id": "puppet var",
@@ -1125,7 +1137,7 @@ module.exports =
       "domain": "datanode-global",
       "serviceName": "GLUSTERFS",
       "filename": "hadoop-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hadoop-env"
     },
   /**********************************************MAPREDUCE***************************************/
     {
@@ -1245,6 +1257,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "MAPREDUCE",
       "filename": "mapred-env.xml",
+      "category": "General",
       "index": 11
     },
     {
@@ -1259,6 +1272,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "MAPREDUCE",
       "filename": "mapred-env.xml",
+      "category": "General",
       "index": 12
     },
     {
@@ -1272,6 +1286,7 @@ module.exports =
       "displayType": "checkbox",
       "isVisible": true,
       "serviceName": "MAPREDUCE",
+      "category": "General",
       "filename": "mapred-env.xml",
       "index": 13
     },
@@ -1375,7 +1390,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HBASE",
       "filename": "hbase-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hbase-env"
     },
     {
       "id": "puppet var",
@@ -1389,7 +1404,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HBASE",
       "filename": "hbase-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hbase-env"
     },
   /**********************************************HIVE***************************************/
     {
@@ -1604,7 +1619,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -1618,7 +1633,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -1632,7 +1647,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
     {
       "id": "puppet var",
@@ -1645,7 +1660,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "HIVE",
       "filename": "hive-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hive-env"
     },
   /**********************************************WEBHCAT***************************************/
     {
@@ -1675,7 +1690,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "WEBHCAT",
       "filename": "webhcat-env.xml",
-      "category": "Advanced"
+      "category": "Advanced webhcat-env"
     },
     {
       "id": "puppet var",
@@ -1689,7 +1704,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "WEBHCAT",
       "filename": "webhcat-env.xml",
-      "category": "Advanced"
+      "category": "Advanced webhcat-env"
     },
   /**********************************************OOZIE***************************************/
     {
@@ -1924,7 +1939,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "OOZIE",
       "filename": "oozie-env.xml",
-      "category": "Advanced"
+      "category": "Advanced oozie-env"
     },
     {
       "id": "puppet var",
@@ -1938,7 +1953,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "OOZIE",
       "filename": "oozie-env.xml",
-      "category": "Advanced"
+      "category": "Advanced oozie-env"
     },
     {
       "id": "puppet var",
@@ -1950,7 +1965,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "OOZIE",
       "filename": "oozie-env.xml",
-      "category": "Advanced"
+      "category": "Advanced oozie-env"
     },
   /**********************************************NAGIOS***************************************/
     {
@@ -1965,6 +1980,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "NAGIOS",
       "filename": "nagios-env.xml",
+      "category": "General",
       "index": 0
     },
     {
@@ -1979,6 +1995,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "NAGIOS",
       "filename": "nagios-env.xml",
+      "category": "General",
       "index": 1
     },
     {
@@ -1992,6 +2009,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "NAGIOS",
       "filename": "nagios-env.xml",
+      "category": "General",
       "index": 2
     },
   /**********************************************ZOOKEEPER***************************************/
@@ -2096,7 +2114,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "ZOOKEEPER",
       "filename": "zookeeper-env.xml",
-      "category": "Advanced",
+      "category": "Advanced zookeeper-env",
       "index": 0
     },
     {
@@ -2111,7 +2129,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "ZOOKEEPER",
       "filename": "zookeeper-env.xml",
-      "category": "Advanced",
+      "category": "Advanced zookeeper-env",
       "index": 1
     },
   /**********************************************HUE***************************************/
@@ -2143,7 +2161,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HUE",
       "filename": "hue-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hue-env"
     },
     {
       "id": "puppet var",
@@ -2158,7 +2176,7 @@ module.exports =
       "isVisible": true,
       "serviceName": "HUE",
       "filename": "hue-env.xml",
-      "category": "Advanced"
+      "category": "Advanced hue-env"
     },
   /**********************************************GANGLIA***************************************/
     {
@@ -2172,7 +2190,7 @@ module.exports =
       "isVisible": false,
       "serviceName": "GANGLIA",
       "filename": "ganglia-env.xml",
-      "category": "Advanced"
+      "category": "Advanced ganglia-env"
     },
   /**********************************************MISC******************************************/
     {

+ 0 - 1
ambari-web/app/mappers/stack_service_mapper.js

@@ -78,7 +78,6 @@ App.stackServiceMapper = App.QuickDataMapper.create({
         item.serviceComponents.forEach(function (serviceComponent) {
           serviceComponent.StackServiceComponents.id = serviceComponent.StackServiceComponents.component_name;
           serviceComponent.StackServiceComponents.dependencies = serviceComponent.dependencies;
-          serviceComponent.StackServiceComponents.custom_commands = serviceComponent.StackServiceComponents.custom_commands;
           serviceComponents.push(serviceComponent.StackServiceComponents);
           stackServiceComponents.push(this.parseIt(serviceComponent.StackServiceComponents, this.get('component_config')));
         }, this);

+ 63 - 89
ambari-web/app/models/stack_service.js

@@ -272,18 +272,12 @@ App.StackService.configCategories = function () {
         App.ServiceConfigCategory.create({ name: 'NAMENODE', displayName: 'NameNode'}),
         App.ServiceConfigCategory.create({ name: 'SECONDARY_NAMENODE', displayName: 'Secondary NameNode'}),
         App.ServiceConfigCategory.create({ name: 'DATANODE', displayName: 'DataNode'}),
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced core-site', displayName: 'Custom core-site.xml', siteFileName: 'core-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hdfs-site', displayName: 'Custom hdfs-site.xml', siteFileName: 'hdfs-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hdfs-log4j', displayName: 'Custom log4j.properties', siteFileName: 'hdfs-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hadoop-env', displayName: 'hadoop-env.sh content', siteFileName: 'hadoop-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'GLUSTERFS':
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced core-site', displayName : 'Custom core-site.xml', siteFileName: 'core-site.xml', canAddProperty: true})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'MAPREDUCE':
@@ -291,11 +285,7 @@ App.StackService.configCategories = function () {
         App.ServiceConfigCategory.create({ name: 'HISTORYSERVER', displayName: 'History Server'}),
         App.ServiceConfigCategory.create({ name: 'JOBTRACKER', displayName: 'JobTracker'}),
         App.ServiceConfigCategory.create({ name: 'TASKTRACKER', displayName: 'TaskTracker'}),
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced mapred-site', displayName: 'Custom mapred-site.xml', siteFileName: 'mapred-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced mapreduce-log4j', displayName: 'Custom log4j.properties', siteFileName: 'mapreduce-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced mapred-env', displayName: 'mapred-env.sh content', siteFileName: 'mapred-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'YARN':
@@ -304,74 +294,39 @@ App.StackService.configCategories = function () {
         App.ServiceConfigCategory.create({ name: 'NODEMANAGER', displayName: 'Node Manager'}),
         App.ServiceConfigCategory.create({ name: 'APP_TIMELINE_SERVER', displayName: 'Application Timeline Server'}),
         App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'CapacityScheduler', displayName: 'Scheduler', isCapacityScheduler: true, isCustomView: true, siteFileName: 'capacity-scheduler.xml', siteFileNames: ['capacity-scheduler.xml', 'mapred-queue-acls.xml'], canAddProperty: App.supports.capacitySchedulerUi}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced yarn-site', displayName: 'Custom yarn-site.xml', siteFileName: 'yarn-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced yarn-log4j', displayName: 'Custom log4j.properties', siteFileName: 'yarn-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced yarn-env', displayName: 'yarn-env.sh content', siteFileName: 'yarn-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'CapacityScheduler', displayName: 'Scheduler', isCustomView: true, siteFileName: 'capacity-scheduler.xml'})
       ]);
       break;
     case 'MAPREDUCE2':
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'HISTORYSERVER', displayName: 'History Server'}),
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'AdvancedMapredSite', displayName: 'Custom mapred-site.xml', siteFileName: 'mapred-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced mapred-env', displayName: 'mapred-env.sh content', siteFileName: 'mapred-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'HISTORYSERVER', displayName: 'History Server'})
       ]);
       break;
     case 'HIVE':
-     serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'HIVE_METASTORE', displayName: 'Hive Metastore'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hive-site', displayName: 'Custom hive-site.xml', siteFileName: 'hive-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hive-log4j', displayName: 'Custom log4j.properties', siteFileName: 'hive-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hive-exec-log4j', displayName: 'Custom hive-exec-log4j', siteFileName: 'hive-exec-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hive-env', displayName: 'hive-env.sh content', siteFileName: 'hive-env.xml', canAddProperty: false})
+      serviceConfigCategories.pushObjects([
+        App.ServiceConfigCategory.create({ name: 'HIVE_METASTORE', displayName: 'Hive Metastore'})
       ]);
       break;
     case 'WEBHCAT':
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'WEBHCAT_SERVER', displayName: 'WebHCat Server'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced webhcat-site', displayName: 'Custom webhcat-site.xml', siteFileName: 'webhcat-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced webhcat-env', displayName: 'webhcat-env.sh content', siteFileName: 'webhcat-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'WEBHCAT_SERVER', displayName: 'WebHCat Server'})
       ]);
       break;
     case 'HBASE':
       serviceConfigCategories.pushObjects([
         App.ServiceConfigCategory.create({ name: 'HBASE_MASTER', displayName: 'HBase Master'}),
         App.ServiceConfigCategory.create({ name: 'HBASE_REGIONSERVER', displayName: 'RegionServer'}),
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hbase-site', displayName: 'Custom hbase-site.xml', siteFileName: 'hbase-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hbase-log4j', displayName: 'Custom log4j.properties', siteFileName: 'hbase-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced hbase-env', displayName: 'hbase-env.sh content', siteFileName: 'hbase-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'ZOOKEEPER':
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'ZOOKEEPER_SERVER', displayName: 'ZooKeeper Server'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced zookeeper-log4j', displayName: 'Custom log4j.properties', siteFileName: 'zookeeper-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced zoo.cfg', displayName: 'Custom zoo.cfg', siteFileName: 'zoo.cfg', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced zookeeper-env', displayName: 'zookeeper-env.sh content', siteFileName: 'zookeeper-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'ZOOKEEPER_SERVER', displayName: 'ZooKeeper Server'})
       ]);
       break;
     case 'OOZIE':
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'OOZIE_SERVER', displayName: 'Oozie Server'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced oozie-site', displayName: 'Custom oozie-site.xml', siteFileName: 'oozie-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced oozie-log4j', displayName: 'Custom log4j.properties', siteFileName: 'oozie-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced oozie-env', displayName: 'oozie-env.sh content', siteFileName: 'oozie-env.xml', canAddProperty: false})
-      ]);
-      break;
-    case 'PIG':
-      serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Custom pig.properties', siteFileName: 'pig-properties.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced pig-log4j', displayName: 'Custom log4j.properties', siteFileName: 'pig-log4j.xml', canAddProperty: false}),
-        App.ServiceConfigCategory.create({ name: 'Advanced pig-env', displayName: 'pig-env.sh content', siteFileName: 'pig-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'OOZIE_SERVER', displayName: 'Oozie Server'})
       ]);
       break;
     case 'FALCON':
@@ -380,10 +335,7 @@ App.StackService.configCategories = function () {
         App.ServiceConfigCategory.create({ name: 'Falcon - Oozie integration', displayName: 'Falcon - Oozie integration'}),
         App.ServiceConfigCategory.create({ name: 'FalconStartupSite', displayName: 'Falcon startup.properties'}),
         App.ServiceConfigCategory.create({ name: 'FalconRuntimeSite', displayName: 'Falcon runtime.properties'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced falcon-startup.properties', displayName: 'Custom startup.properties', siteFileName: 'falcon-startup.properties.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced falcon-runtime.properties', displayName: 'Custom runtime.properties', siteFileName: 'falcon-runtime.properties.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced falcon-env', displayName: 'falcon-env.sh content', siteFileName: 'falcon-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'STORM':
@@ -393,18 +345,12 @@ App.StackService.configCategories = function () {
         App.ServiceConfigCategory.create({ name: 'STORM_UI_SERVER', displayName: 'Storm UI Server'}),
         App.ServiceConfigCategory.create({ name: 'STORM_REST_API', displayName: 'Storm REST API Server'}),
         App.ServiceConfigCategory.create({ name: 'DRPC_SERVER', displayName: 'DRPC Server'}),
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced storm-site', displayName: 'Custom storm.yaml', siteFileName: 'storm-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced storm-env', displayName: 'storm-env.sh content', siteFileName: 'storm-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'TEZ':
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced tez-site', displayName: 'Custom tez-site.xml', siteFileName: 'tez-site.xml', canAddProperty: true}),
-        App.ServiceConfigCategory.create({ name: 'Advanced tez-env', displayName: 'tez-env.sh content', siteFileName: 'tez-env.xml', canAddProperty: false})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
       break;
     case 'FLUME':
@@ -412,34 +358,62 @@ App.StackService.configCategories = function () {
         App.ServiceConfigCategory.create({ name: 'FLUME_HANDLER', displayName: 'flume.conf', siteFileName: 'flume-conf', canAddProperty: false})
       ]);
       break;
+    case 'PIG':
+      break;
     case 'SQOOP':
-      serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'Advanced sqoop-env', displayName: 'sqoop-env.sh content', siteFileName: 'sqoop-env.xml', canAddProperty: false})
-      ]);
       break;
     case 'HCATALOG':
       break;
     default:
       serviceConfigCategories.pushObjects([
-        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
-        App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'})
+        App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'})
       ]);
-      var configTypes = Object.keys(this.get('configTypes')).without('core-site').without('global');
-      configTypes.forEach(function (type) {
-        var displayName = 'Custom ' + type;
-        var canAddProperty = true;
-        var siteFileName = type + '.xml';
-        if (type.endsWith('-env') || type.endsWith('-log4j')){
-          var content =  this.get('configs').findProperty('name',"content");
-          if (!content) {
-            return;
-          }
-          canAddProperty = false;
-          displayName = content.get('description');
-        }
-        serviceConfigCategories.pushObject(App.ServiceConfigCategory.create({ name: 'Advanced ' + type, displayName: displayName, siteFileName: siteFileName,
-          canAddProperty: canAddProperty}));
-      }, this);
   }
+  serviceConfigCategories.pushObject(App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}));
+
+  var configTypes = Object.keys(this.get('configTypes'));
+  if (this.get('serviceName') !== 'HDFS') {
+    configTypes = configTypes.without('core-site');
+  }
+  //Falcon has dependency on oozie-site but oozie-site advanced/custom section should not be shown on Falcon page
+  if (this.get('serviceName') !== 'OOZIE') {
+    configTypes = configTypes.without('oozie-site');
+  }
+
+  //Hive has dependency on tez-site but tez-site advanced/custom section should not be shown on Hive page
+  if (this.get('serviceName') !== 'TEZ') {
+    configTypes = configTypes.without('tez-site');
+  }
+
+  //oozie has dependency on yarn-site but yarn-site advanced/custom section should not be shown on Oozie page
+  if (this.get('serviceName') !== 'YARN') {
+    configTypes = configTypes.without('yarn-site');
+  }
+
+
+  // Add Advanced section for every configType to all the services
+  configTypes.forEach(function (type) {
+    var displayName = 'Advanced ' + type;
+    var canAddProperty = false;
+    var advancedSection;
+    advancedSection = App.ServiceConfigCategory.create({ name: 'Advanced ' + type, displayName: displayName,
+      canAddProperty: canAddProperty});
+    serviceConfigCategories.pushObject(advancedSection);
+  }, this);
+
+  // Add custom section for every configType to all the services
+  configTypes.forEach(function (type) {
+    var displayName = 'Custom ' + type;
+    var canAddProperty = true;
+    var customSection;
+    var siteFileName = type + '.xml';
+    var configTypesWithNoCustomSection = ['capacity-scheduler','mapred-queue-acls','flume-conf', 'pig-properties'];
+    if (type.endsWith('-env') || type.endsWith('-log4j') || configTypesWithNoCustomSection.contains(type)) {
+      return;
+    }
+    customSection = App.ServiceConfigCategory.create({ name: displayName, displayName: displayName, siteFileName: siteFileName,
+      canAddProperty: canAddProperty});
+    serviceConfigCategories.pushObject(customSection);
+  }, this);
   return serviceConfigCategories;
 };

+ 36 - 17
ambari-web/app/utils/config.js

@@ -94,13 +94,28 @@ App.config = Em.Object.create({
     return this.get('filenameExceptions').contains(fileName) ? fileName : fileName + '.xml';
   },
 
+  /**
+   *
+   * Returns the configuration tagName from supplied filename
+   *
+   * Example:
+   *   App.config.getConfigTagFromFileName('core-site.xml') // returns core-site
+   *   App.config.getConfigTagFromFileName('zoo.cfg') // returns zoo.cfg
+   *
+   * @param {String} fileName
+   * @method getConfigTagFromFileName
+   **/
+  getConfigTagFromFileName: function(fileName) {
+    return fileName.endsWith('.xml') ? fileName.slice(0,-4) : filename;
+  },
+
   setPreDefinedServiceConfigs: function () {
     var configs = this.get('preDefinedSiteProperties');
     var services = [];
     var nonServiceTab = require('data/service_configs');
     var stackServices = App.StackService.find().filterProperty('id');
     // Only include services that has configTypes related to them for service configuration page
-    // Also Remove HCatalog from this list. HCatalog has and hive-site related to it but none of them should be exposed under HCatalog Service
+    // Also Remove HCatalog from this list. HCatalog has hive-site affiliated to it but none of the properties of it should be exposed under HCatalog Service
     // HCatalog should be eventually made a part of Hive Service. See AMBARI-6302 description for further details
     var servicesWithConfigTypes = stackServices.filter(function (service) {
       var configtypes = service.get('configTypes');
@@ -145,17 +160,18 @@ App.config = Em.Object.create({
    * Create array of service properties for Log4j files
    * @returns {Array}
    */
-  createContentProperties: function () {
+  createContentProperties: function (configs) {
     var services = App.StackService.find();
     var contentProperties = [];
     services.forEach(function (service) {
       if (service.get('configTypes')) {
         Object.keys(service.get('configTypes')).forEach(function (type) {
-          if (type.endsWith('-log4j') || type.endsWith('-env')) {
+          var contentProperty = configs.filterProperty('filename',type + '.xml').someProperty('name','content');
+          if (contentProperty && (type.endsWith('-log4j') || type.endsWith('-env'))) {
             var property = {
               "id": "site property",
               "name": "content",
-              "displayName": "content",
+              "displayName": type.endsWith('-env') ? type + ' template' : "content",
               "value": "",
               "defaultValue": "",
               "description": type + " properties",
@@ -163,7 +179,7 @@ App.config = Em.Object.create({
               "isOverridable": true,
               "isRequired": false,
               "isVisible": true,
-              "showLabel": false,
+              "showLabel": type.endsWith('-env'),
               "serviceName": service.get('serviceName'),
               "filename": type + '.xml',
               "category": "Advanced " + type
@@ -263,12 +279,14 @@ App.config = Em.Object.create({
       }
     } else {
       var advancedProperty = null;
+      var configType = this.getConfigTagFromFileName(config.filename);
       if (isAdvanced) {
-        advancedProperty = advancedConfigs.findProperty('name', config.name);
+        advancedProperty = advancedConfigs.filterProperty('filename', config.filename).findProperty('name', config.name);
+      }
+      config.category = config.category ? config.category : 'Advanced ' + configType;
+      if (isAdvanced) {
+        config.description = advancedProperty.description;
       }
-
-      config.category = config.category ? config.category : 'Advanced';
-      config.description = isAdvanced && advancedProperty.description;
     }
   },
 
@@ -298,7 +316,7 @@ App.config = Em.Object.create({
    */
   mergePreDefinedWithLoaded: function (configGroups, advancedConfigs, tags, serviceName) {
     var configs = [];
-    var contentProperties = this.createContentProperties();
+    var contentProperties = this.createContentProperties(advancedConfigs);
     var preDefinedConfigs = this.get('preDefinedSiteProperties').concat(contentProperties);
     var mappingConfigs = [];
     var filenameExceptions = this.get('filenameExceptions');
@@ -426,7 +444,7 @@ App.config = Em.Object.create({
       siteStart = [];
 
     var preDefinedSiteProperties = this.get('preDefinedSiteProperties').mapProperty('name');
-    var contentProperties = this.createContentProperties().mapProperty('name');
+    var contentProperties = this.createContentProperties(siteConfigs).mapProperty('name');
     var siteProperties = preDefinedSiteProperties.concat(contentProperties);
     siteProperties.forEach(function (name) {
       var _site = siteConfigs.filterProperty('name', name);
@@ -456,7 +474,7 @@ App.config = Em.Object.create({
    */
   mergePreDefinedWithStored: function (storedConfigs, advancedConfigs, selectedServiceNames) {
     var mergedConfigs = [];
-    var contentProperties = this.createContentProperties();
+    var contentProperties = this.createContentProperties(advancedConfigs);
     var preDefinedConfigs = this.get('preDefinedSiteProperties').concat(contentProperties);
 
     storedConfigs = (storedConfigs) ? storedConfigs : [];
@@ -492,7 +510,7 @@ App.config = Em.Object.create({
           configData.supportsFinal = stored.supportsFinal;
           configData.isRequired = (configData.isRequired !== undefined) ? configData.isRequired : true;
           configData.isRequiredByAgent = (configData.isRequiredByAgent !== undefined) ? configData.isRequiredByAgent : true;
-          configData.showLabel = stored.showLabel !== false;
+          configData.showLabel = !!stored.showLabel;
         }
         else if (!preDefined && stored) {
           configData = this.addUserProperty(stored, isAdvanced, advancedConfigs);
@@ -523,9 +541,9 @@ App.config = Em.Object.create({
             configData.overrides = storedCfg.overrides;
             configData.filename = storedCfg.filename;
             configData.description = storedCfg.description;
-            configData.description = storedCfg.showLabel !== false;
             configData.isFinal = storedCfg.isFinal;
             configData.supportsFinal = storedCfg.supportsFinal;
+            configData.showLabel = !!storedCfg.showLabel;
           } else if (isAdvanced) {
             advanced = advancedConfigs.filterProperty('filename', configData.filename).findProperty('name', configData.name);
             this.setPropertyFromStack(configData, advanced);
@@ -564,9 +582,11 @@ App.config = Em.Object.create({
    * @param serviceName
    */
   addAdvancedConfigs: function (serviceConfigs, advancedConfigs, serviceName) {
-    var configsToVerifying = (serviceName) ? serviceConfigs.filterProperty('serviceName', serviceName) : serviceConfigs.slice();
+    var miscConfigs = serviceConfigs.filterProperty('serviceName', 'MISC');
+    var configsToVerifying = (serviceName) ? serviceConfigs.filterProperty('serviceName', serviceName).concat(miscConfigs) : serviceConfigs.slice();
     advancedConfigs.forEach(function (_config) {
-      var configCategory = 'Advanced';
+      var configType = this.getConfigTagFromFileName(_config.filename);
+      var configCategory = 'Advanced ' + configType;
       var categoryMetaData = null;
       if (_config) {
         if (this.get('configMapping').computed().someProperty('name', _config.name)) {
@@ -1105,7 +1125,6 @@ App.config = Em.Object.create({
       defaultValue: stored.defaultValue,
       displayType: stringUtils.isSingleLine(stored.value) ? 'advanced' : 'multiLine',
       filename: stored.filename,
-      category: 'Advanced',
       isUserProperty: stored.isUserProperty === true,
       hasInitialValue: !!stored.hasInitialValue,
       isOverridable: true,

+ 27 - 1
ambari-web/app/views/common/configs/services_config.js

@@ -104,7 +104,8 @@ App.ServiceConfigsByCategoryView = Ember.View.extend(App.UserPref, {
   // default,
   // cacheable )
   categoryConfigs: function () {
-    return this.get('serviceConfigs').filterProperty('category', this.get('category.name')).filterProperty('isVisible', true);
+    var categoryConfigs = this.get('serviceConfigs').filterProperty('category', this.get('category.name'));
+    return this.orderContentAtLast(categoryConfigs).filterProperty('isVisible', true);
   }.property('serviceConfigs.@each', 'categoryConfigsAll.@each.isVisible').cacheable(),
 
   /**
@@ -118,6 +119,31 @@ App.ServiceConfigsByCategoryView = Ember.View.extend(App.UserPref, {
     return this.get('serviceConfigs').filterProperty('category', this.get('category.name'));
   }.property('serviceConfigs.@each').cacheable(),
 
+  /**
+   * Re-order the configs to list content displayType properties at last in the category
+   * @param categoryConfigs
+   */
+  orderContentAtLast: function(categoryConfigs) {
+    var contentProperties =  categoryConfigs.filterProperty('displayType','content');
+    var self = this;
+    if (!contentProperties.length) {
+      return categoryConfigs
+    } else {
+      var comparator;
+      return categoryConfigs.sort(function(a,b){
+        var aContent = contentProperties.someProperty('name', a.get('name'));
+        var bContent = contentProperties.someProperty('name', b.get('name'));
+        if (aContent && bContent) {
+          return 0;
+        } else if (aContent){
+          return 1;
+        } else {
+          return -1;
+        }
+      });
+    }
+  },
+
   /**
    * Warn/prompt user to adjust Service props when changing user/groups in Misc
    * Is triggered when user ended editing text field