Some minor fixes for manifest code (branches/2.1.2 r6923)
authorZac Medico <zmedico@gentoo.org>
Mon, 30 Jul 2007 04:42:00 +0000 (04:42 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 30 Jul 2007 04:42:00 +0000 (04:42 -0000)
svn path=/main/branches/2.1.2.9/; revision=7476

pym/portage_manifest.py

index cdccbd9fa3b473f64719f844aedfc98bb7d6f174..6645963dda219b58995437f996da3eb557c49926 100644 (file)
@@ -79,7 +79,8 @@ class ManifestEntry(object):
 
 class Manifest1Entry(ManifestEntry):
        def __str__(self):
-               for hashkey in self.hashes:
+               myhashkeys = self.hashes.keys()
+               for hashkey in myhashkeys:
                        if hashkey != "size":
                                break
                hashvalue = self.hashes[hashkey]
@@ -343,15 +344,8 @@ class Manifest(object):
                                except FileNotFound:
                                        pass
 
-       def checkIntegrity(self):
-               for t in self.fhashdict:
-                       for f in self.fhashdict[t]:
-                               if portage_const.MANIFEST2_REQUIRED_HASH not in self.fhashdict[t][f]:
-                                       raise MissingParameter("Missing %s checksum: %s %s" % (portage_const.MANIFEST2_REQUIRED_HASH, t, f))
-
        def write(self, sign=False, force=False):
                """ Write Manifest instance to disk, optionally signing it """
-               self.checkIntegrity()
                try:
                        if self.compat:
                                self._writeDigests()
@@ -488,12 +482,12 @@ class Manifest(object):
                        except OSError:
                                pass
                        if f in distfilehashes and \
-                               not required_hash_types.difference(distfilehashes[f]) and \
                                ((assumeDistHashesSometimes and mystat is None) or \
                                (assumeDistHashesAlways and mystat is None) or \
                                (assumeDistHashesAlways and mystat is not None and \
                                len(distfilehashes[f]) == len(self.hashes) and \
-                               distfilehashes[f]["size"] == mystat.st_size)):
+                               distfilehashes[f]["size"] == mystat.st_size)) and \
+                               not required_hash_types.difference(distfilehashes[f]):
                                self.fhashdict["DIST"][f] = distfilehashes[f]
                        else:
                                try: