Commit Graph
4898 Commits
Author SHA1 Message Date
Mattias Walström eaa737ff94 tests: Adapt to new yangerd 2026-06-19 11:38:09 +02:00
Mattias Walström bfd21c3d5a yangerd: Add support for getting ARP neighbors 2026-06-19 11:38:09 +02:00
Mattias Walström 642e7a6523 test: syslog: property_filter: Adapt to changes required by yangerd
The test got an unexpected input in one of its logs:

'May 22 11:18:32 test-00-03-00 yangerd[3677]: SIGHUP: triggering immediate re-poll'
limit the string grepping for to be more exact.
2026-06-19 11:38:09 +02:00
Mattias Walström b918c32ea2 test: upgrade: Add adaptions needed for yangerd 2026-06-19 11:38:09 +02:00
Mattias Walström fe680190e2 test: upgrade: Add adaptions needed for yangerd
Specially the change:
`
-            oper = target.get_dict("/system-state/software")
+            oper = target.get_dict("/ietf-system:system-state/software")
`
i feel is strange, since only the backend for sysrepo has changed, but the
new syntax is actually correct, unsure why it has worked before.
2026-06-19 11:38:09 +02:00
Mattias Walström 28775bb6f5 statd: Remove old code 2026-06-19 11:38:09 +02:00
Mattias Walström 309aa411ae yanger: Remove code duplication and fix upgrade
Remove a lot of duplication and move to seperate libs in internal/

Also, instead of polling upgrade status using src/rauc-installation-status,
hook into the dbus monitor.
2026-06-19 11:38:09 +02:00
Mattias Walström db5c0862bc yangerd: Add WiFi implementation 2026-06-19 11:38:09 +02:00
Mattias Walström d830e00719 yangerd: Add backoff if ip batch work have crashed 2026-06-19 11:38:09 +02:00
Mattias Walström 0c55bb3ea8 yangerd: Do not start in runlevel S 2026-06-19 11:38:09 +02:00
Mattias Walström 82bc86e10a test: iface_enable_disable: Simplify test 2026-06-19 11:38:09 +02:00
Mattias Walström e95c75d702 test: wireguard_roadwarrior: Adapt to the new polled world in yangerd 2026-06-19 11:38:09 +02:00
Mattias Walström 9d072b60de yangerd: Add wireguard support 2026-06-19 11:38:09 +02:00
Mattias Walström fc2517720b yangerd: fix stp status 2026-06-19 11:38:09 +02:00
Mattias Walström b1b189de4d yangerd: Send sighup to yangerd on config change
This is to force yangerd to repoll polled things
2026-06-19 11:38:09 +02:00
Mattias Walström c3c5ec3bb4 test: usb: adapt to new yangerd 2026-06-19 11:38:09 +02:00
Mattias Walström 937e7caf52 test: containers: host_commands/test.py: Adapt to new yangerd
Slightly slower to detect changes
2026-06-19 11:38:09 +02:00
Mattias Walström ab6de50844 Fix containers, reactive now. 2026-06-19 11:38:09 +02:00
Mattias Walström c046f01ad8 test: case: ntp: Adapt tests for polled yangerd 2026-06-19 11:38:09 +02:00
Mattias Walström 891723f861 test: dhcp: server_subnets: Add longer timeout for polling
This since NTP status is polled in yangerd.
2026-06-19 11:38:09 +02:00
Mattias Walström 44d174f9a7 Fix ntp and dns status 2026-06-19 11:38:09 +02:00
Mattias Walström b41a46a418 FRR does not send delete on OSPF route change
Handle this.
2026-06-19 11:38:09 +02:00
Mattias Walström 1ae74beb62 Fix interface and bridge race conditions 2026-06-19 11:38:09 +02:00
Mattias Walström cc0e695783 zapi: Fix deletion of routes 2026-06-19 11:38:09 +02:00
Mattias Walström 6bd1946fa0 yangerd: Continues 2026-06-19 11:38:09 +02:00
Mattias Walström 8916376cbd Fix routing and ip addresses 2026-06-19 11:38:08 +02:00
Mattias Walström 4aa7de03d0 update doc 2026-06-19 11:38:08 +02:00
Mattias Walström 630898af17 statd: Include new yangerd backend for operational 2026-06-19 11:38:08 +02:00
Mattias Walström 43e0df1320 move yanger 2026-06-19 11:38:08 +02:00
Mattias Walström 21923bdb5e yangerd: Initial 2026-06-19 11:38:08 +02:00
Mattias Walström b491820155 test: firewall: Make tests more robust 2026-06-19 11:38:08 +02:00
Mattias Walström c9835dfc4a test: system: Make tests more robust 2026-06-19 11:38:08 +02:00
Mattias Walström 4df99fcd9f firewall: simplify 2026-06-19 11:38:08 +02:00
Mattias Walström 74d9d2ceb5 TEMP: Update yanger spec 2026-06-19 11:38:08 +02:00
Mattias Walström aac1041228 TEMP: WiP document 2026-06-19 11:38:08 +02:00
Joachim WibergandGitHub 25ff6f54f5 Merge pull request #1541 from kernelkit/web-vendoring
Use kernelkit/goyang instead of patched builtin
2026-06-18 17:05:02 +02:00
Joachim WibergandGitHub e28532d042 Merge pull request #1523 from saba8814/feat/add-scheduler-support
Add support for ietf-schedule
2026-06-18 16:54:52 +02:00
Ejub Sabic 797c5c09f1 fix: remove infix from commands and state files
Signed-off-by: Ejub Sabic <ejub1946@outlook.com>
2026-06-18 13:12:18 +02:00
Ejub Sabic be6d287b19 web: added update notification on web-ui
Signed-off-by: Ejub Sabic <ejub1946@outlook.com>
2026-06-18 10:59:03 +02:00
Ejub Sabic 67ea7a74c1 feat: infix-schedule based on ietf-schedule implementation
Signed-off-by: Ejub Sabic <ejub1946@outlook.com>
2026-06-18 10:22:35 +02:00
Joachim Wiberg a365238854 .github: scan Go modules for known vulnerabilities
Add govulncheck CI and Dependabot for the two Go modules, src/webui
and src/netbrowse, so vendored dependencies don't quietly accumulate
CVEs between manual updates.

The workflow reports every finding in the run summary but only fails
on vulnerabilities our code actually calls in a dependency.  Called
stdlib vulnerabilities are surfaced too, but they're fixed by bumping
the Buildroot host Go rather than a module's go.mod, so they don't
gate the build.

Dependabot ignores openconfig/goyang: it's pinned to our kernelkit
fork via a replace directive and stepped by hand.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-18 09:02:36 +02:00
Joachim Wiberg d02f45d777 webui: depend on kernelkit/goyang fork instead of an in-tree copy
The three YANG 1.1 fixes lived as a frozen, one-shot copy of goyang
v1.6.3 under internal/goyang (via a local `replace`) — invisible to
dependency/CVE tracking and impossible to update.  Move them to the
maintained kernelkit/goyang fork (v1.6.3-kkit branch) and depend on it
through go.mod, pinned by commit hash; drop the in-tree copy.  getopt
falls out of the dependency set since it was only used by goyang's CLI,
not pkg/yang.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 20:50:01 +02:00
Joachim WibergandGitHub 19c820fac2 Merge pull request #1539 from kernelkit/web-test-check
Web test check
2026-06-17 15:33:27 +02:00
Joachim Wiberg a47e141dc4 webui: only flag unsaved changes when running differs from startup
The "unsaved changes" banner was set unconditionally at every site that
touches config, so it could appear when running-config actually equals
startup — contradicting the "Show diff" modal, which correctly showed
nothing.  A shared updateCfgUnsaved helper now compares running against
startup (the same datastore pair the diff uses) and sets or clears the
banner cookie to match:

 - Apply and restore-to-running clear it when an Apply/restore reverts
   an out-of-band (e.g. CLI) change back to match startup, instead of
   always showing it.
 - The advanced-tree presence toggle writes only the candidate
   datastore, so it no longer sets the running-vs-startup banner at all
   (matching the other candidate-only tree handlers).

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 12:48:06 +02:00
Joachim Wiberg 93db076d72 webui: re-read console/netbrowse shortcuts on full page load
These two shortcuts are toggleable in the configuration but were only
detected once at login and baked into the session, so disabling them
didn't drop the topbar icon / user-menu entry until re-login.

Refresh just those two from running-config on full page loads (htmx
swaps and pollers, which never re-draw them, are skipped), so toggling
takes effect on the next reload without logging out.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 11:11:29 +02:00
Joachim Wiberg 322811d712 webui: select password hash, mask inputs, hover help on user forms
Add a Hash dropdown to the add-user and change-password forms — yescrypt
(default), SHA-512, SHA-256, MD5 — passed through to mkpasswd. These are
exactly the four hashes the infix-system:crypt-hash YANG type accepts;
unknown values fall back to the default. Password inputs switch to the
CSS-masked type=text used by keystore secrets, which keeps the browser
password manager from offering to save device credentials. Each add-user
field gets a YANG description as a hover tooltip.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 10:32:46 +02:00
Joachim Wiberg bbc01a5e54 webui: add "Show diff" to the unsaved-config banner
Adds a button next to "Save to startup" that opens a modal showing a
unified diff between startup-config and running-config, so the pending
changes can be reviewed before persisting them.  The handler fetches
both datastores over RESTCONF (same serializer → low-noise diff),
writes them to temp files, and runs busybox `diff -u`.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 10:32:45 +02:00
Joachim Wiberg 584d6c57df webui: make Users summary static, edit shell on expand
Move the per-user shell editor out of the always-visible row into the
expanded detail; the summary now reports the shell as plain text.  This
also fixes the editor showing "bash" for non-bash users: the dropdown
matched the module-prefixed option value against the bare stored shell,
so it never matched and fell back to the first option.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 10:32:44 +02:00
Joachim Wiberg 4d398bbf57 test: skip webui test when not available in build
Add conditional YANG feature 'web-ui' to infix-services.yang, set when
the webui is built.  This feature is what the test now looks for to
determine if it should be skipped or not.

Also, clean up remnant of old test, which was entirely replaced by
Mattias' login/csrf test.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-06-17 10:30:43 +02:00
Joachim WibergandGitHub a7d2e1b806 Merge pull request #1538 from kernelkit/move-mkdocs-action
.github: move setup-mkdocs to kernelkit/actions
2026-06-17 08:57:21 +02:00