Merge pull request #624 from mscherer/use_rpm_module

Use the rpm python module rather than execing rpm
reviewable/pr18780/r1
Toshio Kuratomi 10 years ago
commit 753a3ba382

@ -25,6 +25,7 @@
import traceback import traceback
import os import os
import yum import yum
import rpm
try: try:
from yum.misc import find_unfinished_transactions, find_ts_remaining from yum.misc import find_unfinished_transactions, find_ts_remaining
@ -108,7 +109,7 @@ options:
notes: [] notes: []
# informational: requirements for nodes # informational: requirements for nodes
requirements: [ yum, rpm ] requirements: [ yum ]
author: Seth Vidal author: Seth Vidal
''' '''
@ -400,14 +401,19 @@ def transaction_exists(pkglist):
def local_nvra(module, path): def local_nvra(module, path):
"""return nvra of a local rpm passed in""" """return nvra of a local rpm passed in"""
cmd = ['/bin/rpm', '-qp' ,'--qf', ts = rpm.TransactionSet()
'%{name}-%{version}-%{release}.%{arch}\n', path ] ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
rc, out, err = module.run_command(cmd) fd = os.open(path, os.O_RDONLY)
if rc != 0: try:
return None header = ts.hdrFromFdno(fd)
nvra = out.split('\n')[0] finally:
return nvra os.close(fd)
return '%s-%s-%s.%s' % (header[rpm.RPMTAG_NAME],
header[rpm.RPMTAG_VERSION],
header[rpm.RPMTAG_RELEASE],
header[rpm.RPMTAG_ARCH])
def pkg_to_dict(pkgstr): def pkg_to_dict(pkgstr):

Loading…
Cancel
Save