cas-admin | 1 -
caslib/cas.py | 38 ++++++++++++--------------------------
caslib/core.py | 5 ++---
3 files changed, 14 insertions(+), 30 deletions(-)
New commits:
commit e4111a0d93d7dbb6a85d5c47043646317f2dd558
Author: adam stokes <astokes(a)fedoraproject.org>
Date: Tue May 4 20:01:35 2010 -0400
rework corehandler
diff --git a/cas-admin b/cas-admin
index 7f2b2f1..217e247 100755
--- a/cas-admin
+++ b/cas-admin
@@ -76,7 +76,6 @@ def queryLocalRpms(path):
cmd = "find -L %s -iregex %s" % (settings["KERNELS"],
settings["RPMFILTER"])
results, err = casexecute(cmd, True)
-
dst = tempfile.mkdtemp(prefix='cas-')
for rpm in results.split():
rpm_IN_DB = session.query(RPM).filter_by(rpmPath=rpm).first()
diff --git a/caslib/cas.py b/caslib/cas.py
index 779d357..bd505f4 100755
--- a/caslib/cas.py
+++ b/caslib/cas.py
@@ -73,41 +73,27 @@ BUFFERSIZE=None
if config.has_option("advanced", "buffersize"):
BUFFERSIZE=config.get("advanced", "buffersize")
-def coreHandler(filename, dst):
- # TODO: fix decompression so that it decompresses to
- # workdirectory
- filename = filename
- basename = os.path.basename(filename)
- dst = dst
- currentDirectory = os.path.realpath(os.curdir)
+def coreHandler(uri, dst):
+ dst = os.path.join(dst, os.path.basename(uri))
try:
- urlgrabber.urlgrab(filename)
+ urlgrabber.urlgrab(uri, dst)
except URLGrabError, e:
genprint(e)
genprint("Detected a compressed core, extracting.." \
"please wait as this process can take a " \
"long time.")
- # ok so some decompression utilites like gzip, bzip do not extract
- # files into the `cwd` unless specified with a to-stdout option.
- # this is a pain so we just move everything to `cwd` and proceed
- # from there.
- dst = os.path.join(currentDirectory, basename)
- shutil.move(filename, dst)
- filename = os.path.join(dst, filename)
- corepath = coreExtract(filename)
- if not corepath:
- if coreIsCorefile(filename):
- # No need to proceed to extracting corefile since we assume
- # this is already at the proper stage.
- shutil.move(filename,
- os.path.join(dst, basename))
- filename = os.path.join(dst, basename)
- return filename
- return _e[3]
+ if not coreIsCorefile(dst):
+ os.chdir(os.path.dirname(dst))
+ corepath = coreExtract(dst)
+ if not corepath:
+ return _e[3]
+ else:
+ return corepath
+ else:
+ return dst
# corefile extracted now move it to work directory, pull basename
# from corepath since we auto-detect the core file from extraction
coreBasename = os.path.basename(corepath)
- shutil.move(corepath,os.path.join(dst, coreBasename))
filename = os.path.join(dst, coreBasename)
return filename
diff --git a/caslib/core.py b/caslib/core.py
index 2d01bbf..1a3c1c6 100644
--- a/caslib/core.py
+++ b/caslib/core.py
@@ -50,6 +50,7 @@ def coreFormat(data, fname):
"tbz" : ["tar", "xvjf"],
"bz2" : ["bunzip2", "-q"],
"zip" : ["unzip", "-f"]}
+
# overwrite bz2 item if pbzip2 exists for use of multiple cores
# during compression
if os.path.isfile("/usr/bin/pbzip2"):
@@ -90,8 +91,6 @@ def coreExtract(self, filepath):
return _e[5]
else:
format.append(filepath)
- # TODO: figure out someway to print some status to the screen
- # during extraction
# FIXME: failing to determine corefile after extraction, running
# on extracted core works. possible problem being looking in the wrong
# directory
@@ -102,7 +101,7 @@ def coreExtract(self, filepath):
return False
for root, dirs, files in util.directoryList(dst):
for file in files:
- if isCorefile(file):
+ if coreIsCorefile(file):
return os.path.join(root,file)
return _e[3]