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']; $url = $_POST['url'];
$host = $_POST['host'];
$name = $_POST['name']; $name = $_POST['name'];
$delay = $_POST['delay']; $delay = $_POST['delay'];
$nextrunObj = new DateTime($_POST['nextrun']); $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 = $db->prepare("INSERT INTO jobs(user, name, url, host, delay, nextrun) VALUES(?, ?, ?, ?, ?, ?)");
$stmt->execute(array($_SESSION["userID"], $name, $url, $delay, $nextrun)); $stmt->execute(array($_SESSION["userID"], $name, $url, $host, $delay, $nextrun));
header("location:addjob.php?message=added"); header("location:addjob.php?message=added");
exit; exit;

View File

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

View File

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

View File

@ -19,6 +19,11 @@
<label for="url">url</label> <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 }}"> <input type="text" name="url" class="form-control" id="url" placeholder="http://example.com/ or 'sudo yum update -y'" value="{{ url }}">
</div> </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"> <div class="form-group">
<label for="name">Delay (in seconds)</label> <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); $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$client = new \GuzzleHttp\Client(); $client = new \GuzzleHttp\Client();
@ -81,7 +81,8 @@ foreach ($results as $result) {
if($result["url"] != "reboot") { if($result["url"] != "reboot") {
$body = ''; $body = '';
$statuscode = 0; $statuscode = 0;
exec($result["url"] . " 2>&1", $body, $statuscode); $url = "ssh " . $result['host'] . " '" . $result['url'] . "'";
exec($url, $body, $statuscode);
$body = implode("\n", $body); $body = implode("\n", $body);
} else { } else {
if (!file_exists('cache/get-services.trigger')) { if (!file_exists('cache/get-services.trigger')) {