2008-04-01 18:45:13 -07:00
|
|
|
|
|
|
|
import os, sys
|
2010-08-01 21:30:04 -07:00
|
|
|
from allmydata.scripts.common import BasedirMixin, BaseOptions
|
2010-08-03 01:54:16 -07:00
|
|
|
from allmydata.util.assertutil import precondition
|
2010-08-01 21:30:04 -07:00
|
|
|
from allmydata.util.encodingutil import listdir_unicode, quote_output
|
|
|
|
|
|
|
|
class CreateKeyGeneratorOptions(BasedirMixin, BaseOptions):
|
|
|
|
default_nodedir = None
|
2008-04-01 18:45:13 -07:00
|
|
|
|
|
|
|
optParameters = [
|
2010-08-03 01:54:16 -07:00
|
|
|
["node-directory", "d", None, "Specify which directory the key-generator should be created in. [no default]"],
|
2010-08-01 21:30:04 -07:00
|
|
|
]
|
2008-04-01 18:45:13 -07:00
|
|
|
|
|
|
|
keygen_tac = """
|
|
|
|
# -*- python -*-
|
|
|
|
|
|
|
|
from allmydata import key_generator
|
|
|
|
from twisted.application import service
|
|
|
|
|
2008-12-01 17:47:21 -07:00
|
|
|
k = key_generator.KeyGeneratorService(default_key_size=2048)
|
2008-04-01 18:45:13 -07:00
|
|
|
#k.key_generator.verbose = False
|
|
|
|
#k.key_generator.pool_size = 16
|
|
|
|
#k.key_generator.pool_refresh_delay = 6
|
|
|
|
|
|
|
|
application = service.Application("allmydata_key_generator")
|
|
|
|
k.setServiceParent(application)
|
|
|
|
"""
|
|
|
|
|
2010-08-03 01:54:16 -07:00
|
|
|
def create_key_generator(basedir, config, out=sys.stdout, err=sys.stderr):
|
|
|
|
# This should always be called with an absolute Unicode basedir.
|
|
|
|
precondition(isinstance(basedir, unicode), basedir)
|
|
|
|
|
2008-04-01 18:45:13 -07:00
|
|
|
if os.path.exists(basedir):
|
2010-07-21 17:14:18 -07:00
|
|
|
if listdir_unicode(basedir):
|
|
|
|
print >>err, "The base directory %s is not empty." % quote_output(basedir)
|
2008-04-01 18:45:13 -07:00
|
|
|
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-key-generator.tac"), "wb")
|
|
|
|
f.write(keygen_tac)
|
|
|
|
f.close()
|
2008-12-01 17:47:21 -07:00
|
|
|
return 0
|
2008-04-01 18:45:13 -07:00
|
|
|
|
|
|
|
subCommands = [
|
|
|
|
["create-key-generator", None, CreateKeyGeneratorOptions, "Create a key generator service."],
|
|
|
|
]
|
|
|
|
|
|
|
|
dispatch = {
|
|
|
|
"create-key-generator": create_key_generator,
|
|
|
|
}
|
|
|
|
|