Commit Graph
21 Commits
Author SHA1 Message Date
Joachim Wiberg 597207b7dd profeth: drop copy of p-net headers, use library headers instead
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-09 06:58:46 +01:00
Joachim Wiberg 0f38ac54f8 src/profeth: add submodules for all ports, matching the GSD file
These changes allow profeth to pass the Automatic RT Tester's first
behavior tests: Scenario 1-9.

 - Explorative changes to the GSD file to appease the conformance tool
 - Fix mismatch in installed submodules vs advertised ports in GSD file

Note: changes in GSD file only match the amd64 virtual build.  Must be
      updated for the final product.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-09 05:58:09 +01:00
Joachim Wiberg f41846fab4 src/profeth: use RT-Labs VendorID and DeviceID for now
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-06 15:08:20 +01:00
Joachim Wiberg 6c7d945e8b profeth: use /var/run/agentx/master socket instead of default
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-06 10:50:58 +01:00
Joachim Wiberg bb62d58b17 profeth: branding
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-06 10:50:58 +01:00
Joachim Wiberg c0c087e719 src/profeth: fix system IP address/netmask and gateway query
Replace the old p-net API for querying the interface address, netmask
and gateway with the new ones that use getifaddrs() and inspect the
kernel routing table.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-06 10:50:58 +01:00
Joachim Wiberg e3adc8a6e4 src/profeth: add GPLv3 license and basic README
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-06 10:50:58 +01:00
Joachim Wiberg 221cc0b1f6 mech: move Finit service .conf to package and add conditions
The new if: conditions require latest Finit master, unreleased v4.4

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-03-06 10:50:58 +01:00
Tobias WaldekranzandJoachim Wiberg 5a441252f8 profeth: Initial add 2023-03-06 10:50:58 +01:00
Joachim Wiberg 605bd7262b src/factory: use new /mnt/cfg/infix/.reset path
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-02-21 20:02:34 +01:00
Joachim Wiberg 14dea1c6e1 src/mech: allow backend to start restconf in fcgi mode
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-02-15 19:15:22 +01:00
Joachim Wiberg 0162c2382a src/mech: sock and pid files should go in /run
This introduces a dependency on /run/clixon to exist when starting up.
Requires a patch to Finit panding the upcoming tempfiles.so plugin.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-02-15 19:13:08 +01:00
Tobias Waldekranz 00c93cd70c mech: Initial ietf-system support
Only hostname is supported for now.
2023-02-10 16:11:34 +01:00
Tobias Waldekranz 3d35194341 mech: Add infrastructure for backend plugins using Augeas 2023-02-10 16:11:34 +01:00
Tobias Waldekranz 3235f00cd1 mech: Import basic autocli support from clixon's main example
This allows use the autogenerated CLI to modify the database.
2023-02-10 16:11:34 +01:00
Tobias Waldekranz e56348a916 mech: Make startup_db persistent, prepare for factory configs
Keep the transient files in the system's /mnt/tmp, and only persist
startup_db in /cfg.

This design (with a symlink) means that /cfg/startup_db _must_ exist
in order for clixon to start properly. Therefore run
/lib/infix/prep-db to take care of this.

At the moment, this just creates an empty factory config, and copies
it to startup if it doesn't exist. In the future, prep-db could select
a factory config based on some hardware identifier, or even build one
dynamically, based on available ports etc.
2023-02-10 15:51:47 +01:00
Tobias Waldekranz 5a27b30c7c mech: Startup clixon at boot 2023-02-09 10:26:10 +01:00
Joachim Wiberg 7bfb0a9478 Follow-up to 252feef: rename Orc to Mech everywhere
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-02-08 15:12:57 +01:00
Joachim Wiberg f75842ab8b src/mech: update socket group s/clixon/clicon/
Recommended group according to Clixon FAQ

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-02-08 14:55:03 +01:00
Tobias Waldekranz 252feef1c4 mech: Initial add
The mechanic, Infix's integration layer to Clixon
2023-02-08 14:05:47 +01:00
Joachim Wiberg bc21f93ec2 Add support for returning a device to factory defaults
This change adds a `factory` tool, and login shell, that schedules a
reset of all writable (overlay) filesystems.  The tool is set up with
the suid gid flag to allow all members of the wheel group to perform
the reset.

The login method only allows reset from /dev/console, to prevent any
malicious reset over SSH.  This should be further constrained later
when PAM is introduced.

To initiate factory reset from the login prompt, use login/pass:

    factory/reset

To initiate factory reset from the shell, call

    factory

Both methods are interactive by default, but two command line options
can be used to modify the behavior:

  -r  Skip reboot, and "reboot now?" question
  -y  Assume yes to all questions, for non-interactive use

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-01-04 15:24:36 +01:00