[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [chutney/master] Debug: when tor is missing, give instructions that actually work
commit 4a87a0bb54c807522798535847ed0c9fa1a7df18
Author: teor <teor@xxxxxxxxxxxxxx>
Date: Tue Oct 23 13:29:21 2018 +1000
Debug: when tor is missing, give instructions that actually work
Also, exit with a failure exit status.
---
lib/chutney/TorNet.py | 45 ++++++++++++++++++++-------------------------
1 file changed, 20 insertions(+), 25 deletions(-)
diff --git a/lib/chutney/TorNet.py b/lib/chutney/TorNet.py
index 1814d2e..faa3d88 100644
--- a/lib/chutney/TorNet.py
+++ b/lib/chutney/TorNet.py
@@ -90,6 +90,16 @@ def get_new_absolute_nodes_path(now=time.time()):
newdir = "%s.%d" % (newdirbase, i)
return newdir
+def _warnMissingTor(tor_path, cmdline, tor_name="tor"):
+ """Log a warning that the binary tor_name can't be found at tor_path
+ while running cmdline.
+ """
+ print(("Cannot find the {} binary at '{}' for the command line '{}'. " +
+ "Set the TOR_DIR environment variable to the directory " +
+ "containing {}.")
+ .format(tor_name, tor_path, " ".join(cmdline), tor_name))
+
+
class Node(object):
"""A Node represents a Tor node or a set of Tor nodes. It's created
@@ -263,19 +273,6 @@ class LocalNodeBuilder(NodeBuilder):
NodeBuilder.__init__(self, env)
self._env = env
- def _warnMissingTor(self, tor, cmdline,
- tor_name="tor", tor_env="CHUTNEY_TOR"):
- """Log a warning that the binary tor can't be found while running
- cmdline. Advise the user to put the path to tor_name in the tor_env
- environmental variable.
- """
- print(("Cannot find the {} binary {} for the command line '{}'. " +
- "Use the {} environment variable to set the path, " +
- "or put the binary into $PATH: '{}'. " +
- "If your $PATH contains ~, use $HOME instead.")
- .format(tor_name, tor, " ".join(cmdline),
- tor_env, os.getenv("PATH")))
-
def _createTorrcFile(self, checkOnly=False):
"""Write the torrc file for this node, disabling any options
that are not supported by env's tor binary using comments.
@@ -303,8 +300,8 @@ class LocalNodeBuilder(NodeBuilder):
except OSError as e:
# only catch file not found error
if e.errno == errno.ENOENT:
- self._warnMissingTor(tor, cmdline)
- sys.exit(0)
+ _warnMissingTor(tor, cmdline)
+ sys.exit(1)
else:
raise
# check we received a list of options, and nothing else
@@ -427,10 +424,10 @@ class LocalNodeBuilder(NodeBuilder):
except OSError as e:
# only catch file not found error
if e.errno == errno.ENOENT:
- self._warnMissingTor(tor_gencert, cmdline,
- tor_name="tor-gencert",
- tor_env="CHUTNEY_TOR_GENCERT")
- sys.exit(0)
+ _warnMissingTor(tor_gencert, cmdline,
+ tor_name="tor-gencert",
+ tor_env="CHUTNEY_TOR_GENCERT")
+ sys.exit(1)
else:
raise
p.communicate(passphrase + "\n")
@@ -457,8 +454,8 @@ class LocalNodeBuilder(NodeBuilder):
except OSError as e:
# only catch file not found error
if e.errno == errno.ENOENT:
- self._warnMissingTor(tor, cmdline)
- sys.exit(0)
+ _warnMissingTor(tor, cmdline)
+ sys.exit(1)
else:
raise
stdout, stderr = p.communicate()
@@ -628,10 +625,8 @@ class LocalNodeController(NodeController):
except OSError as e:
# only catch file not found error
if e.errno == errno.ENOENT:
- print("Cannot find tor binary %r. Use CHUTNEY_TOR "
- "environment variable to set the path, or put the "
- "binary into $PATH." % tor_path)
- sys.exit(0)
+ _warnMissingTor(tor_path, cmdline):
+ sys.exit(1)
else:
raise
if self.waitOnLaunch():
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits