Repository: ambari Updated Branches: refs/heads/branch-2.5 eec985b16 -> 841a064d4
AMBARI-18962:Make check_package_condition in script.py overridable by services in stacks (dili) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/841a064d Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/841a064d Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/841a064d Branch: refs/heads/branch-2.5 Commit: 841a064d47410184e8bc5101660aa957ac78e268 Parents: eec985b Author: Di Li <d...@apache.org> Authored: Wed Nov 30 11:13:19 2016 -0500 Committer: Di Li <d...@apache.org> Committed: Wed Nov 30 11:22:15 2016 -0500 ---------------------------------------------------------------------- .../resource_management/libraries/script/script.py | 15 +++++++++------ .../custom_actions/scripts/install_packages.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/841a064d/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 99970ca..5375a53 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 @@ -555,7 +555,7 @@ class Script(object): 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 Script.check_package_condition(package): + if self.check_package_condition(package): name = self.format_package_name(package['name']) # 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 @@ -579,22 +579,25 @@ class Script(object): str(config['hostLevelParams']['stack_version'])) reload_windows_env() - @staticmethod - def check_package_condition(package): - from resource_management.libraries.functions import package_conditions + def check_package_condition(self, package): condition = package['condition'] - name = package['name'] if not condition: return True + return self.should_install_package(package) + + def should_install_package(self, package): + from resource_management.libraries.functions import package_conditions + condition = package['condition'] try: chooser_method = getattr(package_conditions, condition) except AttributeError: + name = package['name'] raise Fail("Condition with name '{0}', when installing package {1}. Please check package_conditions.py.".format(condition, name)) return chooser_method() - + @staticmethod def matches_any_regexp(string, regexp_list): for regex in regexp_list: http://git-wip-us.apache.org/repos/asf/ambari/blob/841a064d/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 0e31310..112abe3 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 @@ -460,7 +460,7 @@ class InstallPackages(Script): """ filtered_package_list = [] for package in package_list: - if Script.check_package_condition(package): + if self.check_package_condition(package): filtered_package_list.append(package) return filtered_package_list