aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2008-05-17 06:14:33 +0000
committerRob Austein <sra@hactrn.net>2008-05-17 06:14:33 +0000
commit37c89ceee19d1d404e678a9b22e13f8bda6d09c6 (patch)
tree674f4131834e9327f2aa973d83b8fbfde87578b0
parent696d52f81dfa4d9541f44361d746c7d23447dcee (diff)
roa_prefix_set.from_sql()
svn path=/rpkid/rpki/resource_set.py; revision=1797
-rw-r--r--rpkid/rpki/resource_set.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/rpkid/rpki/resource_set.py b/rpkid/rpki/resource_set.py
index 26706f40..2b050ad3 100644
--- a/rpkid/rpki/resource_set.py
+++ b/rpkid/rpki/resource_set.py
@@ -674,6 +674,17 @@ class roa_prefix_set(list):
"""
return self.resource_set_type([p.to_resource_range() for p in self])
+ @classmethod
+ def from_sql(cls, cur, query, args = None):
+ """Create ROA prefix set from an SQL query. cur is a DB API 2.0
+ cursor object. query is an SQL query that returns a sequence of
+ (address, prefixlen, max_prefixlen) triples.
+ """
+
+ cur.execute(query, args)
+ return cls([cls.prefix_type(cls.prefix_type.range_type.datum_type(x), int(y), int(z))
+ for (x,y,z) in cur.fetchall()])
+
class roa_prefix_set_ipv4(roa_prefix_set):
"""Set of IPv4 ROA prefixes."""