[tor-commits] [ooni-probe/master] Move error handling functionality to the errors module
isis at torproject.org
isis at torproject.org
Sun Mar 10 01:57:01 UTC 2013
commit 12edd26ab39ebd82b9826ea8105c01ac01bac7b8
Author: Arturo Filastò <art at fuffa.org>
Date: Sat Jan 12 13:35:39 2013 +0100
Move error handling functionality to the errors module
---
ooni/errors.py | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
ooni/nettest.py | 117 +------------------------------------------------------
2 files changed, 117 insertions(+), 116 deletions(-)
diff --git a/ooni/errors.py b/ooni/errors.py
new file mode 100644
index 0000000..c7ecfae
--- /dev/null
+++ b/ooni/errors.py
@@ -0,0 +1,116 @@
+from twisted.internet.defer import TimeoutError as DeferTimeoutError
+from twisted.web._newclient import ResponseNeverReceived
+
+from twisted.internet.error import ConnectionRefusedError, TCPTimedOutError
+from twisted.internet.error import DNSLookupError
+from twisted.internet.error import TimeoutError as GenericTimeoutError
+
+from txsocksx.errors import SOCKSError
+from txsocksx.errors import MethodsNotAcceptedError, AddressNotSupported
+from txsocksx.errors import ConnectionError, NetworkUnreachable
+from txsocksx.errors import ConnectionLostEarly, ConnectionNotAllowed
+from txsocksx.errors import NoAcceptableMethods, ServerFailure
+from txsocksx.errors import HostUnreachable, ConnectionRefused
+from txsocksx.errors import TTLExpired, CommandNotSupported
+
+from socket import gaierror
+
+def handleAllFailures(failure):
+ """
+ Here we make sure to trap all the failures that are supported by the
+ failureToString function and we return the the string that represents the
+ failure.
+ """
+ failure.trap(ConnectionRefusedError, gaierror, DNSLookupError,
+ TCPTimedOutError, ResponseNeverReceived, DeferTimeoutError,
+ GenericTimeoutError,
+ SOCKSError, MethodsNotAcceptedError, AddressNotSupported,
+ ConnectionError, NetworkUnreachable, ConnectionLostEarly,
+ ConnectionNotAllowed, NoAcceptableMethods, ServerFailure,
+ HostUnreachable, ConnectionRefused, TTLExpired, CommandNotSupported)
+
+ return failureToString(failure)
+
+def failureToString(failure):
+ """
+ Given a failure instance return a string representing the kind of error
+ that occurred.
+
+ Args:
+
+ failure: a :class:twisted.internet.error instance
+
+ Returns:
+
+ A string representing the HTTP response error message.
+ """
+ string = None
+ if isinstance(failure.value, ConnectionRefusedError):
+ log.err("Connection refused. The backend may be down")
+ string = 'connection_refused_error'
+
+ elif isinstance(failure.value, gaierror):
+ log.err("Address family for hostname not supported")
+ string = 'address_family_not_supported_error'
+
+ elif isinstance(failure.value, DNSLookupError):
+ log.err("DNS lookup failure")
+ string = 'dns_lookup_error'
+
+ elif isinstance(failure.value, TCPTimedOutError):
+ log.err("TCP Timed Out Error")
+ string = 'tcp_timed_out_error'
+
+ elif isinstance(failure.value, ResponseNeverReceived):
+ log.err("Response Never Received")
+ string = 'response_never_received'
+
+ elif isinstance(failure.value, DeferTimeoutError):
+ log.err("Deferred Timeout Error")
+ string = 'deferred_timeout_error'
+
+ elif isinstance(failure.value, GenericTimeoutError):
+ log.err("Time Out Error")
+ string = 'generic_timeout_error'
+
+ elif isinstance(failure.value, ServerFailure):
+ log.err("SOCKS error: ServerFailure")
+ string = 'socks_server_failure'
+
+ elif isinstance(failure.value, ConnectionNotAllowed):
+ log.err("SOCKS error: ConnectionNotAllowed")
+ string = 'socks_connection_not_allowed'
+
+ elif isinstance(failure.value, NetworkUnreachable):
+ log.err("SOCKS error: NetworkUnreachable")
+ string = 'socks_network_unreachable'
+
+ elif isinstance(failure.value, HostUnreachable):
+ log.err("SOCKS error: HostUnreachable")
+ string = 'socks_host_unreachable'
+
+ elif isinstance(failure.value, ConnectionRefused):
+ log.err("SOCKS error: ConnectionRefused")
+ string = 'socks_connection_refused'
+
+ elif isinstance(failure.value, TTLExpired):
+ log.err("SOCKS error: TTLExpired")
+ string = 'socks_ttl_expired'
+
+ elif isinstance(failure.value, CommandNotSupported):
+ log.err("SOCKS error: CommandNotSupported")
+ string = 'socks_command_not_supported'
+
+ elif isinstance(failure.value, AddressNotSupported):
+ log.err("SOCKS error: AddressNotSupported")
+ string = 'socks_address_not_supported'
+ elif isinstance(failure.value, SOCKSError):
+ log.err("Generic SOCKS error")
+ string = 'socks_error'
+
+ else:
+ log.err("Unknown failure type: %s" % type(failure))
+ string = 'unknown_failure %s' % str(failure.value)
+
+ return string
+
diff --git a/ooni/nettest.py b/ooni/nettest.py
index 06ed4cb..538fcf9 100644
--- a/ooni/nettest.py
+++ b/ooni/nettest.py
@@ -7,124 +7,9 @@ from twisted.trial import unittest, itrial, util
from twisted.internet import defer, utils
from twisted.python import usage
-from twisted.internet.error import ConnectionRefusedError, TCPTimedOutError
-from twisted.internet.error import DNSLookupError
-from twisted.internet.error import TimeoutError as GenericTimeoutError
-
-from twisted.internet.defer import TimeoutError as DeferTimeoutError
-from twisted.web._newclient import ResponseNeverReceived
-
+from ooni.errors import handleAllFailures, failureToString
from ooni.utils import log
-from txsocksx.errors import SOCKSError
-from txsocksx.errors import MethodsNotAcceptedError, AddressNotSupported
-from txsocksx.errors import ConnectionError, NetworkUnreachable
-from txsocksx.errors import ConnectionLostEarly, ConnectionNotAllowed
-from txsocksx.errors import NoAcceptableMethods, ServerFailure
-from txsocksx.errors import HostUnreachable, ConnectionRefused
-from txsocksx.errors import TTLExpired, CommandNotSupported
-
-
-from socket import gaierror
-
-def handleAllFailures(failure):
- """
- Here we make sure to trap all the failures that are supported by the
- failureToString function and we return the the string that represents the
- failure.
- """
- failure.trap(ConnectionRefusedError, gaierror, DNSLookupError,
- TCPTimedOutError, ResponseNeverReceived, DeferTimeoutError,
- GenericTimeoutError,
- SOCKSError, MethodsNotAcceptedError, AddressNotSupported,
- ConnectionError, NetworkUnreachable, ConnectionLostEarly,
- ConnectionNotAllowed, NoAcceptableMethods, ServerFailure,
- HostUnreachable, ConnectionRefused, TTLExpired, CommandNotSupported)
-
- return failureToString(failure)
-
-def failureToString(failure):
- """
- Given a failure instance return a string representing the kind of error
- that occurred.
-
- Args:
-
- failure: a :class:twisted.internet.error instance
-
- Returns:
-
- A string representing the HTTP response error message.
- """
- string = None
- if isinstance(failure.value, ConnectionRefusedError):
- log.err("Connection refused. The backend may be down")
- string = 'connection_refused_error'
-
- elif isinstance(failure.value, gaierror):
- log.err("Address family for hostname not supported")
- string = 'address_family_not_supported_error'
-
- elif isinstance(failure.value, DNSLookupError):
- log.err("DNS lookup failure")
- string = 'dns_lookup_error'
-
- elif isinstance(failure.value, TCPTimedOutError):
- log.err("TCP Timed Out Error")
- string = 'tcp_timed_out_error'
-
- elif isinstance(failure.value, ResponseNeverReceived):
- log.err("Response Never Received")
- string = 'response_never_received'
-
- elif isinstance(failure.value, DeferTimeoutError):
- log.err("Deferred Timeout Error")
- string = 'deferred_timeout_error'
-
- elif isinstance(failure.value, GenericTimeoutError):
- log.err("Time Out Error")
- string = 'generic_timeout_error'
-
- elif isinstance(failure.value, ServerFailure):
- log.err("SOCKS error: ServerFailure")
- string = 'socks_server_failure'
-
- elif isinstance(failure.value, ConnectionNotAllowed):
- log.err("SOCKS error: ConnectionNotAllowed")
- string = 'socks_connection_not_allowed'
-
- elif isinstance(failure.value, NetworkUnreachable):
- log.err("SOCKS error: NetworkUnreachable")
- string = 'socks_network_unreachable'
-
- elif isinstance(failure.value, HostUnreachable):
- log.err("SOCKS error: HostUnreachable")
- string = 'socks_host_unreachable'
-
- elif isinstance(failure.value, ConnectionRefused):
- log.err("SOCKS error: ConnectionRefused")
- string = 'socks_connection_refused'
-
- elif isinstance(failure.value, TTLExpired):
- log.err("SOCKS error: TTLExpired")
- string = 'socks_ttl_expired'
-
- elif isinstance(failure.value, CommandNotSupported):
- log.err("SOCKS error: CommandNotSupported")
- string = 'socks_command_not_supported'
-
- elif isinstance(failure.value, AddressNotSupported):
- log.err("SOCKS error: AddressNotSupported")
- string = 'socks_address_not_supported'
- elif isinstance(failure.value, SOCKSError):
- log.err("Generic SOCKS error")
- string = 'socks_error'
-
- else:
- log.err("Unknown failure type: %s" % type(failure))
- string = 'unknown_failure %s' % str(failure.value)
-
- return string
class NoPostProcessor(Exception):
pass
More information about the tor-commits
mailing list