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
