Repository: ambari
Updated Branches:
  refs/heads/branch-feature-AMBARI-14714 89bb02c43 -> 67cacc8ab


http://git-wip-us.apache.org/repos/asf/ambari/blob/2bab2159/contrib/management-packs/hdf-ambari-mpack/src/main/resources/stacks/HDF/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git 
a/contrib/management-packs/hdf-ambari-mpack/src/main/resources/stacks/HDF/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
 
b/contrib/management-packs/hdf-ambari-mpack/src/main/resources/stacks/HDF/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
index 87c48ef..18014b6 100644
--- 
a/contrib/management-packs/hdf-ambari-mpack/src/main/resources/stacks/HDF/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
+++ 
b/contrib/management-packs/hdf-ambari-mpack/src/main/resources/stacks/HDF/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
@@ -29,24 +29,35 @@ from resource_management.libraries.resources.xml_config 
import XmlConfig
 from resource_management.libraries.script import Script
 
 
-def setup_stack_symlinks():
+def setup_stack_symlinks(struct_out_file):
   """
   Invokes <stack-selector-tool> set all against a calculated fully-qualified, 
"normalized" version based on a
-  stack version, such as "0.3". This should always be called after a component 
has been
-  installed to ensure that all HDF pointers are correct. The stack upgrade 
logic does not
+  stack version, such as "2.3". This should always be called after a component 
has been
+  installed to ensure that all HDP pointers are correct. The stack upgrade 
logic does not
   interact with this since it's done via a custom command and will not trigger 
this hook.
   :return:
   """
   import params
-  if params.stack_version_formatted != "" and 
compare_versions(params.stack_version_formatted, '0.2') >= 0:
-    # try using the exact version first, falling back in just the stack if 
it's not defined
-    # which would only be during an intial cluster installation
-    version = params.current_version if params.current_version is not None 
else params.stack_version_unformatted
-
-    if not params.upgrade_suspended:
-      # On parallel command execution this should be executed by a single 
process at a time.
-      with FcntlBasedProcessLock(params.stack_select_lock_file, enabled = 
params.is_parallel_execution_enabled, skip_fcntl_failures = True):
-        stack_select.select_all(version)
+  if params.upgrade_suspended:
+    Logger.warning("Skipping running stack-selector-tool because there is a 
suspended upgrade")
+    return
+
+  # get the packages which the stack-select tool should be used on
+  stack_select_packages = 
stack_select.get_packages(stack_select.PACKAGE_SCOPE_INSTALL)
+  if stack_select_packages is None:
+    return
+
+  json_version = load_version(struct_out_file)
+
+  if not json_version:
+    Logger.info("There is no advertised version for this component stored in 
{0}".format(struct_out_file))
+    return
+
+  # On parallel command execution this should be executed by a single process 
at a time.
+  with FcntlBasedProcessLock(params.stack_select_lock_file, enabled = 
params.is_parallel_execution_enabled, skip_fcntl_failures = True):
+    for package in stack_select_packages:
+      stack_select.select(package, json_version)
+
 
 def setup_config():
   import params

http://git-wip-us.apache.org/repos/asf/ambari/blob/2bab2159/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/hook.py
----------------------------------------------------------------------
diff --git 
a/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/hook.py
 
b/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/hook.py
index 8a583b3..8bae9e6 100755
--- 
a/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/hook.py
+++ 
b/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/hook.py
@@ -28,7 +28,7 @@ class AfterInstallHook(Hook):
     import params
 
     env.set_params(params)
-    setup_stack_symlinks()
+    setup_stack_symlinks(self.stroutfile)
     setup_config()
 
     link_configs(self.stroutfile)

http://git-wip-us.apache.org/repos/asf/ambari/blob/2bab2159/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git 
a/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
 
b/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
index 9982dc6..9fe4527 100755
--- 
a/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
+++ 
b/contrib/management-packs/odpi-ambari-mpack/src/main/resources/stacks/ODPi/2.0/hooks/after-INSTALL/scripts/shared_initialization.py
@@ -29,7 +29,7 @@ from resource_management.libraries.resources.xml_config 
import XmlConfig
 from resource_management.libraries.script import Script
 
 
-def setup_stack_symlinks():
+def setup_stack_symlinks(struct_out_file):
   """
   Invokes <stack-selector-tool> set all against a calculated fully-qualified, 
"normalized" version based on a
   stack version, such as "2.3". This should always be called after a component 
has been
@@ -38,15 +38,26 @@ def setup_stack_symlinks():
   :return:
   """
   import params
-  if params.stack_version_formatted != "" and 
compare_versions(params.stack_version_formatted, '2.2') >= 0:
-    # try using the exact version first, falling back in just the stack if 
it's not defined
-    # which would only be during an intial cluster installation
-    version = params.current_version if params.current_version is not None 
else params.stack_version_unformatted
-
-    if not params.upgrade_suspended:
-      # On parallel command execution this should be executed by a single 
process at a time.
-      with FcntlBasedProcessLock(params.stack_select_lock_file, enabled = 
params.is_parallel_execution_enabled, skip_fcntl_failures = True):
-        stack_select.select_all(version)
+  if params.upgrade_suspended:
+    Logger.warning("Skipping running stack-selector-tool because there is a 
suspended upgrade")
+    return
+
+  # get the packages which the stack-select tool should be used on
+  stack_select_packages = 
stack_select.get_packages(stack_select.PACKAGE_SCOPE_INSTALL)
+  if stack_select_packages is None:
+    return
+
+  json_version = load_version(struct_out_file)
+
+  if not json_version:
+    Logger.info("There is no advertised version for this component stored in 
{0}".format(struct_out_file))
+    return
+
+  # On parallel command execution this should be executed by a single process 
at a time.
+  with FcntlBasedProcessLock(params.stack_select_lock_file, enabled = 
params.is_parallel_execution_enabled, skip_fcntl_failures = True):
+    for package in stack_select_packages:
+      stack_select.select(package, json_version)
+
 
 def setup_config():
   import params

Reply via email to