summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-12-12 16:12:43 +0100
committerChristian Breunig <christian@breunig.cc>2024-12-16 22:24:50 +0100
commita8da54f50df5d60b18a8cdf0ea63c71f82faf14e (patch)
tree145b62b0c6836ac67cb20325a9b099056d6ae90c
parent76b74d62b607961f08bd0284a9dbc5427ba48e1d (diff)
downloadvyos-1x-a8da54f50df5d60b18a8cdf0ea63c71f82faf14e.tar.gz
vyos-1x-a8da54f50df5d60b18a8cdf0ea63c71f82faf14e.zip
rpki: T6746: FRRender needs to calculate SSH key path
-rw-r--r--python/vyos/configdict.py5
-rwxr-xr-xsrc/conf_mode/protocols_rpki.py5
2 files changed, 8 insertions, 2 deletions
diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py
index fb6365060..cbcbf9f72 100644
--- a/python/vyos/configdict.py
+++ b/python/vyos/configdict.py
@@ -944,6 +944,11 @@ def get_frrender_dict(conf, argv=None) -> dict:
rpki = conf.get_config_dict(rpki_cli_path, key_mangling=('-', '_'),
get_first_key=True, with_pki=True,
with_recursive_defaults=True)
+ rpki_ssh_key_base = '/run/frr/id_rpki'
+ for cache, cache_config in rpki.get('cache',{}).items():
+ if 'ssh' in cache_config:
+ cache_config['ssh']['public_key_file'] = f'{rpki_ssh_key_base}_{cache}.pub'
+ cache_config['ssh']['private_key_file'] = f'{rpki_ssh_key_base}_{cache}'
dict.update({'rpki' : rpki})
elif conf.exists_effective(rpki_cli_path):
dict.update({'rpki' : {'deleted' : ''}})
diff --git a/src/conf_mode/protocols_rpki.py b/src/conf_mode/protocols_rpki.py
index d3f515feb..4aefbe36c 100755
--- a/src/conf_mode/protocols_rpki.py
+++ b/src/conf_mode/protocols_rpki.py
@@ -26,6 +26,7 @@ from vyos.frrender import FRRender
from vyos.pki import wrap_openssh_public_key
from vyos.pki import wrap_openssh_private_key
from vyos.utils.dict import dict_search_args
+from vyos.utils.process import is_systemd_service_running
from vyos.utils.file import write_file
from vyos import ConfigError
from vyos import airbag
@@ -94,12 +95,12 @@ def generate(config_dict):
write_file(cache_config['ssh']['public_key_file'], wrap_openssh_public_key(public_key_data, public_key_type))
write_file(cache_config['ssh']['private_key_file'], wrap_openssh_private_key(private_key_data))
- if config_dict and 'frrender_cls' not in config_dict:
+ if config_dict and not is_systemd_service_running('vyos-configd.service'):
FRRender().generate(config_dict)
return None
def apply(config_dict):
- if config_dict and 'frrender_cls' not in config_dict:
+ if config_dict and not is_systemd_service_running('vyos-configd.service'):
FRRender().apply()
return None