Reboot jobs are assigned to be finished

This commit is contained in:
Jeroen De Meerleer 2019-04-26 17:43:03 +02:00
parent 3dfbb9df0f
commit 7ec0da7035
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
1 changed files with 25 additions and 20 deletions

View File

@ -128,28 +128,33 @@ unlink('/tmp/webcron.lock');
if(file_exists("cache/reboot.trigger")) {
unlink("cache/reboot.trigger");
$count=0;
foreach($rebootjobs as $job) {
if (!(isset($job['done']) && $job['done'] == true)) {
$rebooter = preg_replace("/reboot /", "", $job['url'], 1);
$rebooter = urlencode($rebooter);
$rebooter = str_replace("cmd%3D", "cmd=", $rebooter);
$rebooter = str_replace("services%3D", "services=", $rebooter);
$rebooter = str_replace("%26", "&", $rebooter);
parse_str($rebooter, $rebootcommands);
$cmd = $rebootcommands['cmd'];
if ($cmd == '') {
$cmd = 'sudo shutdown -r +{}+ "A reboot has been scheduled. Please save your work."';
$cmd = str_replace("{}+", intdiv(get_configvalue('jobs.rebootwait'), 60), $cmd);
}
$cmd = str_replace("{}+", get_configvalue('jobs.rebootwait'), $cmd);
$url = "ssh " . $job['host'] . " '" . $cmd . " &'";
exec($url);
$cmd = '';
$rebootjobs[$count]['done'] = true;
}
$count++;
}
$rebootser = serialize($rebootjobs);
file_put_contents("cache/get-services.trigger", $rebootser);
file_put_contents("cache/reboot-time.trigger", time() + (get_configvalue('jobs.reboottime') + get_configvalue('jobs.rebootwait')));
$rebooted_hosts = array();
foreach($rebootjobs as $job) {
$rebooter = preg_replace("/reboot /", "", $job['url'], 1);
$rebooter = urlencode($rebooter);
$rebooter = str_replace("cmd%3D", "cmd=", $rebooter);
$rebooter = str_replace("services%3D", "services=", $rebooter);
$rebooter = str_replace("%26", "&", $rebooter);
parse_str($rebooter, $rebootcommands);
$cmd = $rebootcommands['cmd'];
if ($cmd == '') {
$cmd = 'sudo shutdown -r +{}+ "A reboot has been scheduled. Please save your work."';
$cmd = str_replace("{}+", intdiv(get_configvalue('jobs.rebootwait'), 60), $cmd);
}
$cmd = str_replace("{}+", get_configvalue('jobs.rebootwait'), $cmd);
$url = "ssh " . $job['host'] . " '" . $cmd . " &'";
exec($url);
$cmd = '';
}
}
require_once 'include/finalize.inc.php';