aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/publication.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/publication.py')
-rw-r--r--rpkid/rpki/publication.py28
1 files changed, 8 insertions, 20 deletions
diff --git a/rpkid/rpki/publication.py b/rpkid/rpki/publication.py
index 09ed0aac..07fffa83 100644
--- a/rpkid/rpki/publication.py
+++ b/rpkid/rpki/publication.py
@@ -20,21 +20,15 @@ import base64, lxml.etree, time, traceback, os
import rpki.resource_set, rpki.x509, rpki.sql, rpki.exceptions, rpki.xml_utils
import rpki.https, rpki.up_down, rpki.relaxng, rpki.sundial, rpki.log, rpki.roa
-publication_xmlns = "http://www.hactrn.net/uris/rpki/publication-spec/"
-publication_nsmap = { None : publication_xmlns }
+class publication_namespace(object):
+ """XML namespace parameters for publication protocol."""
-class data_elt(rpki.xml_utils.base_elt):
- """Virtual class for publication protocol PDUs."""
+ xmlns = "http://www.hactrn.net/uris/rpki/publication-spec/"
+ nsmap = { None : xmlns }
- xmlns = publication_xmlns
- nsmap = publication_nsmap
-
-class client_elt(rpki.xml_utils.data_elt, rpki.sql.sql_persistant):
+class client_elt(rpki.xml_utils.data_elt, rpki.sql.sql_persistant, publication_namespace):
"""<client/> element."""
- xmlns = publication_xmlns
- nsmap = publication_nsmap
-
element_name = "client"
attributes = ("action", "tag", "client_id", "base_uri")
elements = ("bpki_cert", "bpki_glue")
@@ -103,7 +97,7 @@ class client_elt(rpki.xml_utils.data_elt, rpki.sql.sql_persistant):
if not uri.startswith(self.base_uri):
raise rpki.exceptions.ForbiddenURI
-class publication_object_elt(data_elt):
+class publication_object_elt(rpki.xml_utils.base_elt, publication_namespace):
"""Virtual class for publishable objects. These have very similar
syntax, differences lie in underlying datatype and methods.
"""
@@ -200,12 +194,9 @@ class roa_elt(publication_object_elt):
obj2elt = dict((e.payload_type, e) for e in (certificate_elt, crl_elt, manifest_elt, roa_elt))
-class report_error_elt(rpki.xml_utils.base_elt):
+class report_error_elt(rpki.xml_utils.base_elt, publication_namespace):
"""<report_error/> element."""
- xmlns = publication_xmlns
- nsmap = publication_nsmap
-
element_name = "report_error"
attributes = ("tag", "error_code")
@@ -225,12 +216,9 @@ class report_error_elt(rpki.xml_utils.base_elt):
self.error_code = exc.__class__.__name__
return self
-class msg(rpki.xml_utils.msg):
+class msg(rpki.xml_utils.msg, publication_namespace):
"""Publication PDU."""
- xmlns = publication_xmlns
- nsmap = publication_nsmap
-
## @var version
# Protocol version
version = 1