0c0b58820c
f-46: dhcpapi: add the control socket, its protocol and its client #46
...
Le contrat et le listener vont dans internal/api/dhcp (package dhcpapi), sur la
forme de internal/api/agent, et le client dans internal/client/dhcp. Chaînage
des imports : statefile <- dhcpd <- dhcpapi <- dhcpclient, sans cycle.
dhcpd parle net.IP et net.IPNet et garde ses structs disque privées ; dhcpapi
parle chaînes JSON et convertit à la frontière. Un même type portait jusqu'ici
le format du fil, la signature du Store et le format du .state — ce qui couplait
le fichier au protocole alors que le ticket le décrit comme un détail interne.
Le digest est calculé sur une forme canonique partagée par les deux côtés : MAC,
IP et CIDR normalisés, hôtes triés, doublon de MAC refusé. Un écart de digest
signale donc une vraie divergence, pas une différence d'écriture.
Le listener pose un recover par connexion, plafonne les lignes à 64 Kio, refuse
une ligne malformée sans fermer la connexion, écoute en 0600 et supprime une
socket résiduelle avant le bind. Le client pose une deadline.
101 tests au total, -race propre, treize mutations toutes détectées.
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-09-05 23:17:59 +02:00
0237acba81
f-33: net: add multi net in dispatch et vms #33
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-25 22:48:13 +02:00
46596f8142
f-34: route: add default gateway full gestion
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-25 20:18:09 +02:00
e2fbb5fb7a
f-34: metadata: update api #34
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-24 22:27:36 +02:00
cdbb5012b1
f-29: stop: add a proper stop
...
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 4s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 4s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / checksums (push) Successful in 4s
Release Pipeline / set-release-target (push) Successful in 2s
Release Pipeline / upload-assets (agent.service, systemd/agent.service) (push) Successful in 4s
Release Pipeline / upload-assets (dnsmasq@.service, systemd/dnsmasq@.service) (push) Successful in 4s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m30s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-18 00:41:01 +02:00
2150530ef2
f-37: periph: add final touch #37
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m35s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 7s
Pre Release Workflow / prerelease (push) Successful in 10s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:55:53 +02:00
aa6611249b
f-37: test: add test for state validation
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:39:00 +02:00
9111045417
f-32: test: add test for vms
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 3m33s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m31s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 10s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 16:18:53 +02:00
89899005d9
f-32: disk: add disk in qemu start
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 15:56:45 +02:00
85c8c4e590
f-32: disk: add boot multidisk handle
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-24 15:44:48 +02:00
325f1acff5
f-28: api: add uefi params
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-23 22:26:21 +02:00
b41b4f2518
f-28: generate metadata_port automatically at vm creation
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:28:18 +02:00
bb5698fdda
f-28: add subnet default_route field
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:41 +02:00
76a840b80a
f-28: add vpc cidr field
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 23:06:36 +02:00
848f965883
f-28: fix: renomage api param
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 21:58:33 +02:00
9492de7a2b
f-28: test: add tests
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 21:50:29 +02:00
9a16cf011a
f-28: api: implement new model usage
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 20:15:16 +02:00
cef465da2e
f-28: api: update api comportement and model
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-05-18 20:11:33 +02:00
593bd42e6a
f-25: api: add a new api for vms
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-26 20:50:21 +02:00
e939467abf
f-21: api coherence
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-26 16:14:18 +02:00
9950e0e24a
f-21: test: add test for agent api
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-26 15:32:46 +02:00
6b104c4784
f-21: debug: use err correct returne for kv db
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-26 14:52:14 +02:00
921a5ca96e
f-21: log: add full log info
...
Pre Release Workflow / set-release-target (push) Successful in 1s
Pre Release Workflow / build (agent, amd64, linux) (push) Successful in 1m33s
Pre Release Workflow / build (db, amd64, linux) (push) Successful in 1m30s
Pre Release Workflow / build (metadata, amd64, linux) (push) Successful in 1m32s
Pre Release Workflow / upload-scripts (run-dnsmasq-in-netns.sh) (push) Successful in 6s
Pre Release Workflow / prerelease (push) Successful in 12s
Pre Release Workflow / build (metacli, amd64, linux) (push) Successful in 1m31s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-24 00:40:32 +02:00
1d86c45ba4
f-21: dispatch: add a prepare step to dispatch
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-23 23:11:10 +02:00
19434b1848
f-21: refacto: move dispatcher to agent specific files
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-23 22:50:12 +02:00
0c2dbdb525
f-21: api: make subnet get
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-23 22:30:04 +02:00
77cf180b10
f-21: api: make vpc get
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-23 22:29:43 +02:00
9ec6e64327
f-21: code: change from ip to interface type
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:35 +02:00
63a288f69e
f-21: refactor: add dispatcher layer for MQTT migration
...
Introduce internal/dispatcher package with a Command interface and typed
commands (CreateVPC, DeleteVPC, CreateSubnet, DeleteSubnet). The API
handlers now call dispatcher.Dispatch() instead of enqueuing closures
directly, decoupling transport (HTTP today, MQTT tomorrow) from execution.
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:33 +02:00
49aa9a7ab6
f-21: code: add vpc gestion in api
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:33 +02:00
59e83da1d6
f-21: code: add database in api
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:32 +02:00
327a359007
f-21: code: separate and create route fonction
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:32 +02:00
2fbde24e89
f-21: code: ajout d'un system de worker
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:31 +02:00
bcedeece18
f-21: add first api file
...
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-21 23:36:29 +02:00