tahoe-lafs/src/allmydata/scripts/stats_gatherer.py

59 lines
1.6 KiB
Python
Raw Normal View History

import os
from twisted.python import usage
class CreateStatsGathererOptions(usage.Options):
optParameters = [
["basedir", "C", None, "which directory to create the stats-gatherer in"],
]
def parseArgs(self, basedir=None):
if basedir is not None:
assert self["basedir"] is None
self["basedir"] = basedir
stats_gatherer_tac = """
# -*- python -*-
from allmydata import stats
from twisted.application import service
verbose = True
g = stats.StatsGathererService(verbose=verbose)
application = service.Application('allmydata_stats_gatherer')
g.setServiceParent(application)
"""
def create_stats_gatherer(config):
out = config.stdout
err = config.stderr
basedir = config['basedir']
if not basedir:
print >>err, "a basedir was not provided, please use --basedir or -C"
return -1
if os.path.exists(basedir):
if os.listdir(basedir):
print >>err, "The base directory \"%s\", which is \"%s\" is not empty." % (basedir, os.path.abspath(basedir))
print >>err, "To avoid clobbering anything, I am going to quit now."
print >>err, "Please use a different directory, or empty this one."
return -1
# we're willing to use an empty directory
else:
os.mkdir(basedir)
f = open(os.path.join(basedir, "tahoe-stats-gatherer.tac"), "wb")
f.write(stats_gatherer_tac)
f.close()
return 0
subCommands = [
["create-stats-gatherer", None, CreateStatsGathererOptions, "Create a stats-gatherer service."],
]
dispatch = {
"create-stats-gatherer": create_stats_gatherer,
}