[Rpm-metadata] createrepo/__init__.py
James Antill
james at osuosl.org
Wed May 13 22:37:05 UTC 2009
createrepo/__init__.py | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
New commits:
commit 3beb0459cdeaa446b074726f1f33928a4d260cb7
Author: James Antill <james at and.org>
Date: Wed May 13 18:36:50 2009 -0400
Add open-size and size fo *_db MD. Fix file to stat for *.xml.gz size
diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index fff1215..36bb350 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -814,7 +814,12 @@ class MetaDataGenerator:
complete_path = os.path.join(repopath, rpm_file)
zfo = _gzipOpen(complete_path)
- uncsum = misc.checksum(sumtype, zfo)
+ # This is misc.checksum() done locally so we can get the size too.
+ data = misc.Checksums([sumtype])
+ while data.read(zfo, 2**16):
+ pass
+ uncsum = data.hexdigest(sumtype)
+ unsize = len(data)
zfo.close()
csum = misc.checksum(sumtype, complete_path)
timestamp = os.stat(complete_path)[8]
@@ -853,6 +858,8 @@ class MetaDataGenerator:
# csum the compressed file
db_compressed_sums[ftype] = misc.checksum(sumtype,
result_compressed)
+ # timestamp+size the uncompressed file
+ un_stat = os.stat(resultpath)
# remove the uncompressed file
os.unlink(resultpath)
@@ -865,8 +872,8 @@ class MetaDataGenerator:
result_compressed = csum_result_compressed
compressed_name = csum_compressed_name
- # timestamp the compressed file
- db_timestamp = os.stat(result_compressed)[8]
+ # timestamp+size the compressed file
+ db_stat = os.stat(result_compressed)
# add this data as a section to the repomdxml
db_data_type = '%s_db' % ftype
@@ -883,7 +890,9 @@ class MetaDataGenerator:
db_compressed_sums[ftype])
checksum.newProp('type', sumtype)
db_tstamp = data.newChild(None, 'timestamp',
- str(db_timestamp))
+ str(db_stat.st_mtime))
+ data.newChild(None, 'size', str(db_stat.st_size))
+ data.newChild(None, 'open-size', str(un_stat.st_size))
unchecksum = data.newChild(None, 'open-checksum',
db_csums[ftype])
unchecksum.newProp('type', sumtype)
@@ -901,8 +910,9 @@ class MetaDataGenerator:
checksum = data.newChild(None, 'checksum', csum)
checksum.newProp('type', sumtype)
timestamp = data.newChild(None, 'timestamp', str(timestamp))
- size = os.stat(os.path.join(repopath, file))
+ size = os.stat(os.path.join(repopath, rpm_file))
data.newChild(None, 'size', str(size.st_size))
+ data.newChild(None, 'open-size', str(unsize))
unchecksum = data.newChild(None, 'open-checksum', uncsum)
unchecksum.newProp('type', sumtype)
location = data.newChild(None, 'location', None)
More information about the Rpm-metadata
mailing list