You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2016/04/05 00:06:27 UTC

ambari git commit: Revert "AMBARI-15674: Remove hdp specific logic from custom_actions scripts (jluniya)"

Repository: ambari
Updated Branches:
  refs/heads/trunk 492954e42 -> 0300a6aee


Revert "AMBARI-15674: Remove hdp specific logic from custom_actions scripts (jluniya)"

This reverts commit 492954e42e631604fc02c7086d6036568b2a7fd7.


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

Branch: refs/heads/trunk
Commit: 0300a6aee863274fc5fcb67a04d24bda78dc3847
Parents: 492954e
Author: Jayush Luniya <jl...@hortonworks.com>
Authored: Mon Apr 4 15:05:26 2016 -0700
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Mon Apr 4 15:05:26 2016 -0700

----------------------------------------------------------------------
 .../custom_actions/scripts/install_packages.py  | 34 +++++++++-------
 .../custom_actions/scripts/ru_set_all.py        | 42 +++++++++++---------
 2 files changed, 43 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/0300a6ae/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 c01dbb3..2e5cffc 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
@@ -36,13 +36,11 @@ from resource_management.libraries.functions.packages_analyzer import allInstall
 from resource_management.libraries.functions import conf_select
 from resource_management.libraries.functions import stack_tools
 from resource_management.libraries.functions.stack_select import get_stack_versions
-from resource_management.libraries.functions.version import format_stack_version
+from resource_management.libraries.functions.version import compare_versions, format_stack_version
 from resource_management.libraries.functions.repo_version_history \
   import read_actual_version_from_history_file, write_actual_version_to_history_file, REPO_VERSION_HISTORY_FILE
 from resource_management.libraries.script.script import Script
 from resource_management.core.resources.system import Execute
-from resource_management.libraries.functions.stack_features import check_stack_feature
-from resource_management.libraries.functions import StackFeature
 
 from resource_management.core.logger import Logger
 
@@ -56,6 +54,8 @@ class InstallPackages(Script):
   """
 
   UBUNTU_REPO_COMPONENTS_POSTFIX = ["main"]
+  REPO_FILE_NAME_PREFIX = 'HDP-'
+  STACK_TO_ROOT_FOLDER = {"HDP": "/usr/hdp"}
 
   def actionexecute(self, env):
     num_errors = 0
@@ -91,12 +91,16 @@ class InstallPackages(Script):
       self.current_stack_version_formatted = format_stack_version(current_stack_version_unformatted)
 
 
-    self.stack_name = Script.get_stack_name()
-    if self.stack_name is None:
-      raise Fail("Cannot determine the stack name")
-    self.stack_root_folder = Script.get_stack_root()
+    stack_name = None
+    self.stack_root_folder = None
+    if stack_id and "-" in stack_id:
+      stack_split = stack_id.split("-")
+      if len(stack_split) == 2:
+        stack_name = stack_split[0].upper()
+        if stack_name in self.STACK_TO_ROOT_FOLDER:
+          self.stack_root_folder = self.STACK_TO_ROOT_FOLDER[stack_name]
     if self.stack_root_folder is None:
-      raise Fail("Cannot determine the stack's root directory")
+      raise Fail("Cannot determine the stack's root directory by parsing the stack_id property, {0}".format(str(stack_id)))
     if self.repository_version is None:
       raise Fail("Cannot determine the repository version to install")
 
@@ -184,19 +188,21 @@ class InstallPackages(Script):
       Logger.info("Unrecognized stack id {0}, cannot create config links".format(stack_id))
       return
 
-    target_stack_version = args[1]
-    if not (target_stack_version and check_stack_feature(StackFeature.CONFIG_VERSIONING, target_stack_version)):
-      Logger.info("Configuration symlinks are not needed for {0}".format(stack_version))
+    if args[0] != "HDP":
+      Logger.info("Unrecognized stack name {0}, cannot create config links".format(args[0]))
+
+    if compare_versions(format_stack_version(args[1]), "2.3.0.0") < 0:
+      Logger.info("Configuration symlinks are not needed for {0}, only HDP-2.3+".format(stack_version))
       return
 
     for package_name, directories in conf_select.get_package_dirs().iteritems():
       # if already on HDP 2.3, then we should skip making conf.backup folders
-      if self.current_stack_version_formatted and check_stack_feature(StackFeature.CONFIG_VERSIONING, self.current_stack_version_formatted):
+      if self.current_stack_version_formatted and compare_versions(self.current_stack_version_formatted, '2.3') >= 0:
         conf_selector_name = stack_tools.get_stack_tool_name(stack_tools.CONF_SELECTOR_NAME)
         Logger.info("The current cluster stack of {0} does not require backing up configurations; "
                     "only {1} versioned config directories will be created.".format(stack_version, conf_selector_name))
         # only link configs for all known packages
-        conf_select.select(self.stack_name, package_name, stack_version, ignore_errors = True)
+        conf_select.select("HDP", package_name, stack_version, ignore_errors = True)
       else:
         # link configs and create conf.backup folders for all known packages
         # this will also call conf-select select
@@ -407,7 +413,7 @@ class InstallPackages(Script):
       repo['mirrorsList'] = url_info['mirrorsList']
 
     ubuntu_components = [url_info['name']] + self.UBUNTU_REPO_COMPONENTS_POSTFIX
-    file_name = self.stack_name + "-" + self.repository_version
+    file_name = self.REPO_FILE_NAME_PREFIX + self.repository_version
 
     Repository(repo['repoName'],
       action = "create",

http://git-wip-us.apache.org/repos/asf/ambari/blob/0300a6ae/ambari-server/src/main/resources/custom_actions/scripts/ru_set_all.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/ru_set_all.py b/ambari-server/src/main/resources/custom_actions/scripts/ru_set_all.py
index d70e87f..bcb08c4 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/ru_set_all.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/ru_set_all.py
@@ -28,13 +28,12 @@ from resource_management.libraries.functions import conf_select
 from resource_management.libraries.functions import stack_tools
 from resource_management.libraries.functions.constants import Direction
 from resource_management.libraries.functions.default import default
+from resource_management.libraries.functions.version import compare_versions
 from resource_management.libraries.functions.version import format_stack_version
 from resource_management.core import shell
 from resource_management.core.exceptions import Fail
 from resource_management.core.logger import Logger
 from resource_management.core.resources.system import Execute, Link, Directory
-from resource_management.libraries.functions.stack_features import check_stack_feature
-from resource_management.libraries.functions import StackFeature
 
 class UpgradeSetAll(Script):
   """
@@ -56,17 +55,19 @@ class UpgradeSetAll(Script):
       cmd = ('/usr/bin/yum', 'clean', 'all')
       code, out = shell.call(cmd, sudo=True)
 
+    min_ver = format_stack_version("2.2")
     real_ver = format_stack_version(version)
-    if real_ver and check_stack_feature(StackFeature.ROLLING_UPGRADE, real_ver):
-      stack_selector_path = stack_tools.get_stack_tool_path(stack_tools.STACK_SELECTOR_NAME)
-      cmd = ('ambari-python-wrap', stack_selector_path, 'set', 'all', version)
-      code, out = shell.call(cmd, sudo=True)
+    if stack_name == "HDP":
+      if compare_versions(real_ver, min_ver) >= 0:
+        stack_selector_path = stack_tools.get_stack_tool_path(stack_tools.STACK_SELECTOR_NAME)
+        cmd = ('ambari-python-wrap', stack_selector_path, 'set', 'all', version)
+        code, out = shell.call(cmd, sudo=True)
 
-    if real_ver and check_stack_feature(StackFeature.CONFIG_VERSIONING, real_ver):
-      # backup the old and symlink /etc/[component]/conf to <stack-root>/current/[component]
-      for k, v in conf_select.get_package_dirs().iteritems():
-        for dir_def in v:
-          link_config(dir_def['conf_dir'], dir_def['current_dir'])
+      if compare_versions(real_ver, format_stack_version("2.3")) >= 0:
+        # backup the old and symlink /etc/[component]/conf to <stack-root>/current/[component]
+        for k, v in conf_select.get_package_dirs().iteritems():
+          for dir_def in v:
+            link_config(dir_def['conf_dir'], dir_def['current_dir'])
 
 
   def unlink_all_configs(self, env):
@@ -84,27 +85,30 @@ class UpgradeSetAll(Script):
       Logger.warning("Unlinking configurations should only be performed on a downgrade.")
       return
 
+    # HDP only
+    if stack_name != "HDP":
+      Logger.warning("Unlinking configurations should only be performed on the HDP stack.")
+      return
+
     if downgrade_to_version is None or downgrade_from_version is None:
       Logger.warning("Both 'commandParams/version' and 'commandParams/downgrade_from_version' must be specified to unlink configs on downgrade.")
       return
 
-    Logger.info("Unlinking all configs when downgrading from {0} {1} to {2}".format(
-        stack_name, downgrade_from_version, downgrade_to_version))
+    Logger.info("Unlinking all configs when downgrading from HDP 2.3 to 2.2")
 
     # normalize the versions
+    stack_23 = format_stack_version("2.3")
     downgrade_to_version = format_stack_version(downgrade_to_version)
     downgrade_from_version = format_stack_version(downgrade_from_version)
 
     # downgrade-to-version must be 2.2 (less than 2.3)
-    if downgrade_to_version and check_stack_feature(StackFeature.CONFIG_VERSIONING, downgrade_to_version):
-      Logger.warning("Unlinking configurations should not be performed when downgrading {0} {1} to {2}".format(
-          stack_name, downgrade_from_version, downgrade_to_version))
+    if compare_versions(downgrade_to_version, stack_23) >= 0:
+      Logger.warning("Unlinking configurations should only be performed when downgrading to HDP 2.2")
       return
 
     # downgrade-from-version must be 2.3+
-    if not( downgrade_from_version and check_stack_feature(StackFeature.CONFIG_VERSIONING, downgrade_from_version) ):
-      Logger.warning("Unlinking configurations should not be performed when downgrading {0} {1} to {2}".format(
-          stack_name, downgrade_from_version, downgrade_to_version))
+    if compare_versions(downgrade_from_version, stack_23) < 0:
+      Logger.warning("Unlinking configurations should only be performed when downgrading from HDP 2.3 or later")
       return
 
     # iterate through all directory conf mappings and undo the symlinks