Require warmup baseline before enabling automation

This commit is contained in:
Terranom674
2026-09-03 14:19:48 +02:00
parent 459f233b57
commit 362d24b89a

View File

@@ -32,6 +32,25 @@ function bratonien_tools_get_webdav_warmup_settings()
return $settings;
}
function bratonien_tools_webdav_warmup_missing_baselines()
{
if (!function_exists('bratonien_tools_nc_connector_connections') || !function_exists('bratonien_tools_nc_connector_is_webdav'))
{
return array('Connector-Verbindungen konnten nicht geprüft werden.');
}
$missing = array();
foreach (bratonien_tools_nc_connector_connections() as $connection)
{
if (empty($connection['enabled']) || !bratonien_tools_nc_connector_is_webdav($connection)) continue;
$connection_id = (int)($connection['id'] ?? 0);
if ($connection_id < 1) continue;
$state_file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'bratonien-webdav-warmup.connection-'.$connection_id.'.json';
if (!is_file($state_file) || !is_readable($state_file)) $missing[] = '#'.$connection_id;
}
return $missing;
}
function bratonien_tools_save_webdav_warmup_settings()
{
$current = bratonien_tools_get_webdav_warmup_settings();
@@ -41,6 +60,17 @@ function bratonien_tools_save_webdav_warmup_settings()
$batch_size = max(1, min(50, $batch_size));
$periodic_hours = max(1, min(168, $periodic_hours));
if ($enabled && empty($current['enabled']))
{
$missing = bratonien_tools_webdav_warmup_missing_baselines();
if ($missing)
{
throw new RuntimeException(
'WebDAV-Cache-Warmup bleibt deaktiviert. Bitte zuerst „Jetzt prüfen“ ausführen, damit der bestehende produktive Bestand nur als Ausgangszustand erfasst wird. Fehlende Baseline: '.implode(', ', $missing)
);
}
}
$payload = array(
'enabled'=>$enabled,
'batch_size'=>$batch_size,