diff options
Diffstat (limited to 'scripts/rpki')
-rw-r--r-- | scripts/rpki/left_right.py | 10 | ||||
-rw-r--r-- | scripts/rpki/resource_set.py | 8 |
2 files changed, 11 insertions, 7 deletions
diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py index 069835a3..fd6a17ce 100644 --- a/scripts/rpki/left_right.py +++ b/scripts/rpki/left_right.py @@ -417,10 +417,12 @@ class route_origin_elt(data_elt): roa = None def sql_fetch_hook(self, db, cur): - self.ipv4 = rpki.resource_set.resource_set_ipv4() - self.ipv4.from_sql(cur, "SELECT start_ip, end_ip FROM route_origin_range WHERE route_origin_id = %s AND start_ip NOT LIKE '%:%'", self.route_origin_id) - self.ipv6 = rpki.resource_set.resource_set_ipv6() - self.ipv4.from_sql(cur, "SELECT start_ip, end_ip FROM route_origin_range WHERE route_origin_id = %s AND start_ip LIKE '%:%'", self.route_origin_id) + self.ipv4 = rpki.resource_set.resource_set_ipv4.from_sql(cur, + "SELECT start_ip, end_ip FROM route_origin_range WHERE route_origin_id = %s AND start_ip NOT LIKE '%:%'", + self.route_origin_id) + self.ipv6 = rpki.resource_set.resource_set_ipv6.from_sql(cur, + "SELECT start_ip, end_ip FROM route_origin_range WHERE route_origin_id = %s AND start_ip LIKE '%:%'", + self.route_origin_id) cur.execute("SELECT roa, ca_detail_id FROM roa WHERE route_origin_id = %s", self.route_origin_id) roas = cur.fetchall() if len(roas) == 1: diff --git a/scripts/rpki/resource_set.py b/scripts/rpki/resource_set.py index 45fa096e..b0de948b 100644 --- a/scripts/rpki/resource_set.py +++ b/scripts/rpki/resource_set.py @@ -208,15 +208,17 @@ class resource_set(list): assert isinstance(item, (type(i), type(i.min))) return False - def from_sql(self, cursor, query): - """Populate resource set from an SQL query. + @classmethod + def from_sql(cls, cursor, query): + """Create resource set from an SQL query. cursor is a DB API 2.0 cursor object. query is an SQL query that returns a sequence of (min, max) pairs. """ + cursor.execute(query) - self[:] = [self.range_type(b, e) for (b,e) in cursor.fetchall()] + return cls(ini = [cls.range_type(b, e) for (b,e) in cursor.fetchall()]) class resource_set_as(resource_set): """ASN resource set.""" |