From 6635ff74f8266aa72f4243258561a5ae8d3915ac Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 29 Jun 2020 14:04:45 +0200 Subject: [remoteaccess] Fix/Improve WOL behavior Enable rebootcontrol module in ensureMachinesRunning(), so it works from the call in api.inc.php. Consider machines that we sent a WOL packet to during the last 90 seconds as online when counting number of idle machines, so slow booting machines won't cause us to wake too many machines. --- modules-available/remoteaccess/hooks/cron.inc.php | 3 --- modules-available/remoteaccess/inc/remoteaccess.inc.php | 17 ++++++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/modules-available/remoteaccess/hooks/cron.inc.php b/modules-available/remoteaccess/hooks/cron.inc.php index 3e0e130b..2ee6e375 100644 --- a/modules-available/remoteaccess/hooks/cron.inc.php +++ b/modules-available/remoteaccess/hooks/cron.inc.php @@ -1,6 +1,3 @@ fetch(PDO::FETCH_ASSOC)) { if ($row['wolcount'] <= 0) continue; @@ -33,7 +40,7 @@ class RemoteAccess continue; $active = Database::queryFirst("SELECT Count(*) AS cnt FROM machine m INNER JOIN remoteaccess_machine rm USING (machineuuid) - WHERE m.locationid IN ($locs) AND m.state = 'IDLE'"); + WHERE m.locationid IN ($locs) AND (m.state = 'IDLE' OR rm.woltime > $wolDeadline)"); $active = (isset($active['cnt']) ? $active['cnt'] : 0); $wantNum = $row['wolcount'] - $active; if ($wantNum <= 0) -- cgit v1.2.3-55-g7522