AMBARI-19715: HostCleanup remove ambari.repo when ambari.repo has repo ID that doesn't begin with word AMBARI (dili)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9bc765ab Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9bc765ab Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9bc765ab Branch: refs/heads/branch-dev-patch-upgrade Commit: 9bc765ab016d3cd0a2253ab6e28c9e27a6c77418 Parents: 8d390fa Author: Di Li <d...@apache.org> Authored: Thu Jan 26 10:59:15 2017 -0500 Committer: Di Li <d...@apache.org> Committed: Thu Jan 26 10:59:15 2017 -0500 ---------------------------------------------------------------------- .../resource_management/TestPackagesAnalyzer.py | 46 ++++++++++++++++++++ .../libraries/functions/packages_analyzer.py | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/9bc765ab/ambari-agent/src/test/python/resource_management/TestPackagesAnalyzer.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/test/python/resource_management/TestPackagesAnalyzer.py b/ambari-agent/src/test/python/resource_management/TestPackagesAnalyzer.py index f898919..e02e442 100644 --- a/ambari-agent/src/test/python/resource_management/TestPackagesAnalyzer.py +++ b/ambari-agent/src/test/python/resource_management/TestPackagesAnalyzer.py @@ -138,4 +138,50 @@ class TestPackagesAnalyzer(TestCase): self.assertEqual(7, len(allPackages)) expected = ["hadoop-a", "zk", "webhcat", "hadoop-b", "ganglia", "rrd", "def-def.x86"] for package in expected: + self.assertTrue(package in allPackages) + + def test_perform_package_analysis_custom_reponame(self): + installedPackages = [ + ["hadoop-a", "2.3", "HDP"], ["zk", "3.1", "HDP"], ["webhcat", "3.1", "HDP"], + ["hadoop-b", "2.3", "HDP-epel"], ["epel", "3.1", "HDP-epel"], ["epel-2", "3.1", "HDP-epel"], + ["hadoop-c", "2.3", "GITHUB_Ambari"], ["ambari-s", "3.1", "GITHUB_Ambari"], + ["ganglia", "2.3", "GANGLIA"], ["rrd", "3.1", "RRD"], + ["keeper-1", "2.3", "GANGLIA"], ["keeper-2", "3.1", "base"],["def-def.x86", "2.2", "DEF.3"], + ["def.1", "1.2", "NewDEF"] + ] + availablePackages = [ + ["hadoop-d", "2.3", "HDP"], ["zk-2", "3.1", "HDP"], ["pig", "3.1", "HDP"], + ["epel-3", "2.3", "HDP-epel"], ["hadoop-e", "3.1", "HDP-epel"], + ["ambari-a", "3.1", "GITHUB_Ambari"], + ["keeper-3", "3.1", "base"] + ] + + packagesToLook = ["^webhcat.*$", "^hadoop.*$", "^.+-def.*$"] + reposToIgnore = ["ambari"] + additionalPackages = ["ganglia", "rrd"] + + repos = [] + packages_analyzer.getInstalledRepos(packagesToLook, installedPackages + availablePackages, reposToIgnore, repos) + self.assertEqual(3, len(repos)) + expected = ["HDP", "HDP-epel", "DEF.3"] + for repo in expected: + self.assertTrue(repo in repos) + + packagesInstalled = packages_analyzer.getInstalledPkgsByRepo(repos, ["epel"], installedPackages) + self.assertEqual(5, len(packagesInstalled)) + expected = ["hadoop-a", "zk", "webhcat", "hadoop-b", "def-def.x86"] + for repo in expected: + self.assertTrue(repo in packagesInstalled) + + additionalPkgsInstalled = packages_analyzer.getInstalledPkgsByNames( + additionalPackages, installedPackages) + self.assertEqual(2, len(additionalPkgsInstalled)) + expected = ["ganglia", "rrd"] + for additionalPkg in expected: + self.assertTrue(additionalPkg in additionalPkgsInstalled) + + allPackages = list(set(packagesInstalled + additionalPkgsInstalled)) + self.assertEqual(7, len(allPackages)) + expected = ["hadoop-a", "zk", "webhcat", "hadoop-b", "ganglia", "rrd", "def-def.x86"] + for package in expected: self.assertTrue(package in allPackages) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/9bc765ab/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py b/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py index 9df2b64..8a15ee5 100644 --- a/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py +++ b/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py @@ -186,7 +186,7 @@ def _lookUpZypperPackages(command, allPackages): def nameMatch(lookupName, actualName): tokens = actualName.strip().split() for token in tokens: - if token.lower().find(lookupName.lower()) == 0: + if lookupName.lower() in token.lower(): return True return False