aboutsummaryrefslogtreecommitdiff
path: root/scripts/rpki/left_right.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-09-11 19:46:06 +0000
committerRob Austein <sra@hactrn.net>2007-09-11 19:46:06 +0000
commit63acecdc38a602eafb5beb49fb0b9b4a291c3378 (patch)
treeb4cc6eb007b394e0ae54f6dd744518c1aa4f7000 /scripts/rpki/left_right.py
parent39f8909f26b1e58329796077f09bcdac0dc39cdf (diff)
Checkpoint
svn path=/scripts/rpki/left_right.py; revision=942
Diffstat (limited to 'scripts/rpki/left_right.py')
-rw-r--r--scripts/rpki/left_right.py94
1 files changed, 59 insertions, 35 deletions
diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py
index 0e3dcb78..62fc69ec 100644
--- a/scripts/rpki/left_right.py
+++ b/scripts/rpki/left_right.py
@@ -58,9 +58,9 @@ class extension_preference_elt(base_elt, rpki.sql.sql_persistant):
attributes = ("name",)
sql_select_cmd = """SELECT pref_name, pref_value FROM self_pref WHERE self_id = %(self_id)s"""
- sql_insert_cmd = """INSERT self_pref (self_id, pref_name, pref_value) VALUES (%(self_id)s, %(name)s, %(value)"""
- sql_update_cmd = """UPDATE self_pref SET pref_value = %(value)s WHERE self_id = %(self_id) AND pref_name = %(name)s"""
- sql_delete_cmd = """DELETE FROM self_pref WHERE self_id = %(self_id) AND pref_name = %(name)s"""
+ sql_insert_cmd = """INSERT self_pref (self_id, pref_name, pref_value) VALUES (%(self_id)s, %(name)s, %(value)s"""
+ sql_update_cmd = """UPDATE self_pref SET pref_value = %(value)s WHERE self_id = %(self_id)s AND pref_name = %(name)s"""
+ sql_delete_cmd = """DELETE FROM self_pref WHERE self_id = %(self_id)s AND pref_name = %(name)s"""
def sql_decode(self, sql_parent, self_id, name, value):
self.self_obj = sql_parent
@@ -88,38 +88,6 @@ class extension_preference_elt(base_elt, rpki.sql.sql_persistant):
elt.text = self.value
return elt
-class self_elt(base_elt, rpki.sql.sql_persistant):
- """<self/> element."""
-
- element_name = "self"
- attributes = ("action", "type", "self_id")
- booleans = ("rekey", "reissue", "revoke", "run_now", "publish_world_now")
-
- def __init__(self):
- self.prefs = []
-
- def startElement(self, stack, name, attrs):
- """Handle <self/> element."""
- if name == "extension_preference":
- pref = extension_preference_elt()
- self.prefs.append(pref)
- stack.append(pref)
- pref.startElement(stack, name, attrs)
- else:
- assert name == "self", "Unexpected name %s, stack %s" % (name, stack)
- self.read_attrs(attrs)
-
- def endElement(self, stack, name, text):
- """Handle <self/> element."""
- assert name == "self", "Unexpected name %s, stack %s" % (name, stack)
- stack.pop()
-
- def toXML(self):
- """Generate <self/> element."""
- elt = self.make_elt()
- elt.extend([i.toXML() for i in self.prefs])
- return elt
-
class bsc_elt(base_elt, rpki.sql.sql_persistant):
"""<bsc/> (Business Signing Context) element."""
@@ -277,6 +245,62 @@ class route_origin_elt(base_elt, rpki.sql.sql_persistant):
"""Generate <route_origin/> element."""
return self.make_elt()
+class self_elt(base_elt, rpki.sql.sql_persistant):
+ """<self/> element."""
+
+ element_name = "self"
+ attributes = ("action", "type", "self_id")
+ booleans = ("rekey", "reissue", "revoke", "run_now", "publish_world_now")
+
+ sql_id_name = "self_id"
+ sql_select_cmd = """SELECT self_id, use_hsm FROM self WHERE self_id = %(self_id)s"""
+ sql_insert_cmd = """INSERT self (use_hsm) VALUES (%(use_hsm)s"""
+ sql_update_cmd = """UPDATE self SET use_hsm = %(use_hsm)s WHERE self_id = %(self_id)s"""
+ sql_delete_cmd = """DELETE FROM self WHERE self_id = %(self_id)s"""
+ sql_children = (("prefs", extension_preference_elt),
+ ("bscs", bsc_elt),
+ ("repos", repository_elt),
+ ("parents", parent_elt),
+ ("children", child_elt),
+ ("route_origins", route_origin_elt))
+
+ self_id = None
+
+ def __init__(self):
+ for k,v in self.sql_children:
+ setattr(self, k, [])
+
+ def sql_decode(self, sql_parent, self_id, use_hsm):
+ assert sql_parent is None
+ self.self_id = self_id
+ self.use_hsm = use_hsm
+
+ def sql_encode(self):
+ return { "self_id" : self.self_id,
+ "use_hsm" : self.use_hsm }
+
+ def startElement(self, stack, name, attrs):
+ """Handle <self/> element."""
+ if name == "extension_preference":
+ pref = extension_preference_elt()
+ self.prefs.append(pref)
+ stack.append(pref)
+ pref.startElement(stack, name, attrs)
+ else:
+ assert name == "self", "Unexpected name %s, stack %s" % (name, stack)
+ self.read_attrs(attrs)
+
+ def endElement(self, stack, name, text):
+ """Handle <self/> element."""
+ assert name == "self", "Unexpected name %s, stack %s" % (name, stack)
+ stack.pop()
+
+ def toXML(self):
+ """Generate <self/> element."""
+ elt = self.make_elt()
+ elt.extend([i.toXML() for i in self.prefs])
+ return elt
+
class resource_class_elt(base_elt):
"""<resource_class/> element."""