Ejemplo n.º 1
0
 def start_gateways(self):
     nodedirs = get_nodedirs(config_dir)
     if nodedirs:
         minimize_preference = get_preference('startup', 'minimize')
         if not minimize_preference or minimize_preference == 'false':
             self.gui.show_main_window()
         yield self.select_executable()
         tor_available = yield get_tor(reactor)
         logging.debug("Starting Tahoe-LAFS gateway(s)...")
         for nodedir in nodedirs:
             gateway = Tahoe(nodedir, executable=self.executable)
             tcp = gateway.config_get('connections', 'tcp')
             if tcp == 'tor' and not tor_available:
                 msg.error(
                     self.gui.main_window, "Error Connecting To Tor Daemon",
                     'The "{}" connection is configured to use Tor, '
                     'however, no running tor daemon was found.\n\n'
                     'This connection will be disabled until you launch '
                     'Tor again.'.format(gateway.name))
             self.gateways.append(gateway)
             d = gateway.start()
             d.addCallback(gateway.ensure_folder_links)
         self.gui.populate(self.gateways)
     else:
         self.gui.show_welcome_dialog()
         yield self.select_executable()
Ejemplo n.º 2
0
    def start(self):
        self.initialize_logger(self.args.debug)
        try:
            os.makedirs(config_dir)
        except OSError:
            pass

        # Acquire a filesystem lock to prevent multiple instances from running
        lock = FilesystemLock(
            os.path.join(config_dir, "{}.lock".format(APP_NAME)))
        lock.acquire()

        logging.debug("Core starting with args: %s", self.args)
        logging.debug("Loaded config.txt settings: %s", settings)

        self.show_message()

        self.gui = Gui(self)
        self.gui.show_systray()

        reactor.callLater(0, self.start_gateways)
        reactor.run()
        for nodedir in get_nodedirs(config_dir):
            Tahoe(nodedir, executable=self.executable).kill()
        lock.release()
Ejemplo n.º 3
0
    def start(self):
        # Listen on a port to prevent multiple instances from running
        reactor.listenTCP(52045, CoreFactory(), interface='localhost')
        try:
            os.makedirs(config_dir)
        except OSError:
            pass

        logging.info("Core starting with args: %s", self.args)
        logging.debug("$PATH is: %s", os.getenv('PATH'))
        logging.debug("Loaded config.txt settings: %s", settings)

        self.gui = Gui(self)
        self.gui.show_systray()

        reactor.callLater(0, self.start_gateways)
        reactor.run()
        for nodedir in get_nodedirs(config_dir):
            Tahoe(nodedir, executable=self.executable).kill()
Ejemplo n.º 4
0
 def start_gateways(self):
     nodedirs = get_nodedirs(config_dir)
     if nodedirs:
         minimize_preference = get_preference("startup", "minimize")
         if not minimize_preference or minimize_preference == "false":
             self.gui.show_main_window()
         yield self.select_executable()
         tor_available = yield get_tor(reactor)
         logging.debug("Starting Tahoe-LAFS gateway(s)...")
         for nodedir in nodedirs:
             gateway = Tahoe(nodedir, executable=self.executable)
             tcp = gateway.config_get("connections", "tcp")
             if tcp == "tor" and not tor_available:
                 logging.error("No running tor daemon found")
                 msg.error(
                     self.gui.main_window,
                     "Error Connecting To Tor Daemon",
                     'The "{}" connection is configured to use Tor, '
                     "however, no running tor daemon was found.\n\n"
                     "This connection will be disabled until you launch "
                     "Tor again.".format(gateway.name),
                 )
             self.gateways.append(gateway)
             d = gateway.start()
             d.addCallback(gateway.ensure_folder_links)
         self.gui.populate(self.gateways)
     else:
         self.gui.show_welcome_dialog()
         yield self.select_executable()
     try:
         yield self.get_tahoe_version()
     except Exception as e:  # pylint: disable=broad-except
         logging.critical("Error getting Tahoe-LAFS version")
         msg.critical(
             "Error getting Tahoe-LAFS version",
             "{}: {}".format(type(e).__name__, str(e)),
         )
         reactor.stop()
Ejemplo n.º 5
0
 def start_gateways(self):
     nodedirs = get_nodedirs(config_dir)
     if nodedirs:
         yield self.select_executable()
         logging.debug("Starting Tahoe-LAFS gateway(s)...")
         for nodedir in nodedirs:
             gateway = Tahoe(nodedir, executable=self.executable)
             self.gateways.append(gateway)
             gateway.start()
         self.gui.populate(self.gateways)
     else:
         defaults = settings['default']
         if defaults['provider_name']:
             nodedir = os.path.join(config_dir, defaults['provider_name'])
             yield self.select_executable()
             gateway = Tahoe(nodedir, executable=self.executable)
             self.gateways.append(gateway)
             # TODO: Show setup progress dialog
             yield gateway.create_client(**defaults)
             gateway.start()
             self.gui.populate(self.gateways)
         else:
             self.gui.show_setup_form()
             yield self.select_executable()
Ejemplo n.º 6
0
 def start_gateways(self):
     nodedirs = get_nodedirs(config_dir)
     if nodedirs:
         minimize_preference = get_preference('startup', 'minimize')
         if not minimize_preference or minimize_preference == 'false':
             self.gui.show_main_window()
         yield self.select_executable()
         logging.debug("Starting Tahoe-LAFS gateway(s)...")
         for nodedir in nodedirs:
             gateway = Tahoe(
                 nodedir,
                 executable=self.executable,
                 multi_folder_support=self.multi_folder_support
             )
             self.gateways.append(gateway)
             d = gateway.start()
             d.addCallback(gateway.ensure_folder_links)
         self.gui.populate(self.gateways)
     else:
         defaults = settings['default']
         if defaults['provider_name']:
             nodedir = os.path.join(config_dir, defaults['provider_name'])
             yield self.select_executable()
             gateway = Tahoe(
                 nodedir,
                 executable=self.executable,
                 multi_folder_support=self.multi_folder_support
             )
             self.gateways.append(gateway)
             # TODO: Show setup progress dialog
             yield gateway.create_client(**defaults)
             gateway.start()
             self.gui.populate(self.gateways)
         else:
             self.gui.show_welcome_dialog()
             yield self.select_executable()
Ejemplo n.º 7
0
def test_get_nodedirs_empty(tahoe, tmpdir_factory):
    basedir = os.path.join(str(tmpdir_factory.getbasetemp()), 'non-existent')
    assert get_nodedirs(basedir) == []
Ejemplo n.º 8
0
def test_get_nodedirs(tahoe, tmpdir_factory):
    basedir = str(tmpdir_factory.getbasetemp())
    assert tahoe.nodedir in get_nodedirs(basedir)
Ejemplo n.º 9
0
 def stop_gateways(self):
     logging.debug("Stopping Tahoe-LAFS gateway(s)...")
     tasks = []
     for nodedir in get_nodedirs(config_dir):
         tasks.append(Tahoe(nodedir, executable=self.executable).stop())
     yield DeferredList(tasks)