Fix infra page crash when snapshot missing: provide default server values

Template accesses server.hostname etc. but server was passed as empty array
when infra.json does not exist. Now provides all expected keys with '?' defaults.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-26 18:13:26 +01:00
parent 21aa94c833
commit e8d2744333

View File

@@ -707,9 +707,18 @@ class AdminController extends AbstractController
{
$path = $projectDir.'/var/infra.json';
if (!file_exists($path)) {
$emptyServer = [
'hostname' => '?', 'os' => '?', 'uptime' => '?',
'cpu_model' => '?', 'cpu_cores' => '?', 'load_1m' => '?', 'load_5m' => '?', 'load_15m' => '?', 'load_percent' => '?',
'ram_total' => '?', 'ram_used' => '?', 'ram_free' => '?', 'ram_percent' => '?',
'disk_total' => '?', 'disk_used' => '?', 'disk_free' => '?', 'disk_percent' => '?',
'caddy' => ['status' => 'unknown', 'info' => '?'], 'docker' => ['status' => 'unknown', 'info' => '?'],
'ssl' => ['domain' => '?', 'issuer' => '?', 'valid_until' => '?', 'days_left' => '?', 'status' => 'unknown'],
];
return $this->render('admin/infra.html.twig', [
'snapshot_missing' => true,
'server' => [], 'containers' => [], 'redis_global' => ['connected' => false],
'server' => $emptyServer, 'containers' => [], 'redis_global' => ['connected' => false],
'redis_dbs' => [], 'postgres' => ['connected' => false], 'pgbouncer' => ['connected' => false],
'generated_at' => null,
]);