diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/rpki/left_right.py | 2 | ||||
-rw-r--r-- | scripts/rpki/sql.py | 1 | ||||
-rwxr-xr-x | scripts/rpkid.py | 21 |
3 files changed, 17 insertions, 7 deletions
diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py index 18923b3a..5a5b848e 100644 --- a/scripts/rpki/left_right.py +++ b/scripts/rpki/left_right.py @@ -179,7 +179,7 @@ class parent_elt(data_elt): def toXML(self): """Generate <bsc/> element.""" elt = self.make_elt() - if self.peer_ta: + if self.peer_ta and not self.peer_ta.empty(): self.make_b64elt(elt, "peer_ta", self.peer_ta.get_DER()) return elt diff --git a/scripts/rpki/sql.py b/scripts/rpki/sql.py index 29058174..024ba68d 100644 --- a/scripts/rpki/sql.py +++ b/scripts/rpki/sql.py @@ -16,6 +16,7 @@ class template(object): def __init__(self, table_name, *columns): index_column = columns[0] data_columns = columns[1:] + self.table = table_name self.index = index_column self.columns = columns self.select = "SELECT %s FROM %s WHERE %s = %%s" % (", ".join(columns), table_name, index_column) diff --git a/scripts/rpkid.py b/scripts/rpkid.py index 483ad5be..fda7aed3 100755 --- a/scripts/rpkid.py +++ b/scripts/rpkid.py @@ -39,14 +39,23 @@ def left_right_handler(query, path): setattr(r_pdu, q_pdu.sql_template.index, getattr(q_pdu, q_pdu.sql_template.index)) r_msg.append(r_pdu) - def get_handler(): + def get_handler(q_pdu): + r_pdu = q_pdu.sql_fetch(db, cur, getattr(q_pdu, q_pdu.sql_template.index)) + if r_pdu is not None: + make_reply(q_pdu, r_pdu) + r_msg.append(r_pdu) + else: + r_msg.append(make_error_report(q_pdu)) + + def set_handler(q_pdu): raise NotImplementedError - def set_handler(): - raise NotImplementedError - - def list_handler(): - raise NotImplementedError + def list_handler(q_pdu): + for id in rpki.sql.get_column(db, cur, "SELECT %s FROM %s" % (q_pdu.sql_template.index, q_pdu.sql_template.table)): + r_pdu = q_pdu.sql_fetch(db, cur, id) + assert r_pdu is not None + make_reply(q_pdu, r_pdu) + r_msg.append(r_pdu) try: q_elt = decode(query, cms_ta_irbe) |