fix(system): render-configs rendert jetzt ALLE Dienste, nicht nur HAProxy
- SystemHandler.ExtraReloaders: neues Feld für nftables, wireguard,
squid, unbound, chrony Reloader
- WithAllReloaders(): Wire-Methode; main.go bindet alle Reloader nach
Initialisierung ein
- RenderConfigs: läuft alle Reloader durch, sammelt Fehler, antwortet
mit {ok, rendered[], errors{}} — partiell OK wird als warning gemeldet
- UI: Settings-Button-Label "Re-render all configs"; partial-error
Toast zeigt welche Dienste fehlschlugen
- Timeout: 30s statt 10s (alle Dienste brauchen mehr Zeit)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -531,9 +531,10 @@
|
||||
"haproxyReloadBtn": "HAProxy reload",
|
||||
"haproxyReloadOk": "HAProxy neu geladen.",
|
||||
"haproxyReloadFailed": "HAProxy-Reload fehlgeschlagen",
|
||||
"renderConfigsBtn": "Configs neu rendern (HAProxy)",
|
||||
"renderConfigsOk": "Configs neu gerendert + reloaded.",
|
||||
"renderConfigsBtn": "Alle Configs neu rendern",
|
||||
"renderConfigsOk": "Alle Configs neu gerendert und reloaded.",
|
||||
"renderConfigsFailed": "Config-Render fehlgeschlagen",
|
||||
"renderConfigsPartial": "Partieller Render — einige Dienste fehlgeschlagen: {{failed}}",
|
||||
"backupNowBtn": "Backup jetzt erstellen",
|
||||
"backupNowOk": "Backup ausgelöst — Status in der Backups-Seite verfolgen.",
|
||||
"backupNowFailed": "Backup-Trigger fehlgeschlagen",
|
||||
|
||||
@@ -531,9 +531,10 @@
|
||||
"haproxyReloadBtn": "HAProxy reload",
|
||||
"haproxyReloadOk": "HAProxy reloaded.",
|
||||
"haproxyReloadFailed": "HAProxy reload failed",
|
||||
"renderConfigsBtn": "Re-render configs (HAProxy)",
|
||||
"renderConfigsOk": "Configs re-rendered + reloaded.",
|
||||
"renderConfigsBtn": "Re-render all configs",
|
||||
"renderConfigsOk": "All configs re-rendered and reloaded.",
|
||||
"renderConfigsFailed": "Config render failed",
|
||||
"renderConfigsPartial": "Partial render — some services failed: {{failed}}",
|
||||
"backupNowBtn": "Backup now",
|
||||
"serviceRestartCardTitle": "Restart services",
|
||||
"serviceRestartBtn": "Restart",
|
||||
|
||||
@@ -125,7 +125,15 @@ export default function SettingsPage() {
|
||||
})
|
||||
const renderConfigs = useMutation({
|
||||
mutationFn: async () => apiClient.post('/system/render-configs'),
|
||||
onSuccess: () => msg.success(t('settings.renderConfigsOk')),
|
||||
onSuccess: (r) => {
|
||||
const d = r.data?.data as { ok: boolean; rendered: string[]; errors: Record<string, string> } | undefined
|
||||
if (d && !d.ok && d.errors && Object.keys(d.errors).length > 0) {
|
||||
const failed = Object.entries(d.errors).map(([k, v]) => `${k}: ${v}`).join('; ')
|
||||
msg.warning(t('settings.renderConfigsPartial', { failed }))
|
||||
} else {
|
||||
msg.success(t('settings.renderConfigsOk'))
|
||||
}
|
||||
},
|
||||
onError: (e: Error) => msg.error(t('settings.renderConfigsFailed') + ': ' + e.message),
|
||||
})
|
||||
const triggerBackup = useMutation({
|
||||
|
||||
Reference in New Issue
Block a user