diff options
author | Rob Austein <sra@hactrn.net> | 2008-05-17 06:14:33 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2008-05-17 06:14:33 +0000 |
commit | 37c89ceee19d1d404e678a9b22e13f8bda6d09c6 (patch) | |
tree | 674f4131834e9327f2aa973d83b8fbfde87578b0 | |
parent | 696d52f81dfa4d9541f44361d746c7d23447dcee (diff) |
roa_prefix_set.from_sql()
svn path=/rpkid/rpki/resource_set.py; revision=1797
-rw-r--r-- | rpkid/rpki/resource_set.py | 11 |
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.""" |