def _selftest(targethost, tport, username='******', realname=b'? ? ?', ssl=None): import pprint from gonium.service_aggregation import ServiceAggregate from gonium._debugging import streamlogger_setup logging.getLogger('IRCClientConnection').setLevel(20) us = IRCUserSpec(username=username, realname=realname) us.add_nick(b'NickServ') us.add_nick(b'ChanServ') servers = ( IRCServerSpec('nonexistent.nowhere', 1), IRCServerSpec('0.0.0.0', 1), IRCServerSpec(targethost, tport, ssl=ssl), ) def link(): print('All done. Shutting down.') sa.ed.shutdown() streamlogger_setup() sa = ServiceAggregate() sa.add_dnslm() irccnl = IRCClientNetworkLink(sa, None, us, servers, conn_delay_is=5) irccnl.em_link_finish.new_prio_listener(link) irccnl.conn_init() sa.ed.event_loop()
def _main(): import optparse import sys from gonium import _debugging; _debugging.streamlogger_setup() op = optparse.OptionParser(usage='%prog [options] <lnfs_volume> <torrent meta file>...') op.add_option('-b', '--basepath', dest='basepath', default='.', metavar='PATH', help='Basepath to use for reading BT data') op.add_option('-r', '--reverse', default=False, action='store_true', help='Copy from LNFS to FS instead of the opposite direction') (options, args) = op.parse_args() basepath = options.basepath.encode() fn_vol = args[0] fns_bt = args[1:] sa = ServiceAggregate() sa.aio = None _log(20, 'Opening LNFS volume {0!a}.'.format(fn_vol)) vol = LNFSVolume(open(fn_vol,'r+b')) for fn_bt in fns_bt: _log(20, 'Reading metainfo from {0!a} and opening data files.'.format(fn_bt)) mi = BTMetaInfo.build_from_benc_stream(open(fn_bt,'rb')) btdiskio_v = btdiskio_v_build(sa, mi, basepath, mkdirs=options.reverse, mkfiles=options.reverse) btdiskio_lnfs = vol.btdiskio_build(sa, mi, basepath) _log(20, 'Copying data.') if (options.reverse): btdata_copy_b(sa, btdiskio_v, btdiskio_lnfs, mi.length_total) else: btdata_copy_b(sa, btdiskio_lnfs, btdiskio_v, mi.length_total) _log(20, 'Data copy finished.') _log(20, 'All done.')
def _selftest(volume_fn, btfn_s): from .benc_structures import BTMetaInfo from gonium.service_aggregation import ServiceAggregate sa = ServiceAggregate() sa.aio = None print('Opening LNFS volume ...') vol = LNFSVolume(open(volume_fn, 'r+b')) for btfn in btfn_s: print('Submitting data from {0!a} ...'.format(btfn)) mi = BTMetaInfo.build_from_benc_stream(open(btfn,'rb')) vol.btdiskio_build(sa, mi) print('No problems detected.')
def main(): import argparse import os import signal import sys from gonium.service_aggregation import ServiceAggregate p = argparse.ArgumentParser() p.add_argument('--config', '-c', default='~/.taf/config') p.add_argument('--loglevel', '-L', default=20, type=int) args = p.parse_args() logging.basicConfig(format='%(asctime)s %(levelno)s %(message)s', stream=sys.stderr, level=args.loglevel) sa = ServiceAggregate() sa.bump_ml = lambda: os.write(sa.sc._pipe_w, b'\x00') config_fn = os.path.expanduser(args.config) config = Config(sa) config.load_config_by_fn(config_fn) config.file_pid() n = Notifier(config) n.start_forward(*config.forward_args) # Signal handling def handle_signals(si_l): for si in si_l: if (si.signo in (signal.SIGTERM, signal.SIGINT)): sa.ed.shutdown() log(50, 'Shutting down on signal {}.'.format(si.signo)) break if (si.signo == signal.SIGUSR1): n.reset() break sa.sc.handle_signals.new_listener(handle_signals) for sig in (signal.SIGTERM, signal.SIGINT, signal.SIGUSR1): sa.sc.sighandler_install(sig, sa.sc.SA_RESTART) config.run_inits() log(20, 'Starting operation.') sa.ed.event_loop() config.run_finis() log(20, 'Terminating.')
def __init__(self, sa=None): if (sa is None): sa = ServiceAggregate() sa.add_dnslm() self._sa = sa self._icncs = [] self._config_ns = {} self.log_formatter_default = self.LogFormatter() self.assoc_handler = NetUserAssocHandler(self._sa.ed) self._single_bnc_names = set() for name in dir(self): if (name.startswith('_')): continue self._config_ns[name] = getattr(self, name)