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/01 15:26:30 UTC

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

AMBARI-16272. Ambari Upgrade shouldn't automatically add stack configs (dlysnichenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6f855d53
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6f855d53
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6f855d53

Branch: refs/heads/trunk
Commit: 6f855d53c9923182ee0647cc37d1856a5882b19a
Parents: f1e7d17
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Wed Jun 1 18:17:22 2016 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Wed Jun 1 18:20:58 2016 +0300

----------------------------------------------------------------------
 .../services/HDFS/configuration/hdfs-site.xml   |   2 +-
 .../services/HDFS/configuration/hdfs-site.xml   |   2 +-
 .../server/api/services/AmbariMetaInfo.java     |   2 +-
 .../internal/UpgradeResourceProvider.java       | 118 ++--
 .../ambari/server/stack/StackManager.java       |  48 +-
 .../server/stack/StackManagerFactory.java       |   2 +-
 .../ambari/server/state/ConfigHelper.java       |  14 +-
 .../ambari/server/state/PropertyInfo.java       |  27 +-
 .../server/state/PropertyUpgradeBehavior.java   |  73 +++
 .../server/upgrade/AbstractUpgradeCatalog.java  |  43 +-
 .../1.6.1.2.2.0/configuration/accumulo-env.xml  |  42 +-
 .../configuration/accumulo-log4j.xml            |  23 +-
 .../1.6.1.2.2.0/configuration/accumulo-site.xml |  54 +-
 .../1.6.1.2.2.0/configuration/client.xml        |   1 -
 .../0.1.0/configuration/ams-env.xml             |  16 +-
 .../0.1.0/configuration/ams-grafana-env.xml     |  16 +-
 .../0.1.0/configuration/ams-grafana-ini.xml     |  13 +-
 .../0.1.0/configuration/ams-hbase-env.xml       |  27 +-
 .../0.1.0/configuration/ams-hbase-log4j.xml     |   5 +-
 .../0.1.0/configuration/ams-hbase-policy.xml    |   9 +-
 .../configuration/ams-hbase-security-site.xml   |  68 ++-
 .../0.1.0/configuration/ams-hbase-site.xml      | 115 +++-
 .../0.1.0/configuration/ams-log4j.xml           |   5 +-
 .../0.1.0/configuration/ams-site.xml            | 121 +++-
 .../0.1.0/configuration/ams-ssl-client.xml      |  39 +-
 .../0.1.0/configuration/ams-ssl-server.xml      | 103 ++--
 .../0.1.0/configuration/storm-site.xml          |   3 +-
 .../configuration/application-properties.xml    | 137 +++--
 .../ATLAS/0.1.0.2.3/configuration/atlas-env.xml |  20 +-
 .../0.1.0.2.3/configuration/atlas-log4j.xml     |  14 +-
 .../0.5.0.2.1/configuration/falcon-env.xml      |  26 +-
 .../configuration/falcon-runtime.properties.xml |  21 +-
 .../configuration/falcon-startup.properties.xml | 115 +++-
 .../0.5.0.2.1/configuration/oozie-site.xml      |  38 +-
 .../1.4.0.2.0/configuration/flume-conf.xml      |   3 +-
 .../FLUME/1.4.0.2.0/configuration/flume-env.xml |  12 +-
 .../GANGLIA/3.5.0/configuration/ganglia-env.xml |  26 +-
 .../HAWQ/2.0.0/configuration/hawq-check-env.xml |  12 +-
 .../HAWQ/2.0.0/configuration/hawq-env.xml       |   9 +-
 .../2.0.0/configuration/hawq-limits-env.xml     |  13 +-
 .../HAWQ/2.0.0/configuration/hawq-site.xml      |  66 ++-
 .../2.0.0/configuration/hawq-sysctl-env.xml     |  74 ++-
 .../HAWQ/2.0.0/configuration/hdfs-client.xml    | 118 ++--
 .../HAWQ/2.0.0/configuration/yarn-client.xml    |  36 +-
 .../0.96.0.2.0/configuration/hbase-env.xml      |  33 +-
 .../0.96.0.2.0/configuration/hbase-log4j.xml    |   5 +-
 .../0.96.0.2.0/configuration/hbase-policy.xml   |   9 +-
 .../0.96.0.2.0/configuration/hbase-site.xml     |  93 ++-
 .../HDFS/2.1.0.2.0/configuration/core-site.xml  |  78 +--
 .../HDFS/2.1.0.2.0/configuration/hadoop-env.xml |  46 +-
 .../2.1.0.2.0/configuration/hadoop-policy.xml   |  41 +-
 .../HDFS/2.1.0.2.0/configuration/hdfs-log4j.xml |   5 +-
 .../HDFS/2.1.0.2.0/configuration/hdfs-site.xml  | 152 +++--
 .../HDFS/2.1.0.2.0/configuration/ssl-client.xml | 101 ++--
 .../HDFS/2.1.0.2.0/configuration/ssl-server.xml | 121 ++--
 .../HIVE/0.12.0.2.0/configuration/hcat-env.xml  |   4 +-
 .../HIVE/0.12.0.2.0/configuration/hive-env.xml  |  41 +-
 .../configuration/hive-exec-log4j.xml           |   5 +-
 .../0.12.0.2.0/configuration/hive-log4j.xml     |   5 +-
 .../HIVE/0.12.0.2.0/configuration/hive-site.xml | 150 +++--
 .../0.12.0.2.0/configuration/webhcat-env.xml    |   4 +-
 .../0.12.0.2.0/configuration/webhcat-log4j.xml  |   5 +-
 .../0.12.0.2.0/configuration/webhcat-site.xml   |  63 +-
 .../KAFKA/0.8.1/configuration/kafka-broker.xml  | 111 +++-
 .../KAFKA/0.8.1/configuration/kafka-env.xml     |  26 +-
 .../KAFKA/0.8.1/configuration/kafka-log4j.xml   |  13 +-
 .../KAFKA/0.9.0/configuration/kafka-broker.xml  |  49 +-
 .../KAFKA/0.9.0/configuration/kafka-env.xml     |   3 +-
 .../0.9.0/configuration/ranger-kafka-audit.xml  |  55 +-
 .../ranger-kafka-plugin-properties.xml          |  28 +-
 .../ranger-kafka-policymgr-ssl.xml              |  23 +-
 .../configuration/ranger-kafka-security.xml     |  19 +-
 .../1.10.3-10/configuration/kerberos-env.xml    |  96 +--
 .../1.10.3-10/configuration/krb5-conf.xml       |  15 +-
 .../0.5.0.2.2/configuration/admin-topology.xml  |  16 +-
 .../0.5.0.2.2/configuration/gateway-log4j.xml   |   4 +-
 .../0.5.0.2.2/configuration/gateway-site.xml    |  98 ++--
 .../KNOX/0.5.0.2.2/configuration/knox-env.xml   |  23 +-
 .../KNOX/0.5.0.2.2/configuration/ldap-log4j.xml |   4 +-
 .../ranger-knox-plugin-properties.xml           | 160 ++---
 .../KNOX/0.5.0.2.2/configuration/topology.xml   |  28 +-
 .../KNOX/0.5.0.2.2/configuration/users-ldif.xml |  26 +-
 .../0.5.0/configuration/logfeeder-env.xml       |  42 +-
 .../0.5.0/configuration/logfeeder-log4j.xml     |   8 +-
 .../configuration/logfeeder-properties.xml      |  16 +-
 .../configuration/logsearch-admin-json.xml      |  14 +-
 .../logsearch-audit_logs-solrconfig.xml         |  13 +-
 .../0.5.0/configuration/logsearch-env.xml       |  52 +-
 .../0.5.0/configuration/logsearch-log4j.xml     |   7 +-
 .../configuration/logsearch-properties.xml      |  34 +-
 .../logsearch-service_logs-solrconfig.xml       |  12 +-
 .../logsearch-solr-client-log4j.xml             |   9 +-
 .../0.5.0/configuration/logsearch-solr-env.xml  |  60 +-
 .../configuration/logsearch-solr-log4j.xml      |   6 +-
 .../0.5.0/configuration/logsearch-solr-xml.xml  |   8 +-
 .../1.0.0.2.3/configuration/mahout-env.xml      |  25 +-
 .../1.0.0.2.3/configuration/mahout-log4j.xml    |  25 +-
 .../OOZIE/4.0.0.2.0/configuration/oozie-env.xml |  35 +-
 .../4.0.0.2.0/configuration/oozie-log4j.xml     |   5 +-
 .../4.0.0.2.0/configuration/oozie-site.xml      |  87 ++-
 .../OOZIE/4.2.0.2.3/configuration/oozie-env.xml |   5 +-
 .../4.2.0.2.3/configuration/oozie-log4j.xml     |   5 +-
 .../4.2.0.2.3/configuration/oozie-site.xml      |  48 +-
 .../PIG/0.12.0.2.0/configuration/pig-env.xml    |   4 +-
 .../PIG/0.12.0.2.0/configuration/pig-log4j.xml  |   5 +-
 .../0.12.0.2.0/configuration/pig-properties.xml |   5 +-
 .../PXF/3.0.0/configuration/pxf-profiles.xml    |   8 +-
 .../configuration/pxf-public-classpath.xml      |   5 +-
 .../PXF/3.0.0/configuration/pxf-site.xml        |  14 +-
 .../0.4.0/configuration/admin-properties.xml    | 110 ++--
 .../RANGER/0.4.0/configuration/ranger-env.xml   |  73 ++-
 .../RANGER/0.4.0/configuration/ranger-site.xml  |  24 +-
 .../0.4.0/configuration/usersync-properties.xml |  58 +-
 .../0.5.0/configuration/admin-properties.xml    |  48 +-
 .../0.5.0/configuration/ranger-admin-site.xml   | 195 ++++---
 .../RANGER/0.5.0/configuration/ranger-env.xml   |  36 +-
 .../RANGER/0.5.0/configuration/ranger-site.xml  |  24 +-
 .../0.5.0/configuration/ranger-ugsync-site.xml  | 170 ++++--
 .../0.5.0/configuration/usersync-properties.xml |  36 +-
 .../RANGER/0.6.0/configuration/admin-log4j.xml  |  26 +-
 .../0.6.0/configuration/admin-properties.xml    |  12 +-
 .../0.6.0/configuration/ranger-admin-site.xml   |  87 +--
 .../RANGER/0.6.0/configuration/ranger-env.xml   |  17 +-
 .../0.6.0/configuration/ranger-tagsync-site.xml |  84 +--
 .../0.6.0/configuration/ranger-ugsync-site.xml  |  45 +-
 .../tagsync-application-properties.xml          |  20 +-
 .../0.6.0/configuration/tagsync-log4j.xml       |  26 +-
 .../0.6.0/configuration/usersync-log4j.xml      |  26 +-
 .../0.5.0.2.3/configuration/dbks-site.xml       |  41 +-
 .../0.5.0.2.3/configuration/kms-env.xml         |  22 +-
 .../0.5.0.2.3/configuration/kms-log4j.xml       |   8 +-
 .../0.5.0.2.3/configuration/kms-properties.xml  |  52 +-
 .../0.5.0.2.3/configuration/kms-site.xml        |  56 +-
 .../configuration/ranger-kms-audit.xml          |  53 +-
 .../configuration/ranger-kms-policymgr-ssl.xml  |  21 +-
 .../configuration/ranger-kms-security.xml       |  19 +-
 .../0.5.0.2.3/configuration/ranger-kms-site.xml |  28 +-
 .../0.60.0.2.2/configuration/slider-client.xml  |   4 -
 .../0.60.0.2.2/configuration/slider-env.xml     |   6 +-
 .../0.60.0.2.2/configuration/slider-log4j.xml   |   5 +-
 .../1.2.1/configuration/spark-defaults.xml      |  56 +-
 .../SPARK/1.2.1/configuration/spark-env.xml     |  26 +-
 .../configuration/spark-log4j-properties.xml    |   3 +-
 .../configuration/spark-metrics-properties.xml  |   2 +
 .../configuration/spark-hive-site-override.xml  |  17 +-
 .../configuration/spark-thrift-sparkconf.xml    |  32 +-
 .../1.6.0/configuration/spark-defaults.xml      |  61 +-
 .../spark-thrift-fairscheduler.xml              |  22 +-
 .../configuration/spark-thrift-sparkconf.xml    |  74 ++-
 .../2.0.0/configuration/spark2-defaults.xml     |  32 +-
 .../SPARK2/2.0.0/configuration/spark2-env.xml   |  20 +-
 .../configuration/spark2-hive-site-override.xml |  17 +-
 .../configuration/spark2-log4j-properties.xml   |   3 +-
 .../configuration/spark2-metrics-properties.xml |   2 +
 .../spark2-thrift-fairscheduler.xml             |  22 +-
 .../configuration/spark2-thrift-sparkconf.xml   |  47 +-
 .../SQOOP/1.4.4.2.0/configuration/sqoop-env.xml |  11 +-
 .../1.4.4.2.0/configuration/sqoop-site.xml      |   4 +
 .../0.10.0/configuration/ranger-storm-audit.xml |  55 +-
 .../ranger-storm-plugin-properties.xml          | 106 ++--
 .../ranger-storm-policymgr-ssl.xml              |  23 +-
 .../configuration/ranger-storm-security.xml     |  21 +-
 .../configuration/storm-cluster-log4j.xml       |  11 +-
 .../STORM/0.10.0/configuration/storm-env.xml    |  11 +-
 .../STORM/0.10.0/configuration/storm-site.xml   |  33 +-
 .../0.10.0/configuration/storm-worker-log4j.xml |  11 +-
 .../STORM/0.9.1/configuration/storm-env.xml     |  74 ++-
 .../STORM/0.9.1/configuration/storm-site.xml    | 193 ++++++-
 .../ranger-storm-plugin-properties.xml          | 157 +++--
 .../STORM/0.9.3/configuration/storm-env.xml     |   3 +-
 .../STORM/0.9.3/configuration/storm-site.xml    |  43 +-
 .../1.0.1/configuration/ranger-storm-audit.xml  |  24 +-
 .../STORM/1.0.1/configuration/storm-site.xml    |  19 +-
 .../TEZ/0.4.0.2.1/configuration/tez-env.xml     |   8 +-
 .../TEZ/0.4.0.2.1/configuration/tez-site.xml    |  84 +--
 .../configuration-mapred/mapred-env.xml         |  18 +-
 .../configuration-mapred/mapred-site.xml        | 132 +++--
 .../configuration/capacity-scheduler.xml        |  43 +-
 .../YARN/2.1.0.2.0/configuration/yarn-env.xml   |  29 +-
 .../YARN/2.1.0.2.0/configuration/yarn-log4j.xml |   5 +-
 .../YARN/2.1.0.2.0/configuration/yarn-site.xml  | 127 ++--
 .../0.6.0.2.5/configuration/zeppelin-config.xml | 309 +++++-----
 .../0.6.0.2.5/configuration/zeppelin-env.xml    |  41 +-
 .../ZOOKEEPER/3.4.5/configuration/zoo.cfg.xml   |  17 +-
 .../3.4.5/configuration/zookeeper-env.xml       |  18 +-
 .../3.4.5/configuration/zookeeper-log4j.xml     |   5 +-
 .../src/main/resources/configuration-schema.xsd | 135 +++++
 .../configurations-set-default-update-policy.sh |  15 +
 .../BIGTOP/0.8/configuration/cluster-env.xml    | 103 ++--
 .../services/FLUME/configuration/flume-conf.xml |   3 +-
 .../services/FLUME/configuration/flume-env.xml  |  10 +-
 .../FLUME/configuration/flume-log4j.xml         |   3 +-
 .../GANGLIA/configuration/ganglia-env.xml       |  26 +-
 .../services/HBASE/configuration/hbase-env.xml  |  25 +-
 .../HBASE/configuration/hbase-log4j.xml         |   5 +-
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml |  87 ++-
 .../services/HDFS/configuration/core-site.xml   |  74 +--
 .../services/HDFS/configuration/hadoop-env.xml  |  35 +-
 .../HDFS/configuration/hadoop-policy.xml        |  41 +-
 .../services/HDFS/configuration/hdfs-log4j.xml  |   5 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 149 +++--
 .../services/HIVE/configuration/hcat-env.xml    |   4 +-
 .../services/HIVE/configuration/hive-env.xml    |  31 +-
 .../HIVE/configuration/hive-exec-log4j.xml      |   5 +-
 .../services/HIVE/configuration/hive-log4j.xml  |   5 +-
 .../services/HIVE/configuration/hive-site.xml   | 237 +++++---
 .../services/HIVE/configuration/webhcat-env.xml |   4 +-
 .../HIVE/configuration/webhcat-site.xml         |  73 ++-
 .../services/OOZIE/configuration/oozie-env.xml  |  19 +-
 .../OOZIE/configuration/oozie-log4j.xml         |   5 +-
 .../services/OOZIE/configuration/oozie-site.xml |  84 ++-
 .../0.8/services/PIG/configuration/pig-env.xml  |   4 +-
 .../services/PIG/configuration/pig-log4j.xml    |   5 +-
 .../PIG/configuration/pig-properties.xml        |   5 +-
 .../YARN/configuration-mapred/mapred-env.xml    |  12 +-
 .../YARN/configuration-mapred/mapred-site.xml   | 129 +++--
 .../YARN/configuration/capacity-scheduler.xml   |  43 +-
 .../services/YARN/configuration/yarn-env.xml    |  21 +-
 .../services/YARN/configuration/yarn-log4j.xml  |   5 +-
 .../services/YARN/configuration/yarn-site.xml   | 147 +++--
 .../ZOOKEEPER/configuration/zookeeper-env.xml   |  20 +-
 .../ZOOKEEPER/configuration/zookeeper-log4j.xml |   5 +-
 .../GLUSTERFS/configuration/core-site.xml       |  43 +-
 .../GLUSTERFS/configuration/hadoop-env.xml      |  38 +-
 .../services/HBASE/configuration/hbase-site.xml |  96 ++-
 .../services/HDFS/configuration/core-site.xml   |  70 ++-
 .../services/HDFS/configuration/global.xml      |  86 ++-
 .../HDFS/configuration/hadoop-policy.xml        |  41 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 354 +++++++-----
 .../services/HIVE/configuration/hive-site.xml   | 218 ++++---
 .../services/OOZIE/configuration/oozie-site.xml |  81 ++-
 .../PIG/configuration/pig-properties.xml        |   7 +-
 .../YARN/configuration-mapred/mapred-site.xml   |  87 +--
 .../YARN/configuration/capacity-scheduler.xml   |  43 +-
 .../services/YARN/configuration/yarn-env.xml    |  19 +-
 .../services/YARN/configuration/yarn-site.xml   | 147 +++--
 .../HDP/2.0.6/configuration/cluster-env.xml     | 386 +++++++------
 .../services/OOZIE/configuration/oozie-env.xml  |  11 +-
 .../FALCON/configuration/falcon-env.xml         |  17 +
 .../configuration/falcon-runtime.properties.xml |  21 +-
 .../configuration/falcon-startup.properties.xml | 121 +++-
 .../FALCON/configuration/oozie-site.xml         |  34 +-
 .../GLUSTERFS/configuration/core-site.xml       |  33 +-
 .../GLUSTERFS/configuration/hadoop-env.xml      |  46 +-
 .../services/HBASE/configuration/hbase-site.xml |  96 ++-
 .../services/HIVE/configuration/hive-site.xml   | 218 ++++---
 .../services/OOZIE/configuration/oozie-site.xml |  81 ++-
 .../PIG/configuration/pig-properties.xml        |   7 +-
 .../services/STORM/configuration/storm-env.xml  |  13 +-
 .../services/STORM/configuration/storm-site.xml | 189 +++++-
 .../services/TEZ/configuration/tez-env.xml      |   5 +-
 .../services/TEZ/configuration/tez-site.xml     |  84 +--
 .../YARN/configuration-mapred/mapred-site.xml   |  87 +--
 .../YARN/configuration-mapred/ssl-client.xml    | 101 ++--
 .../YARN/configuration-mapred/ssl-server.xml    | 121 ++--
 .../YARN/configuration/capacity-scheduler.xml   |  42 +-
 .../services/YARN/configuration/yarn-env.xml    |  19 +-
 .../services/YARN/configuration/yarn-site.xml   | 147 +++--
 .../FALCON/configuration/oozie-site.xml         |  38 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  10 +-
 .../services/HIVE/configuration/hive-site.xml   | 241 +++++---
 .../services/OOZIE/configuration/oozie-site.xml |  78 ++-
 .../PIG/configuration/pig-properties.xml        |   5 +-
 .../services/YARN/configuration/yarn-env.xml    |   9 +-
 .../services/YARN/configuration/yarn-site.xml   |  30 +-
 .../HDP/2.2/configuration/cluster-env.xml       |   1 -
 .../configuration/falcon-startup.properties.xml |  50 +-
 .../FALCON/configuration/oozie-site.xml         |  24 +-
 .../services/HBASE/configuration/hbase-env.xml  |  21 +-
 .../services/HBASE/configuration/hbase-site.xml |  53 +-
 .../ranger-hbase-plugin-properties.xml          | 162 +++---
 .../services/HDFS/configuration/core-site.xml   |  18 +-
 .../services/HDFS/configuration/hadoop-env.xml  |  14 +-
 .../services/HDFS/configuration/hdfs-log4j.xml  |   5 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  23 +-
 .../ranger-hdfs-plugin-properties.xml           | 530 +++++++++--------
 .../services/HIVE/configuration/hive-env.xml    |  19 +-
 .../services/HIVE/configuration/hive-site.xml   | 441 ++++++++++----
 .../HIVE/configuration/hiveserver2-site.xml     |  18 +-
 .../ranger-hive-plugin-properties.xml           | 160 ++---
 .../HIVE/configuration/webhcat-site.xml         |  49 +-
 .../ranger-knox-plugin-properties.xml           |   6 +-
 .../services/OOZIE/configuration/oozie-env.xml  |   4 +-
 .../services/OOZIE/configuration/oozie-site.xml |  19 +-
 .../services/STORM/configuration/storm-site.xml |  14 +-
 .../2.2/services/TEZ/configuration/tez-site.xml | 141 +++--
 .../YARN/configuration-mapred/mapred-env.xml    |   5 +-
 .../YARN/configuration-mapred/mapred-site.xml   |  55 +-
 .../YARN/configuration/capacity-scheduler.xml   |  13 +-
 .../services/YARN/configuration/yarn-env.xml    |   3 +-
 .../services/YARN/configuration/yarn-site.xml   | 167 +++++-
 .../services/ECS/configuration/core-site.xml    | 219 +++----
 .../services/ECS/configuration/hadoop-env.xml   |  16 +-
 .../services/ECS/configuration/hdfs-site.xml    |   8 +-
 .../services/HBASE/configuration/hbase-env.xml  |   4 +-
 .../services/HBASE/configuration/hbase-site.xml |  10 +-
 .../services/TEZ/configuration/tez-site.xml     |   6 +-
 .../YARN/configuration-mapred/mapred-site.xml   |   9 +-
 .../services/YARN/configuration/yarn-site.xml   |   7 +-
 .../2.3.GlusterFS/configuration/cluster-env.xml |   1 -
 .../ACCUMULO/configuration/accumulo-log4j.xml   |  23 +-
 .../GLUSTERFS/configuration/core-site.xml       | 102 ++--
 .../GLUSTERFS/configuration/hadoop-env.xml      |  42 +-
 .../services/HBASE/configuration/hbase-site.xml | 101 +++-
 .../services/HIVE/configuration/hive-site.xml   | 166 ++++--
 .../HIVE/configuration/webhcat-site.xml         |  60 +-
 .../services/OOZIE/configuration/oozie-site.xml |  89 ++-
 .../services/TEZ/configuration/tez-site.xml     |  19 +-
 .../YARN/configuration-mapred/mapred-site.xml   |  87 +--
 .../YARN/configuration/capacity-scheduler.xml   |  17 +-
 .../services/YARN/configuration/yarn-site.xml   | 133 ++++-
 .../ACCUMULO/configuration/accumulo-env.xml     |   4 +-
 .../ACCUMULO/configuration/accumulo-log4j.xml   |  23 +-
 .../ACCUMULO/configuration/accumulo-site.xml    |   4 +-
 .../FALCON/configuration/falcon-env.xml         |   3 +
 .../configuration/falcon-startup.properties.xml |   7 +-
 .../services/HBASE/configuration/hbase-env.xml  |   4 +-
 .../services/HBASE/configuration/hbase-site.xml |  12 +
 .../HBASE/configuration/ranger-hbase-audit.xml  |  51 +-
 .../ranger-hbase-plugin-properties.xml          | 107 ++--
 .../ranger-hbase-policymgr-ssl.xml              |  97 ++--
 .../configuration/ranger-hbase-security.xml     |  23 +-
 .../services/HDFS/configuration/hadoop-env.xml  |  10 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  18 +-
 .../HDFS/configuration/ranger-hdfs-audit.xml    |  51 +-
 .../ranger-hdfs-plugin-properties.xml           |  82 ++-
 .../configuration/ranger-hdfs-policymgr-ssl.xml |  97 ++--
 .../HDFS/configuration/ranger-hdfs-security.xml |  25 +-
 .../services/HIVE/configuration/hive-env.xml    |   5 +-
 .../services/HIVE/configuration/hive-site.xml   |  14 +-
 .../HIVE/configuration/ranger-hive-audit.xml    |  53 +-
 .../ranger-hive-plugin-properties.xml           | 109 ++--
 .../configuration/ranger-hive-policymgr-ssl.xml |  23 +-
 .../HIVE/configuration/ranger-hive-security.xml |  22 +-
 .../HIVE/configuration/webhcat-site.xml         |  10 +-
 .../ranger-kafka-policymgr-ssl.xml              |   9 +-
 .../KNOX/configuration/knoxsso-topology.xml     |  16 +-
 .../KNOX/configuration/ranger-knox-audit.xml    |  53 +-
 .../ranger-knox-plugin-properties.xml           | 104 ++--
 .../configuration/ranger-knox-policymgr-ssl.xml |  23 +-
 .../KNOX/configuration/ranger-knox-security.xml |  21 +-
 .../services/OOZIE/configuration/oozie-env.xml  |   5 +-
 .../PIG/configuration/pig-properties.xml        |   5 +-
 .../RANGER/configuration/ranger-ugsync-site.xml |  18 +-
 .../configuration/ranger-kms-policymgr-ssl.xml  |   9 +-
 .../ranger-storm-policymgr-ssl.xml              |   9 +-
 .../configuration/ranger-storm-security.xml     |   6 +-
 .../services/STORM/configuration/storm-site.xml |  15 +-
 .../2.3/services/TEZ/configuration/tez-site.xml |  28 +-
 .../YARN/configuration-mapred/mapred-site.xml   |  15 +-
 .../YARN/configuration/capacity-scheduler.xml   |   6 +-
 .../YARN/configuration/ranger-yarn-audit.xml    |  55 +-
 .../ranger-yarn-plugin-properties.xml           |  27 +-
 .../configuration/ranger-yarn-policymgr-ssl.xml |  21 +-
 .../YARN/configuration/ranger-yarn-security.xml |  19 +-
 .../services/YARN/configuration/yarn-env.xml    |   5 +-
 .../services/YARN/configuration/yarn-log4j.xml  |   5 +-
 .../services/YARN/configuration/yarn-site.xml   |  47 +-
 .../services/YARN/configuration/yarn-site.xml   |  26 +-
 .../configuration/application-properties.xml    |  59 +-
 .../services/ATLAS/configuration/atlas-env.xml  |  23 +
 .../configuration/falcon-startup.properties.xml |   7 +-
 .../services/HBASE/configuration/hbase-site.xml |   6 +-
 .../HBASE/configuration/ranger-hbase-audit.xml  |  24 +-
 .../HDFS/configuration/ranger-hdfs-audit.xml    |  24 +-
 .../HIVE/configuration/beeline-log4j2.xml       |  12 +-
 .../services/HIVE/configuration/hive-env.xml    |   5 +-
 .../HIVE/configuration/hive-exec-log4j2.xml     |  12 +-
 .../HIVE/configuration/hive-interactive-env.xml |  25 +-
 .../configuration/hive-interactive-site.xml     | 151 +++--
 .../services/HIVE/configuration/hive-log4j2.xml |  12 +-
 .../services/HIVE/configuration/hive-site.xml   |  28 +-
 .../HIVE/configuration/hivemetastore-site.xml   |  11 +-
 .../HIVE/configuration/hiveserver2-site.xml     |  12 +-
 .../HIVE/configuration/llap-cli-log4j2.xml      |  11 +-
 .../HIVE/configuration/llap-daemon-log4j.xml    |  11 +-
 .../HIVE/configuration/ranger-hive-audit.xml    |  24 +-
 .../HIVE/configuration/tez-interactive-site.xml | 215 ++++---
 .../KAFKA/configuration/ranger-kafka-audit.xml  |  24 +-
 .../KNOX/configuration/knoxsso-topology.xml     |  16 +-
 .../KNOX/configuration/ranger-knox-audit.xml    |  24 +-
 .../configuration/ranger-tagsync-site.xml       |   8 +-
 .../RANGER/configuration/ranger-ugsync-site.xml |  23 +-
 .../RANGER_KMS/configuration/dbks-site.xml      |  33 +-
 .../RANGER_KMS/configuration/kms-env.xml        |   8 +-
 .../configuration/ranger-kms-audit.xml          |  30 +-
 .../ranger-storm-policymgr-ssl.xml              |   9 +-
 .../configuration/ranger-storm-security.xml     |   6 +-
 .../services/STORM/configuration/storm-site.xml |  15 +-
 .../YARN/configuration/capacity-scheduler.xml   |   8 +-
 .../YARN/configuration/ranger-yarn-audit.xml    |  24 +-
 .../services/YARN/configuration/yarn-site.xml   |  14 +-
 .../ZEPPELIN/configuration/zeppelin-env.xml     |   6 +-
 .../HDPWIN/2.1/configuration/cluster-env.xml    |  17 +-
 .../AMBARI_METRICS/configuration/ams-env.xml    |  15 +-
 .../configuration/ams-hbase-env.xml             |  11 +-
 .../configuration/ams-hbase-site.xml            |   4 +
 .../AMBARI_METRICS/configuration/ams-log4j.xml  |   5 +-
 .../AMBARI_METRICS/configuration/ams-site.xml   |   2 +
 .../FALCON/configuration/falcon-env.xml         |  14 +-
 .../services/FLUME/configuration/flume-conf.xml |   3 +-
 .../services/FLUME/configuration/flume-env.xml  |   3 +-
 .../services/HBASE/configuration/hbase-env.xml  |  11 +-
 .../services/HBASE/configuration/hbase-site.xml |   4 +
 .../services/HDFS/configuration/core-site.xml   |  10 +-
 .../services/HDFS/configuration/hadoop-env.xml  |  17 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  25 +-
 .../services/HIVE/configuration/hcat-env.xml    |   3 +-
 .../services/HIVE/configuration/hive-env.xml    |  25 +-
 .../services/HIVE/configuration/hive-site.xml   | 125 ++--
 .../services/HIVE/configuration/webhcat-env.xml |   3 +-
 .../HIVE/configuration/webhcat-site.xml         |  26 +-
 .../services/OOZIE/configuration/oozie-env.xml  |  15 +-
 .../services/OOZIE/configuration/oozie-site.xml |  13 +-
 .../services/SQOOP/configuration/sqoop-env.xml  |   6 +-
 .../services/STORM/configuration/storm-env.xml  |  11 +-
 .../services/STORM/configuration/storm-site.xml |   5 +-
 .../2.1/services/TEZ/configuration/tez-env.xml  |   8 +-
 .../2.1/services/TEZ/configuration/tez-site.xml |   4 +-
 .../YARN/configuration-mapred/mapred-env.xml    |  10 +-
 .../YARN/configuration-mapred/mapred-site.xml   |  10 +-
 .../services/YARN/configuration/yarn-env.xml    |   9 +-
 .../services/YARN/configuration/yarn-site.xml   |  37 +-
 .../ZOOKEEPER/configuration/zoo.cfg.xml         |   5 +-
 .../ZOOKEEPER/configuration/zookeeper-env.xml   |   9 +-
 .../configuration/falcon-startup.properties.xml |  50 +-
 .../services/HBASE/configuration/hbase-env.xml  |   5 +-
 .../services/HBASE/configuration/hbase-site.xml |  28 +-
 .../services/HDFS/configuration/core-site.xml   |  13 +-
 .../services/HDFS/configuration/hadoop-env.xml  |   4 +-
 .../services/HDFS/configuration/hdfs-log4j.xml  |   5 +-
 .../services/HDFS/configuration/hdfs-site.xml   |   9 +-
 .../services/HIVE/configuration/hive-env.xml    |  23 +-
 .../services/HIVE/configuration/hive-site.xml   | 451 ++++++++++-----
 .../HIVE/configuration/hiveserver2-site.xml     |  13 +-
 .../HIVE/configuration/webhcat-site.xml         |  39 +-
 .../KNOX/configuration/gateway-site.xml         |  29 +-
 .../services/KNOX/configuration/knox-env.xml    |  33 +-
 .../ranger-knox-plugin-properties.xml           |   6 +-
 .../services/OOZIE/configuration/oozie-site.xml |  19 +-
 .../SLIDER/configurations/slider-client.xml     |   6 +-
 .../services/STORM/configuration/storm-site.xml |  33 +-
 .../2.2/services/TEZ/configuration/tez-site.xml | 123 ++--
 .../YARN/configuration-mapred/mapred-site.xml   |  39 +-
 .../YARN/configuration/capacity-scheduler.xml   |  21 +-
 .../services/YARN/configuration/yarn-env.xml    |   3 +-
 .../services/YARN/configuration/yarn-site.xml   | 140 ++++-
 .../configuration/falcon-startup.properties.xml |   7 +-
 .../services/HBASE/configuration/hbase-site.xml |  12 +
 .../services/HDFS/configuration/hdfs-site.xml   |  10 +-
 .../HIVE/configuration/webhcat-site.xml         |   6 +-
 .../services/OOZIE/configuration/oozie-env.xml  |  15 +-
 .../services/OOZIE/configuration/oozie-site.xml |  23 +-
 .../services/STORM/configuration/storm-site.xml |  33 +-
 .../2.3/services/TEZ/configuration/tez-site.xml |  24 +-
 .../YARN/configuration/capacity-scheduler.xml   |  12 +-
 .../services/HDFS/configuration/core-site.xml   |  27 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  44 +-
 .../UpgradeResourceProviderHDP22Test.java       |   2 +-
 .../internal/UpgradeResourceProviderTest.java   | 131 +++--
 .../stack/StackManagerCommonServicesTest.java   |   2 +-
 .../server/stack/StackManagerMiscTest.java      |   8 +-
 .../ambari/server/stack/StackManagerTest.java   |   8 +-
 .../ambari/server/state/PropertyInfoTest.java   |  31 +-
 .../server/state/ServicePropertiesTest.java     |  89 +++
 .../0.11.0.2.0.5.0/configuration/hive-site.xml  | 121 ++--
 .../HIVE/configuration/hive-site.xml            | 121 ++--
 .../services/HDFS/configuration/hbase-site.xml  |  30 +
 .../services/HDFS/configuration/hdfs-site.xml   | 345 ++++++-----
 .../MAPREDUCE/configuration/hbase-site.xml      |  30 +
 .../MAPREDUCE/configuration/hdfs-site.xml       | 345 ++++++-----
 .../MAPREDUCE/configuration/mapred-site.xml     | 348 ++++++-----
 .../YARN/configuration/capacity-scheduler.xml   |  12 +-
 .../services/YARN/configuration/yarn-site.xml   |  25 +-
 .../HBASE/1.0/configuration/hbase-site.xml      |  30 +
 .../HDFS/1.0/configuration/hbase-site.xml       |  30 +
 .../HDFS/1.0/configuration/hdfs-site.xml        | 345 ++++++-----
 .../MAPREDUCE/1.0/configuration/hbase-site.xml  |  30 +
 .../MAPREDUCE/1.0/configuration/hdfs-site.xml   | 345 ++++++-----
 .../MAPREDUCE/1.0/configuration/mapred-site.xml | 348 ++++++-----
 .../services/HDFS/configuration/hbase-site.xml  |  30 +
 .../services/HDFS/configuration/hdfs-site.xml   | 345 ++++++-----
 .../MAPREDUCE/configuration/hbase-site.xml      |  30 +
 .../MAPREDUCE/configuration/hdfs-site.xml       | 345 ++++++-----
 .../MAPREDUCE/configuration/mapred-site.xml     | 348 ++++++-----
 .../services/HBASE/configuration/hbase-site.xml |  30 +
 .../0.2/services/HDFS/configuration/global.xml  |  56 +-
 .../services/HDFS/configuration/hadoop-env.xml  |  41 +-
 .../services/HDFS/configuration/hbase-site.xml  |  30 +
 .../services/HDFS/configuration/hdfs-log4j.xml  |   7 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 345 ++++++-----
 .../services/MAPREDUCE/configuration/global.xml |  64 +-
 .../MAPREDUCE/configuration/hbase-site.xml      |  30 +
 .../MAPREDUCE/configuration/hdfs-site.xml       | 345 ++++++-----
 .../MAPREDUCE/configuration/mapred-site.xml     | 348 ++++++-----
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml | 137 +++--
 .../services/HDFS/configuration/core-site.xml   |  94 +--
 .../HDFS/configuration/hadoop-policy.xml        |  47 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 409 +++++++------
 .../services/HIVE/configuration/hive-site.xml   |  69 ++-
 .../configuration/capacity-scheduler.xml        |  61 +-
 .../configuration/mapred-queue-acls.xml         |  14 +-
 .../MAPREDUCE/configuration/mapred-site.xml     | 572 ++++++++++--------
 .../services/OOZIE/configuration/oozie-site.xml | 321 +++++-----
 .../WEBHCAT/configuration/webhcat-site.xml      |  71 ++-
 .../services/GANGLIA/configuration/global.xml   |  16 +-
 .../services/HBASE/configuration/global.xml     | 102 +++-
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml | 146 +++--
 .../services/HCATALOG/configuration/global.xml  |  10 +-
 .../services/HDFS/configuration/core-site.xml   |  94 +--
 .../services/HDFS/configuration/global.xml      |  90 ++-
 .../HDFS/configuration/hadoop-policy.xml        |  47 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 412 +++++++------
 .../services/HIVE/configuration/global.xml      |  74 ++-
 .../services/HIVE/configuration/hive-site.xml   | 114 ++--
 .../1.3.0/services/HUE/configuration/global.xml |   6 +-
 .../services/HUE/configuration/hue-site.xml     | 166 ++++--
 .../configuration/capacity-scheduler.xml        |  61 +-
 .../services/MAPREDUCE/configuration/global.xml |  64 +-
 .../configuration/mapred-queue-acls.xml         |  14 +-
 .../MAPREDUCE/configuration/mapred-site.xml     | 578 ++++++++++---------
 .../services/OOZIE/configuration/global.xml     |  46 +-
 .../services/OOZIE/configuration/oozie-site.xml | 319 +++++-----
 .../WEBHCAT/configuration/webhcat-site.xml      |  71 ++-
 .../services/ZOOKEEPER/configuration/global.xml |  24 +-
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml | 133 +++--
 .../services/HCFS/configuration/core-site.xml   |  94 +--
 .../HCFS/configuration/hadoop-policy.xml        |  47 +-
 .../services/HCFS/configuration/hdfs-site.xml   | 409 +++++++------
 .../services/HDFS/configuration/core-site.xml   |  94 +--
 .../HDFS/configuration/hadoop-policy.xml        |  47 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 409 +++++++------
 .../services/HIVE/configuration/hive-site.xml   |  69 ++-
 .../configuration/capacity-scheduler.xml        |  61 +-
 .../configuration/mapred-queue-acls.xml         |  14 +-
 .../MAPREDUCE/configuration/mapred-site.xml     | 567 ++++++++++--------
 .../services/OOZIE/configuration/oozie-site.xml | 319 +++++-----
 .../WEBHCAT/configuration/webhcat-site.xml      |  71 ++-
 .../services/HDFS/configuration/hdfs-log4j.xml  |  11 +-
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml | 141 +++--
 .../services/HDFS/configuration/core-site.xml   |  90 +--
 .../services/HDFS/configuration/global.xml      |  90 ++-
 .../HDFS/configuration/hadoop-policy.xml        |  41 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 365 ++++++------
 .../services/HIVE/configuration/hive-site.xml   |  69 ++-
 .../MAPREDUCE2/configuration/global.xml         |  11 +-
 .../configuration/mapred-queue-acls.xml         |  14 +-
 .../MAPREDUCE2/configuration/mapred-site.xml    | 278 +++++----
 .../services/OOZIE/configuration/oozie-site.xml | 319 +++++-----
 .../WEBHCAT/configuration/webhcat-site.xml      |  71 ++-
 .../YARN/configuration/capacity-scheduler.xml   |  36 +-
 .../services/YARN/configuration/global.xml      |  15 +-
 .../services/YARN/configuration/yarn-site.xml   |  96 +--
 .../services/HBASE/configuration/global.xml     | 102 +++-
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml | 143 +++--
 .../services/HDFS/configuration/core-site.xml   |  84 +--
 .../services/HDFS/configuration/global.xml      |  86 ++-
 .../HDFS/configuration/hadoop-policy.xml        |  41 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 350 ++++++-----
 .../services/HIVE/configuration/hive-site.xml   | 123 ++--
 .../MAPREDUCE2/configuration/global.xml         |  11 +-
 .../configuration/mapred-queue-acls.xml         |  14 +-
 .../MAPREDUCE2/configuration/mapred-site.xml    | 146 +++--
 .../services/OOZIE/configuration/oozie-site.xml | 319 +++++-----
 .../YARN/configuration/capacity-scheduler.xml   |  36 +-
 .../services/YARN/configuration/global.xml      |  21 +-
 .../services/YARN/configuration/yarn-site.xml   | 122 ++--
 .../services/ZOOKEEPER/configuration/global.xml |  24 +-
 .../ZOOKEEPER/configuration/zoo.cfg.xml         |  17 +-
 .../services/FLUME/configuration/flume-conf.xml |   3 +-
 .../services/FLUME/configuration/flume-env.xml  |   7 +-
 .../FLUME/configuration/flume-log4j.xml         |   3 +-
 .../services/FLUME/configuration/flume-conf.xml |   3 +-
 .../services/FLUME/configuration/flume-env.xml  |   7 +-
 .../FLUME/configuration/flume-log4j.xml         |   3 +-
 .../services/YARN/configuration/yarn-site.xml   |  37 +-
 .../services/HBASE/configuration/global.xml     |  98 +++-
 .../HBASE/configuration/hbase-policy.xml        |   9 +-
 .../services/HBASE/configuration/hbase-site.xml | 138 +++--
 .../services/HDFS/configuration/core-site.xml   |  71 ++-
 .../services/HDFS/configuration/global.xml      |  88 ++-
 .../HDFS/configuration/hadoop-policy.xml        |  41 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 209 ++++---
 .../services/HIVE/configuration/hive-site.xml   | 121 ++--
 .../services/YARN/configuration/yarn-site.xml   |  23 +-
 .../services/HBASE/configuration/hbase-site.xml | 138 +++--
 .../services/HDFS/configuration/hdfs-site.xml   |  16 +-
 .../PIG/configuration/pig-properties.xml        |  11 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  16 +-
 .../0.2/services/HDFS/configuration/global.xml  |  56 +-
 .../services/HDFS/configuration/hadoop-env.xml  |  41 +-
 .../services/HDFS/configuration/hbase-site.xml  |  30 +
 .../services/HDFS/configuration/hdfs-log4j.xml  |  11 +-
 .../services/HDFS/configuration/hdfs-site.xml   | 345 ++++++-----
 .../services/HDFS/configuration/hdfs-site.xml   |  16 +-
 601 files changed, 23197 insertions(+), 13410 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-funtest/src/test/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml b/ambari-funtest/src/test/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
index c40fbd0..0844ec5 100644
--- a/ambari-funtest/src/test/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
+++ b/ambari-funtest/src/test/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
@@ -33,7 +33,7 @@
     <value>true</value>
     <description>to enable dfs append</description>
     <final>true</final>
-    <deletable>false</deletable>
+    <deleted>false</deleted>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-funtest/src/test/resources/stacks/OTHER/1.0/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/src/test/resources/stacks/OTHER/1.0/services/HDFS/configuration/hdfs-site.xml b/ambari-funtest/src/test/resources/stacks/OTHER/1.0/services/HDFS/configuration/hdfs-site.xml
index c40fbd0..0844ec5 100644
--- a/ambari-funtest/src/test/resources/stacks/OTHER/1.0/services/HDFS/configuration/hdfs-site.xml
+++ b/ambari-funtest/src/test/resources/stacks/OTHER/1.0/services/HDFS/configuration/hdfs-site.xml
@@ -33,7 +33,7 @@
     <value>true</value>
     <description>to enable dfs append</description>
     <final>true</final>
-    <deletable>false</deletable>
+    <deleted>false</deleted>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index c54fe3f..f0928cf 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
@@ -256,7 +256,7 @@ public class AmbariMetaInfo {
     readServerVersion();
 
     stackManager = stackManagerFactory.create(stackRoot, commonServicesRoot,
-        osFamily);
+        osFamily, false);
 
     getCustomActionDefinitions(customActionRoot);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
index fb3ae69..b2c21b9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
@@ -82,9 +82,10 @@ import org.apache.ambari.server.serveraction.upgrades.UpdateDesiredStackAction;
 import org.apache.ambari.server.stack.MasterHostResolver;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
-import org.apache.ambari.server.state.Config;
 import org.apache.ambari.server.state.ConfigHelper;
 import org.apache.ambari.server.state.DesiredConfig;
+import org.apache.ambari.server.state.PropertyInfo;
+import org.apache.ambari.server.state.PropertyUpgradeBehavior;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
 import org.apache.ambari.server.state.ServiceInfo;
@@ -990,7 +991,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
    * @throws AmbariException
    */
   public void applyStackAndProcessConfigurations(String stackName, Cluster cluster, String version, Direction direction, UpgradePack upgradePack, String userName)
-    throws AmbariException {
+      throws AmbariException {
     RepositoryVersionEntity targetRve = s_repoVersionDAO.findByStackNameAndVersion(stackName, version);
     if (null == targetRve) {
       LOG.info("Could not find version entity for {}; not setting new configs", version);
@@ -1022,18 +1023,12 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
         break;
     }
 
-    Map<String, Map<String, String>> newConfigurationsByType = null;
+    Map<String, Map<String, String>> updatedConfigurationsByType = null;
     ConfigHelper configHelper = getManagementController().getConfigHelper();
 
     if (direction == Direction.UPGRADE) {
-      // populate a map of default configurations for the old stack (this is
-      // used when determining if a property has been customized and should be
-      // overriden with the new stack value)
-      Map<String, Map<String, String>> oldStackDefaultConfigurationsByType = configHelper.getDefaultProperties(
-          currentStackId, cluster);
-
       // populate a map with default configurations from the new stack
-      newConfigurationsByType = configHelper.getDefaultProperties(targetStackId, cluster);
+      Map<String, Set<PropertyInfo>> newConfigurationsByType = configHelper.getDefaultProperties(targetStackId, cluster);
 
       // We want to skip updating config-types of services that are not in the upgrade pack.
       // Care should be taken as some config-types could be in services that are in and out
@@ -1083,83 +1078,52 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
         }
       }
 
-      // now that the map has been populated with the default configurations
-      // from the stack/service, overlay the existing configurations on top
+      // overlay new configuration on top of existing configurations
+
+      // create map of existing configurations
+      Map<String, Map<String, String>> existingPropertiesByType = new HashMap<>();
       Map<String, DesiredConfig> existingDesiredConfigurationsByType = cluster.getDesiredConfigs();
-      for (Map.Entry<String, DesiredConfig> existingEntry : existingDesiredConfigurationsByType.entrySet()) {
-        String configurationType = existingEntry.getKey();
-        if(skipConfigTypes.contains(configurationType)) {
-          LOG.info("RU: Skipping config-type {} as upgrade-pack contains no updates to its service", configurationType);
+      for (String configurationType : existingDesiredConfigurationsByType.keySet()) {
+        if (skipConfigTypes.contains(configurationType)) {
+          LOG.info("RU: Skipping config-configurationType {} as upgrade-pack contains no updates to its service", configurationType);
           continue;
         }
+        Map<String, String> existingProperties = cluster.getDesiredConfigByType(configurationType).getProperties();
+        existingPropertiesByType.put(configurationType, existingProperties);
+      }
 
-        // NPE sanity, although shouldn't even happen since we are iterating
-        // over the desired configs to start with
-        Config currentClusterConfig = cluster.getDesiredConfigByType(configurationType);
-        if (null == currentClusterConfig) {
-          continue;
+      // for every existing configuration, see if an entry exists:
+      // - if it does not exist and marked as ADD_ON_UPGRADE, then add it
+      // - if it does exist and marked as DELETE_ON_UPGRADE, then remove it
+      // - if it does exist and marked as CHANGE_ON_UPGRADE, then update it
+      for (Map.Entry<String, Set<PropertyInfo>> newPropertyEntry : newConfigurationsByType.entrySet()) {
+
+        String configurationType = newPropertyEntry.getKey();
+        Map<String, String> existingProperties = existingPropertiesByType.get(configurationType);
+        if (existingProperties == null) {
+          existingProperties = new HashMap<>();
+          existingPropertiesByType.put(configurationType, existingProperties);
         }
 
-        // get the existing configurations
-        Map<String, String> existingConfigurations = currentClusterConfig.getProperties();
+        for (PropertyInfo propertyInfo : newPropertyEntry.getValue()) {
 
-        // if the new stack configurations don't have the type, then simple add
-        // all of the existing in
-        Map<String, String> newDefaultConfigurations = newConfigurationsByType.get(
-            configurationType);
-        if (null == newDefaultConfigurations) {
-          newConfigurationsByType.put(configurationType, existingConfigurations);
-          continue;
-        } else {
-          // TODO, should we remove existing configs whose value is NULL even though they don't have a value in the new stack?
-
-          // Remove any configs in the new stack whose value is NULL, unless they currently exist and the value is not NULL.
-          Iterator<Map.Entry<String, String>> iter = newDefaultConfigurations.entrySet().iterator();
-          while (iter.hasNext()) {
-            Map.Entry<String, String> entry = iter.next();
-            if (entry.getValue() == null) {
-              iter.remove();
-            }
-          }
-        }
+          String propertyName = propertyInfo.getName();
+          String propertyValue = propertyInfo.getValue();
+          PropertyUpgradeBehavior propertyStackUpgradeBehavior = propertyInfo.getPropertyStackUpgradeBehavior();
 
-        // for every existing configuration, see if an entry exists; if it does
-        // not exist, then put it in the map, otherwise we'll have to compare
-        // the existing value to the original stack value to see if its been
-        // customized
-        for (Map.Entry<String, String> existingConfigurationEntry : existingConfigurations.entrySet()) {
-          String existingConfigurationKey = existingConfigurationEntry.getKey();
-          String existingConfigurationValue = existingConfigurationEntry.getValue();
-
-          // if there is already an entry, we now have to try to determine if
-          // the value was customized after stack installation
-          if (newDefaultConfigurations.containsKey(existingConfigurationKey)) {
-            String newDefaultConfigurationValue = newDefaultConfigurations.get(
-                existingConfigurationKey);
-            if (!StringUtils.equals(existingConfigurationValue, newDefaultConfigurationValue)) {
-              // the new default is different from the existing cluster value;
-              // only override the default value if the existing value differs
-              // from the original stack
-              Map<String, String> configurationTypeDefaultConfigurations = oldStackDefaultConfigurationsByType.get(
-                  configurationType);
-              if (null != configurationTypeDefaultConfigurations) {
-                String oldDefaultValue = configurationTypeDefaultConfigurations.get(
-                    existingConfigurationKey);
-                if (!StringUtils.equals(existingConfigurationValue, oldDefaultValue)) {
-                  // at this point, we've determined that there is a difference
-                  // between default values between stacks, but the value was
-                  // also customized, so keep the customized value
-                  newDefaultConfigurations.put(existingConfigurationKey,
-                      existingConfigurationValue);
-                }
-              }
+          if (!existingProperties.containsKey(propertyName) && propertyStackUpgradeBehavior.isAdd()) {
+            existingProperties.put(propertyName, propertyValue);
+          } else if (existingProperties.containsKey(propertyName)) {
+            if (propertyStackUpgradeBehavior.isDelete()) {
+              existingProperties.remove(propertyName);
+            } else if (propertyStackUpgradeBehavior.isChange()) {
+              existingProperties.put(propertyName, propertyValue);
             }
-          } else {
-            // there is no entry in the map, so add the existing key/value pair
-            newDefaultConfigurations.put(existingConfigurationKey, existingConfigurationValue);
           }
         }
       }
+
+      updatedConfigurationsByType = existingPropertiesByType;
     } else {
       // downgrade
       cluster.applyLatestConfigurations(cluster.getCurrentStackVersion());
@@ -1170,8 +1134,8 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
         new StackId(targetStack.getStackName(), targetStack.getStackVersion()), true);
 
     // !!! configs must be created after setting the stack version
-    if (null != newConfigurationsByType) {
-      configHelper.createConfigTypes(cluster, getManagementController(), newConfigurationsByType,
+    if (null != updatedConfigurationsByType) {
+      configHelper.createConfigTypes(cluster, getManagementController(), updatedConfigurationsByType,
           userName, "Configuration created for Upgrade");
     }
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
index 8a352bd..c224b56 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManager.java
@@ -25,6 +25,11 @@ import java.util.HashSet;
 import java.util.Map;
 
 import javax.annotation.Nullable;
+import javax.xml.XMLConstants;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
 
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.api.services.AmbariMetaInfo;
@@ -37,11 +42,13 @@ import org.apache.ambari.server.state.ServiceInfo;
 import org.apache.ambari.server.state.StackInfo;
 import org.apache.ambari.server.state.stack.OsFamily;
 import org.apache.ambari.server.state.stack.ServiceMetainfoXml;
+import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.inject.Inject;
 import com.google.inject.assistedinject.Assisted;
+import org.xml.sax.SAXException;
 
 
 /**
@@ -50,6 +57,7 @@ import com.google.inject.assistedinject.Assisted;
  */
 public class StackManager {
 
+  public static final String PROPERTY_SCHEMA_PATH = "configuration-schema.xsd";
   /**
    * Delimiter used for parent path string
    * Example:
@@ -100,14 +108,17 @@ public class StackManager {
   @Inject
   public StackManager(@Assisted("stackRoot") File stackRoot,
       @Assisted("commonServicesRoot") @Nullable File commonServicesRoot,
-      @Assisted OsFamily osFamily, MetainfoDAO metaInfoDAO,
+      @Assisted OsFamily osFamily, @Assisted boolean validate,
+                      MetainfoDAO metaInfoDAO,
       ActionMetadata actionMetadata, StackDAO stackDao)
       throws AmbariException {
 
     LOG.info("Initializing the stack manager...");
 
-    validateStackDirectory(stackRoot);
-    validateCommonServicesDirectory(commonServicesRoot);
+    if (validate) {
+      validateStackDirectory(stackRoot);
+      validateCommonServicesDirectory(commonServicesRoot);
+    }
 
     stackMap = new HashMap<String, StackInfo>();
     stackContext = new StackContext(metaInfoDAO, actionMetadata, osFamily);
@@ -277,6 +288,37 @@ public class StackManager {
           + " should be a directory with stack"
           + ", stackRoot = " + stackRootAbsPath);
     }
+    Validator validator = getPropertySchemaValidator();
+
+    validateAllPropertyXmlsInFolderRecursively(stackRoot, validator);
+  }
+
+  public static Validator getPropertySchemaValidator() throws AmbariException {
+    SchemaFactory factory =
+      SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+    Schema schema;
+    ClassLoader classLoader = StackManager.class.getClassLoader();
+    try {
+      schema = factory.newSchema(classLoader.getResource(PROPERTY_SCHEMA_PATH));
+    } catch (SAXException e) {
+      throw new AmbariException(String.format("Failed to parse property schema file %s", PROPERTY_SCHEMA_PATH), e);
+    }
+    return schema.newValidator();
+  }
+
+  public static void validateAllPropertyXmlsInFolderRecursively(File stackRoot, Validator validator) throws AmbariException {
+    Collection<File> files = FileUtils.listFiles(stackRoot, new String[]{"xml"}, true);
+    for (File file : files) {
+      try {
+        if (file.getParentFile().getName().contains("configuration")) {
+          validator.validate(new StreamSource(file));
+        }
+      } catch (Exception e) {
+        String msg = String.format("File %s didn't pass the validation. Error message is : %s", file.getAbsolutePath(), e.getMessage());
+        LOG.error(msg);
+        throw new AmbariException(msg);
+      }
+    }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManagerFactory.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManagerFactory.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManagerFactory.java
index 5aa2b5f..105b715 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManagerFactory.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackManagerFactory.java
@@ -44,5 +44,5 @@ public interface StackManagerFactory {
    */
   StackManager create(@Assisted("stackRoot") File stackRoot,
       @Nullable @Assisted("commonServicesRoot") File commonServicesRoot,
-      OsFamily osFamily);
+      OsFamily osFamily, boolean validate);
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
index a36df7b..59b2db2 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
@@ -1019,9 +1019,9 @@ public class ConfigHelper {
    *         default configurations.
    * @throws AmbariException
    */
-  public Map<String, Map<String, String>> getDefaultProperties(StackId stack, Cluster cluster)
+  public Map<String, Set<PropertyInfo>> getDefaultProperties(StackId stack, Cluster cluster)
       throws AmbariException {
-    Map<String, Map<String, String>> defaultPropertiesByType = new HashMap<String, Map<String, String>>();
+    Map<String, Set<PropertyInfo>> defaultPropertiesByType = new HashMap<String, Set<PropertyInfo>>();
 
     // populate the stack (non-service related) properties first
     Set<org.apache.ambari.server.state.PropertyInfo> stackConfigurationProperties = ambariMetaInfo.getStackProperties(
@@ -1031,11 +1031,10 @@ public class ConfigHelper {
       String type = ConfigHelper.fileNameToConfigType(stackDefaultProperty.getFilename());
 
       if (!defaultPropertiesByType.containsKey(type)) {
-        defaultPropertiesByType.put(type, new HashMap<String, String>());
+        defaultPropertiesByType.put(type, new HashSet<PropertyInfo>());
       }
 
-      defaultPropertiesByType.get(type).put(stackDefaultProperty.getName(),
-          stackDefaultProperty.getValue());
+      defaultPropertiesByType.get(type).add(stackDefaultProperty);
     }
 
     // for every installed service, populate the default service properties
@@ -1048,11 +1047,10 @@ public class ConfigHelper {
         String type = ConfigHelper.fileNameToConfigType(serviceDefaultProperty.getFilename());
 
         if (!defaultPropertiesByType.containsKey(type)) {
-          defaultPropertiesByType.put(type, new HashMap<String, String>());
+          defaultPropertiesByType.put(type, new HashSet<PropertyInfo>());
         }
 
-        defaultPropertiesByType.get(type).put(serviceDefaultProperty.getName(),
-            serviceDefaultProperty.getValue());
+        defaultPropertiesByType.get(type).add(serviceDefaultProperty);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java
index 34b3ba1..6ea7983 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyInfo.java
@@ -19,8 +19,6 @@
 package org.apache.ambari.server.state;
 
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
 import org.apache.ambari.server.controller.StackConfigurationResponse;
 import org.w3c.dom.Element;
 
@@ -30,6 +28,7 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAnyElement;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlList;
 
@@ -52,6 +51,12 @@ public class PropertyInfo {
   private String filename;
   private boolean deleted;
 
+  @XmlElement(name="on-stack-upgrade", required = true)
+  private PropertyUpgradeBehavior propertyStackUpgradeBehavior;
+
+  @XmlElement(name="on-ambari-upgrade", required = true)
+  private PropertyUpgradeBehavior propertyAmbariUpgradeBehavior;
+
   @XmlAttribute(name = "require-input")
   private boolean requireInput;
 
@@ -134,7 +139,23 @@ public class PropertyInfo {
   public void setPropertyTypes(Set<PropertyType> propertyTypes) {
     this.propertyTypes = propertyTypes;
   }
-  
+
+  public PropertyUpgradeBehavior getPropertyStackUpgradeBehavior() {
+    return propertyStackUpgradeBehavior;
+  }
+
+  public void setPropertyStackUpgradeBehavior(PropertyUpgradeBehavior propertyStackUpgradeBehavior) {
+    this.propertyStackUpgradeBehavior = propertyStackUpgradeBehavior;
+  }
+
+  public PropertyUpgradeBehavior getPropertyAmbariUpgradeBehavior() {
+    return propertyAmbariUpgradeBehavior;
+  }
+
+  public void setPropertyAmbariUpgradeBehavior(PropertyUpgradeBehavior propertyAmbariUpgradeBehavior) {
+    this.propertyAmbariUpgradeBehavior = propertyAmbariUpgradeBehavior;
+  }
+
   public StackConfigurationResponse convertToResponse() {
     return new StackConfigurationResponse(getName(), getValue(),
       getDescription(), getDisplayName() , getFilename(), isRequireInput(),

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyUpgradeBehavior.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyUpgradeBehavior.java b/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyUpgradeBehavior.java
new file mode 100644
index 0000000..de2e342
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/PropertyUpgradeBehavior.java
@@ -0,0 +1,73 @@
+/**
+ * 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.
+ */
+package org.apache.ambari.server.state;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+
+/**
+ * Represents a behavior used during upgrade for property
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+public class PropertyUpgradeBehavior {
+
+  @XmlAttribute(name="add", required = true)
+  private boolean add;
+
+  @XmlAttribute(name="delete", required = true)
+  private boolean delete;
+
+  @XmlAttribute(name="change", required = true)
+  private boolean change;
+
+  public PropertyUpgradeBehavior() {}
+
+  public PropertyUpgradeBehavior(boolean add, boolean delete, boolean change) {
+    this.add = add;
+    this.delete = delete;
+    this.change = change;
+  }
+
+  public void setAdd( boolean add )
+  {
+    this.add = add;
+  }
+
+  public void setDelete( boolean delete )
+  {
+    this.delete = delete;
+  }
+
+  public void setChange( boolean change )
+  {
+    this.change = change;
+  }
+
+  public boolean isAdd() {
+    return add;
+  }
+
+  public boolean isDelete() {
+    return delete;
+  }
+
+  public boolean isChange() {
+    return change;
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
index 3ee8bba..f30bf40 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/AbstractUpgradeCatalog.java
@@ -24,7 +24,6 @@ import java.sql.Statement;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -310,6 +309,7 @@ public abstract class AbstractUpgradeCatalog implements UpgradeCatalog {
     if (clusterMap != null && !clusterMap.isEmpty()) {
       for (Cluster cluster : clusterMap.values()) {
         Map<String, Set<String>> newProperties = new HashMap<String, Set<String>>();
+        Map<String, Set<String>> overriddenProperties = new HashMap<String, Set<String>>();
 
         Set<PropertyInfo> stackProperties = configHelper.getStackProperties(cluster);
         for(String serviceName: cluster.getServices().keySet()) {
@@ -321,21 +321,33 @@ public abstract class AbstractUpgradeCatalog implements UpgradeCatalog {
           properties.addAll(stackProperties);
 
           for(PropertyInfo property:properties) {
+            if (property.getValue() == null) {
+              continue;
+            }
+
             String configType = ConfigHelper.fileNameToConfigType(property.getFilename());
             Config clusterConfigs = cluster.getDesiredConfigByType(configType);
-            if(clusterConfigs == null || !clusterConfigs.getProperties().containsKey(property.getName())) {
-              if (property.getValue() == null || property.getPropertyTypes().contains(PropertyInfo.PropertyType.DONT_ADD_ON_UPGRADE)) {
-                continue;
-              }
-
-              LOG.info("Config " + property.getName() + " from " + configType + " from xml configurations" +
-                  " is not found on the cluster. Adding it...");
-
-              if(!newProperties.containsKey(configType)) {
-                newProperties.put(configType, new HashSet<String>());
-              }
-              newProperties.get(configType).add(property.getName());
-            }
+//            if (clusterConfigs == null || (!clusterConfigs.getProperties().containsKey(property.getName()) && property.getPropertyAmbariUpgradeBehavior().isAdd())) {
+//              LOG.info("Config " + property.getName() + " from " + configType + " from xml configurations" +
+//                      " will be added...");
+//              if (!newProperties.containsKey(configType)) {
+//                newProperties.put(configType, new HashSet<String>());
+//              }
+//              newProperties.get(configType).add(property.getName());
+//            } else if (clusterConfigs.getProperties().containsKey(property.getName())) {
+//              if (property.getPropertyAmbariUpgradeBehavior().isDelete()) {
+//                LOG.info("Config " + property.getName() + " from " + configType + " from xml configurations" +
+//                        " will be removed...");
+//                continue;
+//              } else if (property.getPropertyAmbariUpgradeBehavior().isChange()) {
+//                LOG.info("Config " + property.getName() + " from " + configType + " from xml configurations" +
+//                        " will be overridden...");
+//                if (!overriddenProperties.containsKey(configType)) {
+//                  overriddenProperties.put(configType, new HashSet<String>());
+//                }
+//                overriddenProperties.get(configType).add(property.getName());
+//              }
+//            }
           }
         }
 
@@ -344,6 +356,9 @@ public abstract class AbstractUpgradeCatalog implements UpgradeCatalog {
         for (Entry<String, Set<String>> newProperty : newProperties.entrySet()) {
           updateConfigurationPropertiesWithValuesFromXml(newProperty.getKey(), newProperty.getValue(), false, true);
         }
+        for (Entry<String, Set<String>> overriddenProperty : overriddenProperties.entrySet()) {
+          updateConfigurationPropertiesWithValuesFromXml(overriddenProperty.getKey(), overriddenProperty.getValue(), true, true);
+        }
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml
index 8d1cd71..aad769f 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml
@@ -19,11 +19,10 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_adding_forbidden="true">
   <property require-input="true">
     <name>accumulo_root_password</name>
-    <value></value>
+    <value/>
     <property-type>PASSWORD</property-type>
     <display-name>Accumulo root password</display-name>
     <description>Password for the Accumulo root user. This password will be
@@ -33,10 +32,12 @@
       <type>password</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property require-input="true">
     <name>instance_secret</name>
-    <value></value>
+    <value/>
     <display-name>Instance Secret</display-name>
     <property-type>PASSWORD</property-type>
     <description>A secret unique to a given instance that all Accumulo server
@@ -47,6 +48,8 @@
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property require-input="false">
     <name>trace_password</name>
@@ -60,6 +63,8 @@
       <type>password</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_log_dir</name>
@@ -70,6 +75,8 @@
       <type>directory</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_pid_dir</name>
@@ -81,6 +88,8 @@
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_instance_name</name>
@@ -91,6 +100,8 @@
       <editable-only-at-install>true</editable-only-at-install>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_user</name>
@@ -102,6 +113,8 @@
       <type>user</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_master_heapsize</name>
@@ -113,6 +126,8 @@
       <unit>MB</unit>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_tserver_heapsize</name>
@@ -123,6 +138,8 @@
       <type>int</type>
       <unit>MB</unit>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_monitor_heapsize</name>
@@ -134,6 +151,8 @@
       <unit>MB</unit>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_gc_heapsize</name>
@@ -145,6 +164,8 @@
       <unit>MB</unit>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_other_heapsize</name>
@@ -155,6 +176,8 @@
       <type>int</type>
       <unit>MB</unit>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>accumulo_monitor_bind_all</name>
@@ -164,18 +187,21 @@
     <value-attributes>
       <type>boolean</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>accumulo_user_keytab</name>
     <description>Accumulo keytab path</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>accumulo_principal_name</name>
     <description>Accumulo principal name</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>content</name>
     <display-name>accumulo-env template</display-name>
@@ -200,6 +226,8 @@ export ACCUMULO_KILL_CMD='kill -9 %p'
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>server_content</name>
@@ -227,5 +255,7 @@ export ACCUMULO_KILL_CMD='kill -9 %p'
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-log4j.xml b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-log4j.xml
index b72dddf..06f134f 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-log4j.xml
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-log4j.xml
@@ -19,46 +19,50 @@
  * limitations under the License.
  */
 -->
-
 <configuration supports_adding_forbidden="true">
-
   <property>
     <name>audit_log_level</name>
     <value>OFF</value>
     <description>Log level for audit logging</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>monitor_forwarding_log_level</name>
     <value>WARN</value>
     <description>Log level for logging forwarded to the Accumulo
       Monitor</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>debug_log_size</name>
     <value>512M</value>
     <description>Size of each debug rolling log file</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>debug_num_logs</name>
     <value>10</value>
     <description>Number of rolling debug log files to keep</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>info_log_size</name>
     <value>512M</value>
     <description>Size of each info rolling log file</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>info_num_logs</name>
     <value>10</value>
     <description>Number of rolling info log files to keep</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>content</name>
     <display-name>accumulo-log4j template</display-name>
@@ -112,6 +116,7 @@ log4j.appender.A1.layout=org.apache.log4j.PatternLayout
       <type>content</type>
       <show-property-name>false</show-property-name>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml
index f7dfdb0..b857c20 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-site.xml
@@ -16,11 +16,9 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-
 <configuration>
   <!-- Put your site-specific accumulo configurations here. The available configuration values along with their defaults are documented in docs/config.html Unless
     you are simply testing at your workstation, you will most definitely need to change the three entries below. -->
-
   <property>
     <name>instance.volumes</name>
     <value>hdfs://localhost:8020/apps/accumulo/data</value>
@@ -29,8 +27,9 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>instance.zookeeper.host</name>
     <value>localhost:2181</value>
@@ -40,8 +39,9 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>instance.zookeeper.timeout</name>
     <value>30s</value>
@@ -49,8 +49,9 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.memory.maps.max</name>
     <value>1G</value>
@@ -58,9 +59,10 @@
       map, where incoming writes are sorted.  If native maps are enabled
       (tserver.memory.maps.native.enabled) this memory is
       off-heap. Ensure that table.compaction.minor.logs.threshold *
-      tserver.walog.max.size >= tserver.memory.maps.max.</description>
+      tserver.walog.max.size &gt;= tserver.memory.maps.max.</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.memory.maps.native.enabled</name>
     <value>true</value>
@@ -70,33 +72,38 @@
     <value-attributes>
       <type>boolean</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.cache.data.size</name>
     <value>128M</value>
     <description>Size of on-heap block cache for data blocks.</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.cache.index.size</name>
     <value>256M</value>
     <description>Size of on-heap block cache for index blocks.</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.sort.buffer.size</name>
     <value>200M</value>
     <description>Amount of memory to use for sorting walogs when
       recovering from tserver failure.</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.walog.max.size</name>
     <value>1G</value>
     <description>Maximum size of each write-ahead log.</description>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>master.port.client</name>
     <value>9999</value>
@@ -104,8 +111,9 @@
     <value-attributes>
       <type>int</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>trace.port.client</name>
     <value>12234</value>
@@ -114,8 +122,9 @@
     <value-attributes>
       <type>int</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>tserver.port.client</name>
     <value>9997</value>
@@ -123,8 +132,9 @@
     <value-attributes>
       <type>int</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>gc.port.client</name>
     <value>50092</value>
@@ -133,8 +143,9 @@
     <value-attributes>
       <type>int</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>monitor.port.client</name>
     <value>50095</value>
@@ -142,8 +153,9 @@
     <value-attributes>
       <type>int</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>monitor.port.log4j</name>
     <value>4560</value>
@@ -152,8 +164,9 @@
     <value-attributes>
       <type>int</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>trace.user</name>
     <value>trace</value>
@@ -163,8 +176,9 @@
     <value-attributes>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
   <property>
     <name>general.classpaths</name>
     <value>
@@ -189,5 +203,7 @@ $HADOOP_PREFIX/share/hadoop/yarn/lib/jersey.*.jar
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/client.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/client.xml b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/client.xml
index f1fa4de..3ecd24c 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/client.xml
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/client.xml
@@ -19,6 +19,5 @@
  * limitations under the License.
  */
 -->
-
 <configuration>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6f855d53/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-env.xml b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-env.xml
index 65b3208..fa4abf3 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-env.xml
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-env.xml
@@ -17,7 +17,6 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-
 <configuration supports_adding_forbidden="true">
   <property>
     <name>ambari_metrics_user</name>
@@ -29,6 +28,8 @@
       <type>user</type>
       <overridable>false</overridable>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>metrics_collector_log_dir</name>
@@ -38,6 +39,8 @@
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>metrics_collector_pid_dir</name>
@@ -47,6 +50,8 @@
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>metrics_monitor_pid_dir</name>
@@ -56,6 +61,8 @@
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>metrics_monitor_log_dir</name>
@@ -65,6 +72,8 @@
     <value-attributes>
       <type>directory</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>metrics_collector_heapsize</name>
@@ -74,6 +83,8 @@
       <type>int</type>
       <unit>MB</unit>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
   <property>
     <name>content</name>
@@ -128,6 +139,7 @@ export AMS_COLLECTOR_OPTS="$AMS_COLLECTOR_OPTS $AMS_COLLECTOR_GC_OPTS"
     <value-attributes>
       <type>content</type>
     </value-attributes>
+    <on-ambari-upgrade add="true" change="false" delete="false"/>
+    <on-stack-upgrade add="true" change="false" delete="false"/>
   </property>
-
 </configuration>