Repository: ambari Updated Branches: refs/heads/branch-2.6 2c3688024 -> 833fe163b refs/heads/trunk 79ff23fac -> a0ae01d88
AMBARI-21759 yumrpm provider doesn't parses installed packages in a same way on different CentOS versions (dgrinenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/833fe163 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/833fe163 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/833fe163 Branch: refs/heads/branch-2.6 Commit: 833fe163bc514ae7f1626899e8c8dc57b2922e36 Parents: 2c36880 Author: Dmytro Grinenko <hapyles...@apache.org> Authored: Sat Aug 19 05:46:06 2017 +0300 Committer: Dmytro Grinenko <hapyles...@apache.org> Committed: Sat Aug 19 05:46:06 2017 +0300 ---------------------------------------------------------------------- .../core/providers/package/yumrpm.py | 32 ++------------------ 1 file changed, 3 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/833fe163/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py b/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py index 2e8422b..d5349d6 100644 --- a/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py +++ b/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py @@ -119,36 +119,10 @@ class YumProvider(RPMBasedPackageProvider): :type repo_filter str|None :rtype list[list,] """ - packages = [] - cmd_filter = "| grep \"{0}\"".format(repo_filter) if repo_filter else "" - - # tr '\n' '#' %s | sed -e 's/# / /g' | tr '#' '\n' - fix yum formatted output for default console width - cmd = AMBARI_SUDO_BINARY + " yum list installed {filter}|tr '\\n' '#' | sed -e 's/# / /g' | tr '#' '\\n'|awk '{printf \"%s;%s;%s\\n\", $1,$2,$3}'".replace("{filter}", cmd_filter) - result = self._call_with_timeout(cmd) - col_sep = ";" - - """ - command would return everything in following format: - - Loaded;plugins:;fastestmirror - Installed;Packages; - package_name;version;@Repo - .... - """ - - if result and 0 == result['retCode']: - raw_pkgs = result['out'].split("\n") - - for line in raw_pkgs: - package_item = line.split(col_sep) - - if len(package_item) < 3: - continue - elif not package_item[2].startswith("@"): - continue - package_item[2] = package_item[2][1:] - packages.append(package_item) + packages = self._lookup_packages([AMBARI_SUDO_BINARY, "yum", "list", "installed"], "Installed Packages") + if repo_filter: + packages = [item for item in packages if item[2].lower() == repo_filter.lower()] return packages