summaryrefslogtreecommitdiff
path: root/src/helpers
AgeCommit message (Collapse)Author
11 daysT8344: Preserve symlinks when copying config to/from TPM encrypted volumeNataliia Solomko
shutil.copytree() defaults to symlinks=False, so it recurses into symlinked directories and recreates them as real directories instead of preserving the symlink. cloud-init creates /opt/vyatta/etc/config/cloud/instance as a symlink to instances/i-<id>. Enabling/disabling config encryption copied this tree with copytree() and silently turned that symlink into a real directory, causing cloud-init to fail on later runs with: IsADirectoryError: [Errno 21] Is a directory: '.../cloud/instance' Pass symlinks=True to preserve symlinks during the copy.
2026-06-29ci: T8490: fix typos in comments, strings, and local identifiersYuriy Andamasov
Reaches a clean typos baseline for the T8490 ruleset pilot. Categories: - Comments/docs: recursivly, taret, passsed, characted, arhive, AtrributeError; "ned" -> "new" (migration comments). - Messages/strings: writeable -> writable (x5); OCaml log "Commandis" -> "Command is". - Local variables (all refs in-function): commited, formating, presistent; inpt_range -> input_range; tz_datas -> tz_data_raw (avoids the tz_data collision). - Self-contained renames (definition + all references in-file): formated_stats, _get_formatted_output_conections -> ..._connections, expension_failure -> expansion_failure (ping + traceroute), snmpd_restart_reqired -> ..._required. False positives are allowlisted centrally (vyos/.github, separate PR), NOT changed here: mke2fs, Maya-calendar "Mak", RFC 4122 "IDentifier" (hostapd), and VPP's "U-Forwrd" bridge-domain column header (op_mode/vpp.py + the VPP smoketest assert the real upstream `vppctl` output). Verified: typos clean, py_compile of every edited .py, zero remaining old-identifier references. 🤖 Generated by [robots](https://vyos.io)
2026-06-25geoip: T8987: Support updates via source-address/vrfsarthurdev
2026-05-28T8502: add client support for config-sync excluded pathsJohn Estabrook
2026-05-12wan: T8480: make only-default-route opt-indoctorpangloss
2026-05-12wan: T8480: add suppress_prefixlength ip rules for internal routingdoctorpangloss
WLB per-interface routing tables only contain a default route. When LAN traffic is fwmarked by WLB nftables rules, ip rule policy routes it to these tables where internal destinations (BGP, connected, DNAT) have no matching route and incorrectly exit via WAN. Add ip rule with table main suppress_prefixlength 0 before each per-interface table rule. This checks the main routing table first for specific routes but suppresses the default route, so only internet-bound traffic falls through to WLB per-interface tables. Signed-off-by: doctorpangloss <2229300+doctorpangloss@users.noreply.github.com>
2026-05-12wan: T8481: scope flush-connections to WLB connection marks (#5163)Simon
* wan: T8481: scope flush-connections to WLB connection marks flush-connections runs conntrack --delete which destroys all conntrack entries system-wide, including unrelated NAT translations and established connections that have nothing to do with WLB. WLB tags every connection it manages with a conntrack mark via the wlb_mangle_isp_<ifname> chain (ct mark set 0xc9, 0xca, etc.). Scope the flush to these marks so only WLB-managed connections are affected. Signed-off-by: doctorpangloss <2229300+doctorpangloss@users.noreply.github.com> * wan: T8481: replace conntrack deletion from state changed block --------- Signed-off-by: doctorpangloss <2229300+doctorpangloss@users.noreply.github.com> Co-authored-by: doctorpangloss <2229300+doctorpangloss@users.noreply.github.com>
2026-04-26utils: T8541: add write-config-file-value helperChristian Breunig
Introduce src/helpers/write-config-file-value.py to patch a saved config.boot from scripts by writing a quoted CLI path with an optional value (omit --value to create a valueless node). Extend vyos.utils.config.write_saved_value() to safely update saved configs: create missing parent nodes before tagging (ConfigTree.set_tag requires nodes to exist) and then write the requested value/valueless leaf back to disk. Remove the legacy serial console activation script which is now replaced by the helper-based approach. The helper is run once during ISO Image assembly and will inject the approprate serial console defintiions into config.boot.default.
2026-04-15T8445: add revised boot activation script runnerJohn Estabrook
2026-03-24T8410: Fix typos and mistakes for operational and configuration commandsViacheslav Hletenko
Fix typos and mistakes in the commands and comments No functional changes
2026-03-13geoip: T6768: Add system name-server checksarthurdev
2026-02-05Merge pull request #4949 from sarthurdev/geoip_refactorDaniil Baturin
geoip: T7926: T8049: Refactor geoip code and add MaxMind support
2026-01-28http-api: T7090: Implement background configure operations for REST APIOleksandr Kuchmystyi
Large config commits (`service config-sync`) can block the REST API request path and sometimes must be deferred (e.g., when changing `service https`). This commit introduces an in-memory background operation manager that queues (FIFO) full configure operations (commands + commit/commit-confirm) as single jobs, tracks status/result, and exposes active operations via `/retrieve/background-operations`.
2026-01-21geoip: T8049: Add MaxMind database supportsarthurdev
2026-01-21geoip: T7926: Refactor geoip handlingsarthurdev
* Move core logic to separate vyos.geoip module * Use a sqlite database for storing and querying address ranges by country * Remove downloaded geoip ranges once loaded into sqlite db * No longer rebuild geoip sets on each commit unless necessary * Allows for extensibility using other geoip data vendors
2026-01-06Merge pull request #4935 from giga1699/T8146Daniil Baturin
T8146: Confirm the key when config encryption is configured without TPM
2026-01-03T8146: Encryption without TPM confirm keyGiga Murphy
2026-01-03T8145: LUKS Encryption Passphrase ObservableGiga Murphy
2025-12-23vpp: T8080: Fix handling of configuration system lock after vpp commit failureNataliia Solomko
2025-11-05T7910: add keyword extant, for use by teardown scriptJohn Estabrook
The standalone script teardown-config-session.py is called on CLI config-mode exit, to close the persistent vyconf config session. Instead of injecting the config-mode env var into the external script to indicate a non-ephemeral session, add keyword 'extant' to find existing session.
2025-11-03Merge pull request #4818 from l0crian1/wlb-defaultsViacheslav Hletenko
wlb: T7966: Restore default route when interface disconnects/reconnects
2025-10-30wlb: TT7966: Refactor dynamic nexthop resolutionl0crian1
2025-10-29pki: T7953: systemd certbot.service must not use PrivateTmpChristian Breunig
PrivateTmp needs to be disabled, otherwise we can not load the current VyOS configuration to reconfigure the service automatically when certbot runs.
2025-10-29wlb: T7966: Restore default route when interface disconnects/reconnectsl0crian1
2025-10-21T5811: Make static dhcp-interface routes robustKyrylo Yatsenko
Solves the problem that vyos-configs in FRRender caches configuation and DHCP changes are ignored. * Add src/helpers/vyos-request-configd-update.py that requests vyos-configd to update FRR configuration. * Make dhclient hooks use it instead of calling protocols_static.py * Make FRRender cache not only configuration but also DHCP gateways so that is any of them changes, FRR configuration is updated
2025-10-14T5942: Make failover support dhcp-interfaceKyrylo Yatsenko
* Refactor XML a little: move common dhcp-interface properties to separate include file * Add failover support for dhcp-interface * Add test for DHCP in failover protocol
2025-10-08T7803: Make failover route vrf-awareKyrylo Yatsenko
* Added 'protocol failover' to 'set vrf name': set vrf name red protocols failover route 10.11.0.110/32 next-hop 10.0.0.2 * Added vrf and interface to target: set ... next-hop 10.0.0.2 check target '10.120.0.21' vrf blue set ... next-hop 10.0.0.2 check target '10.120.0.21' interface eth1 Last two are needed when check VRF is not same as route VRF. In this case icmp can use any/both options, tcp requires `vrf` and arp requires `interface`
2025-09-30boot-config-loader: T7889: Inform user during login of config-load issuesChristian Breunig
As T7885 turns out to be a config load related bug the user will only be informed when entering conf mode that something is off. vyos@vyos:~$ configure WARNING: There was a config error on boot: saving the configuration now could overwrite data. You may want to check and reload the boot config More information is displayed on tty0 of the router - but not everyone has access to tty0. This change is about copying the message displayed on tty0 to the MOTD system.
2025-09-25Merge pull request #4753 from jestabro/config-save-sync-atomicDaniil Baturin
T7709: Add file sync and atomic write to config save script
2025-09-24T7709: use write_file_sync/atomic in vyos-save-config.py scriptJohn Estabrook
Config save is provided by the helper script in both CLI and configsession (hence also in the http api). Use utilities write_file_sync and write_file_atomic, in accordance with permissions and location: If the target is in /opt/vyatta/etc/config or /config, use write_file_sync; if, moreover, the caller has permissions, use write_file_atomic. Otherwise, fall back to util write_file.
2025-09-23tpm: T7726: Test TPM key or prompt recovery keysarthurdev
2025-09-23tpm: T7726: Prompt before overwriting existing TPM keysarthurdev
2025-09-23tpm: T7726: Prompt user before clearing TPM keysarthurdev
2025-09-23tpm: T4919: Use vyos module function for running image, single-line importssarthurdev
2025-09-23tpm: T7735: Only require key/recovery if unmappedsarthurdev
2025-09-23tpm: T7713: Restore original config mounts when decryptingsarthurdev
2025-09-23tpm: T7717: Preserve group on config and archivessarthurdev
2025-09-23tpm: T7720: Handle encrypt failure and gracefully abortsarthurdev
2025-09-23tpm: T7727: Prompt to overwrite an existing backupsarthurdev
Move encrypted volume check before key input Unmount any conflicting config bind mounts
2025-09-19T7836: use /opt/vyatta/etc/config as source of truth in tpm encryptionJohn Estabrook
The mount point /opt/vyatta/etc/config is considered the source of truth whereas /config is simply a bind mount of convenience. As the latter is no longer defined at boot, all operations should use the former.
2025-09-18Merge pull request #4708 from sarthurdev/T114Daniil Baturin
wlb: T114: Add firewall group support for WAN load balancer
2025-09-13Debian: T7817: vyos_net_name exists in debian/tmp but is not installed to ↵Christian Breunig
anywhere Fix this build warning by placing the vyos_net_name script in it's own udev folder to not accidently be copied to a wrong location.
2025-09-10wlb: T114: Add firewall group support for WAN load balancersarthurdev
2025-08-27T7759: Revert "T7709: add atomic write for config file save"John Estabrook
The utility write_file_atomic does not correctly update the file in the bind mount directory /config. Revert for investigation. This reverts commit c140f827f3117609908a3a18034027d3d78149ac.
2025-08-19Merge pull request #4660 from jestabro/validate-treeJohn Estabrook
T7718: expose validate_tree* methods and add validate-config script
2025-08-18T7718: add validate-config scriptJohn Estabrook
2025-08-12T7709: add atomic write for config file saveJohn Estabrook
2025-08-04T7688: make exit error and output of wrapper script handle all casesJohn Estabrook
2025-07-31Merge pull request #4630 from jestabro/fix-vpp-failure-handlerDaniil Baturin
T7651: VPP use pid not ppid as default in vpp-failure-handler.service script
2025-07-29T7651: use pid not ppid if not specifiedJohn Estabrook
The reset_section.py script is used in a limited case for both (1) recovery from an apply error in a config mode script and (2) recovery by a service crash in a failure handler service. In the latter case, the default pid must be os.getpid, not os.getppid, so as not to be called by pid 1.