diff options
Diffstat (limited to 'scripts/vyos-update-rpki-cache.py')
-rw-r--r-- | scripts/vyos-update-rpki-cache.py | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/scripts/vyos-update-rpki-cache.py b/scripts/vyos-update-rpki-cache.py deleted file mode 100644 index f290d119..00000000 --- a/scripts/vyos-update-rpki-cache.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env python3 - -import sys -import subprocess - -import vyos.config - - -base_path = "protocols rpki " - -def create_cache(c, cache): - new_port = c.return_value(base_path + "cache {0} port".format(cache)) - new_addr = c.return_value(base_path + "cache {0} address".format(cache)) - new_pref = c.return_value(base_path + "cache {0} preference".format(cache)) - - ssh = False - if c.exists(base_path + "cache {0} ssh".format(cache)): - ssh = True - new_user = c.return_value(base_path + "cache {0} ssh username".format(cache)) - new_pubkey = c.return_value(base_path + "cache {0} ssh public-key-file".format(cache)) - new_privkey = c.return_value(base_path + "cache {0} ssh private-key-file".format(cache)) - new_known_hosts = c.return_value(base_path + "cache {0} ssh known-hosts-file".format(cache)) - - if (not new_user) or (not new_pubkey) or (not new_privkey) or (not new_known_hosts): - print("If SSH is used for RPKI cache, username, public/private keys, and known hosts file must be defined") - sys.exit(1) - - if (not new_addr) or (not new_port): - print("Address and port must be defined for RPKI cache servers") - sys.exit(1) - - if not new_pref: - new_pref = 1 - - if ssh: - subprocess.call(""" vtysh -c 'conf t' -c 'rpki' -c 'rpki cache {0} {1} {2} {3} {4} {5} preference {6}' """.format(new_addr, new_port, new_user, new_privkey, new_pubkey, new_known_hosts, new_pref), shell=True) - else: - subprocess.call(""" vtysh -c 'conf t' -c 'rpki' -c 'rpki cache {0} {1} preference {2}' """.format(new_addr, new_port, new_pref), shell=True) - -def delete_cache(c, cache): - ssh = False - port = c.return_effective_value(base_path + "cache {0} port".format(cache)) - addr = c.return_effective_value(base_path + "cache {0} address".format(cache)) - pref = c.return_effective_value(base_path + "cache {0} preference".format(cache)) - - if not pref: - pref = 1 - - if c.exists_effective(base_path + "cache {0} ssh".format(cache)): - ssh = True - user = c.return_effective_value(base_path + "cache {0} ssh username".format(cache)) - pubkey = c.return_effective_value(base_path + "cache {0} ssh public-key-file".format(cache)) - privkey = c.return_effective_value(base_path + "cache {0} ssh private-key-file".format(cache)) - known_hosts = c.return_effective_value(base_path + "cache {0} ssh known-hosts-file".format(cache)) - - if ssh: - subprocess.call(""" vtysh -c 'conf t' -c 'rpki' -c 'no rpki cache {0} {1} {2} {3} {4} {5} preference {6}' """.format(addr, port, user, privkey, pubkey, known_hosts, pref), shell=True) - - else: - subprocess.call(""" vtysh -c 'conf t' -c 'rpki' -c 'no rpki cache {0} {1} preference {2}' """.format(addr, port, pref), shell=True) - - -config = vyos.config.Config() - -caches = config.list_nodes(base_path + "cache") -orig_caches = config.list_effective_nodes(base_path + "cache") - -# RPKI caches can only be manipulated when RPKI is stopped -print("Stopping RPKI") -subprocess.call(""" vtysh -c 'rpki stop' """, shell=True) - -if not caches: - for cache in orig_caches: - delete_cache(config, cache) -else: - for cache in caches: - if cache in orig_caches: - delete_cache(config, cache) - create_cache(config, cache) - - for cache in orig_caches: - if not cache in caches: - # No longer exists - delete_cache(config, cache) - -if caches: - print("Starting RPKI") - subprocess.call(""" vtysh -c 'rpki start' """, shell=True) - |