#! /usr/bin/env python # # neoadmin - run an administrator node of NEO # # Copyright (C) 2009 Nexedi SA # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from optparse import OptionParser from neo import setupLog from neo.util import bin parser = OptionParser() parser.add_option('-u', '--uuid', help='specify an UUID to use for this ' \ 'process') parser.add_option('-v', '--verbose', action = 'store_true', help = 'print verbose messages') parser.add_option('-l', '--logfile', help = 'specify a logging file') parser.add_option('-c', '--cluster', help = 'the cluster name') parser.add_option('-m', '--masters', help = 'master node list') parser.add_option('-b', '--bind', help = 'the local address to bind to') parser.add_option('-n', '--name', help = 'the node name (impove logging)') # build configuration dict from command line options (options, args) = parser.parse_args() config = { 'uuid': options.uuid, 'cluster': options.cluster, 'masters': options.masters or '127.0.0.1:10000', 'bind': options.bind or '127.0.0.1:9999', } config['uuid'] = bin(config['uuid']) # setup custom logging setupLog(options.name or 'admin', options.logfile or None, options.verbose) # and then, load and run the application from neo.admin.app import Application app = Application(**config) app.run()