cas-admin | 6 +++---
caslib/rpmutils.py | 44 ++++++++++++++++----------------------------
2 files changed, 19 insertions(+), 31 deletions(-)
New commits:
commit 5e5e6586aeb5eb6758e9fff68a4ea5677d5d0505
Author: adam stokes <astokes(a)fedoraproject.org>
Date: Tue May 4 14:53:26 2010 -0400
fix iter failure on callable instance
diff --git a/cas-admin b/cas-admin
index 489cc88..c884bde 100755
--- a/cas-admin
+++ b/cas-admin
@@ -75,7 +75,7 @@ def queryLocalRpms(path):
# Uses emacs regex -- see `man find`
cmd = "find -L %s -iregex %s" % (settings["KERNELS"],
settings["RPMFILTER"])
- results = casexecute(cmd, True)
+ results, err = casexecute(cmd, True)
dst = tempfile.mkdtemp(prefix='cas-')
for rpm in results.split():
@@ -86,10 +86,10 @@ def queryLocalRpms(path):
session.add(rpm_record)
session.commit()
genprint("(extracting) %-50s" % (os.path.basename(rpm),))
- results = extractDebug(rpm, dst)
+ tmpkernel = extractDebug(rpm, dst)
# Sort through extracted debug for each type
# e.g. hugemem, PAE, smp, largesmp
- for item in results:
+ for item in tmpkernel:
vmlinux = item.strip()
debugKernel = os.path.normpath(vmlinux)
timestamp = coreTimestamp(debugKernel, BUFFERSIZE)
diff --git a/caslib/rpmutils.py b/caslib/rpmutils.py
index 32ef4ed..ab5ac6e 100644
--- a/caslib/rpmutils.py
+++ b/caslib/rpmutils.py
@@ -20,33 +20,21 @@ if sys.version_info[:2] < (2,6):
else:
from subprocess import Popen, PIPE, call
-class extractDebug(object):
- """ provide file alteration tools
- """
- def __init__(self, rpm, dst, tool="/usr/bin/rpm2cpio",
+def extractDebug(rpm, dst, tool="/usr/bin/rpm2cpio",
filter="*/vmlinux", return_results=True):
- self.rpm = rpm
- self.dst = dst
- self.filter = filter
- self.rpm2cpio = tool
- self.cpio = "/bin/cpio"
- self.cpio_args = "-imudv"
- self.filter_results = []
- self.return_results = return_results
-
- def __call__(self):
- """ extract file(s) from rpm
- """
- # pipe to handle extraction, e.g. rpm2cpio \
- # kernel.rpm | cpio -imud */vmlinux
- p1 = Popen([self.rpm2cpio, self.rpm], stdout=PIPE)
- p2 = Popen([self.cpio,self.cpio_args,self.filter], stdin=p1.stdout,
- stdout=PIPE,stderr=PIPE)
- out, err = p2.communicate()
- if self.return_results:
- tmp = err.splitlines()[:-1]
- for item in tmp:
- self.filter_results.append(item)
- return self.filter_results
- return
+ """ extract file(s) from rpm
+ """
+ filter_results = []
+ # pipe to handle extraction, e.g. rpm2cpio \
+ # kernel.rpm | cpio -imud */vmlinux
+ p1 = Popen([rpm2cpio, rpm], stdout=PIPE)
+ p2 = Popen([cpio,cpio_args,filter], stdin=p1.stdout,
+ stdout=PIPE,stderr=PIPE)
+ out, err = p2.communicate()
+ if return_results:
+ tmp = err.splitlines()[:-1]
+ for item in tmp:
+ filter_results.append(item)
+ return filter_results
+ return