Added remote jobs

This commit is contained in:
Jeroen De Meerleer 2017-08-18 18:58:04 +02:00
parent 38f2ac9140
commit da28c3fb8e
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
5 changed files with 21 additions and 7 deletions

View File

@ -60,6 +60,7 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
}
$url = $_POST['url'];
$host = $_POST['host'];
$name = $_POST['name'];
$delay = $_POST['delay'];
$nextrunObj = new DateTime($_POST['nextrun']);
@ -75,8 +76,8 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
}
$stmt = $db->prepare("INSERT INTO jobs(user, name, url, delay, nextrun) VALUES(?, ?, ?, ?, ?)");
$stmt->execute(array($_SESSION["userID"], $name, $url, $delay, $nextrun));
$stmt = $db->prepare("INSERT INTO jobs(user, name, url, host, delay, nextrun) VALUES(?, ?, ?, ?, ?, ?)");
$stmt->execute(array($_SESSION["userID"], $name, $url, $host, $delay, $nextrun));
header("location:addjob.php?message=added");
exit;

View File

@ -38,6 +38,7 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") {
}
$name = $jobnameResult[0]['name'];
$url = $jobnameResult[0]['url'];
$host = $jobnameResult[0]['host'];
$delay = $jobnameResult[0]['delay'];
$nextrun = date("m/d/Y h:i A", $jobnameResult[0]['nextrun']);
@ -58,7 +59,7 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") {
}
echo $twig->render('editjob.html.twig', array("name" => $name, "url" => $url, "delay" => $delay, "nextrun" => $nextrun, "jobID" => $jobID, "error" => $error));
echo $twig->render('editjob.html.twig', array("name" => $name, "url" => $url, "host" => $host, "delay" => $delay, "nextrun" => $nextrun, "jobID" => $jobID, "error" => $error));
}
elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
@ -70,6 +71,7 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
$url = $_POST['url'];
$name = $_POST['name'];
$delay = $_POST['delay'];
$host = $_POST['host'];
$nextrunObj = new DateTime($_POST['nextrun']);
$nextrun = $nextrunObj->getTimestamp();
@ -83,8 +85,8 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
}
$stmt = $db->prepare("UPDATE jobs SET name = ?, url = ?, delay = ?, nextrun = ? WHERE jobID = ?");
$stmt->execute(array($name, $url, $delay, $nextrun, $jobID));
$stmt = $db->prepare("UPDATE jobs SET name = ?, url = ?, host = ?, delay = ?, nextrun = ? WHERE jobID = ?");
$stmt->execute(array($name, $url, $host, $delay, $nextrun, $jobID));
header("location:overview.php?message=edited");
exit;

View File

@ -24,6 +24,11 @@
<label for="url">url</label>
<input type="text" name="url" class="form-control" id="url" placeholder="http://example.com/ or 'sudo yum update -y'">
</div>
<div class="form-group">
<label for="host">host</label>
<input type="text" name="host" class="form-control" id="host" placeholder="localhost">
</div>
<div class="form-group">
<label for="name">Delay (in seconds)</label>

View File

@ -19,6 +19,11 @@
<label for="url">url</label>
<input type="text" name="url" class="form-control" id="url" placeholder="http://example.com/ or 'sudo yum update -y'" value="{{ url }}">
</div>
<div class="form-group">
<label for="host">host</label>
<input type="text" name="host" class="form-control" id="host" placeholder="localhost" value="{{ host }}">
</div>
<div class="form-group">
<label for="name">Delay (in seconds)</label>

View File

@ -60,7 +60,7 @@ if (file_exists("cache/get-services.trigger")) {
}
}
$stmt = $db->query('SELECT jobID, url, delay, nextrun FROM jobs WHERE nextrun < ' . time());
$stmt = $db->query('SELECT jobID, url, host, delay, nextrun FROM jobs WHERE nextrun < ' . time());
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$client = new \GuzzleHttp\Client();
@ -81,7 +81,8 @@ foreach ($results as $result) {
if($result["url"] != "reboot") {
$body = '';
$statuscode = 0;
exec($result["url"] . " 2>&1", $body, $statuscode);
$url = "ssh " . $result['host'] . " '" . $result['url'] . "'";
exec($url, $body, $statuscode);
$body = implode("\n", $body);
} else {
if (!file_exists('cache/get-services.trigger')) {