system: improve previous and widen its use

This commit is contained in:
Franco Fichtner 2024-09-16 10:05:03 +02:00
parent 4f6b9ec726
commit 05739a0898
3 changed files with 12 additions and 10 deletions

View File

@ -133,8 +133,7 @@ function dpinger_configure_do($verbose = false, $gwname_map = null)
return;
}
$suffix = empty($gwname_map) ? 's' : (is_array($gwname_map) && count($gwname_map) > 1 ? 's ' . join(', ', $gwname_map) : '');
service_log(sprintf('Setting up gateway monitor%s...', $suffix), $verbose);
service_log(sprintf('Setting up gateway monitor%s...', empty($interface_map) ? '' : ' for ' . join(', ', $gwname_map)), $verbose);
foreach (dpinger_processes() as $running_gwname => $proc) {
if (!empty($gwname_map) && !in_array($running_gwname, $gwname_map)) {

View File

@ -774,23 +774,22 @@ function system_routing_configure($verbose = false, $interface_map = null, $moni
service_log("done.\n", $verbose);
if ($monitor) {
if (!empty($interface_map)) {
$reloads = [];
/* reload requested monitors only or reload in full */
$gwnames = !empty($interface_map) ? [] : null;
if (!empty($interface_map)) {
foreach ($gateways->gatewaysIndexedByName() as $name => $gateway) {
if ($family !== null && $family !== $gateway['ipprotocol']) {
continue;
}
if (in_array($gateway['interface'], $interface_map)) {
$reloads[] = $name;
$gwnames[] = $name;
}
}
plugins_configure('monitor', $verbose, [$reloads]);
} else {
plugins_configure('monitor', $verbose);
}
plugins_configure('monitor', $verbose, [$gwnames]);
}
}

View File

@ -49,12 +49,16 @@ foreach (glob("/tmp/delete_route_*.todo") as $filename) {
system_routing_configure(true, null, !$recover_only);
if ($recover_only) {
$gwnames = [];
foreach (return_gateways_status() as $status) {
if ($status['status'] == 'down') {
/* try to recover monitors stuck in down state ignoring "force_down" */
plugins_configure('monitor', true, [$status['name']]);
$gwnames[] = $status['name'];
}
}
plugins_configure('monitor', true, [$gwnames]);
}
filter_configure_sync(true, false);