From 8907e04ef542f0143e1d2010bd38bef792985432 Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Thu, 7 Jun 2007 17:55:49 -0700 Subject: [PATCH] client.py: allow operation without vdrive.furl, for storage-only no-UI nodes --- src/allmydata/client.py | 15 +++++++++------ src/allmydata/test/test_client.py | 6 ++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/allmydata/client.py b/src/allmydata/client.py index c81910f0..f25ed962 100644 --- a/src/allmydata/client.py +++ b/src/allmydata/client.py @@ -40,7 +40,6 @@ class Client(node.Node, Referenceable): self.add_service(StorageServer(os.path.join(basedir, self.STOREDIR))) self.add_service(Uploader()) self.add_service(Downloader()) - self.add_service(VDrive()) WEBPORTFILE = os.path.join(self.basedir, self.WEBPORTFILE) if os.path.exists(WEBPORTFILE): f = open(WEBPORTFILE, "r") @@ -54,11 +53,14 @@ class Client(node.Node, Referenceable): self.introducer_furl = f.read().strip() f.close() + self.global_vdrive_furl = None GLOBAL_VDRIVE_FURL_FILE = os.path.join(self.basedir, self.GLOBAL_VDRIVE_FURL_FILE) - f = open(GLOBAL_VDRIVE_FURL_FILE, "r") - self.global_vdrive_furl = f.read().strip() - f.close() + if os.path.exists(GLOBAL_VDRIVE_FURL_FILE): + f = open(GLOBAL_VDRIVE_FURL_FILE, "r") + self.global_vdrive_furl = f.read().strip() + f.close() + self.add_service(VDrive()) hotline_file = os.path.join(self.basedir, self.SUICIDE_PREVENTION_HOTLINE_FILE) @@ -95,8 +97,9 @@ class Client(node.Node, Referenceable): self.register_control() - self.vdrive_connector = self.tub.connectTo(self.global_vdrive_furl, - self._got_vdrive) + if self.global_vdrive_furl: + self.vdrive_connector = self.tub.connectTo(self.global_vdrive_furl, + self._got_vdrive) def register_control(self): c = ControlServer() diff --git a/src/allmydata/test/test_client.py b/src/allmydata/test/test_client.py index 3366dea6..2f424689 100644 --- a/src/allmydata/test/test_client.py +++ b/src/allmydata/test/test_client.py @@ -21,6 +21,12 @@ class Basic(unittest.TestCase): open(os.path.join(basedir, "vdrive.furl"), "w").write("") c = client.Client(basedir) + def test_loadable_without_vdrive(self): + basedir = "test_client.Basic.test_loadable_without_vdrive" + os.mkdir(basedir) + open(os.path.join(basedir, "introducer.furl"), "w").write("") + c = client.Client(basedir) + def test_permute(self): basedir = "test_client.Basic.test_permute" os.mkdir(basedir) -- 2.45.2