summaryrefslogtreecommitdiff
path: root/src/services/vyos-configd
AgeCommit message (Collapse)Author
2025-01-31configd: T7119: fix misleading debug messagesJohn Estabrook
An artifact of T6899 included a report of 'error_code 1' on success: for consistency with shim error codes 1 == SUCCESS, however, the debug message is misleading and is here corrected.
2025-01-31configd: T7119: normalize formattingJohn Estabrook
2025-01-06configd: T6747: use one long-lived instance of FRRender (#4274)Christian Breunig
* smoketest: T6747: call wait after commit() only for FRR related tests Commit 702a60a8de28 ("smoketest: T6746: wait after commit() until frr-reload is no longer running") added a guard timeout for every commit executed via CLI smoketests. This commit changes the bahavior to only add the guard timeout for FRR related testscases. This improves the overall smoketest time. * configd: T6747: use one long-lived instance of FRRender Previously there was one FRRender() instance per config session. This resulted in re-rendering the FRR configuration every time a new config session was created. Example: vyos@vyos:~$ configure vyos@vyos# set interfaces dummy dum0 description foo vyos@vyos# commit vyos@vyos# exit vyos@vyos:~$ configure vyos@vyos# set interfaces dummy dum0 description bar vyos@vyos# commit vyos@vyos# exit In the past this caused a re-render of the FRR configuration as the delta check added in commit ec80c75d6776 ("frrender: T6746: only re-render FRR config if config_dict did change") evaluated to false, as it operated on a new instance of the FRRender class. With this change there is no FRR re-render, as there is nothing to update in FRR.
2024-12-30frr: T6746: additional improvements after 10.2 upgrade (#4259)Christian Breunig
* smoketest: T6746: add substring search in getFRRconfig() Some daemons (e.g. bgpd) have several nested substrings/sections like router bgp 100 address-family ipv4 unicast .. exit-address-family exit We can now use getFRRconfig() with the substring option to extract only address-family ipv4 unicast .. exit-address-family Making config validation more granular * frrender: T6746: only re-render FRR config if config_dict did change * frrender: T6746: fix naming glitch isis/eigrp * frrender: T6746: add --stdout option when running with debug flags * smoketest: T6746: remove unneeded commit_guard time It was an invalid workarround as the underlaying issue seems to be a race condition in CStore. The commit process is not finished until all pending files from VYATTA_CHANGES_ONLY_DIR are copied to VYATTA_ACTIVE_CONFIGURATION_DIR. This is done inside libvyatta-cfg1 and the FUSE UnionFS part. On large non-interactive commits FUSE UnionFS might not replicate the real state in time, leading to errors when querying the working and effective configuration. TO BE DELETED AFTER SWITCH TO IN MEMORY CONFIG
2024-12-18frrender: T6746: move get_frrender_dict from vyos.configdict to this moduleChristian Breunig
Keep all FRRender stuff in one place.
2024-12-18vyos-configd: T6746: render resulting FRR configuration only onceChristian Breunig
Previously the FRR configuration was rendered via Jinja2 on every call to get_frrendet_dict() - but it was used/applied only once. We save the CPU cycles and render the FRR configuration only once prior to applying it in FRR.
2024-12-16configd: T6746: handle FRR config reload as last step in commitChristian Breunig
2024-12-16frr: T6746: integrate FRRender class into vyos-configdChristian Breunig
When running under vyos-configd only a single apply() is done as last step in the commit algorithm. FRRender class address is provided via an attribute from vyos-configd process.
2024-11-19configd: T6899: use multipart message instead of extra exchangeJohn Estabrook
2024-09-22configd: T6608: report uncaught config script exceptions as commit errorJohn Estabrook
In the case of config mode script exceptions other than ConfigError, vyos-configd would previously trigger the shim to re-run the script in the CLI context. The use of config dependencies require this case to return a commit error. A traceback is returned as output, consistent with running without vyos-configd support.
2024-09-20http-api: T6326: return full warning/error output through apiJohn Estabrook
Configuration error output is not returned in full to the http-api when running under vyos-configd, due to an early implementation 'workaround' of vyos-configd writing directly to the session tty. This is corrected to return all ambient stdout (notably vyos.base.Warning) and error messages directly to the originating caller, which may be from a session tty or a ConfigSession instance. As the http-api runs in the latter case, the full output is returned.
2024-08-25configd: T6671: track scripts proposed and scripts calledJohn Estabrook
2024-08-12configd: T6633: inject missing env vars for configfs utilityJohn Estabrook
2024-08-07configd: T6640: enforce in_session returns False under configdJohn Estabrook
The CStore in_session check is a false positive outside of a config session if a specific environment variable is set with an existing referent in unionfs. To allow extensions when running under configd and avoid confusion, enforce in_session returns False.
2024-07-25T6605: restore configd error formatting to be consistent with CLI (#3868)John Estabrook
2024-07-14configdep: T6559: use single dependency list with reset under configdJohn Estabrook
2024-07-14configdep: T6559: drop global redundancy removal to fix error reportingJohn Estabrook
2024-06-21configd: T6504: send sudo_user on session init and set env variableJohn Estabrook
The environment variable SUDO_USER is checked by system_login.py so as to prevent deleting the current user. Provide from config session and set within configd environment.
2024-04-28configdep: T6276: do not call dependencies on script errorJohn Estabrook
2024-02-28configdep: T5660: remove global redundancies under vyos-configdJohn Estabrook
2023-07-12T5195: move boot_* helpers to vyos.utils.bootChristian Breunig
2021-12-11vyos.util: T4061: fix typo in function nameJohn Estabrook
2021-12-08vyos.util: T4061: add function to check for completion of boot configJohn Estabrook
2021-07-29configd: T3694: always set script.argvBrandon Stepler
Several scripts imported by vyos-configd (including src/conf_mode/protocols_static.py) rely on argv for operating on VRFs. Always setting script.argv in src/services/vyos-configd ensures those scripts will operate on the default VRF when called with no arguments. Otherwise, a stale argv might cause those scripts to operate on the last modified VRF instead of the default VRF.
2021-03-25configd: T3426: add support for script arguments to vyos-configdJohn Estabrook
2021-03-23configd: T3426: check script name against include_set, not exclude_setJohn Estabrook
If the script name is mangled, for any reason (e.g. missing support for script arguments) checking against the exclude_set will yield a false positive; check against the include_set, even if this is a longer search.
2021-03-22configd: T3302: check vyos-config-status to determine if in boot sessionJohn Estabrook
2021-03-16configd: T3411: revise redirect to capture stdout from subprocessesJohn Estabrook
2021-03-16configd: T3411: revert to using explicit_print on ConfigErrorJohn Estabrook
2021-02-25configd: T3302: set mode correctly on open for redirectJohn Estabrook
2021-02-23configd: T3302: redirect script stdout/err to file on bootJohn Estabrook
2021-02-17configd: T3302: redirect stdout/stderr from scripts to consoleJohn Estabrook
2020-10-08configd: T2931: workaround for suspected zmq bugJohn Estabrook
2020-10-02configd: T2952: synchronize received messages in case of client timeoutJohn Estabrook
2020-10-02configd: T2582: catch config initialization errorsJohn Estabrook
2020-10-02configd: T2582: remove unused variablesJohn Estabrook
2020-09-16configd: T2885: fix output of error string to config sessionJohn Estabrook
2020-09-15configd: T2885: print commit errors to config session terminalJohn Estabrook
2020-08-31configd: T2582: add config daemon and supporting filesJohn Estabrook