AMBARI-21039. Atlas web UI inaccessible after adding Atlas service on upgraded cluster with Hive because /etc/atlas/conf symlink was created ahead of time (alejandro)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9cb87011 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9cb87011 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9cb87011 Branch: refs/heads/branch-feature-AMBARI-12556 Commit: 9cb87011c716e6fc8eeec0b2ca57a75fa9c7d2d9 Parents: 2e27f66 Author: Alejandro Fernandez <afernan...@hortonworks.com> Authored: Thu May 18 12:16:33 2017 -0400 Committer: Alejandro Fernandez <afernan...@hortonworks.com> Committed: Thu May 18 12:16:33 2017 -0400 ---------------------------------------------------------------------- .../libraries/functions/conf_select.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/9cb87011/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py b/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py index ce00f0c..facf186 100644 --- a/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py +++ b/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py @@ -356,11 +356,16 @@ def select(stack_name, package, version, try_create=True, ignore_errors=False): then the Atlas RPM will not be able to copy its artifacts into /etc/atlas/conf directory and therefore prevent Ambari from by copying those unmanaged contents into /etc/atlas/$version/0 ''' - parent_dir = os.path.dirname(current_dir) - if os.path.exists(parent_dir): - Link(conf_dir, to=current_dir) + component_list = default("/localComponents", []) + if "ATLAS_SERVER" in component_list or "ATLAS_CLIENT" in component_list: + Logger.info("Atlas is installed on this host.") + parent_dir = os.path.dirname(current_dir) + if os.path.exists(parent_dir): + Link(conf_dir, to=current_dir) + else: + Logger.info("Will not create symlink from {0} to {1} because the destination's parent dir does not exist.".format(conf_dir, current_dir)) else: - Logger.info("Will not create symlink from {0} to {1} because the destination's parent dir does not exist.".format(conf_dir, current_dir)) + Logger.info("Will not create symlink from {0} to {1} because Atlas is not installed on this host.".format(conf_dir, current_dir)) else: # Normal path for other packages Link(conf_dir, to=current_dir)