Standardize codebase consistency: naming, JSON tags, logging, error wrapping
- JSON tags: fix snake_case to camelCase in dnsmasq (configFile, domainsConfigured, lastRestart), crowdsec Machine (lastPush, lastHeartbeat), network (primaryIP, primaryInterface). cscli raw parsing structs keep snake_case to match CLI output. - Error wrapping: fix %v to %w in enableAuthelia for proper error chain preservation - Naming: rename dnsmasq.ConfigGenerator to dnsmasq.Manager (matches all other packages), rename ServiceStatus to Status in dnsmasq and haproxy (matches authelia, crowdsec, etc.) - Logging: standardize all slog calls to use "component" key instead of message prefixes. Affects reconcile, dnsfilter, ddns — now consistent with dnsmasq, haproxy, nftables, sse.
This commit is contained in:
@@ -42,7 +42,7 @@ type API struct {
|
||||
ctx gocontext.Context // parent context for restartable goroutines
|
||||
reconciler *reconcile.Reconciler
|
||||
secrets *secrets.Manager
|
||||
dnsmasq *dnsmasq.ConfigGenerator
|
||||
dnsmasq *dnsmasq.Manager
|
||||
haproxy *haproxy.Manager
|
||||
nftables *nftables.Manager
|
||||
ddns *ddns.Runner
|
||||
@@ -72,7 +72,7 @@ func NewAPI(dataDir, version string, allowedOrigins []string) (*API, error) {
|
||||
version: version,
|
||||
allowedOrigins: allowedOrigins,
|
||||
secrets: secrets.NewManager(filepath.Join(dataDir, "secrets.yaml")),
|
||||
dnsmasq: dnsmasq.NewConfigGenerator(dnsmasqConfigPath),
|
||||
dnsmasq: dnsmasq.NewManager(dnsmasqConfigPath),
|
||||
haproxy: haproxy.NewManager(haproxyConfigPath),
|
||||
nftables: nftables.NewManager(nftablesRulesPath),
|
||||
ddns: ddns.NewRunner(),
|
||||
@@ -142,7 +142,7 @@ func (api *API) StartDDNS(ctx gocontext.Context) {
|
||||
func (api *API) StartDNSFilter(ctx gocontext.Context) {
|
||||
api.dnsFilterRunner = dnsfilter.NewRunner(api.dnsFilter, func() {
|
||||
if err := api.dnsmasq.ReloadService(); err != nil {
|
||||
slog.Warn("dns-filter: failed to reload dnsmasq after update", "error", err)
|
||||
slog.Warn("failed to reload dnsmasq after update", "component", "dns-filter", "error", err)
|
||||
}
|
||||
api.broadcastDNSFilterEvent("dns-filter:updated", "DNS filter lists updated")
|
||||
})
|
||||
|
||||
@@ -150,26 +150,26 @@ func (api *API) enableAuthelia(state *config.State) error {
|
||||
}
|
||||
|
||||
if err := api.authelia.EnsureDataDir(); err != nil {
|
||||
return fmt.Errorf("Failed to create data directory: %v", err)
|
||||
return fmt.Errorf("failed to create data directory: %w", err)
|
||||
}
|
||||
if err := api.ensureAutheliaSecrets(); err != nil {
|
||||
return fmt.Errorf("Failed to generate secrets: %v", err)
|
||||
return fmt.Errorf("failed to generate secrets: %w", err)
|
||||
}
|
||||
if err := api.authelia.EnsureJWKS(); err != nil {
|
||||
return fmt.Errorf("Failed to generate JWKS: %v", err)
|
||||
return fmt.Errorf("failed to generate JWKS: %w", err)
|
||||
}
|
||||
if err := api.authelia.EnsureUsersDB(); err != nil {
|
||||
return fmt.Errorf("Failed to initialize user database: %v", err)
|
||||
return fmt.Errorf("failed to initialize user database: %w", err)
|
||||
}
|
||||
if err := api.generateAutheliaConfig(state); err != nil {
|
||||
return fmt.Errorf("Failed to generate config: %v", err)
|
||||
return fmt.Errorf("failed to generate config: %w", err)
|
||||
}
|
||||
|
||||
api.ensureAuthDomain(state.Cloud.Authelia.Domain)
|
||||
|
||||
if api.authelia.UserCount() > 0 {
|
||||
if err := api.authelia.RestartService(); err != nil {
|
||||
return fmt.Errorf("Configuration saved but Authelia failed to start: %v", err)
|
||||
return fmt.Errorf("authelia failed to start: %w", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -83,13 +83,13 @@ func (api *API) DNSFilterUpdateConfig(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
api.dnsFilterRunner.Start(api.ctx, interval)
|
||||
|
||||
slog.Info("dns-filter: enabled", "interval", interval)
|
||||
slog.Info("enabled", "component", "dns-filter", "interval", interval)
|
||||
} else {
|
||||
// Stop the runner and clear addn-hosts
|
||||
api.dnsFilterRunner.Stop()
|
||||
api.dnsmasq.SetFilterConfPath("")
|
||||
|
||||
slog.Info("dns-filter: disabled")
|
||||
slog.Info("disabled", "component", "dns-filter")
|
||||
}
|
||||
|
||||
// Reconcile to add/remove addn-hosts from dnsmasq config
|
||||
@@ -162,11 +162,11 @@ func (api *API) DNSFilterRemoveList(w http.ResponseWriter, r *http.Request) {
|
||||
// Recompile without the removed list
|
||||
go func() {
|
||||
if _, err := api.dnsFilter.Compile(); err != nil {
|
||||
slog.Warn("dns-filter: recompile after removal failed", "error", err)
|
||||
slog.Warn("recompile after removal failed", "component", "dns-filter", "error", err)
|
||||
return
|
||||
}
|
||||
if err := api.dnsmasq.ReloadService(); err != nil {
|
||||
slog.Warn("dns-filter: reload after removal failed", "error", err)
|
||||
slog.Warn("reload after removal failed", "component", "dns-filter", "error", err)
|
||||
}
|
||||
api.broadcastDNSFilterEvent("dns-filter:updated", "DNS filter lists updated")
|
||||
}()
|
||||
@@ -194,11 +194,11 @@ func (api *API) DNSFilterToggleList(w http.ResponseWriter, r *http.Request) {
|
||||
// Recompile with updated list status
|
||||
go func() {
|
||||
if _, err := api.dnsFilter.Compile(); err != nil {
|
||||
slog.Warn("dns-filter: recompile after toggle failed", "error", err)
|
||||
slog.Warn("recompile after toggle failed", "component", "dns-filter", "error", err)
|
||||
return
|
||||
}
|
||||
if err := api.dnsmasq.ReloadService(); err != nil {
|
||||
slog.Warn("dns-filter: reload after toggle failed", "error", err)
|
||||
slog.Warn("reload after toggle failed", "component", "dns-filter", "error", err)
|
||||
}
|
||||
api.broadcastDNSFilterEvent("dns-filter:updated", "DNS filter lists updated")
|
||||
}()
|
||||
@@ -240,11 +240,11 @@ func (api *API) DNSFilterSetCustomEntry(w http.ResponseWriter, r *http.Request)
|
||||
// Recompile with updated custom entries
|
||||
go func() {
|
||||
if _, err := api.dnsFilter.Compile(); err != nil {
|
||||
slog.Warn("dns-filter: recompile after custom entry failed", "error", err)
|
||||
slog.Warn("recompile after custom entry failed", "component", "dns-filter", "error", err)
|
||||
return
|
||||
}
|
||||
if err := api.dnsmasq.ReloadService(); err != nil {
|
||||
slog.Warn("dns-filter: reload after custom entry failed", "error", err)
|
||||
slog.Warn("reload after custom entry failed", "component", "dns-filter", "error", err)
|
||||
}
|
||||
api.broadcastDNSFilterEvent("dns-filter:updated", "DNS filter custom entry updated")
|
||||
}()
|
||||
@@ -268,11 +268,11 @@ func (api *API) DNSFilterRemoveCustomEntry(w http.ResponseWriter, r *http.Reques
|
||||
// Recompile
|
||||
go func() {
|
||||
if _, err := api.dnsFilter.Compile(); err != nil {
|
||||
slog.Warn("dns-filter: recompile after custom removal failed", "error", err)
|
||||
slog.Warn("recompile after custom removal failed", "component", "dns-filter", "error", err)
|
||||
return
|
||||
}
|
||||
if err := api.dnsmasq.ReloadService(); err != nil {
|
||||
slog.Warn("dns-filter: reload after custom removal failed", "error", err)
|
||||
slog.Warn("reload after custom removal failed", "component", "dns-filter", "error", err)
|
||||
}
|
||||
api.broadcastDNSFilterEvent("dns-filter:updated", "DNS filter custom entry removed")
|
||||
}()
|
||||
@@ -328,11 +328,11 @@ func (api *API) DNSFilterUploadList(w http.ResponseWriter, r *http.Request) {
|
||||
// Recompile with new list
|
||||
go func() {
|
||||
if _, err := api.dnsFilter.Compile(); err != nil {
|
||||
slog.Warn("dns-filter: recompile after upload failed", "error", err)
|
||||
slog.Warn("recompile after upload failed", "component", "dns-filter", "error", err)
|
||||
return
|
||||
}
|
||||
if err := api.dnsmasq.ReloadService(); err != nil {
|
||||
slog.Warn("dns-filter: reload after upload failed", "error", err)
|
||||
slog.Warn("reload after upload failed", "component", "dns-filter", "error", err)
|
||||
}
|
||||
api.broadcastDNSFilterEvent("dns-filter:updated", "DNS filter list uploaded")
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user