From 575f265daf973428ed1b910f91fb124615fbebd4 Mon Sep 17 00:00:00 2001 From: Nataliia Solomko Date: Fri, 25 Sep 2026 16:51:50 +0300 Subject: config-management: T6304: Rewrite commit-archive location into a structured CLI Replace the free-form 'commit-archive location ' leafNode with a structured, per-destination tagNode: `set system config-management commit-archive location \ authentication { username | password } | server | port | path` Each location selects exactly one transport protocol (scp, sftp, ssh, ftp, ftps, http, https, git, tftp). 'git' additionally accepts a 'transport' (https/http/ssh, default https). 'source-address' and 'vrf' stay under 'commit-archive' and apply to every location, as before. --- .../include/config-management/remote-auth.xml.i | 12 ++ .../include/config-management/remote.xml.i | 34 +++++ .../version/config-management-version.xml.i | 2 +- .../system_config-management.xml.in | 138 ++++++++++++++++----- 4 files changed, 152 insertions(+), 34 deletions(-) create mode 100644 interface-definitions/include/config-management/remote-auth.xml.i create mode 100644 interface-definitions/include/config-management/remote.xml.i (limited to 'interface-definitions') diff --git a/interface-definitions/include/config-management/remote-auth.xml.i b/interface-definitions/include/config-management/remote-auth.xml.i new file mode 100644 index 000000000..c7b4bd81c --- /dev/null +++ b/interface-definitions/include/config-management/remote-auth.xml.i @@ -0,0 +1,12 @@ + + + + Authentication settings for remote server + + + #include + #include + + +#include + diff --git a/interface-definitions/include/config-management/remote.xml.i b/interface-definitions/include/config-management/remote.xml.i new file mode 100644 index 000000000..9f85ec9e1 --- /dev/null +++ b/interface-definitions/include/config-management/remote.xml.i @@ -0,0 +1,34 @@ + + + + Remote server to connect to + + ipv4 + Server IPv4 address + + + ipv6 + Server IPv6 address + + + hostname + Server hostname/FQDN + + + + + + Server must be an IPv4/IPv6 address or a hostname + + +#include + + + Remote path used to store the archived configuration + + txt + Remote path + + + + diff --git a/interface-definitions/include/version/config-management-version.xml.i b/interface-definitions/include/version/config-management-version.xml.i index 695ba09ab..d5664790c 100644 --- a/interface-definitions/include/version/config-management-version.xml.i +++ b/interface-definitions/include/version/config-management-version.xml.i @@ -1,3 +1,3 @@ - + diff --git a/interface-definitions/system_config-management.xml.in b/interface-definitions/system_config-management.xml.in index 319611266..bbbcd9c6a 100644 --- a/interface-definitions/system_config-management.xml.in +++ b/interface-definitions/system_config-management.xml.in @@ -13,44 +13,116 @@ Commit archive settings - + Commit archive location - http://<user>:<passwd>@<host>/<path> - + txt + Name of the commit archive location - - https://<user>:<passwd>@<host>/<path> - - - - ftp://<user>:<passwd>@<host>/<path> - - - - sftp://<user>:<passwd>@<host>/<path> - - - - scp://<user>:<passwd>@<host>/<path> - - - - tftp://<host>/<path> - - - - git+https://<user>:<passwd>@<host>/<path> - - - - - (ssh|git|git\+(\w+)):\/\/.* - - - + + + + Archive configuration using SCP + + + #include + + + + + Archive configuration using SFTP + + + #include + + + + + Archive configuration using SSH + + + #include + + + + + Archive configuration using FTP + + + #include + + + + + Archive configuration using FTP over TLS + + + #include + + + + + Archive configuration using HTTP + + + #include + + + + + Archive configuration using HTTPS + + + #include + + + + + Archive configuration using git + + + + + Transport used to reach the git remote + + https http ssh file + + + https + Push over HTTPS + + + http + Push over plain HTTP + + + ssh + Push over SSH + + + file + Push to a local repository (set path, no server) + + + (https|http|ssh|file) + + + + #include + + + + + Archive configuration using TFTP + + + #include + + + + #include #include -- cgit v1.2.3