Beispiel #1
0
 def addServersFromRawDirectoryFile(self, file):
     curLines = []
     for line in iterFileLines(file):
         if line == '[Server]\n' and curLines:
             self._addOneFromRawLines(curLines)
             del curLines[:]
     if curLines:
         self._addOneFromRawLines(curLines)
Beispiel #2
0
 def addServersFromRawDirectoryFile(self, file):
     curLines = []
     for line in iterFileLines(file):
         if line == '[Server]\n' and curLines:
             self._addOneFromRawLines(curLines)
             del curLines[:]
     if curLines:
         self._addOneFromRawLines(curLines)
Beispiel #3
0
def cmd_generate(args):
    """[Entry point] generate a fresh directory.  Can be run from a cron
       job."""
    if args:
        raise UIError("mixminion dir generate takes no arguments")

    d = getDirectory()
    serverList = d.getServerList()
    key = d.getIdentity()
    serverList.clean()

    config = d.getConfig()

    badServers = config['Directory'].get('BadServer', [])[:]
    badServerFiles = config['Directory'].get('BadServerFile', [])
    for fn in badServerFiles:
        if not os.path.exists(fn):
            print "No such file %r; skipping" % fn
            continue
        f = open(fn, 'r')
        for ln in iterFileLines(f):
            ln = ln.strip()
            if ln and ln[0] != '#':
                badServers.append(ln)
        f.close()

    excludeServers = config['Directory'].get("ExcludeServer", [])[:]
    excludeServers = [nn.strip().lower() for nn in excludeServers]

    location = config['Publishing']['Location']
    print "(Bad servers==%r)" % badServers

    now = time.time()
    tomorrow = now + 60 * 60 * 24
    twoWeeks = 60 * 60 * 24 * 14

    serverList.generateDirectory(startAt=now,
                                 endAt=tomorrow,
                                 extraTime=twoWeeks,
                                 identityKey=key,
                                 badServers=badServers,
                                 excludeServers=excludeServers)
    print "Directory generated; publishing."

    fname = serverList.getDirectoryFilename()

    if location.endswith(".gz"):
        fIn = open(fname)
        fOut = gzip.GzipFile(location, 'wb')
        fOut.write(fIn.read())
        fIn.close()
        fOut.close()
    else:
        shutil.copy(fname, location)

    print "Published."
Beispiel #4
0
def cmd_generate(args):
    """[Entry point] generate a fresh directory.  Can be run from a cron
       job."""
    if args:
        raise UIError("mixminion dir generate takes no arguments")

    d = getDirectory()
    serverList = d.getServerList()
    key = d.getIdentity()
    serverList.clean()

    config = d.getConfig()

    badServers = config['Directory'].get('BadServer', [])[:]
    badServerFiles = config['Directory'].get('BadServerFile', [])
    for fn in badServerFiles:
        if not os.path.exists(fn):
            print "No such file %r; skipping" %fn
            continue
        f = open(fn, 'r')
        for ln in iterFileLines(f):
            ln = ln.strip()
            if ln and ln[0] != '#':
                badServers.append(ln)
        f.close()

    excludeServers = config['Directory'].get("ExcludeServer",[])[:]
    excludeServers = [ nn.strip().lower() for nn in excludeServers ]

    location = config['Publishing']['Location']
    print "(Bad servers==%r)"%badServers

    now = time.time()
    tomorrow = now+60*60*24
    twoWeeks = 60*60*24*14

    serverList.generateDirectory(startAt=now, endAt=tomorrow,
                                 extraTime=twoWeeks,
                                 identityKey=key,
                                 badServers=badServers,
                                 excludeServers=excludeServers)
    print "Directory generated; publishing."

    fname = serverList.getDirectoryFilename()

    if location.endswith(".gz"):
        fIn = open(fname)
        fOut = gzip.GzipFile(location, 'wb')
        fOut.write(fIn.read())
        fIn.close()
        fOut.close()
    else:
        shutil.copy(fname, location)

    print "Published."