Fix behavior of urpmi module where it always return "changed"

even when a package is already installed, since urpmi will
always return 0 wether it install or not.
This commit is contained in:
Michael Scherer 2013-11-17 14:18:34 +01:00
parent 1e4609343d
commit 9482815b71

View file

@ -90,6 +90,13 @@ def query_package(module, name):
else: else:
return False return False
def query_package_provides(module, name):
# rpm -q returns 0 if the package is installed,
# 1 if it is not installed
rc = os.system("rpm -q --provides %s >/dev/null" % (name))
return rc == 0
def update_package_db(module): def update_package_db(module):
rc = os.system("urpmi.update -a -q") rc = os.system("urpmi.update -a -q")
@ -125,7 +132,8 @@ def install_packages(module, pkgspec, force=True, no_suggests=True):
packages = "" packages = ""
for package in pkgspec: for package in pkgspec:
packages += "'%s' " % package if not query_package_provides(module, package):
packages += "'%s' " % package
if len(packages) != 0: if len(packages) != 0:
if no_suggests: if no_suggests: