You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by am...@apache.org on 2018/01/05 07:56:28 UTC

[32/45] ambari git commit: AMBARI-22678. Fix Broken Symlinks on Stack Distribution (dlysnichenko)

AMBARI-22678. Fix Broken Symlinks on Stack Distribution (dlysnichenko)


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

Branch: refs/heads/branch-feature-AMBARI-22008-isilon
Commit: 72812bd2bdd496056407d930c4c7e232bd487703
Parents: dfb9785
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Thu Jan 4 18:42:11 2018 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Thu Jan 4 18:42:11 2018 +0200

----------------------------------------------------------------------
 .../SPARK/1.2.1/package/scripts/livy_service.py |   2 -
 .../2.0.0/package/scripts/livy2_service.py      |   2 -
 .../custom_actions/scripts/install_packages.py  |  38 ++++---
 .../HDP/2.0.6/properties/stack_packages.json    | 102 ++++++++++++-------
 4 files changed, 92 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/72812bd2/ambari-server/src/main/resources/common-services/SPARK/1.2.1/package/scripts/livy_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/package/scripts/livy_service.py b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/package/scripts/livy_service.py
index add5a77..0e78881 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.1/package/scripts/livy_service.py
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.1/package/scripts/livy_service.py
@@ -48,5 +48,3 @@ def livy_service(name, upgrade_type=None, action=None):
             on_timeout=format("! ( {process_id_exists_command} ) || {sudo} -H -E kill -9 {livy_server_pid}"),
             environment={'JAVA_HOME': params.java_home}
             )
-
-    File(params.livy_server_pid_file, action="delete")

http://git-wip-us.apache.org/repos/asf/ambari/blob/72812bd2/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/package/scripts/livy2_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/package/scripts/livy2_service.py b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/package/scripts/livy2_service.py
index 0180a31..2ac8fd4 100644
--- a/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/package/scripts/livy2_service.py
+++ b/ambari-server/src/main/resources/common-services/SPARK2/2.0.0/package/scripts/livy2_service.py
@@ -48,5 +48,3 @@ def livy2_service(name, upgrade_type=None, action=None):
             on_timeout=format("! ( {process_id_exists_command} ) || {sudo} -H -E kill -9 {livy2_server_pid}"),
             environment={'JAVA_HOME': params.java_home}
             )
-
-    File(params.livy2_server_pid_file, action="delete")

http://git-wip-us.apache.org/repos/asf/ambari/blob/72812bd2/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
index 4cdb0e5..11b571b 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
@@ -154,15 +154,12 @@ class InstallPackages(Script):
     if num_errors > 0:
       raise Fail("Failed to distribute repositories/install packages")
 
-    self._fix_default_links("livy", "livy-server")
-    self._fix_default_links("livy2", "livy2-server")
-
+    self._fix_default_links_for_current()
     # if installing a version of HDP that needs some symlink love, then create them
     if is_package_install_successful and 'actual_version' in self.structured_output:
       self._relink_configurations_with_conf_select(stack_id, self.structured_output['actual_version'])
 
-
-  def _fix_default_links(self, package_name, component_name):
+  def _fix_default_links_for_current(self):
     """
     If a prior version of Ambari did not correctly reverse the conf symlinks, then they would
     be put into a bad state when distributing a new stack. For example:
@@ -181,19 +178,32 @@ class InstallPackages(Script):
 
     :return: None
     """
+    Logger.info("Attempting to fix any configuration symlinks which are not in the correct state")
     from resource_management.libraries.functions import stack_select
-    package_dirs = conf_select.get_package_dirs()
-    if package_name in package_dirs:
-      Logger.info("Determining if the default conf links for {0} need to be fixed".format(package_name))
+    restricted_packages = conf_select.get_restricted_packages()
+
+    if 0 == len(restricted_packages):
+      Logger.info("There are no restricted conf-select packages for this installation")
+    else:
+      Logger.info("Restricting conf-select packages to {0}".format(restricted_packages))
 
-      directories = package_dirs[package_name]
-      Logger.info("The following directories will be checked for {0}: {1}".format(package_name,
-        str(directories)))
+    for package_name, directories in conf_select.get_package_dirs().iteritems():
+      Logger.info("Attempting to fix the default conf links for {0}".format(package_name))
+      Logger.info("The following directories will be fixed for {0}: {1}".format(package_name, str(directories)))
 
-      stack_version = stack_select.get_stack_version_before_install(component_name)
-      if stack_version:
-        conf_select.convert_conf_directories_to_symlinks(package_name, stack_version, directories)
+      component_name = None
+      for directory_struct in directories:
+        if "component" in directory_struct:
+          component_name = directory_struct["component"]
+      if component_name:
+        stack_version = stack_select.get_stack_version_before_install(component_name)
 
+      if 0 == len(restricted_packages) or package_name in restricted_packages:
+        if stack_version:
+          conf_select.convert_conf_directories_to_symlinks(package_name, stack_version, directories)
+        else:
+          Logger.warning(
+            "Unable to fix {0} since there is no known installed version for this component".format(package_name))
 
   def _relink_configurations_with_conf_select(self, stack_id, stack_version):
     """

http://git-wip-us.apache.org/repos/asf/ambari/blob/72812bd2/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
index 68da0dd..c3d0d9b 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_packages.json
@@ -1000,205 +1000,239 @@
       "accumulo": [
         {
           "conf_dir": "/etc/accumulo/conf",
-          "current_dir": "{0}/current/accumulo-client/conf"
+          "current_dir": "{0}/current/accumulo-client/conf",
+          "component": "accumulo-client"
         }
       ],
       "atlas": [
         {
           "conf_dir": "/etc/atlas/conf",
-          "current_dir": "{0}/current/atlas-client/conf"
+          "current_dir": "{0}/current/atlas-client/conf",
+          "component": "atlas-client"
         }
       ],
       "druid": [
         {
           "conf_dir": "/etc/druid/conf",
-          "current_dir": "{0}/current/druid-overlord/conf"
+          "current_dir": "{0}/current/druid-overlord/conf",
+          "component": "druid-overlord"
         }
       ],
       "falcon": [
         {
           "conf_dir": "/etc/falcon/conf",
-          "current_dir": "{0}/current/falcon-client/conf"
+          "current_dir": "{0}/current/falcon-client/conf",
+          "component": "falcon-client"
         }
       ],
       "flume": [
         {
           "conf_dir": "/etc/flume/conf",
-          "current_dir": "{0}/current/flume-server/conf"
+          "current_dir": "{0}/current/flume-server/conf",
+          "component": "flume-server"
         }
       ],
       "hadoop": [
         {
           "conf_dir": "/etc/hadoop/conf",
-          "current_dir": "{0}/current/hadoop-client/conf"
+          "current_dir": "{0}/current/hadoop-client/conf",
+          "component": "hadoop-client"
         }
       ],
       "hbase": [
         {
           "conf_dir": "/etc/hbase/conf",
-          "current_dir": "{0}/current/hbase-client/conf"
+          "current_dir": "{0}/current/hbase-client/conf",
+          "component": "hbase-client"
         }
       ],
       "hive": [
         {
           "conf_dir": "/etc/hive/conf",
-          "current_dir": "{0}/current/hive-client/conf"
+          "current_dir": "{0}/current/hive-client/conf",
+          "component": "hive-client"
         }
       ],
       "hive2": [
         {
           "conf_dir": "/etc/hive2/conf",
-          "current_dir": "{0}/current/hive-server2-hive2/conf"
+          "current_dir": "{0}/current/hive-server2-hive2/conf",
+          "component": "hive-server2-hive2"
         }
       ],
       "hive-hcatalog": [
         {
           "conf_dir": "/etc/hive-webhcat/conf",
           "prefix": "/etc/hive-webhcat",
-          "current_dir": "{0}/current/hive-webhcat/etc/webhcat"
+          "current_dir": "{0}/current/hive-webhcat/etc/webhcat",
+          "component": "hive-webhcat"
         },
         {
           "conf_dir": "/etc/hive-hcatalog/conf",
           "prefix": "/etc/hive-hcatalog",
-          "current_dir": "{0}/current/hive-webhcat/etc/hcatalog"
+          "current_dir": "{0}/current/hive-webhcat/etc/hcatalog",
+          "component": "hive-webhcat"
         }
       ],
       "kafka": [
         {
           "conf_dir": "/etc/kafka/conf",
-          "current_dir": "{0}/current/kafka-broker/conf"
+          "current_dir": "{0}/current/kafka-broker/conf",
+          "component": "kafka-broker"
         }
       ],
       "knox": [
         {
           "conf_dir": "/etc/knox/conf",
-          "current_dir": "{0}/current/knox-server/conf"
+          "current_dir": "{0}/current/knox-server/conf",
+          "component": "knox-server"
         }
       ],
       "livy": [
         {
           "conf_dir": "/etc/livy/conf",
-          "current_dir": "{0}/current/livy-client/conf"
+          "current_dir": "{0}/current/livy-client/conf",
+          "component": "livy-client"
         }
       ],
       "livy2": [
         {
           "conf_dir": "/etc/livy2/conf",
-          "current_dir": "{0}/current/livy2-client/conf"
+          "current_dir": "{0}/current/livy2-client/conf",
+          "component": "livy2-client"
         }
       ],
       "mahout": [
         {
           "conf_dir": "/etc/mahout/conf",
-          "current_dir": "{0}/current/mahout-client/conf"
+          "current_dir": "{0}/current/mahout-client/conf",
+          "component": "mahout-client"
         }
       ],
       "nifi": [
         {
           "conf_dir": "/etc/nifi/conf",
-          "current_dir": "{0}/current/nifi/conf"
+          "current_dir": "{0}/current/nifi/conf",
+          "component": "nifi"
         }
       ],
       "oozie": [
         {
           "conf_dir": "/etc/oozie/conf",
-          "current_dir": "{0}/current/oozie-client/conf"
+          "current_dir": "{0}/current/oozie-client/conf",
+          "component": "oozie-client"
         }
       ],
       "phoenix": [
         {
           "conf_dir": "/etc/phoenix/conf",
-          "current_dir": "{0}/current/phoenix-client/conf"
+          "current_dir": "{0}/current/phoenix-client/conf",
+          "component": "phoenix-client"
         }
       ],
       "pig": [
         {
           "conf_dir": "/etc/pig/conf",
-          "current_dir": "{0}/current/pig-client/conf"
+          "current_dir": "{0}/current/pig-client/conf",
+          "component": "pig-client"
         }
       ],
       "ranger-admin": [
         {
           "conf_dir": "/etc/ranger/admin/conf",
-          "current_dir": "{0}/current/ranger-admin/conf"
+          "current_dir": "{0}/current/ranger-admin/conf",
+          "component": "ranger-admin"
         }
       ],
       "ranger-kms": [
         {
           "conf_dir": "/etc/ranger/kms/conf",
-          "current_dir": "{0}/current/ranger-kms/conf"
+          "current_dir": "{0}/current/ranger-kms/conf",
+          "component": "ranger-kms"
         }
       ],
       "ranger-tagsync": [
         {
           "conf_dir": "/etc/ranger/tagsync/conf",
-          "current_dir": "{0}/current/ranger-tagsync/conf"
+          "current_dir": "{0}/current/ranger-tagsync/conf",
+          "component": "ranger-tagsync"
         }
       ],
       "ranger-usersync": [
         {
           "conf_dir": "/etc/ranger/usersync/conf",
-          "current_dir": "{0}/current/ranger-usersync/conf"
+          "current_dir": "{0}/current/ranger-usersync/conf",
+          "component": "ranger-usersync"
         }
       ],
       "slider": [
         {
           "conf_dir": "/etc/slider/conf",
-          "current_dir": "{0}/current/slider-client/conf"
+          "current_dir": "{0}/current/slider-client/conf",
+          "component": "slider-client"
         }
       ],
       "spark": [
         {
           "conf_dir": "/etc/spark/conf",
-          "current_dir": "{0}/current/spark-client/conf"
+          "current_dir": "{0}/current/spark-client/conf",
+          "component": "spark-client"
         }
       ],
       "spark2": [
         {
           "conf_dir": "/etc/spark2/conf",
-          "current_dir": "{0}/current/spark2-client/conf"
+          "current_dir": "{0}/current/spark2-client/conf",
+          "component": "spark2-client"
         }
       ],
       "sqoop": [
         {
           "conf_dir": "/etc/sqoop/conf",
-          "current_dir": "{0}/current/sqoop-client/conf"
+          "current_dir": "{0}/current/sqoop-client/conf",
+          "component": "sqoop-client"
         }
       ],
       "storm": [
         {
           "conf_dir": "/etc/storm/conf",
-          "current_dir": "{0}/current/storm-client/conf"
+          "current_dir": "{0}/current/storm-client/conf",
+          "component": "storm-client"
         }
       ],
       "storm-slider-client": [
         {
           "conf_dir": "/etc/storm-slider-client/conf",
-          "current_dir": "{0}/current/storm-slider-client/conf"
+          "current_dir": "{0}/current/storm-slider-client/conf",
+          "component": "storm-slider-client"
         }
       ],
       "superset": [
         {
           "conf_dir": "/etc/druid-superset/conf",
-          "current_dir": "{0}/current/druid-superset/conf"
+          "current_dir": "{0}/current/druid-superset/conf",
+          "component": "druid-superset"
         }
       ],
       "tez": [
         {
           "conf_dir": "/etc/tez/conf",
-          "current_dir": "{0}/current/tez-client/conf"
+          "current_dir": "{0}/current/tez-client/conf",
+          "component": "tez-client"
         }
       ],
       "zeppelin": [
         {
           "conf_dir": "/etc/zeppelin/conf",
-          "current_dir": "{0}/current/zeppelin-server/conf"
+          "current_dir": "{0}/current/zeppelin-server/conf",
+          "component": "zeppelin-server"
         }
       ],
       "zookeeper": [
         {
           "conf_dir": "/etc/zookeeper/conf",
-          "current_dir": "{0}/current/zookeeper-client/conf"
+          "current_dir": "{0}/current/zookeeper-client/conf",
+          "component": "zookeeper-client"
         }
       ]
     },