diff options
Diffstat (limited to 'rpkid/upgrade-scripts/upgrade-irdbd-to-0.5678.py')
-rw-r--r-- | rpkid/upgrade-scripts/upgrade-irdbd-to-0.5678.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/rpkid/upgrade-scripts/upgrade-irdbd-to-0.5678.py b/rpkid/upgrade-scripts/upgrade-irdbd-to-0.5678.py new file mode 100644 index 00000000..b46ce5d7 --- /dev/null +++ b/rpkid/upgrade-scripts/upgrade-irdbd-to-0.5678.py @@ -0,0 +1,49 @@ +# $Id$ +# +# Copyright (C) 2014 Dragon Research Labs ("DRL") +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND DRL DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL DRL BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +""" +Schedule action to force certificate reissuance as part of upgrade to +version 0.5678 of the rpki-ca toolkit. + +This code is evaluated in the context of rpki-sql-setup's +do_apply_upgrades() function and has access to its variables. +""" + +# Real work here has to be a deferred upgrade because the daemons have +# to be running for anything useful to happen. + +db.add_deferred_upgrade(''' + +print """ + Version 0.5678 included a change which changed publication + URIs embedded in issued certificates, which requires reissuing + all affected certificates before everything will really work + properly again. Attempting to do this automatically... +""" + +import subprocess, time + +handles = subprocess.check_output(("rpkic", "list_self_handles")).splitlines() + +for handle in handles: + + print "Forcing reissuance for", handle + subprocess.check_call(("rpkic", "-i", handle, "force_reissue")) + + print "Forcing publication for", handle + subprocess.check_call(("rpkic", "-i", handle, "force_publication")) + +''') |