Exemple #1
0
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()
Exemple #2
0
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.')
Exemple #3
0
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.')
Exemple #4
0
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.')
Exemple #5
0
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.')
Exemple #6
0
 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)