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)
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."
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."