Pārlūkot izejas kodu

AMBARI-6329. Load 'final' attribute of service config-type files into StackServiceResponse

Srimanth Gunturi 11 gadi atpakaļ
vecāks
revīzija
b08909a1f3
100 mainītis faili ar 281 papildinājumiem un 123 dzēšanām
  1. 113 21
      ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
  2. 15 2
      ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java
  3. 4 4
      ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java
  4. 6 0
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackConfigurationResourceProvider.java
  5. 12 1
      ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java
  6. 10 4
      ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
  7. 12 0
      ambari-server/src/main/java/org/apache/ambari/server/state/stack/ConfigurationXml.java
  8. 1 0
      ambari-server/src/main/resources/properties.json
  9. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/GLUSTERFS/configuration/core-site.xml
  10. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/GLUSTERFS/configuration/hadoop-policy.xml
  11. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/GLUSTERFS/configuration/hdfs-site.xml
  12. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/core-site.xml
  13. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/global.xml
  14. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/hadoop-policy.xml
  15. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/hdfs-site.xml
  16. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/GANGLIA/configuration/global.xml
  17. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/global.xml
  18. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-log4j.xml
  19. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-policy.xml
  20. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/configuration/hbase-site.xml
  21. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/core-site.xml
  22. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/global.xml
  23. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hadoop-policy.xml
  24. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-log4j.xml
  25. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-site.xml
  26. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/global.xml
  27. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-exec-log4j.xml
  28. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-log4j.xml
  29. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-site.xml
  30. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HUE/configuration/global.xml
  31. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HUE/configuration/hue-site.xml
  32. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/capacity-scheduler.xml
  33. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/core-site.xml
  34. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/global.xml
  35. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-queue-acls.xml
  36. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml
  37. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapreduce-log4j.xml
  38. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/configuration/global.xml
  39. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/global.xml
  40. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/oozie-log4j.xml
  41. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/configuration/oozie-site.xml
  42. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/configuration/pig-log4j.xml
  43. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/WEBHCAT/configuration/webhcat-site.xml
  44. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/configuration/global.xml
  45. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
  46. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/GLUSTERFS/configuration/core-site.xml
  47. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/GLUSTERFS/configuration/global.xml
  48. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/core-site.xml
  49. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/global.xml
  50. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/hadoop-policy.xml
  51. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/hdfs-site.xml
  52. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/flume-conf.xml
  53. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/flume-log4j.xml
  54. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/FLUME/configuration/global.xml
  55. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/configuration/global.xml
  56. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/global.xml
  57. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-log4j.xml
  58. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-policy.xml
  59. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/configuration/hbase-site.xml
  60. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/core-site.xml
  61. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/global.xml
  62. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hadoop-policy.xml
  63. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-log4j.xml
  64. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-site.xml
  65. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/global.xml
  66. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-exec-log4j.xml
  67. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-log4j.xml
  68. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-site.xml
  69. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/configuration/global.xml
  70. 17 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/hdp_mon_nagios_addons.conf
  71. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/global.xml
  72. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-log4j.xml
  73. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-site.xml
  74. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/configuration/pig-log4j.xml
  75. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/configuration/pig-properties.xml
  76. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/WEBHCAT/configuration/webhcat-site.xml
  77. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/core-site.xml
  78. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/global.xml
  79. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-queue-acls.xml
  80. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-site.xml
  81. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/capacity-scheduler.xml
  82. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/core-site.xml
  83. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/global.xml
  84. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/yarn-log4j.xml
  85. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/yarn-site.xml
  86. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/configuration/global.xml
  87. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/configuration/zookeeper-log4j.xml
  88. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/configuration/falcon-runtime.properties.xml
  89. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/configuration/falcon-startup.properties.xml
  90. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/configuration/global.xml
  91. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/configuration/oozie-site.xml
  92. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/GLUSTERFS/configuration/core-site.xml
  93. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/GLUSTERFS/configuration/global.xml
  94. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/HIVE/configuration/hive-site.xml
  95. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/OOZIE/configuration/oozie-site.xml
  96. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/PIG/configuration/pig-properties.xml
  97. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/configuration/global.xml
  98. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/configuration/storm-site.xml
  99. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/configuration/global.xml
  100. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/TEZ/configuration/tez-site.xml

+ 113 - 21
ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java

@@ -30,6 +30,7 @@ import java.util.Map;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -131,8 +132,11 @@ public class StackExtensionHelper {
     mergedServiceInfo.setComment(childService.getComment());
     mergedServiceInfo.setVersion(childService.getVersion());
     mergedServiceInfo.setConfigDependencies(
-      childService.getConfigDependencies() != null ?
-        childService.getConfigDependencies() : new ArrayList<String>());
+        childService.getConfigDependencies() != null ?
+            childService.getConfigDependencies() : parentService.getConfigDependencies());
+    mergedServiceInfo.setConfigTypes(
+        childService.getConfigTypes() != null ?
+            childService.getConfigTypes() : parentService.getConfigTypes());
     
     mergedServiceInfo.setRestartRequiredAfterChange(
             (childService.isRestartRequiredAfterChange() != null) 
@@ -396,7 +400,6 @@ public class StackExtensionHelper {
           // get metrics file, if it exists
           File metricsJson = new File(serviceFolder.getAbsolutePath()
             + File.separator + AmbariMetaInfo.SERVICE_METRIC_FILE_NAME);
-          String version = getSchemaVersion(metainfoFile);
 
           //Reading v2 service metainfo (may contain multiple services)
           // Get services from metadata
@@ -405,6 +408,7 @@ public class StackExtensionHelper {
           List<ServiceInfo> serviceInfos = smiv2x.getServices();
           for (ServiceInfo serviceInfo : serviceInfos) {
             serviceInfo.setSchemaVersion(AmbariMetaInfo.SCHEMA_VERSION_2);
+            populateConfigTypesFromDependencies(serviceInfo);
 
             // Find service package folder
             String servicePackageDir = resolveServicePackageFolder(
@@ -421,7 +425,7 @@ public class StackExtensionHelper {
 
             // Add now to be removed while iterating extension graph
             services.add(serviceInfo);
-            }
+          }
         }
       } catch (Exception e) {
         LOG.error("Error while parsing metainfo.xml for a service", e);
@@ -587,26 +591,73 @@ public class StackExtensionHelper {
     return stackInfo;
   }
 
+  private List<PropertyInfo> getProperties(ConfigurationXml configuration, String fileName) {
+    List<PropertyInfo> list = new ArrayList<PropertyInfo>();
+    for (PropertyInfo pi : configuration.getProperties()) {
+      pi.setFilename(fileName);
+      list.add(pi);
+    }
+    return list;
+  }
 
-  private List<PropertyInfo> getProperties(File propertyFile) {
-    
-    try {
-      ConfigurationXml cx = unmarshal(ConfigurationXml.class, propertyFile);
-
-      List<PropertyInfo> list = new ArrayList<PropertyInfo>();
-      
-      for (PropertyInfo pi : cx.getProperties()) {
-        pi.setFilename(propertyFile.getName());
-        list.add(pi);
+  /**
+   * Add properties and config type's properties from configuration file
+   */
+  void populateServiceProperties(File configFile, ServiceInfo serviceInfo) throws JAXBException {
+    ConfigurationXml configuration = unmarshal(ConfigurationXml.class, configFile);
+    String fileName = configFile.getName();
+    serviceInfo.getProperties().addAll(getProperties(configuration, fileName));
+    int extIndex = fileName.indexOf(AmbariMetaInfo.SERVICE_CONFIG_FILE_NAME_POSTFIX);
+    String configType = fileName.substring(0, extIndex);
+    for (Map.Entry<QName, String> attribute : configuration.getAttributes().entrySet()) {
+      for (Supports supportsProperty : Supports.values()) {
+        String attributeName = attribute.getKey().getLocalPart();
+        String attributeValue = attribute.getValue();
+        if (attributeName.equals(supportsProperty.getXmlAttributeName())) {
+          addConfigTypeProperty(serviceInfo, configType, Supports.KEYWORD,
+              supportsProperty.getPropertyName(), Boolean.valueOf(attributeValue).toString());
+        }
+      }
+    }
+  }
 
+  /**
+   * Populate ServiceInfo#configTypes with default entries based on ServiceInfo#configDependencies property
+   */
+  void populateConfigTypesFromDependencies(ServiceInfo serviceInfo) {
+    List<String> configDependencies = serviceInfo.getConfigDependencies();
+    if (configDependencies != null) {
+      Map<String, Map<String, Map<String, String>>> configTypes = new HashMap<String, Map<String, Map<String, String>>>();
+      for (String configDependency : configDependencies) {
+        if (!configTypes.containsKey(configDependency)) {
+          Map<String, Map<String, String>> properties = new HashMap<String, Map<String, String>>();
+          Map<String, String> supportsProperties = new HashMap<String, String>();
+          for (Supports supportsProperty : Supports.values()) {
+            supportsProperties.put(supportsProperty.getPropertyName(), supportsProperty.getDefaultValue());
+          }
+          properties.put(Supports.KEYWORD, supportsProperties);
+          configTypes.put(configDependency, properties);
+        }
       }
-      return list;
-    } catch (Exception e) {
-      LOG.error("Could not load configuration for " + propertyFile, e);
-      return null;
+      serviceInfo.setConfigTypes(configTypes);
     }
   }
 
+  /**
+   * Put new property entry to ServiceInfo#configTypes collection for specified configType
+   */
+  void addConfigTypeProperty(ServiceInfo serviceInfo, String configType,
+                             String propertiesGroupName, String key, String value) {
+    Map<String, Map<String, Map<String, String>>> configTypes = serviceInfo.getConfigTypes();
+    if (configTypes.containsKey(configType)) {
+      Map<String, Map<String, String>> configDependencyProperties = configTypes.get(configType);
+      if (!configDependencyProperties.containsKey(propertiesGroupName)) {
+        configDependencyProperties.put(propertiesGroupName, new HashMap<String, String>());
+      }
+      Map<String, String> propertiesGroup = configDependencyProperties.get(propertiesGroupName);
+      propertiesGroup.put(key, value);
+    }
+  }
 
   /**
    * Get all properties from all "configs/*-site.xml" files
@@ -621,9 +672,13 @@ public class StackExtensionHelper {
     
     File[] configFiles = serviceConfigFolder.listFiles(AmbariMetaInfo.FILENAME_FILTER);
     if (configFiles != null) {
-      for (File config : configFiles) {
-        if (config.getName().endsWith(AmbariMetaInfo.SERVICE_CONFIG_FILE_NAME_POSTFIX)) {
-          serviceInfo.getProperties().addAll(getProperties(config));
+      for (File configFile : configFiles) {
+        if (configFile.getName().endsWith(AmbariMetaInfo.SERVICE_CONFIG_FILE_NAME_POSTFIX)) {
+          try {
+            populateServiceProperties(configFile, serviceInfo);
+          } catch (Exception e) {
+            LOG.error("Could not load configuration for " + configFile, e);
+          }
         }
       }
     }
@@ -635,4 +690,41 @@ public class StackExtensionHelper {
     return clz.cast(u.unmarshal(file));
   }  
   
+  /**
+   * Service configuration-types can support different abilities. This
+   * enumerates the various abilities that configuration-types can support.
+   * 
+   * For example, Hadoop configuration types like 'core-site' and 'hdfs-site'
+   * can support the ability to define certain configs as 'final'.
+   */
+  protected enum Supports {
+
+    FINAL("supports_final");
+
+    public static final String KEYWORD = "supports";
+
+    private String defaultValue;
+    private String xmlAttributeName;
+
+    private Supports(String xmlAttributeName) {
+      this(xmlAttributeName, Boolean.FALSE.toString());
+    }
+
+    private Supports(String xmlAttributeName, String defaultValue) {
+      this.defaultValue = defaultValue;
+      this.xmlAttributeName = xmlAttributeName;
+    }
+
+    public String getDefaultValue() {
+      return defaultValue;
+    }
+
+    public String getXmlAttributeName() {
+      return xmlAttributeName;
+    }
+
+    public String getPropertyName() {
+      return name().toLowerCase();
+    }
+  }
 }

+ 15 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java

@@ -27,12 +27,14 @@ public class StackConfigurationResponse {
    * @param propertyValue Property Value
    * @param propertyDescription Property Description
    * @param type Configuration type
+   * @param isFinal Is property final
    */
-  public StackConfigurationResponse(String propertyName, String propertyValue, String propertyDescription, String type) {
+  public StackConfigurationResponse(String propertyName, String propertyValue, String propertyDescription, String type, Boolean isFinal) {
     setPropertyName(propertyName);
     setPropertyValue(propertyValue);
     setPropertyDescription(propertyDescription);
     setType(type);
+    setFinal(isFinal);
   }
 
   /**
@@ -43,16 +45,18 @@ public class StackConfigurationResponse {
    * @param type Configuration type
    * @param isRequired Is required to be set
    * @param propertyType Property Type
+   * @param isFinal Is property final
    */
   public StackConfigurationResponse(String propertyName, String propertyValue,
                                     String propertyDescription, String type,
-                                    Boolean isRequired, String propertyType) {
+                                    Boolean isRequired, String propertyType, Boolean isFinal) {
     setPropertyName(propertyName);
     setPropertyValue(propertyValue);
     setPropertyDescription(propertyDescription);
     setType(type);
     setRequired(isRequired);
     setPropertyType(propertyType);
+    setFinal(isFinal);
   }
 
   private String stackName;
@@ -62,6 +66,7 @@ public class StackConfigurationResponse {
   private String propertyValue;
   private String propertyDescription;
   private String type;
+  private Boolean isFinal;
   private Boolean isRequired;
   private String propertyType;
 
@@ -125,6 +130,14 @@ public class StackConfigurationResponse {
     this.type = type;
   }
 
+  public Boolean isFinal() {
+    return isFinal;
+  }
+
+  public void setFinal(Boolean isFinal) {
+    this.isFinal = isFinal;
+  }
+
   /**
    * Is property a isRequired property
    * @return True/False

+ 4 - 4
ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java

@@ -18,7 +18,7 @@
 
 package org.apache.ambari.server.controller;
 
-import java.util.List;
+import java.util.Map;
 
 public class StackServiceResponse {
 
@@ -32,10 +32,10 @@ public class StackServiceResponse {
   
   private String serviceVersion;
   
-  private List<String> configTypes;
+  private Map<String, Map<String, Map<String, String>>> configTypes;
 
   public StackServiceResponse(String serviceName, String userName, String comments, String serviceVersion,
-      List<String> types) {
+      Map<String, Map<String, Map<String, String>>> types) {
     setServiceName(serviceName);
     setUserName(userName);
     setComments(comments);
@@ -91,7 +91,7 @@ public class StackServiceResponse {
     this.serviceVersion = serviceVersion;
   }
   
-  public List<String> getConfigTypes() {
+  public Map<String, Map<String, Map<String, String>>> getConfigTypes() {
     return configTypes;
   }
 

+ 6 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackConfigurationResourceProvider.java

@@ -63,6 +63,9 @@ public class StackConfigurationResourceProvider extends
   public static final String PROPERTY_TYPE_PROPERTY_ID = PropertyHelper
       .getPropertyId("StackConfigurations", "type");
 
+  public static final String PROPERTY_FINAL_PROPERTY_ID = PropertyHelper
+      .getPropertyId("StackConfigurations", "final");
+
 
   private static Set<String> pkPropertyIds = new HashSet<String>(
       Arrays.asList(new String[] { STACK_NAME_PROPERTY_ID,
@@ -125,6 +128,9 @@ public class StackConfigurationResourceProvider extends
       setResourceProperty(resource, PROPERTY_TYPE_PROPERTY_ID,
           response.getType(), requestedIds);
 
+      setResourceProperty(resource, PROPERTY_FINAL_PROPERTY_ID,
+          response.isFinal(), requestedIds);
+
       resources.add(resource);
     }
 

+ 12 - 1
ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java

@@ -22,6 +22,7 @@ package org.apache.ambari.server.state;
 import org.apache.ambari.server.controller.StackConfigurationResponse;
 
 import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
 
 public class PropertyInfo {
   private String name;
@@ -31,6 +32,7 @@ public class PropertyInfo {
   private boolean deleted;
   private boolean requireInput;
   private PropertyType type = PropertyType.DEFAULT;
+  private boolean isFinal;
 
   public String getName() {
     return name;
@@ -66,7 +68,7 @@ public class PropertyInfo {
   
   public StackConfigurationResponse convertToResponse() {
     return new StackConfigurationResponse(getName(), getValue(),
-      getDescription() , getFilename(), isRequireInput(), getType().name());
+      getDescription() , getFilename(), isRequireInput(), getType().name(), isFinal());
   }
 
   public boolean isDeleted() {
@@ -77,6 +79,15 @@ public class PropertyInfo {
     this.deleted = deleted;
   }
 
+  @XmlElement(name="final")
+  public boolean isFinal() {
+    return isFinal;
+  }
+
+  public void setFinal(boolean isFinal) {
+    this.isFinal = isFinal;
+  }
+
   @XmlAttribute(name = "require-input")
   public boolean isRequireInput() {
     return requireInput;

+ 10 - 4
ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java

@@ -32,6 +32,7 @@ import javax.xml.bind.annotation.*;
 @XmlAccessorType(XmlAccessType.FIELD)
 @JsonFilter("propertiesfilter")
 public class ServiceInfo {
+
   /**
    * Format version. Added at schema ver 2
    */
@@ -58,6 +59,9 @@ public class ServiceInfo {
   @XmlElement(name="config-type")
   private List<String> configDependencies;
 
+  @XmlTransient
+  private Map<String, Map<String, Map<String, String>>> configTypes;
+
   @JsonIgnore
   private Boolean monitoringService;
   
@@ -212,12 +216,14 @@ public class ServiceInfo {
         getConfigTypes());
   }
   
-  public List<String> getConfigTypes() {
-    return configDependencies != null ? configDependencies :
-      Collections.unmodifiableList(new ArrayList<String>());
+  public Map<String, Map<String, Map<String, String>>> getConfigTypes() {
+    return configTypes;
+  }
+
+  public void setConfigTypes(Map<String, Map<String, Map<String, String>>> configTypes) {
+    this.configTypes = configTypes;
   }
 
-  
   /**
    * @param type the config type
    * @return <code>true</code> if the service defines the supplied type

+ 12 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/stack/ConfigurationXml.java

@@ -18,10 +18,15 @@
 package org.apache.ambari.server.state.stack;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.namespace.QName;
 
 import org.apache.ambari.server.state.PropertyInfo;
 
@@ -31,6 +36,9 @@ import org.apache.ambari.server.state.PropertyInfo;
 @XmlRootElement(name="configuration")
 public class ConfigurationXml {
   
+  @XmlAnyAttribute
+  private Map<QName, String> attributes = new HashMap<QName, String>();
+
   @XmlElement(name="property")
   private List<PropertyInfo> properties = new ArrayList<PropertyInfo>();
   
@@ -41,4 +49,8 @@ public class ConfigurationXml {
     return properties;
   }
 
+  public Map<QName, String> getAttributes() {
+    return attributes;
+  }
+
 }

+ 1 - 0
ambari-server/src/main/resources/properties.json

@@ -222,6 +222,7 @@
         "StackConfigurations/property_value",
         "StackConfigurations/property_description",
         "StackConfigurations/type",
+        "StackConfigurations/final",
         "_"
     ],
     "StackServiceComponent":[

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/GLUSTERFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/GLUSTERFS/configuration/hadoop-policy.xml

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/GLUSTERFS/configuration/hdfs-site.xml

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
 
 <!-- file system properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>namenode_host</name>
     <value></value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/services/HDFS/configuration/hadoop-policy.xml

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
 
 <!-- file system properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/GANGLIA/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>ganglia_conf_dir</name>
     <value>/etc/ganglia/hdp</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hbase_log_dir</name>
     <value>/var/log/hbase</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

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

@@ -19,7 +19,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>hbase.rootdir</name>
     <value>hdfs://localhost:8020/apps/hbase/data</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hdfs_log_dir_prefix</name>
     <value>/var/log/hadoop</value>

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
 
   <!-- file system properties -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hive_database_type</name>
     <value>mysql</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -17,7 +17,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>hive.heapsize</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HUE/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hue_pid_dir</name>
     <value>/var/run/hue</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HUE/configuration/hue-site.xml

@@ -17,7 +17,7 @@
    limitations under the License.# limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
   <!-- General Hue server configuration properties -->
   <property>
       <name>send_debug_messages</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/capacity-scheduler.xml

@@ -22,7 +22,7 @@
 <!-- The properties for a queue follow a naming convention,such as, -->
 <!-- mapred.capacity-scheduler.queue.<queue-name>.property-name. -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>mapred.capacity-scheduler.maximum-system-jobs</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/core-site.xml

@@ -16,5 +16,5 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<configuration>
+<configuration supports_final="true">
 </configuration>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>mapred_local_dir</name>
     <value>/hadoop/mapred</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-queue-acls.xml

@@ -19,7 +19,7 @@
 -->
 
 <!-- mapred-queue-acls.xml -->
-<configuration>
+<configuration supports_final="true">
 
 
 <!-- queue default -->

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
   <!-- i/o properties -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>nagios_user</name>
     <value>nagios</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>oozie_user</name>
     <value>oozie</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -17,7 +17,7 @@
   limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <!--
       Refer to the oozie-default.xml file for the complete list of

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/WEBHCAT/configuration/webhcat-site.xml

@@ -21,7 +21,7 @@ limitations under the License.
 <!-- Edit templeton-site.xml to change settings for your local -->
 <!-- install. -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>templeton.port</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>zk_user</name>
     <value>zookeeper</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/GLUSTERFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/GLUSTERFS/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hadoop_pid_dir_prefix</name>
     <value>/var/run/hadoop</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>namenode_host</name>
     <value></value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HDFS/configuration/hadoop-policy.xml

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
 
 <!-- file system properties -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>content</name>
     <description>Describe all the Flume agent configurations</description>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>content</name>
     <value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>flume_conf_dir</name>
     <value>/etc/flume/conf</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>ganglia_conf_dir</name>
     <value>/etc/ganglia/hdp</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hbase_log_dir</name>
     <value>/var/log/hbase</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

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

@@ -19,7 +19,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>hbase.rootdir</name>
     <value>hdfs://localhost:8020/apps/hbase/data</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hdfs_log_dir_prefix</name>
     <value>/var/log/hadoop</value>

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>security.client.protocol.acl</name>
     <value>*</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration>
+<configuration supports_final="true">
 
   <!-- file system properties -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hive_database_type</name>
     <value>mysql</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -17,7 +17,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>hive.heapsize</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>nagios_user</name>
     <value>nagios</value>

+ 17 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/hdp_mon_nagios_addons.conf

@@ -1,3 +1,20 @@
+# 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.
+#
 Alias /ambarinagios /usr/share/hdp
 <Directory /usr/share/hdp>
   Options None

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>oozie_user</name>
     <value>oozie</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -17,7 +17,7 @@
   limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <!--
       Refer to the oozie-default.xml file for the complete list of

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>pig-content</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/WEBHCAT/configuration/webhcat-site.xml

@@ -21,7 +21,7 @@ limitations under the License.
 <!-- Edit templeton-site.xml to change settings for your local -->
 <!-- install. -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>templeton.port</name>

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

@@ -16,5 +16,5 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<configuration>
+<configuration supports_final="true">
 </configuration>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>mapred_log_dir_prefix</name>
     <value>/var/log/hadoop-mapreduce</value>

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

@@ -19,7 +19,7 @@
 -->
 
 <!-- mapred-queue-acls.xml -->
-<configuration>
+<configuration supports_final="true">
 
 
 <!-- queue default -->

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

@@ -20,7 +20,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

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

@@ -15,7 +15,7 @@
    limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>yarn.scheduler.capacity.maximum-applications</name>

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

@@ -16,5 +16,5 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<configuration>
+<configuration supports_final="true">
 </configuration>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>yarn_log_dir_prefix</name>
     <value>/var/log/hadoop-yarn</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -19,7 +19,7 @@
 
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
   <!-- ResourceManager -->
 

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>zk_user</name>
     <value>zookeeper</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>content</name>

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

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>*.domain</name>
     <value>${falcon.app.type}</value>

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

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_final="false">
   <!--advanced properties-->
   <property>
     <name>*.workflow.engine.impl</name>

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

@@ -18,7 +18,7 @@
  * limitations under the License.
  */
 -->
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>falcon_user</name>
     <value>falcon</value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/FALCON/configuration/oozie-site.xml

@@ -17,7 +17,7 @@
   limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>oozie.service.ELService.ext.functions.coord-job-submit-instances</name>
     <value>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/GLUSTERFS/configuration/core-site.xml

@@ -20,7 +20,7 @@
  
 <!-- Put site-specific property overrides in this file. -->
 
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+<configuration supports_final="true" xmlns:xi="http://www.w3.org/2001/XInclude">
 
 <!-- i/o properties -->
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/GLUSTERFS/configuration/global.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>hadoop_pid_dir_prefix</name>
     <value>/var/run/hadoop</value>

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

@@ -17,7 +17,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>hive.heapsize</name>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/OOZIE/configuration/oozie-site.xml

@@ -17,7 +17,7 @@
   limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <!--
       Refer to the oozie-default.xml file for the complete list of

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/PIG/configuration/pig-properties.xml

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
 
   <property>
     <name>pig-content</name>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>storm_user</name>
     <value>storm</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="true">
   <property>
     <name>java.library.path</name>
     <value>/usr/local/lib:/opt/local/lib:/usr/lib</value>

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

@@ -20,7 +20,7 @@
  */
 -->
 
-<configuration>
+<configuration supports_final="false">
   <property>
     <name>tez_user</name>
     <value>tez</value>

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

@@ -17,7 +17,7 @@
   limitations under the License.
 -->
 
-<configuration>
+<configuration supports_final="true">
 
   <property>
     <name>tez.lib.uris</name>

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels