backend/common/rhnLib.py | 12 ---------
backend/satellite_tools/disk_dumper/iss.py | 14 +---------
backend/satellite_tools/reposync.py | 5 +--
backend/server/handlers/xp/rhnlint.py | 22 +++++++++--------
backend/server/importlib/backend.py | 37 -----------------------------
backend/server/importlib/errataImport.py | 21 +++++-----------
backend/server/importlib/importLib.py | 2 -
backend/server/importlib/packageImport.py | 1
8 files changed, 23 insertions(+), 91 deletions(-)
New commits:
commit 9137f758a01e2ccf05cab80cd53ba450972bed05
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 15:07:51 2009 +0100
removing dead code
diff --git a/backend/server/importlib/backend.py b/backend/server/importlib/backend.py
index 1975a86..cbb33b5 100644
--- a/backend/server/importlib/backend.py
+++ b/backend/server/importlib/backend.py
@@ -372,43 +372,6 @@ class Backend:
return row['id']
- def ovalFileMD5sumCheck(self, erratum):
- """
- When oval file is dumped on to RHN filesystem
- check if file exists and verifies their md5sum
-
- XXX:: as we create these files on RHN itself
- this call is not used. But leaving it here
- in case we decide to change it.
- """
- if not erratum:
- return None
-
- sql = """
- select c.checksum md5sum
- from rhnErrataFile ef,
- rhnErrata e,
- rhnChecksum c
- where ef.filename = :filename
- and e.advisory_name = :aname
- and ef.errata_id = e.id
- and ef.checksum_id = c.id
- """
-
- h = self.dbmodule.prepare(sql)
- h.execute(filename = erratum['filename'], \
- aname = erratum['advisory_name'])
- row = h.fetchone_dict()
-
- #file does'nt exist proceed to populate.
- if not row:
- return 1
- #file exists, check if md5's are same
- if erratum['md5sum'] == row['md5sum']:
- return 1
- return 0
-
-
def processBugzillaPaths(self, hash):
if not hash:
return
commit 3581efa67be5c7e9e500919a264b3ff3d6f60caa
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 14:56:37 2009 +0100
fixed rhnlint.py for checksums
diff --git a/backend/server/handlers/xp/rhnlint.py
b/backend/server/handlers/xp/rhnlint.py
index b20ff1c..f879d02 100644
--- a/backend/server/handlers/xp/rhnlint.py
+++ b/backend/server/handlers/xp/rhnlint.py
@@ -45,7 +45,7 @@ class RHNLint(RPC_Base):
log_debug(1, info)
- testMD5sums(info, results)
+ testChecksums(info, results)
testObsoletes(info, results)
testDependencies(info, results)
@@ -274,11 +274,11 @@ def testDependencies(info, results):
return
-# test to insure that no package with the same nvre but different md5 sum is in the
db...
+# test to insure that no package with the same nvre but different checksum is in the
db...
# basically, complains if someone just resigns a package w/out bumping release
#
# NOTE: currently, only cares about packages w/ org_id in (null, your_org)
-def testMD5sums(info, results):
+def testChecksums(info, results):
packages = info.get('packages')
@@ -286,10 +286,11 @@ def testMD5sums(info, results):
header = package['header']
filename = package['filename']
query = """
- select pn.name || '-' || pe.evr.as_vre_simple() nvre, c.checksum md5sum,
+ select pn.name || '-' || pe.evr.as_vre_simple() nvre,
+ c.checksum_type, c.checksum,
p.org_id org_id, p.build_host buildhost, p.build_time buildtime
from rhnPackageArch pa, rhnPackageName pn, rhnPackageEVR pe,
- rhnPackage p, rhnChecksum c
+ rhnPackage p, rhnChecksumView c
where pn.name = :name
and pe.version = :version
and pe.release = :release
@@ -297,7 +298,7 @@ def testMD5sums(info, results):
and pn.id = p.name_id
and pe.id = p.evr_id
and p.checksum_id = c.id
- and c.checksum != :md5sum
+ and not (c.checksum = :checksum and c.checksum_type = :checksum_type)
and (p.org_id is null or p.org_id = :org_id)
and pa.label = :arch
and p.package_arch_id = pa.id
@@ -307,7 +308,8 @@ def testMD5sums(info, results):
'version':header['version'],
'release':header['release'],
'epoch':header['epoch'],
- 'md5sum':package['md5sum'],
+ 'checksum':package['checksum'][1],
+ 'checksum_type':package['checksum'][0],
'org_id':info['org_id'],
'arch':header['arch'],
}
@@ -343,10 +345,10 @@ def testMD5sums(info, results):
if len(different_fields) > 0:
further_info = "It's probably a different/recompiled
package:\n%s" % string.join(different_fields, "\n")
else:
- further_info = "only MD5 sums differ, packages probably was just
resigned"
+ further_info = "only checksums differ, packages probably was
just resigned"
- results[filename].append("\nAlready found with an md5 sum of
%s%s\n%s"
- % (row['md5sum'], org_str,
further_info))
+ results[filename].append("\nAlready found with a checksum of %s:%s
%s\n%s"
+ % (row['checksum_type'],
row['checksum'], org_str, further_info))
return
commit bb1c812156b7ac5cb2532d7ca9ddf348b71fad29
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 14:44:13 2009 +0100
removed dead code
rhnLib contained 2 different versions of rfc822time(), former was never used
diff --git a/backend/common/rhnLib.py b/backend/common/rhnLib.py
index 1ff84ee..77ca78e 100644
--- a/backend/common/rhnLib.py
+++ b/backend/common/rhnLib.py
@@ -61,18 +61,6 @@ def setHeaderValue(mp_table, name, values):
mp_table[name] = str(values)
-def rfc822time(arg):
- """
- Return time as a string formatted such as: 'Wed, 23 Jun 2001 23:08:35 GMT'.
- """
- format = "%a, %d %b %Y %H:%M:%S GMT"
- if type(arg) in (types.ListType, types.TupleType):
- # Already a list
- return time.strftime(format, arg)
- # Assume it's a float
- return time.strftime(format, time.gmtime(arg))
-
-
rfc822_days = ('Mon', 'Tue', 'Wed', 'Thu', 'Fri',
'Sat', 'Sun')
rfc822_mons = ('Jan', 'Feb', 'Mar', 'Apr', 'May',
'Jun', \
'Jul', 'Aug', 'Sep', 'Oct', 'Nov',
'Dec')
commit 907ab3de5dad17a616b18a769b3616ebaadb5ff9
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 14:39:03 2009 +0100
_postprocessPackageNEVRA and _postprocessPackage have to be called together
so make it one function
diff --git a/backend/server/importlib/errataImport.py
b/backend/server/importlib/errataImport.py
index 1648152..03e556e 100644
--- a/backend/server/importlib/errataImport.py
+++ b/backend/server/importlib/errataImport.py
@@ -230,7 +230,6 @@ class ErrataImport(GenericPackageImport):
continue
self._postprocessPackageNEVRA(package)
- self._postprocessPackage(package)
# Check the uniqueness
nevrao = tuple(get_nevrao(package))
diff --git a/backend/server/importlib/importLib.py
b/backend/server/importlib/importLib.py
index 0e19e4b..787fdf1 100644
--- a/backend/server/importlib/importLib.py
+++ b/backend/server/importlib/importLib.py
@@ -706,8 +706,6 @@ class GenericPackageImport(Import):
package['name_id'], package['evr_id'],
package['package_arch_id'] = nevra
package['nevra_id'] = nevra_dict[nevra]
-
- def _postprocessPackage(self, package):
package['checksum_id'] = self.checksums[package['checksum']]
# Exceptions
diff --git a/backend/server/importlib/packageImport.py
b/backend/server/importlib/packageImport.py
index 5044c84..b7975d0 100644
--- a/backend/server/importlib/packageImport.py
+++ b/backend/server/importlib/packageImport.py
@@ -71,7 +71,6 @@ class ChannelPackageSubscription(GenericPackageImport):
if package.ignored:
continue
self._postprocessPackageNEVRA(package)
- self._postprocessPackage(package)
if not CFG.ENABLE_NVREA:
# nvrea disabled, skip checksum
nevrao = (
commit e61a6e9fc71609f504efb37b0487393a622aee43
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 14:32:04 2009 +0100
replaced computeMD5sum with spacewalk.common.checksum.getFileChecksum
diff --git a/backend/satellite_tools/disk_dumper/iss.py
b/backend/satellite_tools/disk_dumper/iss.py
index 509362b..fb8255e 100644
--- a/backend/satellite_tools/disk_dumper/iss.py
+++ b/backend/satellite_tools/disk_dumper/iss.py
@@ -31,6 +31,7 @@ from iss_ui import UI
from iss_actions import ActionDeps
import shutil
import iss_isos
+from spacewalk.common import checksum
class ISSError(Exception):
def __init__(self, msg, tb):
@@ -1124,7 +1125,7 @@ class ExporterMain:
for file in os.listdir(iso_output):
if self.options.make_isos != "dvds":
if file != "MD5SUM":
- md5_val = computeMD5sum(os.path.join(iso_output, file))
+ md5_val = checksum.getFileChecksum('md5',
(os.path.join(iso_output, file)))
md5str = "%s %s\n" % (md5_val, file)
f.write(md5str)
f.close()
@@ -1178,17 +1179,6 @@ def compress_file(file):
# removed the old file
os.unlink(file)
-def computeMD5sum(filename):
- """Compute MD5 checksum for the file
- """
- import md5
- m = md5.new()
- fileobj = open(filename)
- filedata = fileobj.read()
- fileobj.close()
- m.update(filedata)
- return m.hexdigest()
-
if __name__ == "__main__":
em = ExporterMain()
em.main()
commit a3d5ad294e1d604bc9706ceb8a3b5c26bc220e13
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 13:39:23 2009 +0100
simplified channel list unification
diff --git a/backend/server/importlib/errataImport.py
b/backend/server/importlib/errataImport.py
index ac0e8c3..1648152 100644
--- a/backend/server/importlib/errataImport.py
+++ b/backend/server/importlib/errataImport.py
@@ -57,16 +57,13 @@ class ErrataImport(GenericPackageImport):
self._processPackage(package)
# Process channels
- channels = []
channelHash = {}
for channel in errata['channels']:
channelName = channel['label']
- if not channelHash.has_key(channelName):
- channels.append(channel)
- channelHash[channelName] = None
+ channelHash[channelName] = channel
self.channels[channelName] = None
# Replace the channel list with the unique one
- errata['channels'] = channels
+ errata['channels'] = channelHash.values()
def _preprocessErratumCVE(self, erratum):
# Build the CVE dictionary
commit d76ced37a91317d5e20039f551582e5c800b2207
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 11:58:19 2009 +0100
store every package in self.package only once
diff --git a/backend/server/importlib/errataImport.py
b/backend/server/importlib/errataImport.py
index 434bf57..ac0e8c3 100644
--- a/backend/server/importlib/errataImport.py
+++ b/backend/server/importlib/errataImport.py
@@ -24,7 +24,7 @@ class ErrataImport(GenericPackageImport):
def __init__(self, batch, backend, queue_timeout=600):
GenericPackageImport.__init__(self, batch, backend)
# A composite key of the name, evr, arch plus org_id
- self.packages = []
+ self.packages = {}
self.ignoreMissing = 0
self.cve = {}
self.queue_timeout = queue_timeout
@@ -88,8 +88,8 @@ class ErrataImport(GenericPackageImport):
package = f.get('pkgobj')
if package:
self._processPackage(package)
- if not package in self.packages:
- self.packages.append(package)
+ nevrao = tuple(get_nevrao(package))
+ self.packages[nevrao] = package
#elif f['file_type'] == 'SRPM':
# # XXX misa: do something here
# pass
@@ -129,7 +129,7 @@ class ErrataImport(GenericPackageImport):
#fix oval info to populate the relevant dbtables
self._fix_erratum_oval_info(erratum)
- self.backend.lookupPackages(self.packages, self.ignoreMissing)
+ self.backend.lookupPackages(self.packages.values(), self.ignoreMissing)
for erratum in self.batch:
self._fix_erratum_packages(erratum)
self._fix_erratum_file_channels(erratum)
@@ -232,7 +232,6 @@ class ErrataImport(GenericPackageImport):
# Skip it
continue
- oldpackage = package.copy()
self._postprocessPackageNEVRA(package)
self._postprocessPackage(package)
@@ -248,9 +247,7 @@ class ErrataImport(GenericPackageImport):
# And put this package both in the local and in the global hash
packageHash[nevrao] = package
- # replace old package with new
- idx = self.packages.index(oldpackage)
- self.packages[idx] = package
+ self.packages[nevrao] = package
erratum['packages'] = packageHash
commit 1acfe9ac28d11cafab6a67801e4d5c0725cec20a
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Dec 11 09:22:40 2009 +0100
use getFileChecksum from spacewalk.common.checksum
diff --git a/backend/satellite_tools/reposync.py b/backend/satellite_tools/reposync.py
index 8006b08..3e2f61e 100644
--- a/backend/satellite_tools/reposync.py
+++ b/backend/satellite_tools/reposync.py
@@ -15,10 +15,9 @@
#
import sys, os, time, grp
from optparse import OptionParser
-from common import rhnLib
from server import rhnPackage, rhnSQL, rhnChannel, rhnPackageUpload
from common import CFG, initCFG, rhnLog, fetchTraceback
-from spacewalk.common import rhn_rpm
+from spacewalk.common import rhn_rpm, checksum
from spacewalk.common.rhn_mpm import InvalidPackageError
from server.importlib.importLib import IncompletePackage
from server.importlib.backendOracle import OracleBackend
@@ -151,7 +150,7 @@ class RepoSync:
header, payload_stream, header_start, header_end = \
rhnPackageUpload.load_package(temp_file)
checksum_type = header.checksum_type()
- package.checksum = (checksum_type, rhnLib.getFileChecksum(
+ package.checksum = (checksum_type, checksum.getFileChecksum(
checksum_type, file=temp_file))
pid = rhnPackage.get_package_for_checksum(
self.channel['org_id'], package.checksum)