You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/10/09 16:21:18 UTC
ambari git commit: Revert "AMBARI-22160. hadooplzo package
installation failed on devdeploys (aonishuk)"
Repository: ambari
Updated Branches:
refs/heads/branch-2.6 8a139c38b -> f3126fd74
Revert "AMBARI-22160. hadooplzo package installation failed on devdeploys (aonishuk)"
This reverts commit eaa8780635cdcbe40c704bb88f4f9aa0f00df494.
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f3126fd7
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f3126fd7
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f3126fd7
Branch: refs/heads/branch-2.6
Commit: f3126fd741dfdd433c46756166f4bb146322d530
Parents: 8a139c3
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Mon Oct 9 12:21:06 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Mon Oct 9 12:21:06 2017 -0400
----------------------------------------------------------------------
.../libraries/script/script.py | 43 ++++++--------------
.../stacks/2.0.6/HBASE/test_hbase_master.py | 2 -
.../src/test/python/stacks/utils/RMFTestCase.py | 4 +-
3 files changed, 14 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3126fd7/ambari-common/src/main/python/resource_management/libraries/script/script.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/script/script.py b/ambari-common/src/main/python/resource_management/libraries/script/script.py
index e36392c..a1fd1f3 100644
--- a/ambari-common/src/main/python/resource_management/libraries/script/script.py
+++ b/ambari-common/src/main/python/resource_management/libraries/script/script.py
@@ -482,7 +482,6 @@ class Script(object):
Script.stack_version_from_distro_select = pkg_provider.get_installed_package_version(
stack_tools.get_stack_tool_package(stack_tools.STACK_SELECTOR_NAME))
-
return Script.stack_version_from_distro_select
@@ -507,20 +506,22 @@ class Script(object):
"""
This function replaces ${stack_version} placeholder with actual version. If the package
version is passed from the server, use that as an absolute truth.
-
+
:param name name of the package
:param repo_version actual version of the repo currently installing
"""
- if not STACK_VERSION_PLACEHOLDER in name:
- return name
-
stack_version_package_formatted = ""
+ if not repo_version:
+ repo_version = self.get_stack_version_before_packages_installed()
+
package_delimiter = '-' if OSCheck.is_ubuntu_family() else '_'
# repositoryFile is the truth
# package_version should be made to the form W_X_Y_Z_nnnn
package_version = default("repositoryFile/repoVersion", None)
+ if package_version is not None:
+ package_version = package_version.replace('.', package_delimiter).replace('-', package_delimiter)
# TODO remove legacy checks
if package_version is None:
@@ -530,16 +531,6 @@ class Script(object):
if package_version is None:
package_version = default("hostLevelParams/package_version", None)
- if package_version is None or '-' not in package_version:
- self.load_available_packages()
- package_name = self.get_package_from_available(name, self.available_packages_in_repos)
- if package_name is None:
- raise Fail("Cannot match package for regexp name {0}. Available packages: {1}".format(name, self.available_packages_in_repos))
- return package_name
-
- if package_version is not None:
- package_version = package_version.replace('.', package_delimiter).replace('-', package_delimiter)
-
# The cluster effective version comes down when the version is known after the initial
# install. In that case we should not be guessing which version when invoking INSTALL, but
# use the supplied version to build the package_version
@@ -558,7 +549,6 @@ class Script(object):
# Wildcards cause a lot of troubles with installing packages, if the version contains wildcards we try to specify it.
if not package_version or '*' in package_version:
- repo_version = self.get_stack_version_before_packages_installed()
stack_version_package_formatted = repo_version.replace('.', package_delimiter).replace('-', package_delimiter) if STACK_VERSION_PLACEHOLDER in name else name
package_name = name.replace(STACK_VERSION_PLACEHOLDER, stack_version_package_formatted)
@@ -751,18 +741,6 @@ class Script(object):
"""
self.install_packages(env)
- def load_available_packages(self):
- if self.available_packages_in_repos:
- return self.available_packages_in_repos
-
- pkg_provider = get_provider("Package")
- try:
- self.available_packages_in_repos = pkg_provider.get_available_packages_in_repos(CommandRepository(config['repositoryFile']))
- except Exception as err:
- Logger.exception("Unable to load available packages")
- self.available_packages_in_repos = []
-
-
def install_packages(self, env):
"""
List of packages that are required< by service is received from the server
@@ -785,11 +763,17 @@ class Script(object):
package_list_str = config['hostLevelParams']['package_list']
agent_stack_retry_on_unavailability = bool(config['hostLevelParams']['agent_stack_retry_on_unavailability'])
agent_stack_retry_count = int(config['hostLevelParams']['agent_stack_retry_count'])
+ pkg_provider = get_provider("Package")
+ try:
+ available_packages_in_repos = pkg_provider.get_available_packages_in_repos(CommandRepository(config['repositoryFile']))
+ except Exception as err:
+ Logger.exception("Unable to load available packages")
+ available_packages_in_repos = []
if isinstance(package_list_str, basestring) and len(package_list_str) > 0:
package_list = json.loads(package_list_str)
for package in package_list:
if self.check_package_condition(package):
- name = self.format_package_name(package['name'])
+ name = self.get_package_from_available(package['name'], available_packages_in_repos)
# HACK: On Windows, only install ambari-metrics packages using Choco Package Installer
# TODO: Update this once choco packages for hadoop are created. This is because, service metainfo.xml support
# <osFamily>any<osFamily> which would cause installation failure on Windows.
@@ -1088,6 +1072,5 @@ class Script(object):
def __init__(self):
- self.available_packages_in_repos = []
if Script.instance is not None:
raise Fail("An instantiation already exists! Use, get_instance() method.")
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3126fd7/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
index 2e940af..370b776 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
@@ -95,9 +95,7 @@ class TestHBaseMaster(RMFTestCase):
try_install=True,
os_type=('Redhat', '6.4', 'Final'),
checked_call_mocks = [(0, "OK.", "")],
- available_packages_in_repos = ['hbase_2_3_0_1_1234'],
)
-
# only assert that the correct package is trying to be installed
self.assertResourceCalled('Package', 'hbase_2_3_0_1_1234',
http://git-wip-us.apache.org/repos/asf/ambari/blob/f3126fd7/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/utils/RMFTestCase.py b/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
index 80712c5..7091298 100644
--- a/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
+++ b/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
@@ -76,8 +76,7 @@ class RMFTestCase(TestCase):
mocks_dict={},
try_install=False,
command_args=[],
- log_out_files=False,
- available_packages_in_repos = []):
+ log_out_files=False):
norm_path = os.path.normpath(path)
@@ -122,7 +121,6 @@ class RMFTestCase(TestCase):
Script.instance = None
script_class_inst = RMFTestCase._get_attr(script_module, classname)()
script_class_inst.log_out_files = log_out_files
- script_class_inst.available_packages_in_repos = available_packages_in_repos
method = RMFTestCase._get_attr(script_class_inst, command)
except IOError, err:
raise RuntimeError("Cannot load class %s from %s: %s" % (classname, norm_path, err.message))