You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2016/06/02 15:03:09 UTC

[39/47] ambari git commit: AMBARI-16272. Ambari Upgrade shouldn't automatically add stack configs (dlysnichenko)

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-log4j.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-log4j.xml
index ee9b5df..f9e5505 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-log4j.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-log4j.xml
@@ -19,7 +19,6 @@
  */
 -->
 <configuration supports_adding_forbidden="true">
-
   <property>
     <name>content</name>
     <display-name>kms-log4j template</display-name>
@@ -68,6 +67,7 @@ log4j.logger.com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGener
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
-  </property>     
-
-</configuration>  
\ No newline at end of file
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-properties.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-properties.xml
index 0da8d89..d1ec672 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-properties.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-properties.xml
@@ -19,25 +19,26 @@
  */
 -->
 <configuration>
-
   <property>
     <name>REPOSITORY_CONFIG_USERNAME</name>
     <display-name>Repository config username</display-name>
     <value>keyadmin</value>
-    <description></description>
+    <description/>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>REPOSITORY_CONFIG_PASSWORD</name>
     <display-name>Repository config password</display-name>
     <value>keyadmin</value>
     <property-type>PASSWORD</property-type>
-    <description></description>
+    <description/>
     <value-attributes>
       <type>password</type>
     </value-attributes>
-  </property>  
-
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
   <property>
     <name>DB_FLAVOR</name>
     <display-name>DB FLAVOR</display-name>
@@ -70,8 +71,9 @@
       </entries>
       <selection-cardinality>1</selection-cardinality>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>SQL_CONNECTOR_JAR</name>
     <display-name>SQL connector jar</display-name>
@@ -86,8 +88,9 @@
         <name>DB_FLAVOR</name>
       </property>
     </depends-on>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>db_root_user</name>
     <display-name>Database Administrator (DBA) username</display-name>
@@ -96,30 +99,33 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>db_root_password</name>
     <display-name>Database Administrator (DBA) password</display-name>
-    <value></value>
+    <value/>
     <property-type>PASSWORD</property-type>
     <description>Database password for the database admin username</description>
     <value-attributes>
       <type>password</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>db_host</name>
     <display-name>Ranger KMS DB host</display-name>
-    <value></value>
+    <value/>
     <description>Database host</description>
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>db_name</name>
     <display-name>Ranger KMS DB name</display-name>
@@ -128,8 +134,9 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>db_user</name>
     <display-name>Ranger KMS DB username</display-name>
@@ -138,30 +145,33 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>db_password</name>
     <display-name>Ranger KMS DB password</display-name>
-    <value></value>
+    <value/>
     <property-type>PASSWORD</property-type>
     <description>Database password for the Ranger KMS schema</description>
     <value-attributes>
       <type>password</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>KMS_MASTER_KEY_PASSWD</name>
     <display-name>KMS master key password</display-name>
-    <value></value>
+    <value/>
     <property-type>PASSWORD</property-type>
-    <description></description>
+    <description/>
     <value-attributes>
       <type>password</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
-</configuration>  
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-site.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-site.xml
index 86d242e..ac3fa46 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-site.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/kms-site.xml
@@ -19,65 +19,73 @@
  */
 -->
 <configuration>
-
   <property>
     <name>hadoop.kms.key.provider.uri</name>
     <value>dbks://http@localhost:9292/kms</value>
     <property-type>DONT_ADD_ON_UPGRADE</property-type>
     <description>URI of the backing KeyProvider for the KMS.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.security.keystore.JavaKeyStoreProvider.password</name>
     <value>none</value>
     <description>If using the JavaKeyStoreProvider, the password for the keystore file.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.cache.enable</name>
     <value>true</value>
     <description>Whether the KMS will act as a cache for the backing KeyProvider. When the cache is enabled, operations like getKeyVersion, getMetadata, and getCurrentKey will sometimes return cached data without consulting the backing KeyProvider. Cached values are flushed when keys are deleted or modified.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.cache.timeout.ms</name>
     <value>600000</value>
     <description>Expiry time for the KMS key version and key metadata cache, in milliseconds. This affects getKeyVersion and getMetadata.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.current.key.cache.timeout.ms</name>
     <value>30000</value>
     <description>Expiry time for the KMS current key cache, in milliseconds. This affects getCurrentKey operations.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.audit.aggregation.window.ms</name>
     <value>10000</value>
     <description>Duplicate audit log events within the aggregation window (specified in ms) are quashed to reduce log traffic. A single message for aggregated events is printed at the end of the window, along with a count of the number of aggregated events.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.type</name>
     <value>simple</value>
-    <description>Authentication type for the KMS. Can be either &quot;simple&quot; or &quot;kerberos&quot;.
+    <description>Authentication type for the KMS. Can be either "simple" or "kerberos".
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.kerberos.keytab</name>
     <value>${user.home}/kms.keytab</value>
     <description>Path to the keytab with credentials for the configured Kerberos principal.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.kerberos.principal</name>
     <value>HTTP/localhost</value>
     <description>The Kerberos principal to use for the HTTP endpoint. The principal must start with 'HTTP/' as per the Kerberos HTTP SPNEGO specification.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.kerberos.name.rules</name>
     <value>DEFAULT</value>
@@ -85,49 +93,57 @@
     <value-attributes>
       <type>multiLine</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.signer.secret.provider</name>
     <value>random</value>
     <description>Indicates how the secret to sign the authentication cookies will be stored. Options are 'random' (default), 'string' and 'zookeeper'. If using a setup with multiple KMS instances, 'zookeeper' should be used.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.signer.secret.provider.zookeeper.path</name>
     <value>/hadoop-kms/hadoop-auth-signature-secret</value>
     <description>The Zookeeper ZNode path where the KMS instances will store and retrieve the secret from.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.signer.secret.provider.zookeeper.connection.string</name>
     <value>#HOSTNAME#:#PORT#,...</value>
     <description>The Zookeeper connection string, a list of hostnames and port comma separated.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.signer.secret.provider.zookeeper.auth.type</name>
     <value>kerberos</value>
     <description>The Zookeeper authentication type, 'none' or 'sasl' (Kerberos).</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.signer.secret.provider.zookeeper.kerberos.keytab</name>
     <value>/etc/hadoop/conf/kms.keytab</value>
     <description>The absolute path for the Kerberos keytab with the credentials to connect to Zookeeper.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>hadoop.kms.authentication.signer.secret.provider.zookeeper.kerberos.principal</name>
     <value>kms/#HOSTNAME#</value>
     <description>The Kerberos service principal used to connect to Zookeeper.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-  
   <property>
     <name>hadoop.kms.security.authorization.manager</name>
     <value>org.apache.ranger.authorization.kms.authorizer.RangerKmsAuthorizer</value>
-    <description></description>
+    <description/>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-audit.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-audit.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-audit.xml
index 6dd581f..22226e3 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-audit.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-audit.xml
@@ -19,13 +19,13 @@
  */
 -->
 <configuration>
-
   <property>
     <name>xasecure.audit.is.enabled</name>
     <value>true</value>
     <description>Is Audit enabled?</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.db</name>
     <value>false</value>
@@ -34,20 +34,23 @@
     <value-attributes>
       <type>boolean</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.db.jdbc.url</name>
     <value>{{audit_jdbc_url}}</value>
     <description>Audit DB JDBC URL</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.db.user</name>
     <value>{{xa_audit_db_user}}</value>
     <description>Audit DB JDBC User</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.db.password</name>
     <value>crypted</value>
@@ -56,26 +59,30 @@
       <type>password</type>
     </value-attributes>
     <description>Audit DB JDBC Password</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.db.jdbc.driver</name>
     <value>{{jdbc_driver}}</value>
     <description>Audit DB JDBC Driver</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.credential.provider.file</name>
     <value>jceks://file{{credential_file}}</value>
     <description>Credential file store</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.db.batch.filespool.dir</name>
     <value>/var/log/ranger/kms/audit/db/spool</value>
     <description>/var/log/ranger/kms/audit/db/spool</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.hdfs</name>
     <value>true</value>
@@ -84,8 +91,9 @@
     <value-attributes>
       <type>boolean</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.hdfs.dir</name>
     <value>hdfs://NAMENODE_HOSTNAME:8020/ranger/audit</value>
@@ -96,14 +104,16 @@
         <name>fs.defaultFS</name>
       </property>
     </depends-on>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.hdfs.batch.filespool.dir</name>
     <value>/var/log/ranger/kms/audit/hdfs/spool</value>
     <description>/var/log/ranger/kms/audit/hdfs/spool</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.solr</name>
     <value>true</value>
@@ -112,26 +122,30 @@
     <value-attributes>
       <type>boolean</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.solr.urls</name>
     <value>{{ranger_audit_solr_urls}}</value>
     <description>Solr URL</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.solr.zookeepers</name>
     <value>none</value>
     <description>Solr Zookeeper string</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.audit.destination.solr.batch.filespool.dir</name>
     <value>/var/log/ranger/kms/audit/solr/spool</value>
     <description>/var/log/ranger/kms/audit/solr/spool</description>
-  </property>  
-
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
   <property>
     <name>xasecure.audit.provider.summary.enabled</name>
     <value>false</value>
@@ -140,6 +154,7 @@
     <value-attributes>
       <type>boolean</type>
     </value-attributes>
-  </property>  
-
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-policymgr-ssl.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-policymgr-ssl.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-policymgr-ssl.xml
index f2e70f1..c069444 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-policymgr-ssl.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-policymgr-ssl.xml
@@ -19,13 +19,13 @@
  */
 -->
 <configuration>
-  
   <property>
     <name>xasecure.policymgr.clientssl.keystore</name>
     <value>/etc/ranger/kms/ranger-plugin-keystore.jks</value>
     <description>Java Keystore files</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.policymgr.clientssl.keystore.password</name>
     <value>myKeyFilePassword</value>
@@ -34,14 +34,16 @@
       <type>password</type>
     </value-attributes>
     <description>password for keystore</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.policymgr.clientssl.truststore</name>
     <value>/etc/ranger/kms/ranger-plugin-truststore.jks</value>
     <description>java truststore file</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.policymgr.clientssl.truststore.password</name>
     <value>changeit</value>
@@ -50,18 +52,21 @@
       <type>password</type>
     </value-attributes>
     <description>java truststore password</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
-    <property>
+  <property>
     <name>xasecure.policymgr.clientssl.keystore.credential.file</name>
     <value>jceks://file{{credential_file}}</value>
     <description>java keystore credential file</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>xasecure.policymgr.clientssl.truststore.credential.file</name>
     <value>jceks://file{{credential_file}}</value>
     <description>java truststore credential file</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-  
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-security.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-security.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-security.xml
index cdb0c11..943082d 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-security.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-security.xml
@@ -19,41 +19,46 @@
  */
 -->
 <configuration>
-  
   <property>
     <name>ranger.plugin.kms.service.name</name>
     <value>{{repo_name}}</value>
     <description>Name of the Ranger service containing policies for this kms instance</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.plugin.kms.policy.source.impl</name>
     <value>org.apache.ranger.admin.client.RangerAdminRESTClient</value>
     <description>Class to retrieve policies from the source</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.plugin.kms.policy.rest.url</name>
     <value>{{policymgr_mgr_url}}</value>
     <description>URL to Ranger Admin</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.plugin.kms.policy.rest.ssl.config.file</name>
     <value>/etc/ranger/kms/conf/ranger-policymgr-ssl.xml</value>
     <description>Path to the file containing SSL details to contact Ranger Admin</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.plugin.kms.policy.pollIntervalMs</name>
     <value>30000</value>
     <description>How often to poll for changes in policies?</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.plugin.kms.policy.cache.dir</name>
     <value>/etc/ranger/{{repo_name}}/policycache</value>
     <description>Directory where Ranger policies are cached after successful retrieval from the source</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-site.xml b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-site.xml
index be387ff..7507c53 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-site.xml
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/configuration/ranger-kms-site.xml
@@ -18,42 +18,48 @@
  * limitations under the License.
  */
 -->
-
 <configuration>
   <property>
     <name>ranger.service.host</name>
     <value>{{kms_host}}</value>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.service.http.port</name>
     <value>{{kms_port}}</value>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>ranger.service.https.port</name>
     <value>9393</value>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-  
   <property>
     <name>ranger.service.shutdown.port</name>
     <value>7085</value>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-  
   <property>
     <name>ranger.contextName</name>
     <value>/kms</value>
-  </property>     
-  
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
   <property>
     <name>xa.webapp.dir</name>
     <value>./webapp</value>
-  </property> 
-  
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
   <property>
     <name>ranger.service.https.attrib.ssl.enabled</name>
     <value>false</value>
-    <description></description>
+    <description/>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-client.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-client.xml b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-client.xml
index 028c847..adeba58 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-client.xml
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-client.xml
@@ -20,7 +20,6 @@
  */
 -->
 <configuration supports_final="true">
-
   <!--
     <property>
       <name>slider.security.protocol.acl</name>
@@ -28,14 +27,12 @@
       <description>When security is enabled, set appropriate acl. Default value means allow everyone.</description>
     </property>
     -->
-
   <!--
      The recommended approach is to configure slider-env.sh and set HADOOP_CONF_DIR.
      Otherwise, appropriate configurations from hdfs-site, yarn-site, can be dropped in this file
      for Slider client to work. The following list is not an exhaustive list but the minimal config
      needed to interact with a non-secure cluster.
   -->
-
   <!--
       <property>
         <name>yarn.resourcemanager.address</name>
@@ -56,5 +53,4 @@
           literal string "local" or a host:port for HDFS.</description>
       </property>
     -->
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-env.xml b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-env.xml
index 5e8e72f..0824e75 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-env.xml
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-env.xml
@@ -19,7 +19,6 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_adding_forbidden="true">
   <!-- slider-env.sh -->
   <property>
@@ -42,6 +41,7 @@ export HADOOP_CONF_DIR={{hadoop_conf_dir}}
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-  
-</configuration>
\ No newline at end of file
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-log4j.xml b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-log4j.xml
index b13a86c..cb7ecd0 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-log4j.xml
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/configuration/slider-log4j.xml
@@ -19,9 +19,7 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="false" supports_adding_forbidden="true">
-
   <property>
     <name>content</name>
     <display-name>slider-log4j template</display-name>
@@ -89,6 +87,7 @@ log4j.logger.org.apache.zookeeper=WARN
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-defaults.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-defaults.xml b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-defaults.xml
index bd6be0a..a7d00e2 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-defaults.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-defaults.xml
@@ -18,9 +18,7 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="true">
-
   <property>
     <name>spark.yarn.executor.memoryOverhead</name>
     <value>384</value>
@@ -29,16 +27,18 @@
       This is memory that accounts for things like VM overheads, interned strings,
       other native overheads, etc.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
-     <name>spark.driver.extraLibraryPath</name>
-    \u2002<value>{{spark_hadoop_lib_native}}</value>
-    \u2002<description>
-    \u2002  Set a special library path to use when launching the driver JVM.
-    \u2002</description>
+    <name>spark.driver.extraLibraryPath</name>
+    <value>{{spark_hadoop_lib_native}}</value>
+    <description>
+      Set a special library path to use when launching the driver JVM.
+    </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.driver.memoryOverhead</name>
     <value>384</value>
@@ -47,40 +47,45 @@
       This is memory that accounts for things like VM overheads, interned strings,
       other native overheads, etc.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.scheduler.heartbeat.interval-ms</name>
     <value>5000</value>
     <description>
       The interval in ms in which the Spark application master heartbeats into the YARN ResourceManager.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.max.executor.failures</name>
     <value>3</value>
     <description>
       The maximum number of executor failures before failing the application.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.queue</name>
     <value>default</value>
     <description>
       The name of the YARN queue to which the application is submitted.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.containerLauncherMaxThreads</name>
     <value>25</value>
     <description>
       The maximum number of threads to use in the application master for launching executor containers.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.submit.file.replication</name>
     <value>3</value>
@@ -88,8 +93,9 @@
       HDFS replication level for the files uploaded into HDFS for the application.
       These include things like the Spark jar, the app jar, and any distributed cache files/archives.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.preserve.staging.files</name>
     <value>false</value>
@@ -97,64 +103,73 @@
       Set to true to preserve the staged files (Spark jar, app jar, distributed cache files) at the
       end of the job rather then delete them.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.services</name>
     <value>org.apache.spark.deploy.yarn.history.YarnHistoryService</value>
     <description>
       Service required for publishing events to the YARN Application Timeline Service.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.provider</name>
     <value>org.apache.spark.deploy.history.yarn.server.YarnHistoryProvider</value>
     <description>
       Name of the class implementing the application history backend which publishes to YARN Application Timeline Service.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.ui.port</name>
     <value>18080</value>
     <description>
       The port to which the web interface of the History Server binds.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.kerberos.principal</name>
     <value>none</value>
     <description>
       Kerberos principal name for the Spark History Server.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.kerberos.keytab</name>
     <value>none</value>
     <description>
       Location of the kerberos keytab file for the Spark History Server.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.provider</name>
     <value>org.apache.spark.deploy.yarn.history.YarnHistoryProvider</value>
     <description>Name of history provider class</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.historyServer.address</name>
     <value>{{spark_history_server_host}}:{{spark_history_ui_port}}</value>
     <description>The address of the Spark history server (i.e. host.com:18080). The address should not contain a scheme (http://). Defaults to not being set since the history server is an optional service. This address is given to the YARN ResourceManager when the Spark application finishes to link the application from the ResourceManager UI to the Spark history server UI.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.max.executor.failures</name>
     <value>3</value>
     <description>The maximum number of executor failures before failing the application.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-env.xml b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-env.xml
index 0e6c630..935c179 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-env.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-env.xml
@@ -19,7 +19,6 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_adding_forbidden="true">
   <property>
     <name>spark_user</name>
@@ -30,8 +29,9 @@
       <type>user</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_group</name>
     <display-name>Spark Group</display-name>
@@ -41,8 +41,9 @@
     <value-attributes>
       <type>user</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_log_dir</name>
     <value>/var/log/spark</value>
@@ -50,16 +51,18 @@
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_pid_dir</name>
     <value>/var/run/spark</value>
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_daemon_memory</name>
     <value>1024</value>
@@ -68,9 +71,9 @@
       <type>int</type>
       <unit>MB</unit>
     </value-attributes>
-   </property>
-
-
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
   <!-- spark-env.sh -->
   <property>
     <name>content</name>
@@ -129,14 +132,17 @@ fi
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_thrift_cmd_opts</name>
     <description>additional spark thrift server commandline options</description>
-    <value></value>
+    <value/>
     <value-attributes>
       <empty-value-valid>true</empty-value-valid>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-log4j-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-log4j-properties.xml b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-log4j-properties.xml
index 4b1cc65..9de605a 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-log4j-properties.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-log4j-properties.xml
@@ -18,7 +18,6 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="false" supports_adding_forbidden="true">
   <property>
     <name>content</name>
@@ -43,5 +42,7 @@ log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-metrics-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-metrics-properties.xml b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-metrics-properties.xml
index 974b077..783f6c5 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-metrics-properties.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/configuration/spark-metrics-properties.xml
@@ -161,5 +161,7 @@
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-hive-site-override.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-hive-site-override.xml b/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-hive-site-override.xml
index 7472908..a1968e9 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-hive-site-override.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-hive-site-override.xml
@@ -16,7 +16,6 @@ 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.
 -->
-
 <configuration supports_final="true">
   <property>
     <name>hive.server2.enable.doAs</name>
@@ -24,18 +23,24 @@ limitations under the License.
     <description>
       Disable impersonation in Hive Server 2.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
     <name>hive.metastore.client.socket.timeout</name>
     <value>1800</value>
     <description>MetaStore Client socket timeout in seconds</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
-  	<name>hive.metastore.client.connect.retry.delay</name>
-  	<value>5</value>
+    <name>hive.metastore.client.connect.retry.delay</name>
+    <value>5</value>
     <description>
       Expects a time value - number of seconds for the client to wait between consecutive connection attempts
-    </description>  	
+    </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
     <name>hive.server2.thrift.port</name>
@@ -43,6 +48,8 @@ limitations under the License.
     <description>
       TCP port number to listen on, default 10015.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
     <name>hive.server2.transport.mode</name>
@@ -51,5 +58,7 @@ limitations under the License.
       Expects one of [binary, http].
       Transport mode of HiveServer2.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-thrift-sparkconf.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-thrift-sparkconf.xml b/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-thrift-sparkconf.xml
index 112a548..bb636c6 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-thrift-sparkconf.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.5.2/configuration/spark-thrift-sparkconf.xml
@@ -18,9 +18,7 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="true">
-
   <property>
     <name>spark.yarn.executor.memoryOverhead</name>
     <value>384</value>
@@ -29,16 +27,18 @@
       This is memory that accounts for things like VM overheads, interned strings,
       other native overheads, etc.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.driver.extraLibraryPath</name>
     <value>{{spark_hadoop_lib_native}}</value>
     <description>
     \u2002\u2002\u2002Set a special library path to use when launching the driver JVM.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.driver.memoryOverhead</name>
     <value>384</value>
@@ -47,40 +47,45 @@
       This is memory that accounts for things like VM overheads, interned strings,
       other native overheads, etc.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.scheduler.heartbeat.interval-ms</name>
     <value>5000</value>
     <description>
       The interval in ms in which the Spark application master heartbeats into the YARN ResourceManager.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.max.executor.failures</name>
     <value>3</value>
     <description>
       The maximum number of executor failures before failing the application.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.queue</name>
     <value>default</value>
     <description>
       The name of the YARN queue to which the application is submitted.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.containerLauncherMaxThreads</name>
     <value>25</value>
     <description>
       The maximum number of threads to use in the application master for launching executor containers.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.submit.file.replication</name>
     <value>3</value>
@@ -88,8 +93,9 @@
       HDFS replication level for the files uploaded into HDFS for the application.
       These include things like the Spark jar, the app jar, and any distributed cache files/archives.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.preserve.staging.files</name>
     <value>false</value>
@@ -97,12 +103,14 @@
       Set to true to preserve the staged files (Spark jar, app jar, distributed cache files) at the
       end of the job rather then delete them.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.max.executor.failures</name>
     <value>3</value>
     <description>The maximum number of executor failures before failing the application.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-defaults.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-defaults.xml b/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-defaults.xml
index 1a6552f..f522227 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-defaults.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-defaults.xml
@@ -18,36 +18,45 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="true">
-    <property>
-        <name>spark.yarn.services</name>
-        <deleted>true</deleted>
-    </property>
-    <property>
-        <name>spark.history.provider</name>
-        <value>org.apache.spark.deploy.history.FsHistoryProvider</value>
-        <description>Name of history provider class</description>
-    </property>
-    <property>
-        <name>spark.history.fs.logDirectory</name>
-        <value>hdfs:///spark-history</value>
-        <description>
+  <property>
+    <name>spark.yarn.services</name>
+    <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+  <property>
+    <name>spark.history.provider</name>
+    <value>org.apache.spark.deploy.history.FsHistoryProvider</value>
+    <description>Name of history provider class</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+  <property>
+    <name>spark.history.fs.logDirectory</name>
+    <value>hdfs:///spark-history</value>
+    <description>
             Base directory for history spark application log.
         </description>
-    </property>
-    <property>
-        <name>spark.eventLog.enabled</name>
-        <value>true</value>
-        <description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+  <property>
+    <name>spark.eventLog.enabled</name>
+    <value>true</value>
+    <description>
             Whether to log Spark events, useful for reconstructing the Web UI after the application has finished.
         </description>
-    </property>
-    <property>
-        <name>spark.eventLog.dir</name>
-        <value>hdfs:///spark-history</value>
-        <description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+  <property>
+    <name>spark.eventLog.dir</name>
+    <value>hdfs:///spark-history</value>
+    <description>
             Base directory in which Spark events are logged, if spark.eventLog.enabled is true.
         </description>
-    </property>
-</configuration>
\ No newline at end of file
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-fairscheduler.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-fairscheduler.xml b/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-fairscheduler.xml
index 2dda4bb..f7fcf45 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-fairscheduler.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-fairscheduler.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0"?>
-
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -16,12 +15,11 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-
 <configuration supports_final="true">
-    <property>
-        <name>fairscheduler_content</name>
-        <description>This is the jinja template for spark-thrift-fairscheduler.xml file.</description>
-        <value>&lt;?xml version="1.0"?&gt;
+  <property>
+    <name>fairscheduler_content</name>
+    <description>This is the jinja template for spark-thrift-fairscheduler.xml file.</description>
+    <value>&lt;?xml version="1.0"?&gt;
             &lt;allocations&gt;
             &lt;pool name="default"&gt;
             &lt;schedulingMode&gt;FAIR&lt;/schedulingMode&gt;
@@ -30,8 +28,10 @@
             &lt;/pool&gt;
             &lt;/allocations&gt;
         </value>
-        <value-attributes>
-            <type>content</type>
-        </value-attributes>
-    </property>
-</configuration>
\ No newline at end of file
+    <value-attributes>
+      <type>content</type>
+    </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-sparkconf.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-sparkconf.xml b/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-sparkconf.xml
index 4f2563b..cd4757e 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-sparkconf.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.6.0/configuration/spark-thrift-sparkconf.xml
@@ -18,60 +18,68 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="true">
-
   <property>
     <name>spark.yarn.executor.memoryOverhead</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.driver.memoryOverhead</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.scheduler.heartbeat.interval-ms</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.max.executor.failures</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.containerLauncherMaxThreads</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.submit.file.replication</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.preserve.staging.files</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.max.executor.failures</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.services</name>
     <deleted>true</deleted>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.provider</name>
     <value>org.apache.spark.deploy.history.FsHistoryProvider</value>
     <description>Name of history provider class</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.fs.logDirectory</name>
     <value>{{spark_history_dir}}</value>
@@ -80,8 +88,9 @@
       Base directory for history spark application log. It is the same value
       as in spark-defaults.xml.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.eventLog.enabled</name>
     <value>true</value>
@@ -89,8 +98,9 @@
     <description>
       Whether to log Spark events, useful for reconstructing the Web UI after the application has finished.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.eventLog.dir</name>
     <value>{{spark_history_dir}}</value>
@@ -99,8 +109,9 @@
       Base directory in which Spark events are logged, if spark.eventLog.enabled is true. It is the same value
       as in spark-defaults.xml.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.master</name>
     <value>{{spark_thrift_master}}</value>
@@ -108,86 +119,97 @@
       The deploying mode of spark application, by default it is yarn-client for thrift-server but local mode for there's
       only one nodemanager.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.scheduler.allocation.file</name>
     <value>{{spark_conf}}/spark-thrift-fairscheduler.xml</value>
     <description>
       Scheduler configuration file for thriftserver.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.scheduler.mode</name>
     <value>FAIR</value>
     <description>
       The scheduling mode between jobs submitted to the same SparkContext.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-  
   <property>
     <name>spark.shuffle.service.enabled</name>
     <value>true</value>
     <description>
       Enables the external shuffle service.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.hadoop.cacheConf</name>
     <value>false</value>
     <description>
       Specifies whether HadoopRDD caches the Hadoop configuration object
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.enabled</name>
     <value>true</value>
     <description>
       Whether to use dynamic resource allocation, which scales the number of executors registered with this application up and down based on the workload.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.initialExecutors</name>
     <value>0</value>
     <description>
       Initial number of executors to run if dynamic allocation is enabled.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.maxExecutors</name>
     <value>10</value>
     <description>
       Upper bound for the number of executors if dynamic allocation is enabled.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.minExecutors</name>
     <value>0</value>
     <description>
       Lower bound for the number of executors if dynamic allocation is enabled.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.am.memory</name>
     <value>512m</value>
     <description>
       Amount of memory to use for the YARN Application Master in client mode.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.executor.memory</name>
     <value>1g</value>
     <description>
       Amount of memory to use per executor process.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-defaults.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-defaults.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-defaults.xml
index fa54297..027cf37 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-defaults.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-defaults.xml
@@ -18,85 +18,93 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="true">
-
   <property>
     <name>spark.yarn.queue</name>
     <value>default</value>
     <description>
       The name of the YARN queue to which the application is submitted.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.driver.extraLibraryPath</name>
     <value>{{spark_hadoop_lib_native}}</value>
     <description>
       \u2002Set a special library path to use when launching the driver JVM.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.provider</name>
     <value>org.apache.spark.deploy.history.FsHistoryProvider</value>
     <description>
       Name of history provider
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.ui.port</name>
     <value>18081</value>
     <description>
       The port to which the web interface of the History Server binds.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.fs.logDirectory</name>
     <value>hdfs:///spark2-history/</value>
     <description>
       Base directory for history spark application log.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.kerberos.principal</name>
     <value>none</value>
     <description>
       Kerberos principal name for the Spark History Server.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.kerberos.keytab</name>
     <value>none</value>
     <description>
       Location of the kerberos keytab file for the Spark History Server.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.eventLog.enabled</name>
     <value>true</value>
     <description>
         Whether to log Spark events, useful for reconstructing the Web UI after the application has finished.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.eventLog.dir</name>
     <value>hdfs:///spark2-history/</value>
     <description>
         Base directory in which Spark events are logged, if spark.eventLog.enabled is true.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.yarn.historyServer.address</name>
     <value>{{spark_history_server_host}}:{{spark_history_ui_port}}</value>
     <description>The address of the Spark history server (i.e. host.com:18081). The address should not contain a scheme (http://). Defaults to not being set since the history server is an optional service. This address is given to the YARN ResourceManager when the Spark application finishes to link the application from the ResourceManager UI to the Spark history server UI.</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-env.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-env.xml
index fbde5c5..c5fcc85 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-env.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-env.xml
@@ -19,7 +19,6 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_adding_forbidden="true">
   <property>
     <name>spark_user</name>
@@ -30,8 +29,9 @@
       <type>user</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_group</name>
     <display-name>Spark Group</display-name>
@@ -41,8 +41,9 @@
     <value-attributes>
       <type>user</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_log_dir</name>
     <value>/var/log/spark2</value>
@@ -50,16 +51,18 @@
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_pid_dir</name>
     <value>/var/run/spark2</value>
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <!-- spark-env.sh -->
   <property>
     <name>content</name>
@@ -108,14 +111,17 @@ export JAVA_HOME={{java_home}}
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark_thrift_cmd_opts</name>
     <description>additional spark thrift server commandline options</description>
-    <value></value>
+    <value/>
     <value-attributes>
       <empty-value-valid>true</empty-value-valid>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-hive-site-override.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-hive-site-override.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-hive-site-override.xml
index e5cc377..ddf8877 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-hive-site-override.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-hive-site-override.xml
@@ -16,7 +16,6 @@ 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.
 -->
-
 <configuration supports_final="true">
   <property>
     <name>hive.server2.enable.doAs</name>
@@ -24,18 +23,24 @@ limitations under the License.
     <description>
       Disable impersonation in Hive Server 2.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
     <name>hive.metastore.client.socket.timeout</name>
     <value>1800</value>
     <description>MetaStore Client socket timeout in seconds</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
-  	<name>hive.metastore.client.connect.retry.delay</name>
-  	<value>5</value>
+    <name>hive.metastore.client.connect.retry.delay</name>
+    <value>5</value>
     <description>
       Expects a time value - number of seconds for the client to wait between consecutive connection attempts
-    </description>  	
+    </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
     <name>hive.server2.thrift.port</name>
@@ -43,6 +48,8 @@ limitations under the License.
     <description>
       TCP port number to listen on, default 10015.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
   <property>
     <name>hive.server2.transport.mode</name>
@@ -51,5 +58,7 @@ limitations under the License.
       Expects one of [binary, http].
       Transport mode of HiveServer2.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-log4j-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-log4j-properties.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-log4j-properties.xml
index 3f385b4..451bb5a 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-log4j-properties.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-log4j-properties.xml
@@ -18,7 +18,6 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="false" supports_adding_forbidden="true">
   <property>
     <name>content</name>
@@ -42,5 +41,7 @@ log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-metrics-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-metrics-properties.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-metrics-properties.xml
index c215548..5f694a3 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-metrics-properties.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-metrics-properties.xml
@@ -160,5 +160,7 @@
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-fairscheduler.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-fairscheduler.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-fairscheduler.xml
index 2dda4bb..f7fcf45 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-fairscheduler.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-fairscheduler.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0"?>
-
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -16,12 +15,11 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-
 <configuration supports_final="true">
-    <property>
-        <name>fairscheduler_content</name>
-        <description>This is the jinja template for spark-thrift-fairscheduler.xml file.</description>
-        <value>&lt;?xml version="1.0"?&gt;
+  <property>
+    <name>fairscheduler_content</name>
+    <description>This is the jinja template for spark-thrift-fairscheduler.xml file.</description>
+    <value>&lt;?xml version="1.0"?&gt;
             &lt;allocations&gt;
             &lt;pool name="default"&gt;
             &lt;schedulingMode&gt;FAIR&lt;/schedulingMode&gt;
@@ -30,8 +28,10 @@
             &lt;/pool&gt;
             &lt;/allocations&gt;
         </value>
-        <value-attributes>
-            <type>content</type>
-        </value-attributes>
-    </property>
-</configuration>
\ No newline at end of file
+    <value-attributes>
+      <type>content</type>
+    </value-attributes>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6919aa50/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-sparkconf.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-sparkconf.xml b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-sparkconf.xml
index 543453b..492b81d 100755
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-sparkconf.xml
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/configuration/spark2-thrift-sparkconf.xml
@@ -18,31 +18,32 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_final="true">
-
   <property>
     <name>spark.yarn.queue</name>
     <value>default</value>
     <description>
       The name of the YARN queue to which the application is submitted.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.driver.extraLibraryPath</name>
     <value>{{spark_hadoop_lib_native}}</value>
     <description>
       \u2002Set a special library path to use when launching the driver JVM.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.provider</name>
     <value>org.apache.spark.deploy.history.FsHistoryProvider</value>
     <description>Name of history provider class</description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.history.fs.logDirectory</name>
     <value>{{spark_history_dir}}</value>
@@ -51,8 +52,9 @@
       Base directory for history spark application log. It is the same value
       as in spark-defaults.xml.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.eventLog.enabled</name>
     <value>true</value>
@@ -60,8 +62,9 @@
     <description>
       Whether to log Spark events, useful for reconstructing the Web UI after the application has finished.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.eventLog.dir</name>
     <value>{{spark_history_dir}}</value>
@@ -70,8 +73,9 @@
       Base directory in which Spark events are logged, if spark.eventLog.enabled is true. It is the same value
       as in spark-defaults.xml.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.master</name>
     <value>{{spark_thrift_master}}</value>
@@ -79,70 +83,79 @@
       The deploying mode of spark application, by default it is yarn-client for thrift-server but local mode for there's
       only one nodemanager.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.scheduler.allocation.file</name>
     <value>{{spark_conf}}/spark-thrift-fairscheduler.xml</value>
     <description>
       Scheduler configuration file for thriftserver.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.scheduler.mode</name>
     <value>FAIR</value>
     <description>
       The scheduling mode between jobs submitted to the same SparkContext.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.shuffle.service.enabled</name>
     <value>true</value>
     <description>
       Enables the external shuffle service.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.hadoop.cacheConf</name>
     <value>false</value>
     <description>
       Specifies whether HadoopRDD caches the Hadoop configuration object
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.enabled</name>
     <value>true</value>
     <description>
       Whether to use dynamic resource allocation, which scales the number of executors registered with this application up and down based on the workload.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.initialExecutors</name>
     <value>0</value>
     <description>
       Initial number of executors to run if dynamic allocation is enabled.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.maxExecutors</name>
     <value>10</value>
     <description>
       Upper bound for the number of executors if dynamic allocation is enabled.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
   <property>
     <name>spark.dynamicAllocation.minExecutors</name>
     <value>0</value>
     <description>
       Lower bound for the number of executors if dynamic allocation is enabled.
     </description>
+    <on-ambari-upgrade add="false" change="true" delete="true"/>
+    <on-stack-upgrade add="true" change="true" delete="false"/>
   </property>
-
 </configuration>