#!/usr/bin/env python '''The XML-RPC Bcfg2 Server''' __revision__ = '$Revision$' import logging import sys from xmlrpclib import Fault import Bcfg2.Logger import Bcfg2.Options import Bcfg2.Component import Bcfg2.Server.Plugins.Metadata from Bcfg2.Server.Core import CoreInitError logger = logging.getLogger('bcfg2-server') if __name__ == '__main__': OPTINFO = { 'configfile': Bcfg2.Options.CFILE, 'daemon' : Bcfg2.Options.DAEMON, 'debug' : Bcfg2.Options.DEBUG, 'help' : Bcfg2.Options.HELP, 'verbose' : Bcfg2.Options.VERBOSE, } OPTINFO.update({'repo': Bcfg2.Options.SERVER_REPOSITORY, 'plugins': Bcfg2.Options.SERVER_PLUGINS, 'password': Bcfg2.Options.SERVER_PASSWORD, 'fm': Bcfg2.Options.SERVER_FILEMONITOR, }) OPTINFO.update({'key' : Bcfg2.Options.SERVER_KEY, 'cert' : Bcfg2.Options.SERVER_CERT, 'ca' : Bcfg2.Options.SERVER_CA, 'location' : Bcfg2.Options.SERVER_LOCATION, 'passwd' : Bcfg2.Options.SERVER_PASSWORD, 'static' : Bcfg2.Options.SERVER_STATIC, 'encoding' : Bcfg2.Options.ENCODING, 'filelog' : Bcfg2.Options.LOGGING_FILE_PATH, 'protocol' : Bcfg2.Options.SERVER_PROTOCOL, }) setup = Bcfg2.Options.OptionParser(OPTINFO) setup.parse(sys.argv[1:]) try: Bcfg2.Component.run_component(Bcfg2.Server.Core.Core, location=setup['location'], daemon = setup['daemon'], pidfile_name = setup['daemon'], protocol = setup['protocol'], register=False, cls_kwargs={'repo':setup['repo'], 'plugins':setup['plugins'], 'password':setup['password'], 'encoding':setup['encoding'], 'ca':setup['ca'], 'filemonitor':setup['fm'], 'start_fam_thread':True}, keyfile=setup['key'], certfile=setup['cert'], ca=setup['ca'], ) except CoreInitError, msg: logger.error(msg) logger.error("exiting") except KeyboardInterrupt: sys.exit(1) sys.exit(0)