From e8aed589d763880e3d5e83555a04d892fab9da35 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Fri, 5 Oct 2007 23:23:24 +0000 Subject: Start on "regular poll" code svn path=/scripts/rpki/left_right.py; revision=1101 --- scripts/rpki/left_right.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'scripts/rpki/left_right.py') diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py index c57651e8..0264f881 100644 --- a/scripts/rpki/left_right.py +++ b/scripts/rpki/left_right.py @@ -230,6 +230,22 @@ class self_elt(data_elt): elt.extend([i.toXML() for i in self.prefs]) return elt + def client_poll(self, gctx): + """Run the regular client poll cycle with each of this self's parents in turn.""" + for parent in parent_elt.sql_fetch_where(gctx, "self_id = %s" % self.self_id): + r_pdu = rpki.up_down.list_pdu(gctx, parent) + ca_dict = dict((ca.parent_resource_class, ca) for ca in rpki.sql.ca_obj.sql_fetch_where(gctx, "parent_id = %s", parent.parent_id)) + for rc in r_pdu.payload: + if rc.class_name in ca_dict: + ca = ca_dict[rc.class_name] + del ca_dict[rc.class_name] + ca.check_for_updates(gctx, parent, rc) + else: + rpki.sql.ca_obj.create(gctx, parent, rc) + for ca in ca_dict.values(): + ca.delete(gctx) # CA not listed by parent + rpki.sql.sql_sweep(gctx) + class bsc_elt(data_elt): """ (Business Signing Context) element.""" -- cgit v1.2.3