]> git.ipfire.org Git - ddns.git/blobdiff - src/ddns/errors.py
Add exception for HTTP 429 status codes.
[ddns.git] / src / ddns / errors.py
index cd935d032001e65dfa25d08c82d2738f25fc9e59..a8a201751f1111d41c2723681897e1261c467803 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # ddns - A dynamic DNS client for IPFire                                      #
-# Copyright (C) 2012 IPFire development team                                  #
+# Copyright (C) 2012-2017 IPFire development team                             #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 #                                                                             #
 ###############################################################################
 
+N_ = lambda x: x
+
 class DDNSError(Exception):
-       pass
+       """
+               Generic error class for all exceptions
+               raised by DDNS.
+       """
+       reason = N_("Error")
+
+       def __init__(self, message=None):
+               self.message = message
+
+
+class DDNSNetworkError(DDNSError):
+       """
+               Thrown when a network error occured.
+       """
+       reason = N_("Network error")
 
 
 class DDNSAbuseError(DDNSError):
@@ -28,7 +44,7 @@ class DDNSAbuseError(DDNSError):
                Thrown when the server reports
                abuse for this account.
        """
-       pass
+       reason = N_("The server denied processing the request because account abuse is suspected")
 
 
 class DDNSAuthenticationError(DDNSError):
@@ -36,7 +52,7 @@ class DDNSAuthenticationError(DDNSError):
                Thrown when the server did not
                accept the user credentials.
        """
-       pass
+       reason = N_("Authentication against the server has failed")
 
 
 class DDNSBlockedError(DDNSError):
@@ -45,7 +61,14 @@ class DDNSBlockedError(DDNSError):
                (specified by the user-agent) has been blocked
                by a dynamic DNS provider.
        """
-       pass
+       reason = N_("The server denies any updates from this client")
+
+
+class DDNSCertificateError(DDNSError):
+       """
+               Thrown when a server presented an invalid certificate.
+       """
+       reason = N_("Invalid certificate")
 
 
 class DDNSConfigurationError(DDNSError):
@@ -53,7 +76,21 @@ class DDNSConfigurationError(DDNSError):
                Thrown when invalid or insufficient
                data is provided by the configuration file.
        """
-       pass
+       reason = N_("The configuration file has errors")
+
+
+class DDNSConnectionRefusedError(DDNSNetworkError):
+       """
+               Thrown when a connection is refused.
+       """
+       reason = N_("Connection refused")
+
+
+class DDNSConnectionTimeoutError(DDNSNetworkError):
+       """
+               Thrown when a connection to a server has timed out.
+       """
+       reason = N_("Connection timeout")
 
 
 class DDNSHostNotFoundError(DDNSError):
@@ -61,7 +98,7 @@ class DDNSHostNotFoundError(DDNSError):
                Thrown when a configuration entry could
                not be found.
        """
-       pass
+       reason = N_("The host could not be found in the configuration file")
 
 
 class DDNSInternalServerError(DDNSError):
@@ -69,7 +106,28 @@ class DDNSInternalServerError(DDNSError):
                Thrown when the remote server reported
                an error on the provider site.
        """
-       pass
+       reason = N_("Internal server error")
+
+
+class DDNSNetworkUnreachableError(DDNSNetworkError):
+       """
+               Thrown when a network is not reachable.
+       """
+       reason = N_("Network unreachable")
+
+
+class DDNSNoRouteToHostError(DDNSNetworkError):
+       """
+               Thrown when there is no route to a host.
+       """
+       reason = N_("No route to host")
+
+
+class DDNSNotFound(DDNSError):
+       """
+               Thrown when the called URL has not been found
+       """
+       reason = N_("Not found")
 
 
 class DDNSRequestError(DDNSError):
@@ -77,7 +135,37 @@ class DDNSRequestError(DDNSError):
                Thrown when a request could
                not be properly performed.
        """
-       pass
+       reason = N_("Request error")
+
+
+class DDNSResolveError(DDNSNetworkError):
+       """
+               Thrown when a DNS record could not be resolved
+               because of a local error.
+       """
+       reason = N_("Could not resolve DNS entry")
+
+
+class DDNSSSLError(DDNSNetworkError):
+       """
+               Raised when a SSL connection could not be
+               negotiated.
+       """
+       reason = N_("SSL negotiation error")
+
+
+class DDNSServiceUnavailableError(DDNSNetworkError):
+       """
+               Equivalent to HTTP error code 503.
+       """
+       reason = N_("Service unavailable")
+
+
+class DDNSTooManyRequests(DDNSError):
+       """
+               Raised when too many requests occured.
+       """
+       reason = N_("Too many requests")
 
 
 class DDNSUpdateError(DDNSError):
@@ -85,4 +173,4 @@ class DDNSUpdateError(DDNSError):
                Thrown when an update could not be
                properly performed.
        """
-       pass
+       reason = N_("The update could not be performed")