feat: share proxmox cluster client with worker
This commit is contained in:
@@ -11,7 +11,9 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"forgejo.digital-droplets.de/philschlo/proxui/platform/cluster"
|
||||
"forgejo.digital-droplets.de/philschlo/proxui/platform/config"
|
||||
"forgejo.digital-droplets.de/philschlo/proxui/platform/encryption"
|
||||
"forgejo.digital-droplets.de/philschlo/proxui/platform/logging"
|
||||
"github.com/hibiken/asynq"
|
||||
_ "github.com/jackc/pgx/v5/stdlib"
|
||||
@@ -28,6 +30,12 @@ func main() {
|
||||
}
|
||||
|
||||
logger := logging.New("worker", cfg.AppEnv, cfg.LogLevel)
|
||||
tokenCipher, err := encryption.NewFromBase64(cfg.MasterKeyBase64)
|
||||
if err != nil {
|
||||
logger.Error("failed to initialize cluster token encryption", "error", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
db, err := openDatabase(cfg.DatabaseURL)
|
||||
if err != nil {
|
||||
logger.Error("failed to connect database", "error", err)
|
||||
@@ -43,7 +51,8 @@ func main() {
|
||||
Concurrency: cfg.WorkerConcurrency,
|
||||
})
|
||||
mux := asynq.NewServeMux()
|
||||
registerHandlers(mux, db, logger)
|
||||
clusterRepository := cluster.NewRepository(db, tokenCipher)
|
||||
registerHandlers(mux, db, clusterRepository, logger)
|
||||
|
||||
go func() {
|
||||
logger.Info("worker started", "concurrency", cfg.WorkerConcurrency, "redis_addr", cfg.RedisAddr)
|
||||
@@ -58,12 +67,12 @@ func main() {
|
||||
logger.Info("worker stopped")
|
||||
}
|
||||
|
||||
func registerHandlers(mux *asynq.ServeMux, db *sql.DB, logger *slog.Logger) {
|
||||
func registerHandlers(mux *asynq.ServeMux, db *sql.DB, clusters cluster.Repository, logger *slog.Logger) {
|
||||
mux.Handle(tasks.TypeDummy, tasks.NewDummyHandler(logger))
|
||||
mux.Handle(
|
||||
tasks.TypeProxmoxTaskPoll,
|
||||
tasks.NewProxmoxTaskPollHandler(
|
||||
tasks.UnconfiguredProxmoxTaskClientResolver{},
|
||||
tasks.NewDefaultClusterTaskClientResolver(clusters),
|
||||
tasks.NewSQLVMStatusStore(db),
|
||||
tasks.NewSQLAuditWriter(db),
|
||||
logger,
|
||||
|
||||
Reference in New Issue
Block a user