1
0
Fork 0

refactor: move http api to a new transport layer

This commit is contained in:
Arthur K. 2026-01-23 09:56:01 +03:00
parent 476c4b056f
commit 0448f66ab2
Signed by: wzray
GPG key ID: B97F30FDC4636357
41 changed files with 822 additions and 390 deletions

View file

@ -10,6 +10,7 @@ import (
"strings"
"syscall"
"git.wzray.com/homelab/hivemind/internal/app"
"git.wzray.com/homelab/hivemind/internal/config"
"git.wzray.com/homelab/hivemind/internal/registry"
"git.wzray.com/homelab/hivemind/internal/roles"
@ -17,11 +18,14 @@ import (
"git.wzray.com/homelab/hivemind/internal/roles/host"
"git.wzray.com/homelab/hivemind/internal/roles/master"
"git.wzray.com/homelab/hivemind/internal/roles/node"
"git.wzray.com/homelab/hivemind/internal/state"
dns_transport "git.wzray.com/homelab/hivemind/internal/transport/dns"
host_transport "git.wzray.com/homelab/hivemind/internal/transport/host"
master_transport "git.wzray.com/homelab/hivemind/internal/transport/master"
node_transport "git.wzray.com/homelab/hivemind/internal/transport/node"
"git.wzray.com/homelab/hivemind/internal/types"
"git.wzray.com/homelab/hivemind/internal/web/client"
"git.wzray.com/homelab/hivemind/internal/web/middleware"
"git.wzray.com/homelab/hivemind/internal/web/server"
web_client "git.wzray.com/homelab/hivemind/internal/web/client"
web_middleware "git.wzray.com/homelab/hivemind/internal/web/middleware"
web_server "git.wzray.com/homelab/hivemind/internal/web/server"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"github.com/rs/zerolog/pkgerrors"
@ -87,17 +91,22 @@ func main() {
filestore.EnsureExists()
registry := registry.New(filestore, self)
state := state.New(registry, self)
nodeRole := node.New(state, configuration.Node)
var builder middleware.MiddlewareBuilder
var builder web_middleware.MiddlewareBuilder
middlewares := builder.Prepare()
client.Init(middlewares)
client := web_client.New(middlewares)
listenAddr := fmt.Sprintf("%v:%v", configuration.Node.ListenOn, configuration.Node.Port)
server := server.NewServer(listenAddr, middlewares)
server := web_server.New(listenAddr, middlewares)
state := app.NewState(registry, self, app.Clients{
Master: master_transport.New(client),
DNS: dns_transport.New(client),
Host: host_transport.New(client),
Node: node_transport.New(client),
})
nodeRole := node.New(state, configuration.Node)
roles := make([]roles.Role, 0)
roles = append(roles, nodeRole)