def _repOK(self): self.clean() keys = self._statusDB.keys() fnames = os.listdir(self._loc) keys.sort() fnames.sort() if keys != fnames: return 0 for f in fnames: status = self._statusDB[f] try: #XXXX digest-cache server = ServerInfo(fname=os.path.join(self._loc, f)) except: return 0 if status._digest != server.getDigest(): return 0 if status._published != server['Server']['Published']: return 0 if status._validAfter != server['Server']['Valid-After']: return 0 if status._validUntil != server['Server']['Valid-Until']: return 0 if status._nickname != server['Server']['Nickname']: return 0 if status._identityDigest != server.getKeyStatus(): return 0 return 1
def rescan(self): self._statusDB.close() os.path.unlink(self._dbLoc) self.clean() self._statusDB = mixminion.Filestore.WritethroughDict( self._dbLoc, "server cache") for key in os.listdir(self._loc): fn = os.path.join(self._loc, key) try: #XXXX digest-cache server = ServerInfo(fname=fn) except (OSError, MixError, ConfigError), e: LOG.warn("Deleting invalid server %s: %s", key, e) os.unlink(fn) server = None if server is None: continue k2 = self._getKey(server.getDigest()) if k2 != key: LOG.info("Renaming server in %s to correct file %s",key,k2) os.rename(fn, os.path.join(self._loc, k2)) key = k2 self._updateCache(key, server)
def rescan(self): self._statusDB.close() os.path.unlink(self._dbLoc) self.clean() self._statusDB = mixminion.Filestore.WritethroughDict( self._dbLoc, "server cache") for key in os.listdir(self._loc): fn = os.path.join(self._loc, key) try: #XXXX digest-cache server = ServerInfo(fname=fn) except (OSError, MixError, ConfigError), e: LOG.warn("Deleting invalid server %s: %s", key, e) os.unlink(fn) server = None if server is None: continue k2 = self._getKey(server.getDigest()) if k2 != key: LOG.info("Renaming server in %s to correct file %s", key, k2) os.rename(fn, os.path.join(self._loc, k2)) key = k2 self._updateCache(key, server)