Browse Source

AMBARI-13485 Move all 'displayType' values to stack. (ababiichuk)

aBabiichuk 9 years ago
parent
commit
d5b7d404c2
67 changed files with 645 additions and 411 deletions
  1. 16 0
      ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml
  2. 24 0
      ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml
  3. 39 0
      ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml
  4. 9 0
      ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-env.xml
  5. 24 0
      ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-startup.properties.xml
  6. 5 0
      ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/configuration/flume-env.xml
  7. 6 0
      ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml
  8. 16 0
      ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-site.xml
  9. 3 0
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/core-site.xml
  10. 3 0
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/hadoop-env.xml
  11. 20 0
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/hdfs-site.xml
  12. 4 0
      ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-env.xml
  13. 9 0
      ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml
  14. 3 0
      ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml
  15. 6 0
      ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/configuration/kafka-broker.xml
  16. 1 0
      ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/configuration/kafka-env.xml
  17. 15 0
      ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/configuration/kerberos-env.xml
  18. 3 0
      ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/configuration/krb5-conf.xml
  19. 1 0
      ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/configuration/knox-env.xml
  20. 7 0
      ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/configuration/ranger-knox-plugin-properties.xml
  21. 4 0
      ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-env.xml
  22. 6 0
      ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-env.xml
  23. 78 0
      ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-site.xml
  24. 18 0
      ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-site.xml
  25. 3 0
      ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/configuration-mapred/mapred-env.xml
  26. 8 0
      ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/configuration/yarn-env.xml
  27. 9 0
      ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/configuration/yarn-site.xml
  28. 7 0
      ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zoo.cfg.xml
  29. 2 0
      ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-env.xml
  30. 3 0
      ambari-server/src/main/resources/stacks/BIGTOP/0.8/configuration/cluster-env.xml
  31. 15 0
      ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/configuration/yarn-site.xml
  32. 2 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml
  33. 8 0
      ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/configuration/hive-site.xml
  34. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/configuration/yarn-env.xml
  35. 15 0
      ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/configuration/yarn-site.xml
  36. 9 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/configuration/falcon-startup.properties.xml
  37. 11 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/configuration/ranger-hbase-plugin-properties.xml
  38. 7 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/ranger-hdfs-plugin-properties.xml
  39. 8 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml
  40. 9 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/ranger-hive-plugin-properties.xml
  41. 7 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/configuration/ranger-storm-plugin-properties.xml
  42. 3 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/configuration/storm-site.xml
  43. 3 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml
  44. 12 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/configuration/yarn-site.xml
  45. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/HBASE/configuration/hbase-site.xml
  46. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/configuration/hadoop-env.xml
  47. 3 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/configuration/hdfs-site.xml
  48. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/KAFKA/configuration/ranger-kafka-plugin-properties.xml
  49. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml
  50. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml
  51. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/YARN/configuration/ranger-yarn-plugin-properties.xml
  52. 0 67
      ambari-web/app/data/HDP2.2/site_properties.js
  53. 2 7
      ambari-web/app/data/HDP2.3/site_properties.js
  54. 94 0
      ambari-web/app/data/HDP2/gluster_fs_properties.js
  55. 0 285
      ambari-web/app/data/HDP2/site_properties.js
  56. 2 2
      ambari-web/app/mixins/common/configs/configs_comparator.js
  57. 8 23
      ambari-web/app/models/configs/objects/service_config_property.js
  58. 13 7
      ambari-web/app/utils/config.js
  59. 1 1
      ambari-web/app/views/common/configs/service_configs_by_category_view.js
  60. 7 6
      ambari-web/test/controllers/main/admin/kerberos/step2_controller_test.js
  61. 4 4
      ambari-web/test/controllers/main/service/info/config_test.js
  62. 9 0
      ambari-web/test/data/HDP2.2/site_properties_test.js
  63. 12 1
      ambari-web/test/data/HDP2.3/site_properties_test.js
  64. 9 0
      ambari-web/test/data/HDP2/site_properties_test.js
  65. 1 1
      ambari-web/test/mock_data_setup/configs_mock_data.js
  66. 11 6
      ambari-web/test/utils/config_test.js
  67. 1 1
      ambari-web/test/views/common/configs/service_configs_by_category_view_test.js

+ 16 - 0
ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml

@@ -64,6 +64,7 @@
     <display-name>Accumulo Log Dir</display-name>
     <display-name>Accumulo Log Dir</display-name>
     <description>Log Directories for Accumulo.</description>
     <description>Log Directories for Accumulo.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -74,6 +75,7 @@
     <display-name>Accumulo PID Dir</display-name>
     <display-name>Accumulo PID Dir</display-name>
     <description>Pid Directory for Accumulo.</description>
     <description>Pid Directory for Accumulo.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -101,6 +103,7 @@
     <display-name>Accumulo Master Maximum Java heap size</display-name>
     <display-name>Accumulo Master Maximum Java heap size</display-name>
     <description>Accumulo Master Heap Size.</description>
     <description>Accumulo Master Heap Size.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -111,6 +114,7 @@
     <display-name>Accumulo TServer Maximum Java heap size</display-name>
     <display-name>Accumulo TServer Maximum Java heap size</display-name>
     <description>Accumulo Tablet Server Heap Size.</description>
     <description>Accumulo Tablet Server Heap Size.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -120,6 +124,7 @@
     <display-name>Accumulo Monitor Maximum Java heap size</display-name>
     <display-name>Accumulo Monitor Maximum Java heap size</display-name>
     <description>Accumulo Monitor Heap Size.</description>
     <description>Accumulo Monitor Heap Size.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -130,6 +135,7 @@
     <display-name>Accumulo GC Maximum Java heap size</display-name>
     <display-name>Accumulo GC Maximum Java heap size</display-name>
     <description>Accumulo Garbage Collector Heap Size.</description>
     <description>Accumulo Garbage Collector Heap Size.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -140,6 +146,7 @@
     <display-name>Accumulo Other Maximum Java heap size</display-name>
     <display-name>Accumulo Other Maximum Java heap size</display-name>
     <description>Heap size for other Accumulo processes.</description>
     <description>Heap size for other Accumulo processes.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -148,6 +155,9 @@
     <value>false</value>
     <value>false</value>
     <display-name>Monitor Bind All Interfaces</display-name>
     <display-name>Monitor Bind All Interfaces</display-name>
     <description>Controls whether the monitor binds to all interfaces.</description>
     <description>Controls whether the monitor binds to all interfaces.</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>content</name>
     <name>content</name>
@@ -169,6 +179,9 @@ export ACCUMULO_OTHER_OPTS="-Xmx{{accumulo_other_heapsize}}m -Xms{{accumulo_othe
 # what do when the JVM runs out of heap memory
 # what do when the JVM runs out of heap memory
 export ACCUMULO_KILL_CMD='kill -9 %p'
 export ACCUMULO_KILL_CMD='kill -9 %p'
     </value>
     </value>
+    <value-attributes>
+      <type>content</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>server_content</name>
     <name>server_content</name>
@@ -193,5 +206,8 @@ export ACCUMULO_MONITOR_BIND_ALL={{monitor_bind_str}}
 # what do when the JVM runs out of heap memory
 # what do when the JVM runs out of heap memory
 export ACCUMULO_KILL_CMD='kill -9 %p'
 export ACCUMULO_KILL_CMD='kill -9 %p'
     </value>
     </value>
+    <value-attributes>
+      <type>content</type>
+    </value-attributes>
   </property>
   </property>
 </configuration>
 </configuration>

+ 24 - 0
ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml

@@ -65,6 +65,9 @@
     <description>Controls whether or not native maps are enabled
     <description>Controls whether or not native maps are enabled
       for Accumulo's in-memory map, where incoming writes are
       for Accumulo's in-memory map, where incoming writes are
       sorted (see also tserver.memory.maps.max).</description>
       sorted (see also tserver.memory.maps.max).</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -96,6 +99,9 @@
     <name>master.port.client</name>
     <name>master.port.client</name>
     <value>9999</value>
     <value>9999</value>
     <description>Port for client connections to the master.</description>
     <description>Port for client connections to the master.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -103,12 +109,18 @@
     <value>12234</value>
     <value>12234</value>
     <description>Port for delivering tracing data to the tracer
     <description>Port for delivering tracing data to the tracer
       process.</description>
       process.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
     <name>tserver.port.client</name>
     <name>tserver.port.client</name>
     <value>9997</value>
     <value>9997</value>
     <description>Port for client connections to the tservers.</description>
     <description>Port for client connections to the tservers.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -116,12 +128,18 @@
     <value>50092</value>
     <value>50092</value>
     <description>Port for monitoring the Accumulo garbage
     <description>Port for monitoring the Accumulo garbage
       collector.</description>
       collector.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
     <name>monitor.port.client</name>
     <name>monitor.port.client</name>
     <value>50095</value>
     <value>50095</value>
     <description>Port for the Accumulo monitor UI.</description>
     <description>Port for the Accumulo monitor UI.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -129,6 +147,9 @@
     <value>4560</value>
     <value>4560</value>
     <description>Port for delivering logs for aggregation by the
     <description>Port for delivering logs for aggregation by the
       Accumulo monitor.</description>
       Accumulo monitor.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -164,5 +185,8 @@ $HADOOP_CONF_DIR,
     <description>List of jars and directories that will be added to
     <description>List of jars and directories that will be added to
       Accumulo's classpath.  Ordering matters, as the entries will be
       Accumulo's classpath.  Ordering matters, as the entries will be
       searched in order when attempting to load a class.</description>
       searched in order when attempting to load a class.</description>
+    <value-attributes>
+      <type>content</type>
+    </value-attributes>
   </property>
   </property>
 </configuration>
 </configuration>

+ 39 - 0
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-site.xml

@@ -53,6 +53,9 @@
       Directory to store aggregator checkpoints. Change to a permanent
       Directory to store aggregator checkpoints. Change to a permanent
       location so that checkpoint ar not lost.
       location so that checkpoint ar not lost.
     </description>
     </description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.host.aggregator.minute.interval</name>
     <name>timeline.metrics.host.aggregator.minute.interval</name>
@@ -62,6 +65,9 @@
       Time in seconds to sleep for the minute resolution host based
       Time in seconds to sleep for the minute resolution host based
       aggregator. Default resolution is 2 minutes.
       aggregator. Default resolution is 2 minutes.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.host.aggregator.hourly.interval</name>
     <name>timeline.metrics.host.aggregator.hourly.interval</name>
@@ -71,6 +77,9 @@
       Time in seconds to sleep for the hourly resolution host based
       Time in seconds to sleep for the hourly resolution host based
       aggregator. Default resolution is 1 hour.
       aggregator. Default resolution is 1 hour.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.daily.aggregator.minute.interval</name>
     <name>timeline.metrics.daily.aggregator.minute.interval</name>
@@ -88,6 +97,9 @@
       Time in seconds to sleep for the hourly resolution cluster wide
       Time in seconds to sleep for the hourly resolution cluster wide
       aggregator. Default is 1 hour.
       aggregator. Default is 1 hour.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.cluster.aggregator.daily.interval</name>
     <name>timeline.metrics.cluster.aggregator.daily.interval</name>
@@ -105,6 +117,9 @@
       Time in seconds to sleep for the minute resolution cluster wide
       Time in seconds to sleep for the minute resolution cluster wide
       aggregator. Default resolution is 2 minutes.
       aggregator. Default resolution is 2 minutes.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.host.aggregator.daily.checkpointCutOffMultiplier</name>
     <name>timeline.metrics.host.aggregator.daily.checkpointCutOffMultiplier</name>
@@ -124,6 +139,9 @@
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       the checkpoint will be discarded by the aggregator.
       the checkpoint will be discarded by the aggregator.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.host.aggregator.minute.checkpointCutOffMultiplier</name>
     <name>timeline.metrics.host.aggregator.minute.checkpointCutOffMultiplier</name>
@@ -134,6 +152,9 @@
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       the checkpoint will be discarded by the aggregator.
       the checkpoint will be discarded by the aggregator.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.cluster.aggregator.hourly.checkpointCutOffMultiplier</name>
     <name>timeline.metrics.cluster.aggregator.hourly.checkpointCutOffMultiplier</name>
@@ -144,6 +165,9 @@
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       the checkpoint will be discarded by the aggregator.
       the checkpoint will be discarded by the aggregator.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.cluster.aggregator.minute.checkpointCutOffMultiplier</name>
     <name>timeline.metrics.cluster.aggregator.minute.checkpointCutOffMultiplier</name>
@@ -154,6 +178,9 @@
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       if aggregator checkpoint is greater than max allowed checkpoint delay,
       the checkpoint will be discarded by the aggregator.
       the checkpoint will be discarded by the aggregator.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.cluster.aggregator.daily.checkpointCutOffMultiplier</name>
     <name>timeline.metrics.cluster.aggregator.daily.checkpointCutOffMultiplier</name>
@@ -217,6 +244,9 @@
     <description>
     <description>
       Lowest resolution of desired data for cluster level minute aggregates.
       Lowest resolution of desired data for cluster level minute aggregates.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.host.aggregator.daily.ttl</name>
     <name>timeline.metrics.host.aggregator.daily.ttl</name>
@@ -293,6 +323,9 @@
       Max result limit on number of rows returned. Calculated as follows:
       Max result limit on number of rows returned. Calculated as follows:
       4 aggregate metrics/min * 60 * 24: Retrieve aggregate data for 1 day.
       4 aggregate metrics/min * 60 * 24: Retrieve aggregate data for 1 day.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.service.checkpointDelay</name>
     <name>timeline.metrics.service.checkpointDelay</name>
@@ -302,6 +335,9 @@
       Time in seconds to sleep on the first run or when the checkpoint is
       Time in seconds to sleep on the first run or when the checkpoint is
       too old.
       too old.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>timeline.metrics.service.resultset.fetchSize</name>
     <name>timeline.metrics.service.resultset.fetchSize</name>
@@ -310,6 +346,9 @@
     <description>
     <description>
       JDBC resultset prefect size for aggregator queries.
       JDBC resultset prefect size for aggregator queries.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <!-- Phoenix properties that would manifest in the hbase-site.xml on the client side -->
   <!-- Phoenix properties that would manifest in the hbase-site.xml on the client side -->
   <property>
   <property>

+ 9 - 0
ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-env.xml

@@ -31,6 +31,9 @@
     <value>15000</value>
     <value>15000</value>
     <display-name>Falcon server port</display-name>
     <display-name>Falcon server port</display-name>
     <description>Port the Falcon Server listens on.</description>
     <description>Port the Falcon Server listens on.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>falcon_log_dir</name>
     <name>falcon_log_dir</name>
@@ -38,6 +41,7 @@
     <display-name>Falcon Log Dir</display-name>
     <display-name>Falcon Log Dir</display-name>
     <description>Falcon log directory.</description>
     <description>Falcon log directory.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -48,6 +52,7 @@
     <display-name>Falcon PID Dir</display-name>
     <display-name>Falcon PID Dir</display-name>
     <description>Falcon pid-file directory.</description>
     <description>Falcon pid-file directory.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -57,6 +62,9 @@
     <value>/hadoop/falcon</value>
     <value>/hadoop/falcon</value>
     <display-name>Falcon data directory</display-name>
     <display-name>Falcon data directory</display-name>
     <description>Directory where Falcon data, such as activemq data, is stored.</description>
     <description>Directory where Falcon data, such as activemq data, is stored.</description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>falcon_store_uri</name>
     <name>falcon_store_uri</name>
@@ -70,6 +78,7 @@
     <value>/hadoop/falcon/embeddedmq/data</value>
     <value>/hadoop/falcon/embeddedmq/data</value>
     <description>Directory in which embeddedmq data is stored.</description>
     <description>Directory in which embeddedmq data is stored.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>

+ 24 - 0
ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-startup.properties.xml

@@ -65,6 +65,9 @@
       org.apache.falcon.service.LogCleanupService
       org.apache.falcon.service.LogCleanupService
     </value>
     </value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.configstore.listeners</name>
     <name>*.configstore.listeners</name>
@@ -74,6 +77,9 @@
       org.apache.falcon.service.SharedLibraryHostingService
       org.apache.falcon.service.SharedLibraryHostingService
     </value>
     </value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.broker.impl.class</name>
     <name>*.broker.impl.class</name>
@@ -120,6 +126,9 @@
     <name>*.broker.ttlInMins</name>
     <name>*.broker.ttlInMins</name>
     <value>4320</value>
     <value>4320</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.hive.shared.libs</name>
     <name>*.hive.shared.libs</name>
@@ -136,16 +145,25 @@ hive-hcatalog-core,hive-jdbc,hive-webhcat-java-client</value>
     <name>*.max.retry.failure.count</name>
     <name>*.max.retry.failure.count</name>
     <value>1</value>
     <value>1</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.internal.queue.size</name>
     <name>*.internal.queue.size</name>
     <value>1000</value>
     <value>1000</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.falcon.graph.preserve.history</name>
     <name>*.falcon.graph.preserve.history</name>
     <value>false</value>
     <value>false</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <!--properties without default values-->
   <!--properties without default values-->
   <property>
   <property>
@@ -176,6 +194,9 @@ hive-hcatalog-core,hive-jdbc,hive-webhcat-java-client</value>
     <name>*.falcon.http.authentication.token.validity</name>
     <name>*.falcon.http.authentication.token.validity</name>
     <value>36000</value>
     <value>36000</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.falcon.http.authentication.signature.secret</name>
     <name>*.falcon.http.authentication.signature.secret</name>
@@ -191,5 +212,8 @@ hive-hcatalog-core,hive-jdbc,hive-webhcat-java-client</value>
     <name>*.falcon.http.authentication.kerberos.name.rules</name>
     <name>*.falcon.http.authentication.kerberos.name.rules</name>
     <value>DEFAULT</value>
     <value>DEFAULT</value>
     <description>The kerberos names rules is to resolve kerberos principal names, refer to Hadoop's KerberosName for more details.</description>
     <description>The kerberos names rules is to resolve kerberos principal names, refer to Hadoop's KerberosName for more details.</description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
 </configuration>
 </configuration>

+ 5 - 0
ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/configuration/flume-env.xml

@@ -27,6 +27,7 @@
     <value>/etc/flume/conf</value>
     <value>/etc/flume/conf</value>
     <description>Location to save configuration files</description>
     <description>Location to save configuration files</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -37,6 +38,7 @@
     <value>/var/log/flume</value>
     <value>/var/log/flume</value>
     <description>Location to save log files</description>
     <description>Location to save log files</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -94,4 +96,7 @@ export HIVE_HOME={{flume_hive_home}}
 export HCAT_HOME={{flume_hcat_home}}
 export HCAT_HOME={{flume_hcat_home}}
     </value>
     </value>
   </property>
   </property>
+  <value-attributes>
+    <type>content</type>
+  </value-attributes>
 </configuration>
 </configuration>

+ 6 - 0
ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-env.xml

@@ -27,6 +27,7 @@
     <display-name>HBase Log Dir Prefix</display-name>
     <display-name>HBase Log Dir Prefix</display-name>
     <description>Log Directories for HBase.</description>
     <description>Log Directories for HBase.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -37,6 +38,7 @@
     <display-name>HBase PID Dir</display-name>
     <display-name>HBase PID Dir</display-name>
     <description>Pid Directory for HBase.</description>
     <description>Pid Directory for HBase.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -64,6 +66,7 @@ and the -Xmn ratio (hbase_regionserver_xmn_ratio) exceeds this value.
     </description>
     </description>
     <display-name>RegionServers maximum value for -Xmn</display-name>
     <display-name>RegionServers maximum value for -Xmn</display-name>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -72,6 +75,9 @@ and the -Xmn ratio (hbase_regionserver_xmn_ratio) exceeds this value.
     <value>0.2</value>
     <value>0.2</value>
     <display-name>RegionServers -Xmn in -Xmx ratio</display-name>
     <display-name>RegionServers -Xmn in -Xmx ratio</display-name>
     <description>Percentage of max heap size (-Xmx) which used for young generation heap (-Xmn).</description>
     <description>Percentage of max heap size (-Xmx) which used for young generation heap (-Xmn).</description>
+    <value-attributes>
+      <type>float</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>hbase_master_heapsize</name>
     <name>hbase_master_heapsize</name>

+ 16 - 0
ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/configuration/hbase-site.xml

@@ -48,6 +48,7 @@
     <display-name>HBase Master Port</display-name>
     <display-name>HBase Master Port</display-name>
     <description>The port the HBase Master should bind to.</description>
     <description>The port the HBase Master should bind to.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -60,6 +61,9 @@
     than '/tmp' (The '/tmp' directory is often cleared on
     than '/tmp' (The '/tmp' directory is often cleared on
     machine restart).
     machine restart).
     </description>
     </description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>hbase.local.dir</name>
     <name>hbase.local.dir</name>
@@ -140,6 +144,9 @@
       the minimum possible flushing to occur when updates are blocked due to
       the minimum possible flushing to occur when updates are blocked due to
       memstore limiting.
       memstore limiting.
     </description>
     </description>
+    <value-attributes>
+      <type>float</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>hbase.hregion.memstore.block.multiplier</name>
     <name>hbase.hregion.memstore.block.multiplier</name>
@@ -190,6 +197,9 @@
       heavy write loads. This can reduce the frequency of stop-the-world
       heavy write loads. This can reduce the frequency of stop-the-world
       GC pauses on large heaps.
       GC pauses on large heaps.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>hbase.hregion.max.filesize</name>
     <name>hbase.hregion.max.filesize</name>
@@ -313,6 +323,9 @@
     blocked for this HRegion until a compaction is completed, or
     blocked for this HRegion until a compaction is completed, or
     until hbase.hstore.blockingWaitTime has been exceeded.
     until hbase.hstore.blockingWaitTime has been exceeded.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>hfile.block.cache.size</name>
     <name>hfile.block.cache.size</name>
@@ -454,6 +467,9 @@
     list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
     list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
     this is the list of servers which we will start/stop ZooKeeper on.
     this is the list of servers which we will start/stop ZooKeeper on.
     </description>
     </description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
   <!-- End of properties used to generate ZooKeeper host:port quorum list. -->
   <!-- End of properties used to generate ZooKeeper host:port quorum list. -->
 
 

+ 3 - 0
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/core-site.xml

@@ -177,6 +177,9 @@ If you want to treat all principals from APACHE.ORG with /admin as "admin", your
 RULE[2:$1%$2@$0](.%admin@APACHE.ORG)s/./admin/
 RULE[2:$1%$2@$0](.%admin@APACHE.ORG)s/./admin/
 DEFAULT
 DEFAULT
     </description>
     </description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>net.topology.script.file.name</name>
     <name>net.topology.script.file.name</name>

+ 3 - 0
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/hadoop-env.xml

@@ -27,6 +27,7 @@
     <description>Hadoop Log Dir Prefix</description>
     <description>Hadoop Log Dir Prefix</description>
     <display-name>Hadoop Log Dir Prefix</display-name>
     <display-name>Hadoop Log Dir Prefix</display-name>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -37,6 +38,7 @@
     <display-name>Hadoop PID Dir Prefix</display-name>
     <display-name>Hadoop PID Dir Prefix</display-name>
     <description>Hadoop PID Dir Prefix</description>
     <description>Hadoop PID Dir Prefix</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -56,6 +58,7 @@
     <description>Hadoop maximum Java heap size</description>
     <description>Hadoop maximum Java heap size</description>
     <display-name>Hadoop maximum Java heap size</display-name>
     <display-name>Hadoop maximum Java heap size</display-name>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>

+ 20 - 0
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/hdfs-site.xml

@@ -35,6 +35,7 @@
       directories, for redundancy. </description>
       directories, for redundancy. </description>
     <final>true</final>
     <final>true</final>
     <value-attributes>
     <value-attributes>
+      <type>directories</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -53,6 +54,7 @@
     <description>Whether to enable WebHDFS feature</description>
     <description>Whether to enable WebHDFS feature</description>
     <final>true</final>
     <final>true</final>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -88,6 +90,9 @@
       Directories that do not exist are ignored.
       Directories that do not exist are ignored.
     </description>
     </description>
     <final>true</final>
     <final>true</final>
+    <value-attributes>
+      <type>directories</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -120,6 +125,7 @@
       replicated in all of the directories for redundancy.
       replicated in all of the directories for redundancy.
     </description>
     </description>
     <value-attributes>
     <value-attributes>
+      <type>directories</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -142,6 +148,7 @@
     <display-name>HDFS Maximum Checkpoint Delay</display-name>
     <display-name>HDFS Maximum Checkpoint Delay</display-name>
     <description>The number of seconds between two periodic checkpoints.</description>
     <description>The number of seconds between two periodic checkpoints.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -168,6 +175,9 @@
     <display-name>Block replication</display-name>
     <display-name>Block replication</display-name>
     <description>Default block replication.
     <description>Default block replication.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -264,6 +274,7 @@
     <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
     <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
     </description>
     </description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>bytes</unit>
       <unit>bytes</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -367,6 +378,9 @@
       directories. The datanode will not come up if the permissions are
       directories. The datanode will not come up if the permissions are
       different on existing dfs.datanode.data.dir directories. If the directories
       different on existing dfs.datanode.data.dir directories. If the directories
       don't exist, they will be created with this permission.</description>
       don't exist, they will be created with this permission.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -377,6 +391,9 @@
       The default value is 1 hour. Setting a value of 0 disables
       The default value is 1 hour. Setting a value of 0 disables
       access times for HDFS.
       access times for HDFS.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -445,6 +462,9 @@
     <description>
     <description>
       This configuration parameter turns on short-circuit local reads.
       This configuration parameter turns on short-circuit local reads.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 4 - 0
ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-env.xml

@@ -91,6 +91,7 @@
     <display-name>Hive Log Dir</display-name>
     <display-name>Hive Log Dir</display-name>
     <description>Directory for Hive Log files.</description>
     <description>Directory for Hive Log files.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -101,6 +102,7 @@
     <display-name>Hive PID Dir</display-name>
     <display-name>Hive PID Dir</display-name>
     <description>Hive PID Dir.</description>
     <description>Hive PID Dir.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -121,6 +123,7 @@
     <display-name>WebHCat Log Dir</display-name>
     <display-name>WebHCat Log Dir</display-name>
     <description>WebHCat Log Dir.</description>
     <description>WebHCat Log Dir.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -131,6 +134,7 @@
     <display-name>WebHCat Pid Dir</display-name>
     <display-name>WebHCat Pid Dir</display-name>
     <description>WebHCat Pid Dir.</description>
     <description>WebHCat Pid Dir.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>

+ 9 - 0
ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml

@@ -27,6 +27,7 @@ limitations under the License.
     <value-attributes>
     <value-attributes>
       <unit>MB</unit>
       <unit>MB</unit>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -36,6 +37,7 @@ limitations under the License.
     <display-name>Database Name</display-name>
     <display-name>Database Name</display-name>
     <description>Database name used as the Hive Metastore</description>
     <description>Database name used as the Hive Metastore</description>
     <value-attributes>
     <value-attributes>
+      <type>host</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -146,6 +148,9 @@ limitations under the License.
     <name>hive.security.authorization.enabled</name>
     <name>hive.security.authorization.enabled</name>
     <value>false</value>
     <value>false</value>
     <description>enable or disable the hive client authorization</description>
     <description>enable or disable the hive client authorization</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -351,6 +356,7 @@ limitations under the License.
     </description>
     </description>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -363,6 +369,9 @@ limitations under the License.
       should use the ZooKeeper ensemble: hive.zookeeper.quorum in their
       should use the ZooKeeper ensemble: hive.zookeeper.quorum in their
       connection string.
       connection string.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 3 - 0
ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml

@@ -118,6 +118,9 @@ limitations under the License.
     <name>templeton.zookeeper.hosts</name>
     <name>templeton.zookeeper.hosts</name>
     <value>localhost:2181</value>
     <value>localhost:2181</value>
     <description>ZooKeeper servers, as comma separated host:port pairs</description>
     <description>ZooKeeper servers, as comma separated host:port pairs</description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 6 - 0
ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/configuration/kafka-broker.xml

@@ -28,6 +28,9 @@
       A comma-separated list of one or more directories in which Kafka data is stored.
       A comma-separated list of one or more directories in which Kafka data is stored.
       Each new partition that is created will be placed in the directory which currently has the fewest partitions.
       Each new partition that is created will be placed in the directory which currently has the fewest partitions.
     </description>
     </description>
+    <value-attributes>
+      <type>directories</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>port</name>
     <name>port</name>
@@ -35,6 +38,9 @@
     <description>
     <description>
       The port on which the server accepts client connections.
       The port on which the server accepts client connections.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>zookeeper.connect</name>
     <name>zookeeper.connect</name>

+ 1 - 0
ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/configuration/kafka-env.xml

@@ -39,6 +39,7 @@
     <display-name>Kafka PID dir</display-name>
     <display-name>Kafka PID dir</display-name>
     <description></description>
     <description></description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>

+ 15 - 0
ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/configuration/kerberos-env.xml

@@ -29,6 +29,7 @@
     <value>mit-kdc</value>
     <value>mit-kdc</value>
     <display-name>KDC type</display-name>
     <display-name>KDC type</display-name>
     <value-attributes>
     <value-attributes>
+      <type>componentHost</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -44,6 +45,7 @@
     <value-attributes>
     <value-attributes>
       <visible>false</visible>
       <visible>false</visible>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>boolean</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -57,6 +59,7 @@
     </description>
     </description>
     <value>true</value>
     <value>true</value>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -69,6 +72,7 @@
     </description>
     </description>
     <value/>
     <value/>
     <value-attributes>
     <value-attributes>
+      <type>host</type>
       <visible>false</visible>
       <visible>false</visible>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -95,6 +99,7 @@
     </description>
     </description>
     <value>aes des3-cbc-sha1 rc4 des-cbc-md5</value>
     <value>aes des3-cbc-sha1 rc4 des-cbc-md5</value>
     <value-attributes>
     <value-attributes>
+      <type>multiLine</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -107,6 +112,7 @@
     <display-name>Realm name</display-name>
     <display-name>Realm name</display-name>
     <value/>
     <value/>
     <value-attributes>
     <value-attributes>
+      <type>host</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -132,6 +138,7 @@
     </description>
     </description>
     <value/>
     <value/>
     <value-attributes>
     <value-attributes>
+      <type>host</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -145,6 +152,7 @@
     <value>/usr/bin, /usr/kerberos/bin, /usr/sbin, /usr/lib/mit/bin, /usr/lib/mit/sbin</value>
     <value>/usr/bin, /usr/kerberos/bin, /usr/sbin, /usr/lib/mit/bin, /usr/lib/mit/sbin</value>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>multiLine</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -168,6 +176,7 @@
     </description>
     </description>
     <value>1</value>
     <value>1</value>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -180,6 +189,7 @@
     </description>
     </description>
     <value>1</value>
     <value>1</value>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -192,6 +202,7 @@
     </description>
     </description>
     <value>1</value>
     <value>1</value>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -204,6 +215,7 @@
     </description>
     </description>
     <value>1</value>
     <value>1</value>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -216,6 +228,7 @@
     </description>
     </description>
     <value>0</value>
     <value>0</value>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -241,6 +254,7 @@
     <value>false</value>
     <value>false</value>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>boolean</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -269,6 +283,7 @@
 }
 }
     </value>
     </value>
     <value-attributes>
     <value-attributes>
+      <type>content</type>
       <empty-value-valid>true</empty-value-valid>
       <empty-value-valid>true</empty-value-valid>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>

+ 3 - 0
ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/configuration/krb5-conf.xml

@@ -43,6 +43,7 @@
     <value>true</value>
     <value>true</value>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>boolean</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -52,6 +53,7 @@
     <description>The krb5.conf configuration directory</description>
     <description>The krb5.conf configuration directory</description>
     <value>/etc</value>
     <value>/etc</value>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -91,6 +93,7 @@
 {# Append additional realm declarations below #}
 {# Append additional realm declarations below #}
     </value>
     </value>
     <value-attributes>
     <value-attributes>
+      <type>content</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>

+ 1 - 0
ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/configuration/knox-env.xml

@@ -57,6 +57,7 @@
     <display-name>Knox PID dir</display-name>
     <display-name>Knox PID dir</display-name>
     <description>Knox PID dir.</description>
     <description>Knox PID dir.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>

+ 7 - 0
ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/configuration/ranger-knox-plugin-properties.xml

@@ -48,6 +48,7 @@
       </property>
       </property>
     </depends-on>
     </depends-on>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -77,6 +78,9 @@
     <value>true</value>
     <value>true</value>
     <display-name>Audit to DB</display-name>
     <display-name>Audit to DB</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -84,6 +88,9 @@
     <value>false</value>
     <value>false</value>
     <display-name>Audit to HDFS</display-name>
     <display-name>Audit to HDFS</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 4 - 0
ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-env.xml

@@ -53,6 +53,7 @@
     <display-name>Oozie Data Dir</display-name>
     <display-name>Oozie Data Dir</display-name>
     <description>Data directory in which the Oozie DB exists</description>
     <description>Data directory in which the Oozie DB exists</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <empty-value-valid>true</empty-value-valid>
       <empty-value-valid>true</empty-value-valid>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -63,6 +64,7 @@
     <display-name>Oozie Log Dir</display-name>
     <display-name>Oozie Log Dir</display-name>
     <description>Directory for oozie logs</description>
     <description>Directory for oozie logs</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -73,6 +75,7 @@
     <display-name>Oozie PID Dir</display-name>
     <display-name>Oozie PID Dir</display-name>
     <description>Directory in which the pid files for oozie reside.</description>
     <description>Directory in which the pid files for oozie reside.</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -84,6 +87,7 @@
     <description>The admin port Oozie server runs.</description>
     <description>The admin port Oozie server runs.</description>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
   <property>
   <property>

+ 6 - 0
ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-env.xml

@@ -32,11 +32,17 @@
     <name>storm_log_dir</name>
     <name>storm_log_dir</name>
     <value>/var/log/storm</value>
     <value>/var/log/storm</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm_pid_dir</name>
     <name>storm_pid_dir</name>
     <value>/var/run/storm</value>
     <value>/var/run/storm</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>jmxremote_port</name>
     <name>jmxremote_port</name>

+ 78 - 0
ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-site.xml

@@ -35,12 +35,16 @@
     <description>A directory on the local filesystem used by Storm for any local
     <description>A directory on the local filesystem used by Storm for any local
        filesystem usage it needs. The directory must exist and the Storm daemons must
        filesystem usage it needs. The directory must exist and the Storm daemons must
        have permission to read/write from this location.</description>
        have permission to read/write from this location.</description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.zookeeper.servers</name>
     <name>storm.zookeeper.servers</name>
     <value>['localhost']</value>
     <value>['localhost']</value>
     <description>A list of hosts of ZooKeeper servers used to manage the cluster.</description>
     <description>A list of hosts of ZooKeeper servers used to manage the cluster.</description>
     <value-attributes>
     <value-attributes>
+      <type>componentHosts</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -49,26 +53,41 @@
     <name>storm.zookeeper.port</name>
     <name>storm.zookeeper.port</name>
     <value>2181</value>
     <value>2181</value>
     <description>The port Storm will use to connect to each of the ZooKeeper servers.</description>
     <description>The port Storm will use to connect to each of the ZooKeeper servers.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.zookeeper.root</name>
     <name>storm.zookeeper.root</name>
     <value>/storm</value>
     <value>/storm</value>
     <description>The root location at which Storm stores data in ZooKeeper.</description>
     <description>The root location at which Storm stores data in ZooKeeper.</description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.zookeeper.session.timeout</name>
     <name>storm.zookeeper.session.timeout</name>
     <value>20000</value>
     <value>20000</value>
     <description>The session timeout for clients to ZooKeeper.</description>
     <description>The session timeout for clients to ZooKeeper.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.zookeeper.connection.timeout</name>
     <name>storm.zookeeper.connection.timeout</name>
     <value>15000</value>
     <value>15000</value>
     <description>The connection timeout for clients to ZooKeeper.</description>
     <description>The connection timeout for clients to ZooKeeper.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.zookeeper.retry.times</name>
     <name>storm.zookeeper.retry.times</name>
     <value>5</value>
     <value>5</value>
     <description>The number of times to retry a Zookeeper operation.</description>
     <description>The number of times to retry a Zookeeper operation.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.zookeeper.retry.interval</name>
     <name>storm.zookeeper.retry.interval</name>
@@ -76,6 +95,7 @@
     <description>The interval between retries of a Zookeeper operation.</description>
     <description>The interval between retries of a Zookeeper operation.</description>
     <value-attributes>
     <value-attributes>
       <unit>ms</unit>
       <unit>ms</unit>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
   <property>
   <property>
@@ -83,6 +103,7 @@
     <value>30000</value>
     <value>30000</value>
     <description>The ceiling of the interval between retries of a Zookeeper operation.</description>
     <description>The ceiling of the interval between retries of a Zookeeper operation.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>ms</unit>
       <unit>ms</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -99,6 +120,9 @@
        of this flag is to make it easy to run Storm in local mode by eliminating
        of this flag is to make it easy to run Storm in local mode by eliminating
        the need for native dependencies, which can be difficult to install.
        the need for native dependencies, which can be difficult to install.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.thrift.transport</name>
     <name>storm.thrift.transport</name>
@@ -115,6 +139,7 @@
     <value>localhost</value>
     <value>localhost</value>
     <description>The host that the master server is running on.</description>
     <description>The host that the master server is running on.</description>
     <value-attributes>
     <value-attributes>
+      <type>componentHost</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -124,12 +149,16 @@
     <value>6627</value>
     <value>6627</value>
     <description> Which port the Thrift interface of Nimbus should run on. Clients should
     <description> Which port the Thrift interface of Nimbus should run on. Clients should
        connect to this port to upload jars and submit topologies.</description>
        connect to this port to upload jars and submit topologies.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>nimbus.thrift.max_buffer_size</name>
     <name>nimbus.thrift.max_buffer_size</name>
     <value>1048576</value>
     <value>1048576</value>
     <description>The maximum buffer size thrift should use when reading messages.</description>
     <description>The maximum buffer size thrift should use when reading messages.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>bytes</unit>
       <unit>bytes</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -138,6 +167,7 @@
     <value>-Xmx1024m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
     <value>-Xmx1024m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
     <description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
     <description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
     <value-attributes>
     <value-attributes>
+      <type>multiLine</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -146,6 +176,7 @@
     <value>30</value>
     <value>30</value>
     <description>How long without heartbeating a task can go before nimbus will consider the task dead and reassign it to another location.</description>
     <description>How long without heartbeating a task can go before nimbus will consider the task dead and reassign it to another location.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -153,6 +184,9 @@
     <name>nimbus.supervisor.timeout.secs</name>
     <name>nimbus.supervisor.timeout.secs</name>
     <value>60</value>
     <value>60</value>
     <description>How long before a supervisor can go without heartbeating before nimbus considers it dead and stops assigning new work to it.</description>
     <description>How long before a supervisor can go without heartbeating before nimbus considers it dead and stops assigning new work to it.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>nimbus.monitor.freq.secs</name>
     <name>nimbus.monitor.freq.secs</name>
@@ -163,6 +197,7 @@
        This parameter is for checking for failures when there's no explicit event like that occuring.
        This parameter is for checking for failures when there's no explicit event like that occuring.
     </description>
     </description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -171,6 +206,7 @@
     <value>600</value>
     <value>600</value>
     <description>How often nimbus should wake the cleanup thread to clean the inbox.</description>
     <description>How often nimbus should wake the cleanup thread to clean the inbox.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -185,6 +221,7 @@
        NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS (depending on how often NIMBUS_CLEANUP_FREQ_SECS is set to).
        NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS (depending on how often NIMBUS_CLEANUP_FREQ_SECS is set to).
       </description>
       </description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -194,6 +231,7 @@
     <description>A special timeout used when a task is initially launched. During launch, this is the timeout
     <description>A special timeout used when a task is initially launched. During launch, this is the timeout
        used until the first heartbeat, overriding nimbus.task.timeout.secs.</description>
        used until the first heartbeat, overriding nimbus.task.timeout.secs.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -202,6 +240,9 @@
     <value>true</value>
     <value>true</value>
     <description>Whether or not nimbus should reassign tasks if it detects that a task goes down.
     <description>Whether or not nimbus should reassign tasks if it detects that a task goes down.
        Defaults to true, and it's not recommended to change this value.</description>
        Defaults to true, and it's not recommended to change this value.</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>nimbus.file.copy.expiration.secs</name>
     <name>nimbus.file.copy.expiration.secs</name>
@@ -209,6 +250,7 @@
     <description>During upload/download with the master, how long an upload or download connection is idle
     <description>During upload/download with the master, how long an upload or download connection is idle
        before nimbus considers it dead and drops the connection.</description>
        before nimbus considers it dead and drops the connection.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -223,6 +265,9 @@
     <name>ui.port</name>
     <name>ui.port</name>
     <value>8744</value>
     <value>8744</value>
     <description>Storm UI binds to this port.</description>
     <description>Storm UI binds to this port.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>ui.childopts</name>
     <name>ui.childopts</name>
@@ -248,21 +293,33 @@
     <name>drpc.port</name>
     <name>drpc.port</name>
     <value>3772</value>
     <value>3772</value>
     <description>This port is used by Storm DRPC for receiving DPRC requests from clients.</description>
     <description>This port is used by Storm DRPC for receiving DPRC requests from clients.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>drpc.worker.threads</name>
     <name>drpc.worker.threads</name>
     <value>64</value>
     <value>64</value>
     <description>DRPC thrift server worker threads.</description>
     <description>DRPC thrift server worker threads.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>drpc.queue.size</name>
     <name>drpc.queue.size</name>
     <value>128</value>
     <value>128</value>
     <description>DRPC thrift server queue size.</description>
     <description>DRPC thrift server queue size.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>drpc.invocations.port</name>
     <name>drpc.invocations.port</name>
     <value>3773</value>
     <value>3773</value>
     <description>This port on Storm DRPC is used by DRPC topologies to receive function invocations and send results back.</description>
     <description>This port on Storm DRPC is used by DRPC topologies to receive function invocations and send results back.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>drpc.request.timeout.secs</name>
     <name>drpc.request.timeout.secs</name>
@@ -271,6 +328,7 @@
        timeout based on the socket timeout on the DRPC client, and separately based on the topology message
        timeout based on the socket timeout on the DRPC client, and separately based on the topology message
        timeout for the topology implementing the DRPC function.</description>
        timeout for the topology implementing the DRPC function.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -308,6 +366,7 @@
     <value>-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port={{jmxremote_port}} -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
     <value>-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port={{jmxremote_port}} -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
     <description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
     <description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
     <value-attributes>
     <value-attributes>
+      <type>multiLine</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -319,6 +378,7 @@
        supervisor.worker.timeout.secs during launch because there is additional
        supervisor.worker.timeout.secs during launch because there is additional
        overhead to starting and configuring the JVM on launch.</description>
        overhead to starting and configuring the JVM on launch.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -327,6 +387,7 @@
     <value>30</value>
     <value>30</value>
     <description>How long a worker can go without heartbeating before the supervisor tries to restart the worker process.</description>
     <description>How long a worker can go without heartbeating before the supervisor tries to restart the worker process.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -335,6 +396,7 @@
     <value>3</value>
     <value>3</value>
     <description>How often the supervisor checks the worker heartbeats to see if any of them need to be restarted.</description>
     <description>How often the supervisor checks the worker heartbeats to see if any of them need to be restarted.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -343,6 +405,7 @@
     <value>5</value>
     <value>5</value>
     <description>How often the supervisor sends a heartbeat to the master.</description>
     <description>How often the supervisor sends a heartbeat to the master.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>seconds</unit>
       <unit>seconds</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -350,6 +413,9 @@
     <name>worker.childopts</name>
     <name>worker.childopts</name>
     <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
     <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
     <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
     <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>worker.heartbeat.frequency.secs</name>
     <name>worker.heartbeat.frequency.secs</name>
@@ -392,17 +458,24 @@
     <name>storm.messaging.netty.server_worker_threads</name>
     <name>storm.messaging.netty.server_worker_threads</name>
     <value>1</value>
     <value>1</value>
     <description>Netty based messaging: The # of worker threads for the server.</description>
     <description>Netty based messaging: The # of worker threads for the server.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.messaging.netty.client_worker_threads</name>
     <name>storm.messaging.netty.client_worker_threads</name>
     <value>1</value>
     <value>1</value>
     <description>Netty based messaging: The # of worker threads for the client.</description>
     <description>Netty based messaging: The # of worker threads for the client.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.messaging.netty.buffer_size</name>
     <name>storm.messaging.netty.buffer_size</name>
     <value>5242880</value>
     <value>5242880</value>
     <description>Netty based messaging: The buffer size for send/recv buffer.</description>
     <description>Netty based messaging: The buffer size for send/recv buffer.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>bytes</unit>
       <unit>bytes</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -410,12 +483,16 @@
     <name>storm.messaging.netty.max_retries</name>
     <name>storm.messaging.netty.max_retries</name>
     <value>30</value>
     <value>30</value>
     <description>Netty based messaging: The max # of retries that a peer will perform when a remote is not accessible.</description>
     <description>Netty based messaging: The max # of retries that a peer will perform when a remote is not accessible.</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>storm.messaging.netty.max_wait_ms</name>
     <name>storm.messaging.netty.max_wait_ms</name>
     <value>1000</value>
     <value>1000</value>
     <description>Netty based messaging: The max # of milliseconds that a peer will wait.</description>
     <description>Netty based messaging: The max # of milliseconds that a peer will wait.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>ms</unit>
       <unit>ms</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -424,6 +501,7 @@
     <value>100</value>
     <value>100</value>
     <description>Netty based messaging: The min # of milliseconds that a peer will wait.</description>
     <description>Netty based messaging: The min # of milliseconds that a peer will wait.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>ms</unit>
       <unit>ms</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>

+ 18 - 0
ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-site.xml

@@ -41,6 +41,9 @@
     <name>tez.am.resource.memory.mb</name>
     <name>tez.am.resource.memory.mb</name>
     <value>1536</value>
     <value>1536</value>
     <description>The amount of memory to be used by the AppMaster</description>
     <description>The amount of memory to be used by the AppMaster</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <!-- tez picks the java opts from yarn.app.mapreduce.am.command-opts for MR tasks. Likewise for the AM memory MB -->
   <!-- tez picks the java opts from yarn.app.mapreduce.am.command-opts for MR tasks. Likewise for the AM memory MB -->
@@ -80,6 +83,9 @@
       a Vertex. 1.4 with 100% queue available implies generating a number of tasks roughly equal
       a Vertex. 1.4 with 100% queue available implies generating a number of tasks roughly equal
       to 140% of the available containers on the queue
       to 140% of the available containers on the queue
     </description>
     </description>
+    <value-attributes>
+      <type>float</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -88,6 +94,9 @@
     <description>Lower bound on the size (in bytes) of a grouped split, to avoid generating
     <description>Lower bound on the size (in bytes) of a grouped split, to avoid generating
       too many splits
       too many splits
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -96,6 +105,9 @@
     <description>Upper bound on the size (in bytes) of a grouped split, to avoid generating
     <description>Upper bound on the size (in bytes) of a grouped split, to avoid generating
       excessively large split
       excessively large split
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -188,6 +200,9 @@
     <name>tez.runtime.intermediate-output.should-compress</name>
     <name>tez.runtime.intermediate-output.should-compress</name>
     <value>false</value>
     <value>false</value>
     <description>Whether intermediate output should be compressed or not</description>
     <description>Whether intermediate output should be compressed or not</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -202,6 +217,9 @@
     <name>tez.runtime.intermediate-input.is-compressed</name>
     <name>tez.runtime.intermediate-input.is-compressed</name>
     <value>false</value>
     <value>false</value>
     <description>Whether intermediate input is compressed</description>
     <description>Whether intermediate input is compressed</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 3 - 0
ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/configuration-mapred/mapred-env.xml

@@ -27,6 +27,7 @@
     <display-name>Mapreduce Log Dir Prefix</display-name>
     <display-name>Mapreduce Log Dir Prefix</display-name>
     <description>Mapreduce Log Dir Prefix</description>
     <description>Mapreduce Log Dir Prefix</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -37,6 +38,7 @@
     <display-name>Mapreduce PID Dir Prefix</display-name>
     <display-name>Mapreduce PID Dir Prefix</display-name>
     <description>Mapreduce PID Dir Prefix</description>
     <description>Mapreduce PID Dir Prefix</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -55,6 +57,7 @@
     <description>Value for JobHistoryServer heap_size variable in hadoop-env.sh</description>
     <description>Value for JobHistoryServer heap_size variable in hadoop-env.sh</description>
     <value-attributes>
     <value-attributes>
       <unit>MB</unit>
       <unit>MB</unit>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 

+ 8 - 0
ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/configuration/yarn-env.xml

@@ -27,6 +27,7 @@
     <display-name>YARN Log Dir Prefix</display-name>
     <display-name>YARN Log Dir Prefix</display-name>
     <description>YARN Log Dir Prefix</description>
     <description>YARN Log Dir Prefix</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -37,6 +38,7 @@
     <display-name>YARN PID Dir Prefix</display-name>
     <display-name>YARN PID Dir Prefix</display-name>
     <description>YARN PID Dir Prefix</description>
     <description>YARN PID Dir Prefix</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
     </value-attributes>
     </value-attributes>
@@ -54,6 +56,7 @@
     <display-name>YARN Java heap size</display-name>
     <display-name>YARN Java heap size</display-name>
     <description>Max heapsize for all YARN components using a numerical value in the scale of MB</description>
     <description>Max heapsize for all YARN components using a numerical value in the scale of MB</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -63,6 +66,7 @@
     <display-name>ResourceManager Java heap size</display-name>
     <display-name>ResourceManager Java heap size</display-name>
     <description>Max heapsize for ResourceManager using a numerical value in the scale of MB</description>
     <description>Max heapsize for ResourceManager using a numerical value in the scale of MB</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
@@ -73,6 +77,7 @@
     <display-name>NodeManager Java heap size</display-name>
     <display-name>NodeManager Java heap size</display-name>
     <description>Max heapsize for NodeManager using a numerical value in the scale of MB</description>
     <description>Max heapsize for NodeManager using a numerical value in the scale of MB</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -81,6 +86,9 @@
     <value>1000</value>
     <value>1000</value>
     <display-name>Minimum user ID for submitting job</display-name>
     <display-name>Minimum user ID for submitting job</display-name>
     <description>Set to 0 to disallow root from submitting jobs. Set to 1000 to disallow all superusers from submitting jobs</description>
     <description>Set to 0 to disallow root from submitting jobs. Set to 1000 to disallow all superusers from submitting jobs</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>  
   </property>  
   <property>
   <property>
     <name>is_supported_yarn_ranger</name>
     <name>is_supported_yarn_ranger</name>

+ 9 - 0
ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/configuration/yarn-site.xml

@@ -114,6 +114,9 @@
     <name>yarn.acl.enable</name>
     <name>yarn.acl.enable</name>
     <value>false</value>
     <value>false</value>
     <description> Are acls enabled. </description>
     <description> Are acls enabled. </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -212,6 +215,9 @@
       named container_{$contid}. Each container directory will contain the files
       named container_{$contid}. Each container directory will contain the files
       stderr, stdin, and syslog generated by that container.
       stderr, stdin, and syslog generated by that container.
     </description>
     </description>
+    <value-attributes>
+      <type>directories</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -224,6 +230,9 @@
       Individual containers' work directories, called container_${contid}, will
       Individual containers' work directories, called container_${contid}, will
       be subdirectories of this.
       be subdirectories of this.
     </description>
     </description>
+    <value-attributes>
+      <type>directories</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 7 - 0
ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zoo.cfg.xml

@@ -27,6 +27,7 @@
     <display-name>Length of single Tick</display-name>
     <display-name>Length of single Tick</display-name>
     <description>The length of a single tick in milliseconds, which is the basic time unit used by ZooKeeper</description>
     <description>The length of a single tick in milliseconds, which is the basic time unit used by ZooKeeper</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <unit>ms</unit>
       <unit>ms</unit>
     </value-attributes>
     </value-attributes>
@@ -37,6 +38,7 @@
     <display-name>Ticks to allow for sync at Init</display-name>
     <display-name>Ticks to allow for sync at Init</display-name>
     <description>Ticks to allow for sync at Init.</description>
     <description>Ticks to allow for sync at Init.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -46,6 +48,7 @@
     <display-name>Ticks to allow for sync at Runtime</display-name>
     <display-name>Ticks to allow for sync at Runtime</display-name>
     <description>Ticks to allow for sync at Runtime.</description>
     <description>Ticks to allow for sync at Runtime.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -55,6 +58,7 @@
     <display-name>Port for running ZK Server</display-name>
     <display-name>Port for running ZK Server</display-name>
     <description>Port for running ZK Server.</description>
     <description>Port for running ZK Server.</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -63,6 +67,9 @@
     <value>/hadoop/zookeeper</value>
     <value>/hadoop/zookeeper</value>
     <display-name>ZooKeeper directory</display-name>
     <display-name>ZooKeeper directory</display-name>
     <description>Data directory for ZooKeeper.</description>
     <description>Data directory for ZooKeeper.</description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>autopurge.snapRetainCount</name>
     <name>autopurge.snapRetainCount</name>

+ 2 - 0
ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/configuration/zookeeper-env.xml

@@ -34,6 +34,7 @@
     <display-name>ZooKeeper Log Dir</display-name>
     <display-name>ZooKeeper Log Dir</display-name>
     <description>ZooKeeper Log Dir</description>
     <description>ZooKeeper Log Dir</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
@@ -44,6 +45,7 @@
     <display-name>ZooKeeper PID Dir</display-name>
     <display-name>ZooKeeper PID Dir</display-name>
     <description>ZooKeeper Pid Dir</description>
     <description>ZooKeeper Pid Dir</description>
     <value-attributes>
     <value-attributes>
+      <type>directory</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>

+ 3 - 0
ambari-server/src/main/resources/stacks/BIGTOP/0.8/configuration/cluster-env.xml

@@ -35,6 +35,9 @@
         <name>ignore_groupsusers_create</name>
         <name>ignore_groupsusers_create</name>
         <value>false</value>
         <value>false</value>
         <description>Whether to ignore failures on users and group creation</description>
         <description>Whether to ignore failures on users and group creation</description>
+        <value-attributes>
+            <type>boolean</type>
+        </value-attributes>
     </property>
     </property>
     <property>
     <property>
         <name>smokeuser</name>
         <name>smokeuser</name>

+ 15 - 0
ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/configuration/yarn-site.xml

@@ -345,6 +345,9 @@
     <description>Indicate to clients whether timeline service is enabled or not.
     <description>Indicate to clients whether timeline service is enabled or not.
       If enabled, clients will put entities and events to the timeline server.
       If enabled, clients will put entities and events to the timeline server.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -369,6 +372,9 @@
     <description>
     <description>
       Store file name for leveldb timeline store
       Store file name for leveldb timeline store
     </description>
     </description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -399,15 +405,24 @@
     <description>Enable age off of timeline store data.</description>
     <description>Enable age off of timeline store data.</description>
     <name>yarn.timeline-service.ttl-enable</name>
     <name>yarn.timeline-service.ttl-enable</name>
     <value>true</value>
     <value>true</value>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <description>Time to live for timeline store data in milliseconds.</description>
     <description>Time to live for timeline store data in milliseconds.</description>
     <name>yarn.timeline-service.ttl-ms</name>
     <name>yarn.timeline-service.ttl-ms</name>
     <value>2678400000</value>
     <value>2678400000</value>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <description>Length of time to wait between deletion cycles of leveldb timeline store in milliseconds.</description>
     <description>Length of time to wait between deletion cycles of leveldb timeline store in milliseconds.</description>
     <name>yarn.timeline-service.leveldb-timeline-store.ttl-interval-ms</name>
     <name>yarn.timeline-service.leveldb-timeline-store.ttl-interval-ms</name>
     <value>300000</value>
     <value>300000</value>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 </configuration>
 </configuration>

+ 2 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml

@@ -39,6 +39,7 @@
         <description>Whether to ignore failures on users and group creation</description>
         <description>Whether to ignore failures on users and group creation</description>
         <value-attributes>
         <value-attributes>
             <overridable>false</overridable>
             <overridable>false</overridable>
+            <type>boolean</type>
         </value-attributes>
         </value-attributes>
     </property>
     </property>
     <property>
     <property>
@@ -85,6 +86,7 @@ gpgcheck=0</value>
         <description>Have Ambari manage UIDs</description>
         <description>Have Ambari manage UIDs</description>
         <value-attributes>
         <value-attributes>
             <overridable>false</overridable>
             <overridable>false</overridable>
+            <type>boolean</type>
         </value-attributes>
         </value-attributes>
     </property>
     </property>
 
 

+ 8 - 0
ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/configuration/hive-site.xml

@@ -27,6 +27,7 @@ limitations under the License.
     <value-attributes>
     <value-attributes>
       <unit>MB</unit>
       <unit>MB</unit>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -136,6 +137,9 @@ limitations under the License.
     <name>hive.security.authorization.enabled</name>
     <name>hive.security.authorization.enabled</name>
     <value>false</value>
     <value>false</value>
     <description>enable or disable the hive client authorization</description>
     <description>enable or disable the hive client authorization</description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -579,6 +583,7 @@ limitations under the License.
     </description>
     </description>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
 
 
@@ -607,6 +612,9 @@ limitations under the License.
       should use the ZooKeeper ensemble: hive.zookeeper.quorum in their
       should use the ZooKeeper ensemble: hive.zookeeper.quorum in their
       connection string.
       connection string.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

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

@@ -29,6 +29,7 @@
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
       <unit>MB</unit>
       <unit>MB</unit>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
   
   

+ 15 - 0
ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/configuration/yarn-site.xml

@@ -26,6 +26,9 @@
     <description>Indicate to clients whether timeline service is enabled or not.
     <description>Indicate to clients whether timeline service is enabled or not.
       If enabled, clients will put entities and events to the timeline server.
       If enabled, clients will put entities and events to the timeline server.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -50,6 +53,9 @@
     <description>
     <description>
       Store file name for leveldb timeline store
       Store file name for leveldb timeline store
     </description>
     </description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -80,15 +86,24 @@
     <description>Enable age off of timeline store data.</description>
     <description>Enable age off of timeline store data.</description>
     <name>yarn.timeline-service.ttl-enable</name>
     <name>yarn.timeline-service.ttl-enable</name>
     <value>true</value>
     <value>true</value>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <description>Time to live for timeline store data in milliseconds.</description>
     <description>Time to live for timeline store data in milliseconds.</description>
     <name>yarn.timeline-service.ttl-ms</name>
     <name>yarn.timeline-service.ttl-ms</name>
     <value>2678400000</value>
     <value>2678400000</value>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <description>Length of time to wait between deletion cycles of leveldb timeline store in milliseconds.</description>
     <description>Length of time to wait between deletion cycles of leveldb timeline store in milliseconds.</description>
     <name>yarn.timeline-service.leveldb-timeline-store.ttl-interval-ms</name>
     <name>yarn.timeline-service.leveldb-timeline-store.ttl-interval-ms</name>
     <value>300000</value>
     <value>300000</value>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 </configuration>
 </configuration>

+ 9 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/FALCON/configuration/falcon-startup.properties.xml

@@ -97,6 +97,9 @@
     <name>*.falcon.graph.storage.directory</name>
     <name>*.falcon.graph.storage.directory</name>
     <value>/hadoop/falcon/data/lineage/graphdb</value>
     <value>/hadoop/falcon/data/lineage/graphdb</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.falcon.graph.storage.backend</name>
     <name>*.falcon.graph.storage.backend</name>
@@ -107,11 +110,17 @@
     <name>*.falcon.graph.serialize.path</name>
     <name>*.falcon.graph.serialize.path</name>
     <value>/hadoop/falcon/data/lineage</value>
     <value>/hadoop/falcon/data/lineage</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>*.falcon.graph.preserve.history</name>
     <name>*.falcon.graph.preserve.history</name>
     <value>false</value>
     <value>false</value>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
 </configuration>
 </configuration>

+ 11 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/HBASE/configuration/ranger-hbase-plugin-properties.xml

@@ -42,6 +42,7 @@
     <display-name>Enable Ranger for HBASE</display-name>
     <display-name>Enable Ranger for HBASE</display-name>
     <description>Enable ranger hbase plugin ?</description>
     <description>Enable ranger hbase plugin ?</description>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
     <depends-on>
     <depends-on>
@@ -71,6 +72,9 @@
     <value>true</value>
     <value>true</value>
     <display-name>Audit to DB</display-name>
     <display-name>Audit to DB</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property> 
   </property> 
 
 
   <property>
   <property>
@@ -78,6 +82,10 @@
     <value>false</value>
     <value>false</value>
     <display-name>Audit to HDFS</display-name>
     <display-name>Audit to HDFS</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
+
   </property>
   </property>
 
 
   <property>
   <property>
@@ -177,6 +185,9 @@
     <value>true</value>
     <value>true</value>
     <display-name>Should HBase GRANT/REVOKE update XA policies</display-name>
     <display-name>Should HBase GRANT/REVOKE update XA policies</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   
   
   <property>
   <property>

+ 7 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/ranger-hdfs-plugin-properties.xml

@@ -51,6 +51,7 @@
 			</property>
 			</property>
 		</depends-on>
 		</depends-on>
 		<value-attributes>
 		<value-attributes>
+			<type>boolean</type>
 			<overridable>false</overridable>
 			<overridable>false</overridable>
 		</value-attributes>
 		</value-attributes>
 	</property>
 	</property>
@@ -76,6 +77,9 @@
 		<value>true</value>
 		<value>true</value>
 		<display-name>Audit to DB</display-name>
 		<display-name>Audit to DB</display-name>
 		<description></description>
 		<description></description>
+		<value-attributes>
+			<type>boolean</type>
+		</value-attributes>
 	</property>
 	</property>
 
 
 	<property>
 	<property>
@@ -83,6 +87,9 @@
 		<value>false</value>
 		<value>false</value>
 		<display-name>Audit to HDFS</display-name>
 		<display-name>Audit to HDFS</display-name>
 		<description></description>
 		<description></description>
+		<value-attributes>
+			<type>boolean</type>
+		</value-attributes>
 	</property>
 	</property>
 
 
 	<property>
 	<property>

+ 8 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml

@@ -48,6 +48,7 @@ limitations under the License.
       org.apache.hadoop.hive.ql.lockmgr.zookeeper.ZooKeeperHiveLockManager,
       org.apache.hadoop.hive.ql.lockmgr.zookeeper.ZooKeeperHiveLockManager,
       2. When HiveServer2 supports service discovery via Zookeeper.</description>
       2. When HiveServer2 supports service discovery via Zookeeper.</description>
     <value-attributes>
     <value-attributes>
+      <type>multiLine</type>
       <empty-value-valid>true</empty-value-valid>
       <empty-value-valid>true</empty-value-valid>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -124,6 +125,9 @@ limitations under the License.
       when it is brought up. JDBC/ODBC clients should use the ZooKeeper ensemble: hive.zookeeper.quorum
       when it is brought up. JDBC/ODBC clients should use the ZooKeeper ensemble: hive.zookeeper.quorum
       in their connection string.
       in their connection string.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   
   
   <property>
   <property>
@@ -1090,6 +1094,7 @@ limitations under the License.
     </description>
     </description>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
   <property>
   <property>
@@ -1388,6 +1393,9 @@ limitations under the License.
     <value>1024</value>
     <value>1024</value>
     <deleted>true</deleted>
     <deleted>true</deleted>
     <description>Hive Java heap size</description>
     <description>Hive Java heap size</description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 9 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/ranger-hive-plugin-properties.xml

@@ -61,6 +61,9 @@
     <value>true</value>
     <value>true</value>
     <display-name>Audit to DB</display-name>
     <display-name>Audit to DB</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property> 
   </property> 
 
 
   <property>
   <property>
@@ -68,6 +71,9 @@
     <value>false</value>
     <value>false</value>
     <display-name>Audit to HDFS</display-name>
     <display-name>Audit to HDFS</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -167,6 +173,9 @@
     <value>true</value>
     <value>true</value>
     <display-name>Should Hive GRANT/REVOKE update XA policies</display-name>
     <display-name>Should Hive GRANT/REVOKE update XA policies</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 7 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/configuration/ranger-storm-plugin-properties.xml

@@ -48,6 +48,7 @@
       </property>
       </property>
     </depends-on>
     </depends-on>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
@@ -71,6 +72,9 @@
     <value>true</value>
     <value>true</value>
     <display-name>Audit to DB</display-name>
     <display-name>Audit to DB</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property> 
   </property> 
 
 
   <property>
   <property>
@@ -78,6 +82,9 @@
     <value>false</value>
     <value>false</value>
     <display-name>Audit to HDFS</display-name>
     <display-name>Audit to HDFS</display-name>
     <description></description>
     <description></description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/STORM/configuration/storm-site.xml

@@ -60,6 +60,9 @@
     <name>worker.childopts</name>
     <name>worker.childopts</name>
     <value>-Xmx768m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm-client/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm-client/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
     <value>-Xmx768m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm-client/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm-client/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
     <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
     <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
+    <value-attributes>
+      <type>multiLine</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/TEZ/configuration/tez-site.xml

@@ -58,6 +58,9 @@
     <description>The amount of memory to be used by the AppMaster.
     <description>The amount of memory to be used by the AppMaster.
       Used only if the value is not specified explicitly by the DAG definition.
       Used only if the value is not specified explicitly by the DAG definition.
     </description>
     </description>
+    <value-attributes>
+      <type>int</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 12 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/YARN/configuration/yarn-site.xml

@@ -32,6 +32,9 @@
     <description>
     <description>
       Is the registry enabled: does the RM start it up, create the user and system paths, and purge service records when containers, application attempts and applications complete
       Is the registry enabled: does the RM start it up, create the user and system paths, and purge service records when containers, application attempts and applications complete
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>hadoop.registry.zk.quorum</name>
     <name>hadoop.registry.zk.quorum</name>
@@ -276,6 +279,9 @@
     <description>
     <description>
       Enable age off of timeline store data.
       Enable age off of timeline store data.
     </description>
     </description>
+    <value-attributes>
+      <type>boolean</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
@@ -294,12 +300,18 @@
     <name>yarn.timeline-service.leveldb-state-store.path</name>
     <name>yarn.timeline-service.leveldb-state-store.path</name>
     <value>/hadoop/yarn/timeline</value>
     <value>/hadoop/yarn/timeline</value>
     <description>Store file name for leveldb state store.</description>
     <description>Store file name for leveldb state store.</description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>
     <name>yarn.timeline-service.leveldb-timeline-store.path</name>
     <name>yarn.timeline-service.leveldb-timeline-store.path</name>
     <value>/hadoop/yarn/timeline</value>
     <value>/hadoop/yarn/timeline</value>
     <description>Store file name for leveldb timeline store.</description>
     <description>Store file name for leveldb timeline store.</description>
+    <value-attributes>
+      <type>directory</type>
+    </value-attributes>
   </property>
   </property>
   <property>
   <property>
     <name>yarn.timeline-service.leveldb-timeline-store.read-cache-size</name>
     <name>yarn.timeline-service.leveldb-timeline-store.read-cache-size</name>

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

@@ -27,6 +27,7 @@
     <description>The port the HBase Master should bind to.</description>
     <description>The port the HBase Master should bind to.</description>
     <value-attributes>
     <value-attributes>
       <overridable>false</overridable>
       <overridable>false</overridable>
+      <type>int</type>
     </value-attributes>
     </value-attributes>
   </property>
   </property>
   <property>
   <property>

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/configuration/hadoop-env.xml

@@ -167,6 +167,7 @@ fi
     <value>1024</value>
     <value>1024</value>
     <description>Maximum Java heap size for NFSGateway (Java option -Xmx)</description>
     <description>Maximum Java heap size for NFSGateway (Java option -Xmx)</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <unit>MB</unit>
       <unit>MB</unit>
     </value-attributes>
     </value-attributes>
   </property>
   </property>

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/configuration/hdfs-site.xml

@@ -32,6 +32,9 @@
       they are accumulated to exceed certain threshold (e.g., 1MB) in memory.
       they are accumulated to exceed certain threshold (e.g., 1MB) in memory.
       One needs to make sure the directory has enough space.
       One needs to make sure the directory has enough space.
     </description>
     </description>
+    <value-attributes>
+        <type>directory</type>
+    </value-attributes>
   </property>
   </property>
 
 
   <property>
   <property>

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/KAFKA/configuration/ranger-kafka-plugin-properties.xml

@@ -62,6 +62,7 @@
       </property>
       </property>
     </depends-on>
     </depends-on>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/RANGER/configuration/ranger-admin-site.xml

@@ -400,6 +400,7 @@
     <value>5151</value>
     <value>5151</value>
     <description>Port for unix authentication service - only used if Authentication method is UNIX</description>
     <description>Port for unix authentication service - only used if Authentication method is UNIX</description>
     <value-attributes>
     <value-attributes>
+      <type>int</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>    
   </property>    

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml

@@ -24,6 +24,7 @@
     <value>localhost</value>
     <value>localhost</value>
     <description>Comma-delimited list of the hosts running nimbus server.</description>
     <description>Comma-delimited list of the hosts running nimbus server.</description>
     <value-attributes>
     <value-attributes>
+      <type>componentHosts</type>
       <editable-only-at-install>true</editable-only-at-install>
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/YARN/configuration/ranger-yarn-plugin-properties.xml

@@ -56,6 +56,7 @@
       </property>
       </property>
     </depends-on>
     </depends-on>
     <value-attributes>
     <value-attributes>
+      <type>boolean</type>
       <overridable>false</overridable>
       <overridable>false</overridable>
     </value-attributes>
     </value-attributes>
   </property>
   </property>

+ 0 - 67
ambari-web/app/data/HDP2.2/site_properties.js

@@ -43,22 +43,9 @@ var hdp22properties = hdp2properties.filter(function (item) {
 });
 });
 
 
 hdp22properties.push(
 hdp22properties.push(
-  {
-    "name": "hive.zookeeper.quorum",
-    "displayType": "multiLine",
-    "serviceName": "HIVE",
-    "filename": "hive-site.xml"
-  },
-  {
-    "name": "hadoop.registry.rm.enabled",
-    "displayType": "checkbox",
-    "serviceName": "YARN",
-    "filename": "yarn-site.xml"
-  },
   {
   {
     "name": "yarn.timeline-service.leveldb-state-store.path",
     "name": "yarn.timeline-service.leveldb-state-store.path",
     "category": "APP_TIMELINE_SERVER",
     "category": "APP_TIMELINE_SERVER",
-    "displayType": "directory",
     "serviceName": "YARN",
     "serviceName": "YARN",
     "filename": "yarn-site.xml"
     "filename": "yarn-site.xml"
   },
   },
@@ -83,20 +70,12 @@ hdp22properties.push(
   /*********RANGER FOR HDFS************/
   /*********RANGER FOR HDFS************/
   {
   {
     "name": "XAAUDIT.HDFS.IS_ENABLED",
     "name": "XAAUDIT.HDFS.IS_ENABLED",
-    "displayType": "checkbox",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "filename": "ranger-hdfs-plugin-properties.xml",
     "filename": "ranger-hdfs-plugin-properties.xml",
     "serviceName": "HDFS"
     "serviceName": "HDFS"
   },
   },
-  {
-    "name": "XAAUDIT.DB.IS_ENABLED",
-    "displayType": "checkbox",
-    "filename": "ranger-hdfs-plugin-properties.xml",
-    "serviceName": "HDFS"
-  },
   {
   {
     "name": "ranger-hdfs-plugin-enabled",
     "name": "ranger-hdfs-plugin-enabled",
-    "displayType": "checkbox",
     "filename": "ranger-hdfs-plugin-properties.xml",
     "filename": "ranger-hdfs-plugin-properties.xml",
     "serviceName": "HDFS",
     "serviceName": "HDFS",
     "index": 1
     "index": 1
@@ -104,67 +83,32 @@ hdp22properties.push(
   /*********RANGER FOR HIVE************/
   /*********RANGER FOR HIVE************/
   {
   {
     "name": "XAAUDIT.HDFS.IS_ENABLED",
     "name": "XAAUDIT.HDFS.IS_ENABLED",
-    "displayType": "checkbox",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "filename": "ranger-hive-plugin-properties.xml",
     "filename": "ranger-hive-plugin-properties.xml",
     "serviceName": "HIVE"
     "serviceName": "HIVE"
   },
   },
-  {
-    "name": "XAAUDIT.DB.IS_ENABLED",
-    "displayType": "checkbox",
-    "filename": "ranger-hive-plugin-properties.xml",
-    "serviceName": "HIVE"
-  },
-  {
-    "name": "UPDATE_XAPOLICIES_ON_GRANT_REVOKE",
-    "displayType": "checkbox",
-    "filename": "ranger-hive-plugin-properties.xml",
-    "serviceName": "HIVE"
-  },
   /*********RANGER FOR HBASE************/
   /*********RANGER FOR HBASE************/
   {
   {
     "name": "XAAUDIT.HDFS.IS_ENABLED",
     "name": "XAAUDIT.HDFS.IS_ENABLED",
-    "displayType": "checkbox",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "filename": "ranger-hbase-plugin-properties.xml",
     "filename": "ranger-hbase-plugin-properties.xml",
     "serviceName": "HBASE"
     "serviceName": "HBASE"
   },
   },
-  {
-    "name": "XAAUDIT.DB.IS_ENABLED",
-    "displayType": "checkbox",
-    "filename": "ranger-hbase-plugin-properties.xml",
-    "serviceName": "HBASE"
-  },
   {
   {
     "name": "ranger-hbase-plugin-enabled",
     "name": "ranger-hbase-plugin-enabled",
-    "displayType": "checkbox",
     "filename": "ranger-hbase-plugin-properties.xml",
     "filename": "ranger-hbase-plugin-properties.xml",
     "serviceName": "HBASE",
     "serviceName": "HBASE",
     "index": 1
     "index": 1
   },
   },
-  {
-    "name": "UPDATE_XAPOLICIES_ON_GRANT_REVOKE",
-    "displayType": "checkbox",
-    "filename": "ranger-hbase-plugin-properties.xml",
-    "serviceName": "HBASE"
-  },
   /*********RANGER FOR STORM************/
   /*********RANGER FOR STORM************/
   {
   {
     "name": "XAAUDIT.HDFS.IS_ENABLED",
     "name": "XAAUDIT.HDFS.IS_ENABLED",
-    "displayType": "checkbox",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "filename": "ranger-storm-plugin-properties.xml",
     "filename": "ranger-storm-plugin-properties.xml",
     "serviceName": "STORM"
     "serviceName": "STORM"
   },
   },
-  {
-    "name": "XAAUDIT.DB.IS_ENABLED",
-    "displayType": "checkbox",
-    "filename": "ranger-storm-plugin-properties.xml",
-    "serviceName": "STORM"
-  },
   {
   {
     "name": "ranger-storm-plugin-enabled",
     "name": "ranger-storm-plugin-enabled",
-    "displayType": "checkbox",
     "filename": "ranger-storm-plugin-properties.xml",
     "filename": "ranger-storm-plugin-properties.xml",
     "serviceName": "STORM",
     "serviceName": "STORM",
     "index": 1
     "index": 1
@@ -172,20 +116,12 @@ hdp22properties.push(
   /*********RANGER FOR KNOX************/
   /*********RANGER FOR KNOX************/
   {
   {
     "name": "XAAUDIT.HDFS.IS_ENABLED",
     "name": "XAAUDIT.HDFS.IS_ENABLED",
-    "displayType": "checkbox",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "dependentConfigPattern": "^XAAUDIT.HDFS",
     "filename": "ranger-knox-plugin-properties.xml",
     "filename": "ranger-knox-plugin-properties.xml",
     "serviceName": "KNOX"
     "serviceName": "KNOX"
   },
   },
-  {
-    "name": "XAAUDIT.DB.IS_ENABLED",
-    "displayType": "checkbox",
-    "filename": "ranger-knox-plugin-properties.xml",
-    "serviceName": "KNOX"
-  },
   {
   {
     "name": "ranger-knox-plugin-enabled",
     "name": "ranger-knox-plugin-enabled",
-    "displayType": "checkbox",
     "filename": "ranger-knox-plugin-properties.xml",
     "filename": "ranger-knox-plugin-properties.xml",
     "serviceName": "KNOX",
     "serviceName": "KNOX",
     "index": 1
     "index": 1
@@ -314,7 +250,6 @@ hdp22properties.push(
   },
   },
   {
   {
     "name": "policymgr_http_enabled",
     "name": "policymgr_http_enabled",
-    "displayType": "checkbox",
     "serviceName": "RANGER",
     "serviceName": "RANGER",
     "filename": "admin-properties.xml",
     "filename": "admin-properties.xml",
     "category": "RangerSettings"
     "category": "RangerSettings"
@@ -358,7 +293,6 @@ hdp22properties.push(
   },
   },
   {
   {
     "name": "remoteLoginEnabled",
     "name": "remoteLoginEnabled",
-    "displayType": "checkbox",
     "serviceName": "RANGER",
     "serviceName": "RANGER",
     "filename": "admin-properties.xml",
     "filename": "admin-properties.xml",
     "category": "UnixAuthenticationSettings"
     "category": "UnixAuthenticationSettings"
@@ -371,7 +305,6 @@ hdp22properties.push(
   },
   },
   {
   {
     "name": "authServicePort",
     "name": "authServicePort",
-    "displayType": "int",
     "serviceName": "RANGER",
     "serviceName": "RANGER",
     "filename": "admin-properties.xml",
     "filename": "admin-properties.xml",
     "category": "UnixAuthenticationSettings"
     "category": "UnixAuthenticationSettings"

+ 2 - 7
ambari-web/app/data/HDP2.3/site_properties.js

@@ -72,21 +72,18 @@ hdp23properties.push({
   /**************************************** RANGER - HDFS Plugin ***************************************/
   /**************************************** RANGER - HDFS Plugin ***************************************/
 
 
     "name": "ranger-yarn-plugin-enabled",
     "name": "ranger-yarn-plugin-enabled",
-    "displayType": "checkbox",
     "filename": "ranger-yarn-plugin-properties.xml",
     "filename": "ranger-yarn-plugin-properties.xml",
     "serviceName": "YARN",
     "serviceName": "YARN",
     "index": 1
     "index": 1
   },
   },
   {
   {
     "name": "ranger-kafka-plugin-enabled",
     "name": "ranger-kafka-plugin-enabled",
-    "displayType": "checkbox",
     "filename": "ranger-kafka-plugin-properties.xml",
     "filename": "ranger-kafka-plugin-properties.xml",
     "serviceName": "KAFKA",
     "serviceName": "KAFKA",
     "index": 1
     "index": 1
   },
   },
   {
   {
     "name": "nimbus.seeds",
     "name": "nimbus.seeds",
-    "displayType": "componentHosts",
     "serviceName": "STORM",
     "serviceName": "STORM",
     "filename": "storm-site.xml",
     "filename": "storm-site.xml",
     "category": "NIMBUS"
     "category": "NIMBUS"
@@ -136,7 +133,6 @@ hdp23properties.push({
   },
   },
   {
   {
     "name": "ranger.unixauth.remote.login.enabled",
     "name": "ranger.unixauth.remote.login.enabled",
-    "displayType": "checkbox",
     "serviceName": "RANGER",
     "serviceName": "RANGER",
     "filename": "ranger-admin-site.xml",
     "filename": "ranger-admin-site.xml",
     "category": "UnixAuthenticationSettings"
     "category": "UnixAuthenticationSettings"
@@ -149,7 +145,6 @@ hdp23properties.push({
   },
   },
   {
   {
     "name": "ranger.unixauth.service.port",
     "name": "ranger.unixauth.service.port",
-    "displayType": "int",
     "serviceName": "RANGER",
     "serviceName": "RANGER",
     "filename": "ranger-admin-site.xml",
     "filename": "ranger-admin-site.xml",
     "category": "UnixAuthenticationSettings"
     "category": "UnixAuthenticationSettings"
@@ -247,7 +242,7 @@ hdp23properties.push({
   /*********************************************** HAWQ **********************************************/
   /*********************************************** HAWQ **********************************************/
   {
   {
     "name": "hawq_master_address_host",
     "name": "hawq_master_address_host",
-    "displayType": "masterHost",
+    "displayType": "componentHost",
     "filename": "hawq-site.xml",
     "filename": "hawq-site.xml",
     "category": "General",
     "category": "General",
     "serviceName": "HAWQ",
     "serviceName": "HAWQ",
@@ -255,7 +250,7 @@ hdp23properties.push({
   },
   },
   {
   {
     "name": "hawq_standby_address_host",
     "name": "hawq_standby_address_host",
-    "displayType": "masterHost",
+    "displayType": "componentHost",
     "filename": "hawq-site.xml",
     "filename": "hawq-site.xml",
     "category": "General",
     "category": "General",
     "serviceName": "HAWQ",
     "serviceName": "HAWQ",

+ 94 - 0
ambari-web/app/data/HDP2/gluster_fs_properties.js

@@ -0,0 +1,94 @@
+/**
+ * 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.
+ */
+
+module.exports = [
+/**********************************************GLUSTERFS***************************************/
+  {
+    "name": "fs.glusterfs.impl",
+    "filename": "core-site.xml",
+    "serviceName": "GLUSTERFS",
+    "category": "General"
+  },
+  {
+    "name": "fs.AbstractFileSystem.glusterfs.impl",
+    "filename": "core-site.xml",
+    "serviceName": "GLUSTERFS",
+    "category": "General"
+  },
+  {
+    "name": "hadoop_heapsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop",
+    "index": 1
+  },
+  {
+    "name": "hdfs_log_dir_prefix",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "hadoop_pid_dir_prefix",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "namenode_heapsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "namenode_opt_newsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "namenode_opt_maxnewsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "namenode_opt_permsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "namenode_opt_maxpermsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "dtnode_heapsize",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  },
+  {
+    "name": "glusterfs_user",
+    "serviceName": "GLUSTERFS",
+    "filename": "hadoop-env.xml",
+    "category": "General Hadoop"
+  }
+];

File diff suppressed because it is too large
+ 0 - 285
ambari-web/app/data/HDP2/site_properties.js


+ 2 - 2
ambari-web/app/mixins/common/configs/configs_comparator.js

@@ -270,8 +270,8 @@ App.ConfigsComparator = Em.Mixin.create({
    * @method hasCompareDiffs
    * @method hasCompareDiffs
    */
    */
   hasCompareDiffs: function (originalConfig, compareConfig) {
   hasCompareDiffs: function (originalConfig, compareConfig) {
-    var originalValue = App.config.trimProperty({ value: Em.get(originalConfig, 'value'), displayType: 'advanced' });
-    var compareValue = App.config.trimProperty({ value: Em.get(compareConfig, 'value'), displayType: 'advanced' });
+    var originalValue = App.config.trimProperty({ value: Em.get(originalConfig, 'value'), displayType: 'string' });
+    var compareValue = App.config.trimProperty({ value: Em.get(compareConfig, 'value'), displayType: 'string' });
 
 
     if (originalValue.toArray) {
     if (originalValue.toArray) {
       originalValue = originalValue.toArray();
       originalValue = originalValue.toArray();

+ 8 - 23
ambari-web/app/models/configs/objects/service_config_property.js

@@ -302,7 +302,6 @@ App.ServiceConfigProperty = Em.Object.extend({
     var supportsFinal = this.get('supportsFinal');
     var supportsFinal = this.get('supportsFinal');
     var isFinal = this.get('isFinal');
     var isFinal = this.get('isFinal');
     var valueRange = this.get('valueRange');
     var valueRange = this.get('valueRange');
-    var values = [];//value split by "," to check UNIX users, groups list
 
 
     var isError = false;
     var isError = false;
     var isWarn = false;
     var isWarn = false;
@@ -346,21 +345,6 @@ App.ServiceConfigProperty = Em.Object.extend({
             isError = true;
             isError = true;
           }
           }
           break;
           break;
-        case 'UNIXList':
-          if(value != '*'){
-            values = value.split(',');
-            for(var i = 0, l = values.length; i < l; i++){
-              if(!validator.isValidUNIXUser(values[i])){
-                if(this.get('type') == 'USERS'){
-                  this.set('errorMessage', 'Must be a valid list of user names');
-                } else {
-                  this.set('errorMessage', 'Must be a valid list of group names');
-                }
-                isError = true;
-              }
-            }
-          }
-          break;
         case 'checkbox':
         case 'checkbox':
           break;
           break;
         case 'directories':
         case 'directories':
@@ -413,9 +397,16 @@ App.ServiceConfigProperty = Em.Object.extend({
             }
             }
           }
           }
           break;
           break;
+        case 'password':
+          // retypedPassword is set by the retypePasswordView child view of App.ServiceConfigPasswordField
+          if (value !== this.get('retypedPassword')) {
+            this.set('errorMessage', 'Passwords do not match');
+            isError = true;
+          }
+          break;
         case 'multiLine':
         case 'multiLine':
         case 'content':
         case 'content':
-        case 'advanced':
+        default:
           if(this.get('name')=='javax.jdo.option.ConnectionURL' || this.get('name')=='oozie.service.JPAService.jdbc.url') {
           if(this.get('name')=='javax.jdo.option.ConnectionURL' || this.get('name')=='oozie.service.JPAService.jdbc.url') {
             if (validator.isConfigValueLink(value)) {
             if (validator.isConfigValueLink(value)) {
               isError = false;
               isError = false;
@@ -432,12 +423,6 @@ App.ServiceConfigProperty = Em.Object.extend({
             }
             }
           }
           }
           break;
           break;
-        case 'password':
-          // retypedPassword is set by the retypePasswordView child view of App.ServiceConfigPasswordField
-          if (value !== this.get('retypedPassword')) {
-            this.set('errorMessage', 'Passwords do not match');
-            isError = true;
-          }
       }
       }
     }
     }
 
 

+ 13 - 7
ambari-web/app/utils/config.js

@@ -319,7 +319,7 @@ App.config = Em.Object.create({
       supportsFinal: this.shouldSupportFinal(serviceName, fileName),
       supportsFinal: this.shouldSupportFinal(serviceName, fileName),
       serviceName: serviceName,
       serviceName: serviceName,
       displayName: this.getDefaultDisplayName(name, fileName),
       displayName: this.getDefaultDisplayName(name, fileName),
-      displayType: this.getDefaultDisplayType(name, fileName, coreObject ? coreObject.value : ''),
+      displayType: this.getDefaultDisplayType(name, fileName, coreObject ? coreObject.value : '', serviceName),
       description: null,
       description: null,
       category: this.getDefaultCategory(definedInStack, fileName),
       category: this.getDefaultCategory(definedInStack, fileName),
       isSecureConfig: this.getIsSecure(name),
       isSecureConfig: this.getIsSecure(name),
@@ -422,13 +422,20 @@ App.config = Em.Object.create({
    * @param name
    * @param name
    * @param type
    * @param type
    * @param value
    * @param value
+   * @param serviceName
    * @returns {string}
    * @returns {string}
    */
    */
-  getDefaultDisplayType: function(name, type, value) {
+  getDefaultDisplayType: function(name, type, value, serviceName) {
     if (this.isContentProperty(name, type)) {
     if (this.isContentProperty(name, type)) {
       return 'content';
       return 'content';
+    } else if (serviceName && serviceName == 'FALCON' && this.getConfigTagFromFileName(type) == 'oozie-site') {
+      /**
+       * This specific type for 'oozie-site' configs of FALCON service.
+       * After this type will be moved to stack definition this hard-code should be removed
+       */
+      return 'custom';
     }
     }
-    return value && !stringUtils.isSingleLine(value) ? 'multiLine' : 'advanced';
+    return value && !stringUtils.isSingleLine(value) ? 'multiLine' : 'string';
   },
   },
 
 
   /**
   /**
@@ -484,7 +491,7 @@ App.config = Em.Object.create({
         category = Em.get(serviceConfigProperty, 'category');
         category = Em.get(serviceConfigProperty, 'category');
     switch (displayType) {
     switch (displayType) {
       case 'content':
       case 'content':
-      case 'advanced':
+      case 'string':
       case 'multiLine':
       case 'multiLine':
         return this.trimProperty({ displayType: displayType, value: value });
         return this.trimProperty({ displayType: displayType, value: value });
         break;
         break;
@@ -703,7 +710,7 @@ App.config = Em.Object.create({
         propertyData.category = 'Users and Groups';
         propertyData.category = 'Users and Groups';
         propertyData.isVisible = !App.get('isHadoopWindowsStack');
         propertyData.isVisible = !App.get('isHadoopWindowsStack');
         propertyData.serviceName = 'MISC';
         propertyData.serviceName = 'MISC';
-        propertyData.displayType = checkboxProperties.contains(config.property_name) ? 'checkbox' : 'user';
+        propertyData.displayType = checkboxProperties.contains(config.property_name) ? 'boolean' : 'user';
         if (config.property_type.contains('ADDITIONAL_USER_PROPERTY')) {
         if (config.property_type.contains('ADDITIONAL_USER_PROPERTY')) {
           propertyData.index = 999;
           propertyData.index = 999;
         } else if (config.service_name) {
         } else if (config.service_name) {
@@ -969,11 +976,10 @@ App.config = Em.Object.create({
         break;
         break;
       case 'password':
       case 'password':
         break;
         break;
-      case 'advanced':
+      default:
         if (name == 'javax.jdo.option.ConnectionURL' || name == 'oozie.service.JPAService.jdbc.url') {
         if (name == 'javax.jdo.option.ConnectionURL' || name == 'oozie.service.JPAService.jdbc.url') {
           rez = value.trim();
           rez = value.trim();
         }
         }
-      default:
         rez = (typeof value == 'string') ? value.replace(/(\s+$)/g, '') : value;
         rez = (typeof value == 'string') ? value.replace(/(\s+$)/g, '') : value;
     }
     }
     return ((rez == '') || (rez == undefined)) ? value : rez;
     return ((rez == '') || (rez == undefined)) ? value : rez;

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

@@ -347,7 +347,7 @@ App.ServiceConfigsByCategoryView = Em.View.extend(App.UserPref, App.ConfigOverri
       name: propertyObj.name,
       name: propertyObj.name,
       displayName: propertyObj.displayName || propertyObj.name,
       displayName: propertyObj.displayName || propertyObj.name,
       value: propertyObj.value,
       value: propertyObj.value,
-      displayType: stringUtils.isSingleLine(propertyObj.value) ? 'advanced' : 'multiLine',
+      displayType: stringUtils.isSingleLine(propertyObj.value) ? 'string' : 'multiLine',
       isSecureConfig: isSecureConfig,
       isSecureConfig: isSecureConfig,
       category: propertyObj.categoryName,
       category: propertyObj.categoryName,
       serviceName: propertyObj.serviceName,
       serviceName: propertyObj.serviceName,

+ 7 - 6
ambari-web/test/controllers/main/admin/kerberos/step2_controller_test.js

@@ -37,12 +37,13 @@ describe('App.KerberosWizardStep2Controller', function() {
       controller.tweakManualKdcProperties.restore();
       controller.tweakManualKdcProperties.restore();
     });
     });
 
 
-    var _createProperty = function(name, value) {
+    var _createProperty = function(name, value, displayType) {
       var preDefProp = App.config.get('preDefinedSiteProperties').findProperty('name', name);
       var preDefProp = App.config.get('preDefinedSiteProperties').findProperty('name', name);
       if (preDefProp) {
       if (preDefProp) {
         return App.ServiceConfigProperty.create(
         return App.ServiceConfigProperty.create(
           $.extend(true, {}, preDefProp, {
           $.extend(true, {}, preDefProp, {
             value: value, filename: 'some-site.xml',
             value: value, filename: 'some-site.xml',
+            'displayType': displayType,
             isRequiredByAgent: preDefProp.isRequiredByAgent == undefined ? true : preDefProp.isRequiredByAgent
             isRequiredByAgent: preDefProp.isRequiredByAgent == undefined ? true : preDefProp.isRequiredByAgent
           }));
           }));
       } else {
       } else {
@@ -53,10 +54,10 @@ describe('App.KerberosWizardStep2Controller', function() {
     var tests = [
     var tests = [
       {
       {
         stepConfigs: [
         stepConfigs: [
-          ['realm', ' SPACES '],
-          ['admin_server_host', ' space_left'],
-          ['kdc_host', ' space_left_and_right '],
-          ['ldap_url', 'space_right ']
+          ['realm', ' SPACES ', 'host'],
+          ['admin_server_host', ' space_left', 'host'],
+          ['kdc_host', ' space_left_and_right ', 'host'],
+          ['ldap_url', 'space_right ', 'host']
         ],
         ],
         e: {
         e: {
           realm: 'SPACES',
           realm: 'SPACES',
@@ -72,7 +73,7 @@ describe('App.KerberosWizardStep2Controller', function() {
         sinon.stub(App.StackService, 'find').returns([Em.Object.create({serviceName: 'KERBEROS'})]);
         sinon.stub(App.StackService, 'find').returns([Em.Object.create({serviceName: 'KERBEROS'})]);
         controller.set('stepConfigs', [
         controller.set('stepConfigs', [
           App.ServiceConfig.create({
           App.ServiceConfig.create({
-            configs: test.stepConfigs.map(function(item) { return _createProperty(item[0], item[1]); })
+            configs: test.stepConfigs.map(function(item) { return _createProperty(item[0], item[1], item[2]); })
           })
           })
         ]);
         ]);
         var result = controller.createKerberosSiteObj('some-site', 'random-tag');
         var result = controller.createKerberosSiteObj('some-site', 'random-tag');

+ 4 - 4
ambari-web/test/controllers/main/service/info/config_test.js

@@ -538,8 +538,8 @@ describe("App.MainServiceInfoConfigsController", function () {
         Em.Object.create({ name: "p4", value: " d1 d2 d3 ", displayType: "directories" }),
         Em.Object.create({ name: "p4", value: " d1 d2 d3 ", displayType: "directories" }),
         Em.Object.create({ name: "p5", value: " v1 ", displayType: "password" }),
         Em.Object.create({ name: "p5", value: " v1 ", displayType: "password" }),
         Em.Object.create({ name: "p6", value: " v ", displayType: "host" }),
         Em.Object.create({ name: "p6", value: " v ", displayType: "host" }),
-        Em.Object.create({ name: "javax.jdo.option.ConnectionURL", value: " v1 ", displayType: "advanced" }),
-        Em.Object.create({ name: "oozie.service.JPAService.jdbc.url", value: " v1 ", displayType: "advanced" })
+        Em.Object.create({ name: "javax.jdo.option.ConnectionURL", value: " v1 ", displayType: "string" }),
+        Em.Object.create({ name: "oozie.service.JPAService.jdbc.url", value: " v1 ", displayType: "string" })
       ],
       ],
       result: [
       result: [
         Em.Object.create({ name: "p1", value: " v1 v1", displayType: "" }),
         Em.Object.create({ name: "p1", value: " v1 v1", displayType: "" }),
@@ -548,8 +548,8 @@ describe("App.MainServiceInfoConfigsController", function () {
         Em.Object.create({ name: "p4", value: "d1,d2,d3", displayType: "directories" }),
         Em.Object.create({ name: "p4", value: "d1,d2,d3", displayType: "directories" }),
         Em.Object.create({ name: "p5", value: " v1 ", displayType: "password" }),
         Em.Object.create({ name: "p5", value: " v1 ", displayType: "password" }),
         Em.Object.create({ name: "p6", value: "v", displayType: "host" }),
         Em.Object.create({ name: "p6", value: "v", displayType: "host" }),
-        Em.Object.create({ name: "javax.jdo.option.ConnectionURL", value: " v1", displayType: "advanced" }),
-        Em.Object.create({ name: "oozie.service.JPAService.jdbc.url", value: " v1", displayType: "advanced" })
+        Em.Object.create({ name: "javax.jdo.option.ConnectionURL", value: " v1", displayType: "string" }),
+        Em.Object.create({ name: "oozie.service.JPAService.jdbc.url", value: " v1", displayType: "string" })
       ]
       ]
     };
     };
 
 

+ 9 - 0
ambari-web/test/data/HDP2.2/site_properties_test.js

@@ -18,6 +18,7 @@
 
 
 var App = require('app');
 var App = require('app');
 require('utils/helper');
 require('utils/helper');
+require('data/HDP2/gluster_fs_properties');
 var siteProperties = require('data/HDP2.2/site_properties').configProperties;
 var siteProperties = require('data/HDP2.2/site_properties').configProperties;
 
 
 describe('hdp2SiteProperties', function () {
 describe('hdp2SiteProperties', function () {
@@ -54,6 +55,14 @@ describe('hdp2SiteProperties', function () {
       expect(siteProperty.unit).to.equal(undefined);
       expect(siteProperty.unit).to.equal(undefined);
     });
     });
 
 
+    /**
+     * displayTypes <code>supportTextConnection<code> and <code>radio button<code>
+     * can be used as exception. Other displayTypes values should be used in stack definition
+     */
+    it('Check attributes of "' + siteProperty.filename + '/' + siteProperty.name  + '"' + '. Display type value ' + siteProperty.displayType + ' should be described in stack ', function () {
+      expect(siteProperty.displayType).to.match(/undefined|supportTextConnection|radio button/);
+    });
+
     /**
     /**
      * Following config attributes uniquely represent a config property
      * Following config attributes uniquely represent a config property
      * name
      * name

+ 12 - 1
ambari-web/test/data/HDP2.3/site_properties_test.js

@@ -18,6 +18,7 @@
 
 
 var App = require('app');
 var App = require('app');
 require('utils/helper');
 require('utils/helper');
+require('data/HDP2/gluster_fs_properties');
 var siteProperties = require('data/HDP2.3/site_properties').configProperties;
 var siteProperties = require('data/HDP2.3/site_properties').configProperties;
 
 
 describe('hdp2SiteProperties', function () {
 describe('hdp2SiteProperties', function () {
@@ -25,7 +26,8 @@ describe('hdp2SiteProperties', function () {
    * @stackProperties: All the properties that are derived from stack definition
    * @stackProperties: All the properties that are derived from stack definition
    */
    */
   var stackProperties = siteProperties.filter(function(item){
   var stackProperties = siteProperties.filter(function(item){
-    return  (!(item.isRequiredByAgent === false || item.filename === 'alert_notification' || item.category === 'Ambari Principals' || item.name === 'oozie_hostname'))
+    return  (!(item.isRequiredByAgent === false || item.filename === 'alert_notification' || item.category === 'Ambari Principals'
+    || item.name === 'oozie_hostname' || item.serviceName === 'HAWQ'))
   });
   });
 
 
   stackProperties.forEach(function(siteProperty){
   stackProperties.forEach(function(siteProperty){
@@ -54,6 +56,15 @@ describe('hdp2SiteProperties', function () {
       expect(siteProperty.unit).to.equal(undefined);
       expect(siteProperty.unit).to.equal(undefined);
     });
     });
 
 
+
+    /**
+     * displayTypes <code>supportTextConnection<code> and <code>radio button<code>
+     * can be used as exception. Other displayTypes values should be used in stack definition
+     */
+    it('Check attributes of "' + siteProperty.filename + '/' + siteProperty.name  + '"' + '. Display type value ' + siteProperty.displayType + ' should be described in stack ', function () {
+      expect(siteProperty.displayType).to.match(/undefined|supportTextConnection|radio button/);
+    });
+
     /**
     /**
      * Following config attributes uniquely represent a config property
      * Following config attributes uniquely represent a config property
      * name
      * name

+ 9 - 0
ambari-web/test/data/HDP2/site_properties_test.js

@@ -18,6 +18,7 @@
 
 
 var App = require('app');
 var App = require('app');
 require('utils/helper');
 require('utils/helper');
+require('data/HDP2/gluster_fs_properties');
 var siteProperties = require('data/HDP2/site_properties').configProperties;
 var siteProperties = require('data/HDP2/site_properties').configProperties;
 
 
 describe('hdp2SiteProperties', function () {
 describe('hdp2SiteProperties', function () {
@@ -54,6 +55,14 @@ describe('hdp2SiteProperties', function () {
       expect(siteProperty.unit).to.equal(undefined);
       expect(siteProperty.unit).to.equal(undefined);
     });
     });
 
 
+    /**
+     * displayTypes <code>supportTextConnection<code> and <code>radio button<code>
+     * can be used as exception. Other displayTypes values should be used in stack definition
+     */
+    it('Check attributes of "' + siteProperty.filename + '/' + siteProperty.name  + '"' + '. Display type value ' + siteProperty.displayType + ' should be described in stack ', function () {
+      expect(siteProperty.displayType).to.match(/undefined|supportTextConnection|radio button/);
+    });
+
     /**
     /**
      * Following config attributes uniquely represent a config property
      * Following config attributes uniquely represent a config property
      * name
      * name

+ 1 - 1
ambari-web/test/mock_data_setup/configs_mock_data.js

@@ -248,7 +248,7 @@ module.exports = {
         "isOverridable":true,
         "isOverridable":true,
         "showLabel":true,
         "showLabel":true,
         "serviceName":"STORM",
         "serviceName":"STORM",
-        "displayType":"advanced",
+        "displayType":"string",
         "displayName":"single_line_property",
         "displayName":"single_line_property",
         "category":"AdvancedStormSite"
         "category":"AdvancedStormSite"
       },
       },

+ 11 - 6
ambari-web/test/utils/config_test.js

@@ -223,21 +223,21 @@ describe('App.config', function () {
       },
       },
       {
       {
         config: {
         config: {
-          displayType: 'advanced',
+          displayType: 'string',
           value: ' value'
           value: ' value'
         },
         },
         e: ' value'
         e: ' value'
       },
       },
       {
       {
         config: {
         config: {
-          displayType: 'advanced',
+          displayType: 'string',
           value: ' value'
           value: ' value'
         },
         },
         e: ' value'
         e: ' value'
       },
       },
       {
       {
         config: {
         config: {
-          displayType: 'advanced',
+          displayType: 'string',
           value: 'http://localhost ',
           value: 'http://localhost ',
           name: 'javax.jdo.option.ConnectionURL'
           name: 'javax.jdo.option.ConnectionURL'
         },
         },
@@ -245,7 +245,7 @@ describe('App.config', function () {
       },
       },
       {
       {
         config: {
         config: {
-          displayType: 'advanced',
+          displayType: 'string',
           value: 'http://localhost    ',
           value: 'http://localhost    ',
           name: 'oozie.service.JPAService.jdbc.url'
           name: 'oozie.service.JPAService.jdbc.url'
         },
         },
@@ -476,7 +476,7 @@ describe('App.config', function () {
           property_name: 'ignore_groupsusers_create'
           property_name: 'ignore_groupsusers_create'
         },
         },
         output: {
         output: {
-          displayType: 'checkbox'
+          displayType: 'boolean'
         },
         },
         title: 'ignore_groupsusers_create'
         title: 'ignore_groupsusers_create'
       },
       },
@@ -773,7 +773,7 @@ describe('App.config', function () {
     });
     });
     it('returns singleLine displayType', function() {
     it('returns singleLine displayType', function() {
       sinon.stub(App.config, 'isContentProperty', function () {return false});
       sinon.stub(App.config, 'isContentProperty', function () {return false});
-      expect(App.config.getDefaultDisplayType('n1','f1','v1')).to.equal('advanced');
+      expect(App.config.getDefaultDisplayType('n1','f1','v1')).to.equal('string');
       App.config.isContentProperty.restore();
       App.config.isContentProperty.restore();
     });
     });
     it('returns multiLine displayType', function() {
     it('returns multiLine displayType', function() {
@@ -781,6 +781,11 @@ describe('App.config', function () {
       expect(App.config.getDefaultDisplayType('n2', 'f2', 'v1\nv2')).to.equal('multiLine');
       expect(App.config.getDefaultDisplayType('n2', 'f2', 'v1\nv2')).to.equal('multiLine');
       App.config.isContentProperty.restore();
       App.config.isContentProperty.restore();
     });
     });
+    it('returns custom displayType for FALCON oozie-site properties', function() {
+      sinon.stub(App.config, 'isContentProperty', function () {return false});
+      expect(App.config.getDefaultDisplayType('n2', 'oozie-site.xml', 'v1\nv2', 'FALCON')).to.equal('custom');
+      App.config.isContentProperty.restore();
+    });
   });
   });
 
 
   describe('#getDefaultDisplayName', function() {
   describe('#getDefaultDisplayName', function() {

+ 1 - 1
ambari-web/test/views/common/configs/service_configs_by_category_view_test.js

@@ -260,7 +260,7 @@ describe('App.ServiceConfigsByCategoryView', function () {
           name: 'n0',
           name: 'n0',
           displayName: 'd0',
           displayName: 'd0',
           value: 'v0',
           value: 'v0',
-          displayType: 'advanced',
+          displayType: 'string',
           isSecureConfig: true,
           isSecureConfig: true,
           category: 'c0',
           category: 'c0',
           serviceName: 's0',
           serviceName: 's0',

Some files were not shown because too many files changed in this diff