summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules-available/systemstatus/page.inc.php44
-rw-r--r--modules-available/systemstatus/templates/services.html26
2 files changed, 53 insertions, 17 deletions
diff --git a/modules-available/systemstatus/page.inc.php b/modules-available/systemstatus/page.inc.php
index 7ee9e5a4..c1c52af0 100644
--- a/modules-available/systemstatus/page.inc.php
+++ b/modules-available/systemstatus/page.inc.php
@@ -228,20 +228,42 @@ class Page_SystemStatus extends Page
protected function ajaxServices()
{
- $data = array();
+ $data = array('services' => array());
+ $tasks = array();
- $taskId = Trigger::ldadp();
- if ($taskId === false)
- return;
- $status = Taskmanager::waitComplete($taskId, 10000);
+ foreach (['dmsd', 'dnbd3-server', 'atftpd'] as $svc) {
+ $tasks[] = array(
+ 'name' => $svc,
+ 'task' => Taskmanager::submit('Systemctl', ['service' => $svc, 'operation' => 'is-active'])
+ );
+ }
+ $tasks[] = array(
+ 'name' => 'LDAP/AD-Proxy',
+ 'task' => Trigger::ldadp()
+ );
+ $deadline = time() + 10;
+ do {
+ $done = true;
+ foreach ($tasks as &$task) {
+ if (!is_string($task['task']) && (Taskmanager::isFailed($task['task']) || Taskmanager::isFinished($task['task'])))
+ continue;
+ $task['task'] = Taskmanager::waitComplete($task['task'], 100);
+ if (!Taskmanager::isFailed($task['task']) && !Taskmanager::isFinished($task['task'])) {
+ $done = false;
+ }
+ }
+ unset($task);
+ } while (!$done && time() < $deadline);
- if (Taskmanager::isFailed($status)) {
- if (isset($status['data']['messages']))
- $data['ldadpError'] = $status['data']['messages'];
- else
- $data['ldadpError'] = 'Taskmanager error';
+ foreach ($tasks as $task) {
+ $fail = Taskmanager::isFailed($task['task']);
+ $data['services'][] = array(
+ 'name' => $task['name'],
+ 'fail' => $fail,
+ 'data' => isset($task['data']) ? $task['data'] : null,
+ 'unknown' => $task['task'] === false
+ );
}
- // TODO: Dozentenmodul, tftp, ...
echo Render::parse('services', $data);
}
diff --git a/modules-available/systemstatus/templates/services.html b/modules-available/systemstatus/templates/services.html
index 6c4f0b93..29b33687 100644
--- a/modules-available/systemstatus/templates/services.html
+++ b/modules-available/systemstatus/templates/services.html
@@ -1,6 +1,20 @@
-{{#ldadpError}}
-<pre>{{ldadpError}}</pre>
-{{/ldadpError}}
-{{^ldadpError}}
-<div class="alert alert-success">LDAP-AD-Proxy: OK</div>
-{{/ldadpError}}
+{{#services}}
+ {{#unknown}}
+ <div class="alert alert-warning">
+ {{name}}: {{lang_unknownState}}
+ </div>
+ {{/unknown}}
+ {{^unknown}}
+ {{#fail}}
+ <div class="alert alert-danger">
+ {{name}}: <b>{{lang_failure}}</b>
+ {{#data.messages}}<pre>{{data.messages}}</pre>{{/data.messages}}
+ </div>
+ {{/fail}}
+ {{^fail}}
+ <div class="alert alert-success">
+ {{name}}: {{lang_OK}}
+ </div>
+ {{/fail}}
+ {{/unknown}}
+{{/services}}