예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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)
예제 #4
0
    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)