summaryrefslogtreecommitdiffstats
path: root/modules-available/dnbd3/page.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2018-03-29 10:47:58 +0200
committerSimon Rettberg2018-03-29 10:47:58 +0200
commitaeb96b5b7019b2f0bc40ed699dc2877a8729a06b (patch)
tree9b7a24770cfad934489d1c5f23f136b17a4c41d4 /modules-available/dnbd3/page.inc.php
parent[dnbd3] Clarify firewall setting (diff)
downloadslx-admin-aeb96b5b7019b2f0bc40ed699dc2877a8729a06b.tar.gz
slx-admin-aeb96b5b7019b2f0bc40ed699dc2877a8729a06b.tar.xz
slx-admin-aeb96b5b7019b2f0bc40ed699dc2877a8729a06b.zip
[dnbd3] Fix dnbd3 reboot status feedback
Closes #3276
Diffstat (limited to 'modules-available/dnbd3/page.inc.php')
-rw-r--r--modules-available/dnbd3/page.inc.php37
1 files changed, 25 insertions, 12 deletions
diff --git a/modules-available/dnbd3/page.inc.php b/modules-available/dnbd3/page.inc.php
index 6e4f8885..f30abfe1 100644
--- a/modules-available/dnbd3/page.inc.php
+++ b/modules-available/dnbd3/page.inc.php
@@ -490,24 +490,37 @@ class Page_Dnbd3 extends Page
if (!isset($server['machineuuid'])) {
die('Not automatic server.');
}
- $this->assertPermission($server);
- if (!Module::isAvailable('rebootcontrol')) {
- die('No rebootcontrol');
- }
$uuid = $server['machineuuid'];
- $task = RebootControl::reboot([ $uuid ]);
+ $task = Request::any('taskid', false, 'string');
if ($task === false) {
- die('Taskmanager unreachable');
+ $this->assertPermission($server);
+ if (!Module::isAvailable('rebootcontrol')) {
+ die('No rebootcontrol');
+ }
+ $task = RebootControl::reboot([$uuid]);
+ if ($task === false) {
+ die('Taskmanager unreachable');
+ }
}
- $task = Taskmanager::waitComplete($task, 2000);
- if (is_array($task) && isset($task['data']) && isset($task['data']['clientStatus']) && isset($task['data']['clientStatus'][$uuid])) {
- $status = $task['data']['clientStatus'][$uuid];
+ $task = Taskmanager::waitComplete($task, 1000);
+ if (is_array($task) && isset($task['data']['clientStatus'][$uuid])) {
+ $status = [
+ 'rebootStatus' => $task['data']['clientStatus'][$uuid],
+ 'taskStatus' => $task['statusCode'],
+ 'taskId' => $task['id'],
+ ];
if (!empty($task['data']['error'])) {
- $status .= "\n --- \n" . $task['data']['error'];
+ $status['error'] = $task['data']['error'];
}
- die($status);
+ } else {
+ $status = [
+ 'rebootStatus' => 'FAILURE',
+ 'taskStatus' => 'FAILURE',
+ 'taskId' => $task['id'],
+ ];
}
- die('Unknown :-(');
+ Header('Content-Type: application/json; charset=utf-8');
+ die(json_encode($status));
}
}