def main(): global pid pid = os.getpid() label = str(pid) log(label, "starting") # We don't do much sanity checking of the arguments, since if we get it # wrong, it's a bug in the test suite. keep = 0 configfile = None # Parse the arguments and let getopt.error percolate opts, args = getopt.getopt(sys.argv[1:], 'kC:') for opt, arg in opts: if opt == '-k': keep = 1 elif opt == '-C': configfile = arg zo = ZEOOptions() zo.realize(["-C", configfile]) zeo_port = int(zo.address[1]) if zo.auth_protocol == "plaintext": import ZEO.tests.auth_plaintext # Open the config file and let ZConfig parse the data there. Then remove # the config file, otherwise we'll leave turds. # The rest of the args are hostname, portnum test_port = zeo_port + 1 test_addr = ('localhost', test_port) addr = ('localhost', zeo_port) log(label, 'creating the storage server') storage = zo.storages[0].open() mon_addr = None if zo.monitor_address: mon_addr = zo.monitor_address server = StorageServer(zo.address, {"1": storage}, read_only=zo.read_only, invalidation_queue_size=zo.invalidation_queue_size, transaction_timeout=zo.transaction_timeout, monitor_address=mon_addr, auth_protocol=zo.auth_protocol, auth_database=zo.auth_database, auth_realm=zo.auth_realm) try: log(label, 'creating the test server, keep: %s', keep) t = ZEOTestServer(test_addr, server, keep) except socket.error, e: if e[0] <> errno.EADDRINUSE: raise log(label, 'addr in use, closing and exiting') storage.close() cleanup(storage) sys.exit(2)
def create_server(self): from ZEO.StorageServer import StorageServer self.server = StorageServer( self.options.address, self.storages, read_only=self.options.read_only, invalidation_queue_size=self.options.invalidation_queue_size, transaction_timeout=self.options.transaction_timeout, monitor_address=self.options.monitor_address, auth_protocol=self.options.auth_protocol, auth_database=self.options.auth_database, auth_realm=self.options.auth_realm)
def fork_zeo(self): self.zeo_path = get_socket_addr('zeo') try: os.unlink(self.zeo_path) except OSError: pass pid = self.fork() if pid: return pid else: from ZEO.StorageServer import StorageServer set_process_name('borgcubed [database process]') storage_factory, _ = zodburi.resolve_uri(settings.DB_URI) storage = storage_factory() prev_umask = os.umask(0o177) server = StorageServer( addr=self.zeo_path, storages={'1': storage}, ) os.umask(prev_umask) os.kill(os.getppid(), signal.SIGUSR1) try: server.loop() finally: server.close() sys.exit(0)
def create_server(storages, options): from ZEO.StorageServer import StorageServer return StorageServer( options.address, storages, read_only=options.read_only, invalidation_queue_size=options.invalidation_queue_size, invalidation_age=options.invalidation_age, transaction_timeout=options.transaction_timeout, monitor_address=options.monitor_address, auth_protocol=options.auth_protocol, auth_database=options.auth_database, auth_realm=options.auth_realm, )
def __init__(self, *args, **kwargs): StorageServer.__init__(*args, **kwargs) self._setup_record(kwargs["record"]) self._conn_counter = 1