diff options
author | Rob Austein <sra@hactrn.net> | 2007-10-23 07:20:27 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-10-23 07:20:27 +0000 |
commit | 66445ed4ac325b63a6f8b1138d02ffb4d6314b3b (patch) | |
tree | dc3692bb7782c9a47ccd743f4715bde8abfd818d /scripts/rpki/up_down.py | |
parent | 4eda44bbddd2bdf2963ed285746f9a197725f959 (diff) |
Insomnia
svn path=/scripts/Makefile; revision=1188
Diffstat (limited to 'scripts/rpki/up_down.py')
-rw-r--r-- | scripts/rpki/up_down.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/scripts/rpki/up_down.py b/scripts/rpki/up_down.py index 9eaddd20..268134ca 100644 --- a/scripts/rpki/up_down.py +++ b/scripts/rpki/up_down.py @@ -385,6 +385,17 @@ class error_response_pdu(base_elt): 1302 : "Revoke - no such key", 2001 : "Internal Server Error - Request not performed" } + exceptions = {} + + def __init__(self, exception = None): + """Initialize an error_response PDU from an exception object.""" + if exception is not None: + if exception in self.exceptions: + self.status = exceptions[exception] + else: + self.status = 2001 + self.description = str(exception) + def endElement(self, stack, name, text): """Handle "error_response" PDU.""" if name == "status": @@ -392,8 +403,6 @@ class error_response_pdu(base_elt): if code not in self.codes: raise rpki.exceptions.BadStatusCode, "%s is not a known status code" self.status = code - elif name == "last_message_processed": - self.last_message_processed = text elif name == "description": self.description = text else: @@ -457,6 +466,14 @@ class message_pdu(base_elt): self.payload.serve_pdu(gctx, self, r_msg, child) return r_msg + def serve_error(self, exception): + """Generate an error_response message PDU.""" + r_msg = message_pdu() + r_msg.sender = self.receiver + r_msg.receiver = self.sender + r_msg.payload = error_response_pdu(exception) + return r_msg + @classmethod def make_query(cls, payload, sender = "tweedledee", recipient = "tweedledum"): """Construct one message PDU.""" |