diff options
Diffstat (limited to 'rpkid')
-rw-r--r-- | rpkid/rpki/gui/app/views.py | 3 | ||||
-rw-r--r-- | rpkid/rpki/irdb/zookeeper.py | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py index 6c4d1719..faff0b87 100644 --- a/rpkid/rpki/gui/app/views.py +++ b/rpkid/rpki/gui/app/views.py @@ -507,6 +507,7 @@ def roa_create_confirm(request): roa.prefixes.create(version=v, prefix=str(rng.min), prefixlen=rng.prefixlen(), max_prefixlen=max_prefixlen) + Zookeeper(handle=conf.handle).run_rpkid_now() return http.HttpResponseRedirect(reverse(roa_list)) else: return http.HttpResponseRedirect(reverse(roa_create)) @@ -558,6 +559,7 @@ def roa_delete(request, pk): # if this was the last prefix on the ROA, delete the ROA request if not roa.prefixes.exists(): roa.delete() + Zookeeper(handle=conf.handle).run_rpkid_now() return http.HttpResponseRedirect(reverse(roa_list)) ### Process GET ### @@ -640,6 +642,7 @@ def _ghostbuster_edit(request, obj=None): obj.issuer = conf obj.vcard = glue.ghostbuster_to_vcard(obj) obj.save() + Zookeeper(handle=conf.handle).run_rpkid_now() return http.HttpResponseRedirect(obj.get_absolute_url()) else: form = form_class(conf, instance=obj) diff --git a/rpkid/rpki/irdb/zookeeper.py b/rpkid/rpki/irdb/zookeeper.py index 4816b40e..bc255186 100644 --- a/rpkid/rpki/irdb/zookeeper.py +++ b/rpkid/rpki/irdb/zookeeper.py @@ -885,6 +885,18 @@ class Zookeeper(object): return call_rpkid(*pdus) + def run_rpkid_now(self): + """Poke rpkid to immediately run the cron job for the current handle. + + This method is used by the gui when a user has changed something in the + IRDB (ghostbuster, roa) which does not require a full `synchronize()` call, + to force the object to be immediately issued. + + """ + self.call_rpkid(rpki.left_right.self_elt.make_pdu( + action = "set", self_handle = self.handle, run_now = "yes")) + + def call_pubd(self, *pdus): """ Issue a call to pubd, return result. |