ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From alejan...@apache.org
Subject ambari git commit: AMBARI-17782. Config changes for Atlas in HDP 2.5 related to atlas.rest.address, atlas.cluster.name, etc (alejandro)
Date Tue, 26 Jul 2016 18:49:01 GMT
Repository: ambari
Updated Branches:
  refs/heads/branch-2.4 ee4f05df2 -> 39085e705


AMBARI-17782. Config changes for Atlas in HDP 2.5 related to atlas.rest.address, atlas.cluster.name, etc (alejandro)


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

Branch: refs/heads/branch-2.4
Commit: 39085e705d4db0ab2332602ec5b2790e0fc2e562
Parents: ee4f05d
Author: Alejandro Fernandez <afernandez@hortonworks.com>
Authored: Mon Jul 25 17:51:19 2016 -0700
Committer: Alejandro Fernandez <afernandez@hortonworks.com>
Committed: Tue Jul 26 11:52:09 2016 -0700

----------------------------------------------------------------------
 .../src/main/python/ambari_commons/constants.py |  28 ++++
 .../libraries/functions/setup_atlas_hook.py     |  26 +++-
 .../ATLAS/0.1.0.2.3/package/scripts/params.py   |   9 +-
 .../configuration/application-properties.xml    |  28 ++++
 .../FALCON/0.5.0.2.1/package/scripts/falcon.py  |   3 +-
 .../hive-atlas-application.properties.xml       |  61 ---------
 .../HIVE/0.12.0.2.0/configuration/hive-site.xml |   1 +
 .../HIVE/0.12.0.2.0/metainfo.xml                |   1 -
 .../HIVE/0.12.0.2.0/package/scripts/hcat.py     |   3 +-
 .../HIVE/0.12.0.2.0/package/scripts/hive.py     |   3 +-
 .../HIVE/0.12.0.2.0/package/scripts/webhcat.py  |   3 +-
 .../1.4.4.2.0/configuration/sqoop-site.xml      |   1 +
 .../SQOOP/1.4.4.2.0/package/scripts/sqoop.py    |   3 +-
 .../STORM/0.9.1/package/scripts/storm.py        |   3 +-
 .../STORM/1.0.1/configuration/storm-site.xml    |   8 ++
 .../stacks/HDP/2.3/services/stack_advisor.py    |  12 +-
 .../stacks/HDP/2.3/upgrades/config-upgrade.xml  |  43 +++++-
 .../HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml |  20 +++
 .../stacks/HDP/2.3/upgrades/upgrade-2.5.xml     |  15 +++
 .../stacks/HDP/2.4/upgrades/config-upgrade.xml  |  41 +++++-
 .../HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml |  20 +++
 .../stacks/HDP/2.4/upgrades/upgrade-2.5.xml     |  12 ++
 .../hive-atlas-application.properties.xml       |  61 +++++++++
 .../stacks/HDP/2.5/services/HIVE/metainfo.xml   |   1 +
 .../services/SQOOP/configuration/sqoop-site.xml |  30 +++++
 .../stacks/HDP/2.5/services/SQOOP/kerberos.json |  15 +++
 .../stacks/HDP/2.5/services/stack_advisor.py    |  41 +++++-
 .../BlueprintConfigurationProcessorTest.java    |  21 +--
 .../stacks/2.3/common/test_stack_advisor.py     |  39 +++++-
 .../stacks/2.5/common/test_stack_advisor.py     | 135 ++++++++++++++++---
 .../test/python/stacks/2.5/configs/default.json |   1 +
 31 files changed, 574 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-common/src/main/python/ambari_commons/constants.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/ambari_commons/constants.py b/ambari-common/src/main/python/ambari_commons/constants.py
index 525e024..779b204 100644
--- a/ambari-common/src/main/python/ambari_commons/constants.py
+++ b/ambari-common/src/main/python/ambari_commons/constants.py
@@ -22,3 +22,31 @@ AMBARI_SUDO_BINARY = "ambari-sudo.sh"
 
 UPGRADE_TYPE_ROLLING = "rolling"
 UPGRADE_TYPE_NON_ROLLING = "nonrolling"
+
+
+class SERVICE:
+  """
+  Constants for service names to avoid hardcoding strings.
+  """
+
+  ATLAS = "ATLAS"
+  FALCON = "FALCON"
+  FLUME = "FLUME"
+  HAWQ = "HAWQ"
+  HDFS = "HDFS"
+  HIVE = "HIVE"
+  KAFKA = "KAFKA"
+  KNOX = "KNOX"
+  MAHOUT = "MAHOUT"
+  OOZIE = "OOZIE"
+  PIG = "PIG"
+  PXF = "PXF"
+  RANGER = "RANGER"
+  SLIDER = "SLIDER"
+  SPARK = "SPARK"
+  SQOOP = "SQOOP"
+  STORM = "STORM"
+  TEZ = "TEZ"
+  YARN = "YARN"
+  ZEPPELIN = "ZEPPELIN"
+  ZOOKEEPER = "ZOOKEEPER"

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-common/src/main/python/resource_management/libraries/functions/setup_atlas_hook.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/setup_atlas_hook.py b/ambari-common/src/main/python/resource_management/libraries/functions/setup_atlas_hook.py
index a384f69..acdb1b9 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/setup_atlas_hook.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/setup_atlas_hook.py
@@ -29,6 +29,7 @@ from resource_management.libraries.functions.format import format
 from resource_management.libraries.functions.default import default
 from resource_management.core.resources.system import Link
 from resource_management.core.logger import Logger
+from ambari_commons.constants import SERVICE
 
 '''
 Only this subset of Atlas application.properties should be written out to each service that has an Atlas hook,
@@ -76,16 +77,24 @@ SHARED_ATLAS_HOOK_CONFIGS = set(
   "atlas.cluster.name",
 
   # Security properties
+  "atlas.jaas.KafkaClient.option.serviceName",
   "atlas.authentication.method.kerberos",
   "atlas.kafka.sasl.kerberos.service.name",
   "atlas.kafka.security.protocol",
   "atlas.jaas.KafkaClient.loginModuleName",
-  "atlas.jaas.KafkaClient.loginModuleControlFlag",
-  "atlas.jaas.KafkaClient.option.useKeyTab",
-  "atlas.jaas.KafkaClient.option.storeKey",
-  "atlas.jaas.KafkaClient.option.serviceName"]
+  "atlas.jaas.KafkaClient.loginModuleControlFlag"
+  ]
 )
 
+SHARED_ATLAS_HOOK_SECURITY_CONFIGS_FOR_NON_CLIENT_SERVICE = set(
+  [
+    "atlas.jaas.KafkaClient.option.useKeyTab",
+    "atlas.jaas.KafkaClient.option.storeKey"
+  ]
+)
+
+NON_CLIENT_SERVICES = [SERVICE.HIVE, SERVICE.STORM, SERVICE.FALCON]
+
 def has_atlas_in_cluster():
   """
   Determine if Atlas is installed on the cluster.
@@ -94,9 +103,10 @@ def has_atlas_in_cluster():
   atlas_hosts = default('/clusterHostInfo/atlas_server_hosts', [])
   return len(atlas_hosts) > 0
 
-def setup_atlas_hook(service_props, atlas_hook_filepath, owner, group):
+def setup_atlas_hook(service_name, service_props, atlas_hook_filepath, owner, group):
   """
   Generate the atlas-application.properties.xml file by merging the service_props with the Atlas application-properties.
+  :param service_name: Service Name to identify if it is a client-only service, which will generate slightly different configs.
   :param service_props: Atlas configs specific to this service that must be merged.
   :param atlas_hook_filepath: Config file to write, e.g., /etc/falcon/conf/atlas-application.properties.xml
   :param owner: File owner
@@ -108,7 +118,11 @@ def setup_atlas_hook(service_props, atlas_hook_filepath, owner, group):
   if has_atlas_in_cluster():
     # Take the subset
     merged_props = {}
-    for prop in SHARED_ATLAS_HOOK_CONFIGS:
+    shared_props = SHARED_ATLAS_HOOK_CONFIGS.copy()
+    if service_name in NON_CLIENT_SERVICES:
+      shared_props = shared_props.union(SHARED_ATLAS_HOOK_SECURITY_CONFIGS_FOR_NON_CLIENT_SERVICE)
+
+    for prop in shared_props:
       if prop in atlas_props:
         merged_props[prop] = atlas_props[prop]
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/params.py b/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/params.py
index f0a3f32..645eb4c 100644
--- a/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/params.py
@@ -131,12 +131,17 @@ metadata_host = config['hostname']
 
 atlas_hosts = sorted(default('/clusterHostInfo/atlas_server_hosts', []))
 metadata_server_host = atlas_hosts[0] if len(atlas_hosts) > 0 else "UNKNOWN_HOST"
-metadata_server_url = format('{metadata_protocol}://{metadata_server_host}:{metadata_port}')
 
 # application properties
 application_properties = dict(config['configurations']['application-properties'])
 application_properties["atlas.server.bind.address"] = metadata_host
-application_properties["atlas.rest.address"] = metadata_server_url
+
+if check_stack_feature(StackFeature.ATLAS_UPGRADE_SUPPORT, version_for_stack_feature_checks):
+  metadata_server_url = application_properties["atlas.rest.address"]
+else:
+  # In HDP 2.3 and 2.4 the property was computed and saved to the local config but did not exist in the database.
+  metadata_server_url = format('{metadata_protocol}://{metadata_server_host}:{metadata_port}')
+  application_properties["atlas.rest.address"] = metadata_server_url
 
 # Atlas HA should populate
 # atlas.server.ids = id1,id2,...,idn

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/ATLAS/0.7.0.2.5/configuration/application-properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ATLAS/0.7.0.2.5/configuration/application-properties.xml b/ambari-server/src/main/resources/common-services/ATLAS/0.7.0.2.5/configuration/application-properties.xml
index 4305965..0c61d1e 100644
--- a/ambari-server/src/main/resources/common-services/ATLAS/0.7.0.2.5/configuration/application-properties.xml
+++ b/ambari-server/src/main/resources/common-services/ATLAS/0.7.0.2.5/configuration/application-properties.xml
@@ -107,6 +107,34 @@
   There are several more properties for when Atlas is Kerberized.
   Note that atlas.cluster.name is inherited.
   -->
+  <!-- This property is constructed from the protocol, server, and port and generated by Stack Advisor.
+  Hence, it should be visible but not editable.
+  -->
+  <property>
+    <name>atlas.rest.address</name>
+    <value>http://localhost:21000</value>
+    <depends-on>
+      <property>
+        <type>application-properties</type>
+        <name>atlas.enableTLS</name>
+      </property>
+      <property>
+        <type>application-properties</type>
+        <name>atlas.server.http.port</name>
+      </property>
+      <property>
+        <type>application-properties</type>
+        <name>atlas.server.https.port</name>
+      </property>
+    </depends-on>
+    <value-attributes>
+      <read-only>true</read-only>
+      <editable-only-at-install>true</editable-only-at-install>
+      <overridable>false</overridable>
+      <visible>true</visible>
+    </value-attributes>
+    <on-ambari-upgrade add="false"/>
+  </property>
   <property>
     <name>atlas.kafka.bootstrap.servers</name>
     <value/>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
index 6111c34..17c3ccd 100644
--- a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
@@ -34,6 +34,7 @@ from resource_management.libraries.functions import format
 from resource_management.libraries.functions.show_logs import show_logs
 from resource_management.libraries.functions.setup_atlas_hook import has_atlas_in_cluster, setup_atlas_hook
 from resource_management.libraries.functions import get_user_call_output
+from ambari_commons.constants import SERVICE
 from resource_management.core.logger import Logger
 
 from ambari_commons import OSConst
@@ -114,7 +115,7 @@ def falcon(type, action = None, upgrade_type=None):
     # Generate atlas-application.properties.xml file
     if has_atlas_in_cluster():
       atlas_hook_filepath = os.path.join(params.falcon_conf_dir, params.atlas_hook_filename)
-      setup_atlas_hook(params.falcon_atlas_application_properties, atlas_hook_filepath, params.falcon_user, params.user_group)
+      setup_atlas_hook(SERVICE.FALCON, params.falcon_atlas_application_properties, atlas_hook_filepath, params.falcon_user, params.user_group)
 
   if type == 'server':
     if action == 'config':

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-atlas-application.properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-atlas-application.properties.xml b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-atlas-application.properties.xml
deleted file mode 100644
index 0590244..0000000
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-atlas-application.properties.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-<configuration supports_final="false">
-  <!-- These are the Atlas Hooks properties specific to this service. This file is then merged with common properties
-  that apply to all services. -->
-  <property>
-    <name>atlas.hook.hive.synchronous</name>
-    <value>false</value>
-    <description/>
-    <on-ambari-upgrade add="true"/>
-  </property>
-  <property>
-    <name>atlas.hook.hive.numRetries</name>
-    <value>3</value>
-    <description/>
-    <on-ambari-upgrade add="true"/>
-  </property>
-  <property>
-    <name>atlas.hook.hive.minThreads</name>
-    <value>5</value>
-    <description/>
-    <on-ambari-upgrade add="true"/>
-  </property>
-  <property>
-    <name>atlas.hook.hive.maxThreads</name>
-    <value>5</value>
-    <description/>
-    <on-ambari-upgrade add="true"/>
-  </property>
-  <property>
-    <name>atlas.hook.hive.keepAliveTime</name>
-    <value>10</value>
-    <description/>
-    <on-ambari-upgrade add="true"/>
-  </property>
-  <property>
-    <name>atlas.hook.hive.queueSize</name>
-    <value>1000</value>
-    <description/>
-    <on-ambari-upgrade add="true"/>
-  </property>
-</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml
index c53dd39..3d08867 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/hive-site.xml
@@ -446,6 +446,7 @@ limitations under the License.
     </depends-on>
     <on-ambari-upgrade add="false"/>
   </property>
+  <!-- This property is removed in HDP 2.5 and higher. -->
   <property>
     <name>atlas.rest.address</name>
     <value>http://localhost:21000</value>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
index ec14979..ec13352 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
@@ -345,7 +345,6 @@
         <config-type>ranger-hive-security</config-type>
         <config-type>mapred-site</config-type>
         <config-type>application.properties</config-type>
-        <config-type>hive-atlas-application.properties</config-type>
       </configuration-dependencies>
     </service>
   </services>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
index f53625c..5e2c709 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hcat.py
@@ -24,6 +24,7 @@ import sys
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 from ambari_commons import OSConst
 from resource_management.libraries.functions.setup_atlas_hook import has_atlas_in_cluster, setup_atlas_hook
+from ambari_commons.constants import SERVICE
 
 
 @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
@@ -77,4 +78,4 @@ def hcat():
   # Generate atlas-application.properties.xml file
   if has_atlas_in_cluster():
     atlas_hook_filepath = os.path.join(params.hive_config_dir, params.atlas_hook_filename)
-    setup_atlas_hook(params.hive_atlas_application_properties, atlas_hook_filepath, params.hive_user, params.user_group)
+    setup_atlas_hook(SERVICE.HIVE, params.hive_atlas_application_properties, atlas_hook_filepath, params.hive_user, params.user_group)

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
index 6b05134..4f53ea9 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py
@@ -40,6 +40,7 @@ from resource_management.core.shell import quote_bash_args
 from resource_management.core.logger import Logger
 from resource_management.core import utils
 from resource_management.libraries.functions.setup_atlas_hook import has_atlas_in_cluster, setup_atlas_hook
+from ambari_commons.constants import SERVICE
 
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 from ambari_commons import OSConst
@@ -230,7 +231,7 @@ def hive(name=None):
   # Generate atlas-application.properties.xml file
   if has_atlas_in_cluster():
     atlas_hook_filepath = os.path.join(params.hive_config_dir, params.atlas_hook_filename)
-    setup_atlas_hook(params.hive_atlas_application_properties, atlas_hook_filepath, params.hive_user, params.user_group)
+    setup_atlas_hook(SERVICE.HIVE, params.hive_atlas_application_properties, atlas_hook_filepath, params.hive_user, params.user_group)
   
   if name == 'hiveserver2':
     XmlConfig("hiveserver2-site.xml",

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
index 4f38055..fe3f34a 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat.py
@@ -27,6 +27,7 @@ from resource_management.libraries.functions.stack_features import check_stack_f
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 from resource_management.libraries.functions.setup_atlas_hook import has_atlas_in_cluster, setup_atlas_hook
 from ambari_commons import OSConst
+from ambari_commons.constants import SERVICE
 
 
 @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
@@ -141,4 +142,4 @@ def webhcat():
   if has_atlas_in_cluster():
     # WebHCat uses a different config dir than the rest of the daemons in Hive.
     atlas_hook_filepath = os.path.join(params.config_dir, params.atlas_hook_filename)
-    setup_atlas_hook(params.hive_atlas_application_properties, atlas_hook_filepath, params.hive_user, params.user_group)
+    setup_atlas_hook(SERVICE.HIVE, params.hive_atlas_application_properties, atlas_hook_filepath, params.hive_user, params.user_group)

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/configuration/sqoop-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/configuration/sqoop-site.xml b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/configuration/sqoop-site.xml
index d78c5be..f7823d2 100644
--- a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/configuration/sqoop-site.xml
+++ b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/configuration/sqoop-site.xml
@@ -20,6 +20,7 @@
  */
 -->
 <configuration>
+  <!-- This property was valid in HDP 2.3 and 2.4, but removed in HDP 2.5 -->
   <property>
     <name>atlas.cluster.name</name>
     <value>{{cluster_name}}</value>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
index 963d169..68f06db 100644
--- a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
+++ b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop.py
@@ -27,6 +27,7 @@ from resource_management.core.resources.system import File, Link, Directory
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 from ambari_commons import OSConst
 from resource_management.libraries.functions.setup_atlas_hook import has_atlas_in_cluster, setup_atlas_hook, setup_atlas_jar_symlinks
+from ambari_commons.constants import SERVICE
 
 
 @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
@@ -65,7 +66,7 @@ def sqoop(type=None):
   # Generate atlas-application.properties.xml file and symlink the hook jars
   if has_atlas_in_cluster():
     atlas_hook_filepath = os.path.join(params.sqoop_conf_dir, params.atlas_hook_filename)
-    setup_atlas_hook(params.sqoop_atlas_application_properties, atlas_hook_filepath, params.sqoop_user, params.user_group)
+    setup_atlas_hook(SERVICE.SQOOP, params.sqoop_atlas_application_properties, atlas_hook_filepath, params.sqoop_user, params.user_group)
     setup_atlas_jar_symlinks("sqoop", params.sqoop_lib)
 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/storm.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/storm.py
index d765ca3..bda4fe2 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/storm.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/storm.py
@@ -32,6 +32,7 @@ from storm_yaml_utils import yaml_config_template, yaml_config
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 from ambari_commons import OSConst
 from resource_management.libraries.functions.setup_atlas_hook import has_atlas_in_cluster, setup_atlas_hook, setup_atlas_jar_symlinks
+from ambari_commons.constants import SERVICE
 
 
 @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
@@ -100,7 +101,7 @@ def storm(name=None):
   # Generate atlas-application.properties.xml file and symlink the hook jars
   if has_atlas_in_cluster():
     atlas_hook_filepath = os.path.join(params.conf_dir, params.atlas_hook_filename)
-    setup_atlas_hook(params.storm_atlas_application_properties, atlas_hook_filepath, params.storm_user, params.user_group)
+    setup_atlas_hook(SERVICE.STORM, params.storm_atlas_application_properties, atlas_hook_filepath, params.storm_user, params.user_group)
     storm_extlib_dir = os.path.join(params.storm_component_home_dir, "extlib")
     setup_atlas_jar_symlinks("storm", storm_extlib_dir)
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/common-services/STORM/1.0.1/configuration/storm-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/1.0.1/configuration/storm-site.xml b/ambari-server/src/main/resources/common-services/STORM/1.0.1/configuration/storm-site.xml
index 3a3879b..077590a 100644
--- a/ambari-server/src/main/resources/common-services/STORM/1.0.1/configuration/storm-site.xml
+++ b/ambari-server/src/main/resources/common-services/STORM/1.0.1/configuration/storm-site.xml
@@ -109,4 +109,12 @@
     </description>
     <on-ambari-upgrade add="false"/>
   </property>
+
+  <!-- Deleted configs. -->
+  <property>
+    <name>atlas.cluster.name</name>
+    <value>{{cluster_name}}</value>
+    <on-ambari-upgrade add="false"/>
+    <deleted>true</deleted>
+  </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
index 8d5cdc9..f82655d 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py
@@ -16,16 +16,27 @@ 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.
 """
+
+# Python Imports
 import os
 import re
 import fnmatch
 import math
 import socket
 
+# Local Imports
+from resource_management.core.logger import Logger
+from resource_management.libraries.functions.version import compare_versions
+
+
 DB_TYPE_DEFAULT_PORT_MAP = {"MYSQL":"3306", "ORACLE":"1521", "POSTGRES":"5432", "MSSQL":"1433", "SQLA":"2638"}
 
 class HDP23StackAdvisor(HDP22StackAdvisor):
 
+  def __init__(self):
+    super(HDP23StackAdvisor, self).__init__()
+    Logger.initialize_logger()
+
   def getComponentLayoutValidations(self, services, hosts):
     parentItems = super(HDP23StackAdvisor, self).getComponentLayoutValidations(services, hosts)
 
@@ -202,7 +213,6 @@ class HDP23StackAdvisor(HDP22StackAdvisor):
     else:
       putHbaseSitePropertyAttributes('hbase.region.server.rpc.scheduler.factory.class', 'delete', 'true')
 
-
   def recommendHIVEConfigurations(self, configurations, clusterData, services, hosts):
     super(HDP23StackAdvisor, self).recommendHIVEConfigurations(configurations, clusterData, services, hosts)
     putHiveSiteProperty = self.putProperty(configurations, "hive-site", services)

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/config-upgrade.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/config-upgrade.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/config-upgrade.xml
index bfdb3d3..0cfe091 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/config-upgrade.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/config-upgrade.xml
@@ -88,6 +88,33 @@
       </component>
     </service>
 
+    <service name="SQOOP">
+      <component name="SQOOP">
+        <changes>
+          <!-- All of these configs are present in Atlas' application.properties file instead and then copied to the hook's atlas-application.properties file. -->
+          <definition xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs">
+            <type>sqoop-site</type>
+            <transfer operation="delete" delete-key="atlas.cluster.name" />
+          </definition>
+
+          <!-- Add these configs if the cluster is Kerberized.
+          Will only be written to the local file system if Atlas is present. -->
+          <definition xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs">
+            <condition type="cluster-env" key="security_enabled" value="true">
+              <type>sqoop-atlas-application.properties</type>
+              <key>atlas.jaas.KafkaClient.option.useTicketCache</key>
+              <value>true</value>
+            </condition>
+            <condition type="cluster-env" key="security_enabled" value="true">
+              <type>sqoop-atlas-application.properties</type>
+              <key>atlas.jaas.KafkaClient.option.renewTicket</key>
+              <value>true</value>
+            </condition>
+          </definition>
+        </changes>
+      </component>
+    </service>
+
     <service name="HIVE">
       <component name="HIVE_SERVER">
         <changes>
@@ -185,6 +212,14 @@
             <transfer operation="delete" delete-key="xasecure.audit.destination.db.batch.filespool.dir" />
           </definition>
 
+          <!-- All of these configs are present in Atlas' application.properties file instead and then copied to the hook's atlas-application.properties file. -->
+          <definition xsi:type="configure" id="hdp_2_5_0_0_remove_hive_atlas_configs">
+            <type>hive-site</type>
+            <transfer operation="delete" delete-key="atlas.rest.address" />
+            <transfer operation="delete" delete-key="atlas.hook.hive.minThreads" />
+            <transfer operation="delete" delete-key="atlas.hook.hive.maxThreads" />
+          </definition>
+
           <definition xsi:type="configure" id="hdp_2_5_0_0_hive_server_set_transport_mode">
             <condition type="hive-site" key="hive.server2.transport.mode" value="binary">
               <type>hive-site</type>
@@ -431,7 +466,13 @@
             <replace key="storm.principal.tolocal" find="backtype.storm.security.auth.KerberosPrincipalToLocal"
                      replace-with="org.apache.storm.security.auth.KerberosPrincipalToLocal" />
             <set key="client.jartransformer.class" value="org.apache.storm.hack.StormShadeTransformer" />
-          </definition>          
+          </definition>
+
+          <!-- All of these configs are present in Atlas' application.properties file instead and then copied to the hook's atlas-application.properties file. -->
+          <definition xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs">
+            <type>storm-site</type>
+            <transfer operation="delete" delete-key="atlas.cluster.name" />
+          </definition>
         </changes>
       </component>
     </service>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml
index 8529d03..1ff5f6a 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml
@@ -312,6 +312,16 @@
         <task xsi:type="server_action" summary="Verifying LZO codec path for Tez" class="org.apache.ambari.server.serveraction.upgrades.FixLzoCodecPath"/>
       </execute-stage>
 
+      <!-- SQOOP -->
+      <execute-stage service="SQOOP" component="SQOOP" title="Apply config changes for Sqoop">
+        <!-- Remove Atlas configs that were incorrectly added to sqoop-site instead of Atlas' application.properties. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs"/>
+
+        <!-- If cluster is Kerberized, add configs to sqoop-atlas-application.properties,
+        which will be written to the local file system if Atlas is present. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs" />
+      </execute-stage>
+
       <!-- HIVE -->
       <execute-stage service="HIVE" component="WEBHCAT_SERVER" title="Apply config changes for WebHCat Server">
         <task xsi:type="configure" id="hdp_2_5_0_0_webhcat_server_update_configuration_paths"/>
@@ -325,6 +335,11 @@
         <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hive_audit_db"/>
       </execute-stage>
 
+      <execute-stage service="HIVE" component="HIVE_SERVER" title="Apply config changes for Hive Server">
+        <!-- Remove Atlas configs that were incorrectly added to hive-site instead of Atlas' application.properties. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_remove_hive_atlas_configs"/>
+      </execute-stage>
+
       <!--OOZIE-->
       <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Apply config changes for Oozie Server">
         <task xsi:type="server_action" summary="Adjusting Oozie properties" class="org.apache.ambari.server.serveraction.upgrades.OozieConfigCalculation"/>
@@ -399,6 +414,11 @@
       <execute-stage service="STORM" component="NIMBUS" title="Apply config changes for Nimbus">
         <task xsi:type="configure" id="hdp_2_5_0_0_upgrade_storm_1.0"/>
       </execute-stage>
+
+      <execute-stage service="STORM" component="NIMBUS" title="Apply config changes for Storm">
+        <!-- Remove Atlas configs that were incorrectly added to storm-site instead of Atlas' application.properties. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs"/>
+      </execute-stage>
     </group>
 
     <!--

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.5.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.5.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.5.xml
index dd39237..78afb46 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.5.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.5.xml
@@ -771,6 +771,15 @@
 
     <service name="SQOOP">
       <component name="SQOOP">
+        <pre-upgrade>
+          <!-- Remove Atlas configs that were incorrectly added to sqoop-site instead of Atlas' application.properties. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs" />
+
+          <!-- If cluster is Kerberized, add configs to sqoop-atlas-application.properties,
+          which will be written to the local file system if Atlas is present. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs" />
+        </pre-upgrade>
+
         <upgrade>
           <task xsi:type="restart-task" />
         </upgrade>
@@ -794,6 +803,9 @@
           <task xsi:type="configure" id="hdp_2_5_0_0_hive_server_set_transport_mode"/>
           <task xsi:type="configure" id="hdp_2_4_0_0_hive_server_configure_authentication"/>
           <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hive_audit_db" />
+
+          <!-- Remove Atlas configs that were incorrectly added to hive-site instead of Atlas' application.properties. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_remove_hive_atlas_configs" />
         </pre-upgrade>
 
         <pre-downgrade>
@@ -962,6 +974,9 @@
           <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_storm_audit_db" />
           <task xsi:type="configure" id="hdp_2_5_0_0_upgrade_storm_1.0"/>
 
+          <!-- Remove Atlas configs that were incorrectly added to storm-site instead of Atlas' application.properties. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs" />
+
           <task xsi:type="execute" hosts="any" summary="Removing Storm data from ZooKeeper">
             <script>scripts/storm_upgrade.py</script>
             <function>delete_storm_zookeeper_data</function>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/config-upgrade.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/config-upgrade.xml b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/config-upgrade.xml
index b2cc1c4..473d8a0 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/config-upgrade.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/config-upgrade.xml
@@ -37,6 +37,32 @@
       </component>
     </service>
 
+    <service name="SQOOP">
+      <component name="SQOOP">
+        <changes>
+          <definition xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs">
+            <type>sqoop-site</type>
+            <transfer operation="delete" delete-key="atlas.cluster.name" />
+          </definition>
+
+          <!-- Add these configs if the cluster is Kerberized.
+          Will only be written to the local file system if Atlas is present. -->
+          <definition xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs">
+            <condition type="cluster-env" key="security_enabled" value="true">
+              <type>sqoop-atlas-application.properties</type>
+              <key>atlas.jaas.KafkaClient.option.useTicketCache</key>
+              <value>true</value>
+            </condition>
+            <condition type="cluster-env" key="security_enabled" value="true">
+              <type>sqoop-atlas-application.properties</type>
+              <key>atlas.jaas.KafkaClient.option.renewTicket</key>
+              <value>true</value>
+            </condition>
+          </definition>
+        </changes>
+      </component>
+    </service>
+
     <service name="HIVE">
       <component name="HIVE_SERVER">
         <changes>
@@ -77,6 +103,13 @@
             <transfer operation="delete" delete-key="xasecure.audit.destination.db.batch.filespool.dir" />
           </definition>
 
+          <definition xsi:type="configure" id="hdp_2_5_0_0_remove_hive_atlas_configs">
+            <type>hive-site</type>
+            <transfer operation="delete" delete-key="atlas.rest.address" />
+            <transfer operation="delete" delete-key="atlas.hook.hive.minThreads" />
+            <transfer operation="delete" delete-key="atlas.hook.hive.maxThreads" />
+          </definition>
+
         </changes>
       </component>
 
@@ -253,7 +286,13 @@
             <replace key="storm.principal.tolocal" find="backtype.storm.security.auth.KerberosPrincipalToLocal"
                      replace-with="org.apache.storm.security.auth.KerberosPrincipalToLocal" />
             <set key="client.jartransformer.class" value="org.apache.storm.hack.StormShadeTransformer" />
-          </definition>          
+          </definition>
+
+          <!-- All of these configs are present in Atlas' application.properties file instead and then copied to the hook's atlas-application.properties file. -->
+          <definition xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs">
+            <type>storm-site</type>
+            <transfer operation="delete" delete-key="atlas.cluster.name" />
+          </definition>
         </changes>
       </component>
     </service>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml
index d9711f4..d648638 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml
@@ -330,11 +330,26 @@
         <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hdfs_audit_db"/>
       </execute-stage>
 
+      <!-- SQOOP -->
+      <execute-stage service="SQOOP" component="SQOOP" title="Apply config changes for Sqoop">
+        <!-- Remove Atlas configs that were incorrectly added to sqoop-site instead of Atlas' application.properties. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs"/>
+
+        <!-- If cluster is Kerberized, add configs to sqoop-atlas-application.properties,
+        which will be written to the local file system if Atlas is present. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs" />
+      </execute-stage>
+
       <!-- HIVE -->
       <execute-stage service="HIVE" component="HIVE_SERVER" title="Apply config changes for Hive Server">
         <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hive_audit_db"/>
       </execute-stage>
 
+      <execute-stage service="HIVE" component="HIVE_SERVER" title="Apply config changes for Hive Server">
+        <!-- Remove Atlas configs that were incorrectly added to hive-site instead of Atlas' application.properties. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_remove_hive_atlas_configs"/>
+      </execute-stage>
+
       <!-- HBASE -->
       <execute-stage service="HBASE" component="HBASE_MASTER" title="Apply config changes for Hbase Master">
         <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hbase_audit_db"/>
@@ -354,6 +369,11 @@
         <task xsi:type="configure" id="hdp_2_5_0_0_upgrade_storm_1.0"/>
       </execute-stage>
 
+      <execute-stage service="STORM" component="NIMBUS" title="Apply config changes for Storm">
+        <!-- Remove Atlas configs that were incorrectly added to storm-site instead of Atlas' application.properties. -->
+        <task xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs"/>
+      </execute-stage>
+
       <!-- KAFKA -->
       <execute-stage service="KAFKA" component="KAFKA_BROKER" title="Apply config changes for Kafka Broker">
         <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_kafka_audit_db"/>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.5.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.5.xml b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.5.xml
index ea82e93..e67aebb 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.5.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.5.xml
@@ -763,6 +763,15 @@
 
     <service name="SQOOP">
       <component name="SQOOP">
+        <pre-upgrade>
+          <!-- Remove Atlas configs that were incorrectly added to sqoop-site instead of Atlas' application.properties. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs" />
+
+          <!-- If cluster is Kerberized, add configs to sqoop-atlas-application.properties,
+          which will be written to the local file system if Atlas is present. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs" />
+        </pre-upgrade>
+
         <upgrade>
           <task xsi:type="restart-task" />
         </upgrade>
@@ -941,6 +950,9 @@
           <task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_storm_audit_db" />
           <task xsi:type="configure" id="hdp_2_5_0_0_upgrade_storm_1.0"/>
 
+          <!-- Remove Atlas configs that were incorrectly added to storm-site instead of Atlas' application.properties. -->
+          <task xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs" />
+
           <task xsi:type="execute" hosts="any" summary="Removing Storm data from ZooKeeper">
             <script>scripts/storm_upgrade.py</script>
             <function>delete_storm_zookeeper_data</function>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-atlas-application.properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-atlas-application.properties.xml b/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-atlas-application.properties.xml
new file mode 100644
index 0000000..0590244
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/configuration/hive-atlas-application.properties.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<configuration supports_final="false">
+  <!-- These are the Atlas Hooks properties specific to this service. This file is then merged with common properties
+  that apply to all services. -->
+  <property>
+    <name>atlas.hook.hive.synchronous</name>
+    <value>false</value>
+    <description/>
+    <on-ambari-upgrade add="true"/>
+  </property>
+  <property>
+    <name>atlas.hook.hive.numRetries</name>
+    <value>3</value>
+    <description/>
+    <on-ambari-upgrade add="true"/>
+  </property>
+  <property>
+    <name>atlas.hook.hive.minThreads</name>
+    <value>5</value>
+    <description/>
+    <on-ambari-upgrade add="true"/>
+  </property>
+  <property>
+    <name>atlas.hook.hive.maxThreads</name>
+    <value>5</value>
+    <description/>
+    <on-ambari-upgrade add="true"/>
+  </property>
+  <property>
+    <name>atlas.hook.hive.keepAliveTime</name>
+    <value>10</value>
+    <description/>
+    <on-ambari-upgrade add="true"/>
+  </property>
+  <property>
+    <name>atlas.hook.hive.queueSize</name>
+    <value>1000</value>
+    <description/>
+    <on-ambari-upgrade add="true"/>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/metainfo.xml
index 88c2aae..a37efab 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/HIVE/metainfo.xml
@@ -242,6 +242,7 @@
       </osSpecifics>
       <configuration-dependencies>
         <config-type>application-properties</config-type>
+        <config-type>hive-atlas-application.properties</config-type>
       </configuration-dependencies>
     </service>
   </services>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/configuration/sqoop-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/configuration/sqoop-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/configuration/sqoop-site.xml
new file mode 100644
index 0000000..54fa49a
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/configuration/sqoop-site.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<configuration>
+  <!-- Deleted properties. -->
+  <property>
+    <name>atlas.cluster.name</name>
+    <value>{{cluster_name}}</value>
+    <on-ambari-upgrade add="false"/>
+    <deleted>true</deleted>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/kerberos.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/kerberos.json b/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/kerberos.json
new file mode 100644
index 0000000..b736a74
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/SQOOP/kerberos.json
@@ -0,0 +1,15 @@
+{
+  "services": [
+    {
+      "name": "SQOOP",
+      "configurations": [
+        {
+          "sqoop-atlas-application.properties": {
+            "atlas.jaas.KafkaClient.option.useTicketCache": "true",
+            "atlas.jaas.KafkaClient.option.renewTicket": "true"
+          }
+        }
+      ]
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
index 4972972..c46a168 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py
@@ -439,6 +439,40 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
     else:
       putStormSiteAttributes('nimbus.authorizer', 'delete', 'true')
 
+  def constructAtlasRestAddress(self, services, hosts):
+    """
+    :param services: Collection of services in the cluster with configs
+    :param hosts: Collection of hosts in the cluster
+    :return: The suggested property for atlas.rest.address if it is valid, otherwise, None
+    """
+    atlas_rest_address = None
+    services_list = [service["StackServices"]["service_name"] for service in services["services"]]
+    is_atlas_in_cluster = "ATLAS" in services_list
+
+    atlas_server_host_info = self.getHostWithComponent("ATLAS", "ATLAS_SERVER", services, hosts)
+    if is_atlas_in_cluster and atlas_server_host_info:
+      atlas_rest_host = atlas_server_host_info['Hosts']['host_name']
+
+      scheme = "http"
+      metadata_port = "21000"
+      atlas_server_default_https_port = "21443"
+      tls_enabled = "false"
+      if 'application-properties' in services['configurations']:
+        if 'atlas.enableTLS' in services['configurations']['application-properties']['properties']:
+          tls_enabled = services['configurations']['application-properties']['properties']['atlas.enableTLS']
+        if 'atlas.server.http.port' in services['configurations']['application-properties']['properties']:
+          metadata_port = str(services['configurations']['application-properties']['properties']['atlas.server.http.port'])
+
+        if str(tls_enabled).lower() == "true":
+          scheme = "https"
+          if 'atlas.server.https.port' in services['configurations']['application-properties']['properties']:
+            metadata_port = str(services['configurations']['application-properties']['properties']['atlas.server.https.port'])
+          else:
+            metadata_port = atlas_server_default_https_port
+      atlas_rest_address = '{0}://{1}:{2}'.format(scheme, atlas_rest_host, metadata_port)
+      Logger.info("Constructing atlas.rest.address=%s" % atlas_rest_address)
+    return atlas_rest_address
+
   def recommendAtlasConfigurations(self, configurations, clusterData, services, hosts):
     putAtlasApplicationProperty = self.putProperty(configurations, "application-properties", services)
     putAtlasRangerPluginProperty = self.putProperty(configurations, "ranger-atlas-plugin-properties", services)
@@ -446,6 +480,11 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
 
     servicesList = [service["StackServices"]["service_name"] for service in services["services"]]
 
+    # Generate atlas.rest.address since the value is always computed
+    atlas_rest_address = self.constructAtlasRestAddress(services, hosts)
+    if atlas_rest_address is not None:
+      putAtlasApplicationProperty("atlas.rest.address", atlas_rest_address)
+
     if "LOGSEARCH" in servicesList and 'logsearch-solr-env' in services['configurations']:
 
       if 'logsearch_solr_znode' in services['configurations']['logsearch-solr-env']['properties']:
@@ -469,8 +508,8 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
     else:
       putAtlasApplicationProperty('atlas.graph.index.search.solr.zookeeper-url', "")
 
+    # Kafka section
     if "KAFKA" in servicesList and 'kafka-broker' in services['configurations']:
-
       kafka_hosts = self.getHostNamesWithComponent("KAFKA", "KAFKA_BROKER", services)
 
       if 'port' in services['configurations']['kafka-broker']['properties']:

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
index 7aa4a4e..13927f8 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
@@ -5800,8 +5800,6 @@ public class BlueprintConfigurationProcessorTest {
 
     Map<String, String> hiveProperties = new HashMap<String, String>();
     hiveProperties.put("hive.exec.post.hooks", "");
-    hiveProperties.put("atlas.cluster.name", "primary");
-    hiveProperties.put("atlas.rest.address", "http://localhost:21000");
     properties.put("hive-site", hiveProperties);
 
 
@@ -5823,7 +5821,8 @@ public class BlueprintConfigurationProcessorTest {
 
     configProcessor.doUpdateForClusterCreate();
 
-    assertEquals("http://localhost:21000", clusterConfig.getPropertyValue("hive-site", "atlas.rest.address"));
+    assertEquals(null, clusterConfig.getPropertyValue("hive-site", "atlas.cluster.name"));
+    assertEquals(null, clusterConfig.getPropertyValue("hive-site", "atlas.rest.address"));
   }
   
   @Test
@@ -5878,8 +5877,6 @@ public class BlueprintConfigurationProcessorTest {
 
     Map<String, String> hiveProperties = new HashMap<String, String>();
     hiveProperties.put("hive.exec.post.hooks", "");
-    hiveProperties.put("atlas.cluster.name", "primary");
-    hiveProperties.put("atlas.rest.address", "http://localhost:21000");
     properties.put("hive-site", hiveProperties);
 
     return properties;
@@ -5910,8 +5907,8 @@ public class BlueprintConfigurationProcessorTest {
     configProcessor.doUpdateForClusterCreate();
 
     assertEquals("org.apache.atlas.hive.hook.HiveHook", clusterConfig.getPropertyValue("hive-site", "hive.exec.post.hooks"));
-    assertEquals("1", clusterConfig.getPropertyValue("hive-site", "atlas.cluster.name"));
-    assertEquals("http://host1:21000", clusterConfig.getPropertyValue("hive-site", "atlas.rest.address"));
+    assertEquals(null, clusterConfig.getPropertyValue("hive-site", "atlas.cluster.name"));
+    assertEquals(null, clusterConfig.getPropertyValue("hive-site", "atlas.rest.address"));
     assertEquals("host1", clusterConfig.getPropertyValue("application-properties", "atlas.server.bind.address"));
   }
 
@@ -5931,9 +5928,6 @@ public class BlueprintConfigurationProcessorTest {
     Map<String, String> hiveProperties = new HashMap<String, String>();
     // default hook registered
     hiveProperties.put("hive.exec.post.hooks", "foo");
-    // user specified cluster name
-    hiveProperties.put("atlas.cluster.name", "userSpecified");
-    hiveProperties.put("atlas.rest.address", "http://localhost:21000");
     properties.put("hive-site", hiveProperties);
 
 
@@ -5957,8 +5951,8 @@ public class BlueprintConfigurationProcessorTest {
     configProcessor.doUpdateForClusterCreate();
 
     assertEquals("foo,org.apache.atlas.hive.hook.HiveHook", clusterConfig.getPropertyValue("hive-site", "hive.exec.post.hooks"));
-    assertEquals("userSpecified", clusterConfig.getPropertyValue("hive-site", "atlas.cluster.name"));
-    assertEquals("https://host1:99999", clusterConfig.getPropertyValue("hive-site", "atlas.rest.address"));
+    assertEquals(null, clusterConfig.getPropertyValue("hive-site", "atlas.cluster.name"));
+    assertEquals(null, clusterConfig.getPropertyValue("hive-site", "atlas.rest.address"));
   }
 
   @Test
@@ -7681,7 +7675,6 @@ public class BlueprintConfigurationProcessorTest {
     Long clusterId = topology.getClusterId();
 
     Map<String, String> hiveSiteProps = new HashMap<String, String>();
-    hiveSiteProps.put("atlas.cluster.name", String.valueOf(clusterId));
     hiveSiteProps.put("hive.exec.post.hooks", someString);
     properties.put("hive-site", hiveSiteProps);
 
@@ -7696,11 +7689,9 @@ public class BlueprintConfigurationProcessorTest {
     BlueprintConfigurationProcessor configProcessor = new BlueprintConfigurationProcessor(topology);
     configProcessor.doUpdateForBlueprintExport();
 
-    String atlasClusterName = properties.get("hive-site").get("atlas.cluster.name");
     String hiveExecPostHooks = properties.get("hive-site").get("hive.exec.post.hooks");
     String kafkaMetricsReporters = properties.get("kafka-broker").get("kafka.metrics.reporters");
     String metricsReporterRegister = properties.get("storm-site").get("metrics.reporter.register");
-    assertEquals("primary", atlasClusterName);
     assertEquals(someString, hiveExecPostHooks);
     assertEquals(someString, kafkaMetricsReporters);
     assertEquals(someString, metricsReporterRegister);

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py b/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
index 34bebe8..ff87adb 100644
--- a/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
+++ b/ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py
@@ -682,6 +682,15 @@ class TestHDP23StackAdvisor(TestCase):
       }
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.2",
+        "stack_name": "HDP",
+        "stack_version": "2.3",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.2/services/YARN",
@@ -949,6 +958,15 @@ class TestHDP23StackAdvisor(TestCase):
       }
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.2",
+        "stack_name": "HDP",
+        "stack_version": "2.3",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.2/services/YARN",
@@ -1176,6 +1194,15 @@ class TestHDP23StackAdvisor(TestCase):
       }
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.2",
+        "stack_name": "HDP",
+        "stack_version": "2.3",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.2/services/YARN",
@@ -1432,9 +1459,15 @@ class TestHDP23StackAdvisor(TestCase):
     clusterData = {}
     # Recommend for not existing DB_FLAVOR and http enabled, HDP-2.3
     services = {
-      "Versions" : {
-        "stack_version" : "2.3",
-        },
+      "Versions": {
+        "parent_stack_version": "2.2",
+        "stack_name": "HDP",
+        "stack_version": "2.3",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.2", "2.1", "2.0.6"]
+        }
+      },
       "services":  [
         {
           "StackServices": {

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py b/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
index ebd2f2a..2d4af2e 100644
--- a/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
+++ b/ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py
@@ -672,13 +672,19 @@ class TestHDP25StackAdvisor(TestCase):
   def test_recommendYARNConfigurations_create_llap_queue_1(self):
 
     services = {
+        "Versions": {
+          "parent_stack_version": "2.4",
+          "stack_name": "HDP",
+          "stack_version": "2.5",
+          "stack_hierarchy": {
+            "stack_name": "HDP",
+            "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+          }
+        },
       "services": [{
         "StackServices": {
           "service_name": "YARN",
         },
-        "Versions": {
-          "stack_version": "2.5"
-        },
         "components": [
           {
             "StackServiceComponents": {
@@ -5549,7 +5555,13 @@ class TestHDP25StackAdvisor(TestCase):
           "service_name": "YARN",
         },
         "Versions": {
-          "stack_version": "2.5"
+          "parent_stack_version": "2.4",
+          "stack_name": "HDP",
+          "stack_version": "2.5",
+          "stack_hierarchy": {
+            "stack_name": "HDP",
+            "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+          }
         },
         "components": [
           {
@@ -5756,7 +5768,13 @@ class TestHDP25StackAdvisor(TestCase):
           "service_name": "YARN",
         },
         "Versions": {
-          "stack_version": "2.5"
+          "parent_stack_version": "2.4",
+          "stack_name": "HDP",
+          "stack_version": "2.5",
+          "stack_hierarchy": {
+            "stack_name": "HDP",
+            "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+          }
         },
         "components": [
           {
@@ -5964,13 +5982,19 @@ class TestHDP25StackAdvisor(TestCase):
   #                    'hive.server2.tez.default.queues' value getting set to value of 'hive.llap.daemon.queue.name' (llap).
   def test_recommendHIVEConfigurations_for_llap_queue_prop_attributes_1(self):
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [{
         "StackServices": {
           "service_name": "YARN",
         },
-        "Versions": {
-          "stack_version": "2.5"
-        },
         "components": [
           {
             "StackServiceComponents": {
@@ -6140,13 +6164,19 @@ class TestHDP25StackAdvisor(TestCase):
   #                    'hive.server2.tez.default.queues' value getting set to value of 'hive.llap.daemon.queue.name' (llap).
   def test_recommendHIVEConfigurations_for_llap_queue_prop_attributes_2(self):
     services= {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [{
         "StackServices": {
           "service_name": "YARN",
         },
-        "Versions": {
-          "stack_version": "2.5"
-        },
         "components": [
           {
             "StackServiceComponents": {
@@ -6330,13 +6360,19 @@ class TestHDP25StackAdvisor(TestCase):
   #                    'hive.server2.tez.default.queues' value getting set to value of 'hive.llap.daemon.queue.name' (default).
   def test_recommendHIVEConfigurations_for_llap_queue_prop_attributes_3(self):
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [{
         "StackServices": {
           "service_name": "YARN",
         },
-        "Versions": {
-          "stack_version": "2.5"
-        },
         "components": [
           {
             "StackServiceComponents": {
@@ -6531,7 +6567,8 @@ class TestHDP25StackAdvisor(TestCase):
           "atlas.graph.storage.hostname": "c6401.ambari.apache.org",
           "atlas.kafka.bootstrap.servers": "c6401.ambari.apache.org:6667",
           "atlas.kafka.zookeeper.connect": "c6401.ambari.apache.org",
-          'atlas.authorizer.impl':'ranger'
+          "atlas.authorizer.impl": "ranger",
+          "atlas.rest.address": "http://c6401.ambari.apache.org:21000"
         }
       },
       "logsearch-solr-env": {
@@ -6547,6 +6584,15 @@ class TestHDP25StackAdvisor(TestCase):
       'atlas-env': {'properties': {}}
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.2/services/LOGSEARCH",
@@ -6829,6 +6875,15 @@ class TestHDP25StackAdvisor(TestCase):
       "hbaseRam": 4096,
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.4/services/HBASE",
@@ -6953,6 +7008,15 @@ class TestHDP25StackAdvisor(TestCase):
       "hbaseRam": 4096,
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.4/services/HBASE",
@@ -7080,6 +7144,15 @@ class TestHDP25StackAdvisor(TestCase):
       "hbaseRam": 4096,
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.4/services/HBASE",
@@ -7196,7 +7269,19 @@ class TestHDP25StackAdvisor(TestCase):
                       "capacity-scheduler":{"properties":{
                         "capacity-scheduler": "yarn.scheduler.capacity.root.queues=ndfqueue\n" +
                                               "yarn.scheduler.capacity.root.ndfqueue.queues=ndfqueue1,ndfqueue2\n"}}}
-    services = {"configurations": configurations, "services": [], "ambari-server-properties": {}}
+    services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
+      "configurations": configurations,
+      "services": [],
+      "ambari-server-properties": {}}
     clusterData = {
       "containers" : 5,
       "ramPerContainer": 256,
@@ -7299,6 +7384,15 @@ class TestHDP25StackAdvisor(TestCase):
       "hbaseRam": 4096,
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.4/services/HBASE",
@@ -7417,6 +7511,15 @@ class TestHDP25StackAdvisor(TestCase):
       "hbaseRam": 4096,
     }
     services = {
+      "Versions": {
+        "parent_stack_version": "2.4",
+        "stack_name": "HDP",
+        "stack_version": "2.5",
+        "stack_hierarchy": {
+          "stack_name": "HDP",
+          "stack_versions": ["2.4", "2.3", "2.2", "2.1", "2.0.6"]
+        }
+      },
       "services": [
         {
           "href": "/api/v1/stacks/HDP/versions/2.4/services/HBASE",

http://git-wip-us.apache.org/repos/asf/ambari/blob/39085e70/ambari-server/src/test/python/stacks/2.5/configs/default.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.5/configs/default.json b/ambari-server/src/test/python/stacks/2.5/configs/default.json
index a7e380a..407e4b9 100644
--- a/ambari-server/src/test/python/stacks/2.5/configs/default.json
+++ b/ambari-server/src/test/python/stacks/2.5/configs/default.json
@@ -238,6 +238,7 @@
     },
     "application-properties": {
       "atlas.cluster.name" : "c2",
+      "atlas.rest.address": "http://c6401.ambari.apache.org:21000",
       "atlas.graph.storage.backend": "berkeleyje",
       "atlas.graph.storage.directory": "data/berkley",
       "atlas.graph.index.search.backend": "solr5",


Mime
View raw message