diff options
author | Simon Rettberg | 2014-10-09 16:01:11 +0200 |
---|---|---|
committer | Simon Rettberg | 2014-10-09 16:01:11 +0200 |
commit | e1dc0d3c99217504de2ac8467156274786efc0bd (patch) | |
tree | 130d7fed1fff8aaaffe5942cf2a3d6bb1dad03c8 /inc/taskmanagercallback.inc.php | |
parent | Minor fixes and improvements (diff) | |
download | slx-admin-e1dc0d3c99217504de2ac8467156274786efc0bd.tar.gz slx-admin-e1dc0d3c99217504de2ac8467156274786efc0bd.tar.xz slx-admin-e1dc0d3c99217504de2ac8467156274786efc0bd.zip |
Big load of changes
- Added callback functionality for taskmanager tasks. You can launch
a task and define a callback function to be run when the task finished.
This requires activating the cronjob
- Added cron functionality: Add cronjob that calls the cron api every 5
minutes to use it. (See cron.inc.php)
- Added eventlog
- Added missing translations
- Merged main-menu-login and main-menu-logout
Diffstat (limited to 'inc/taskmanagercallback.inc.php')
-rw-r--r-- | inc/taskmanagercallback.inc.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/inc/taskmanagercallback.inc.php b/inc/taskmanagercallback.inc.php new file mode 100644 index 00000000..3ef4745c --- /dev/null +++ b/inc/taskmanagercallback.inc.php @@ -0,0 +1,43 @@ +<?php + +/** + * Contains all callbacks for detached taskmanager tasks. + */ +class TaskmanagerCallback +{ + + /** + * Add a callback for given task id. This is the only exception in this class, + * as this is not a callback, but a function to define one :) + * + * @param string|array $task Task or Task ID to define callback for + * @param string $callback name of callback function, must be a static method in this class + */ + public static function addCallback($task, $callback) + { + if (!call_user_func_array('method_exists', array('TaskmanagerCallback', $callback))) { + EventLog::warning("addCallback: Invalid callback function: $callback"); + return; + } + if (is_array($task) && isset($task['id'])) + $task = $task['id']; + if (!is_string($task)) { + EventLog::warning("addCallback: Not a valid task id: $task"); + return; + } + Database::exec("INSERT INTO callback (taskid, dateline, cbfunction) VALUES (:task, UNIX_TIMESTAMP(), :callback)", array( + 'task' => $task, + 'callback' => $callback + )); + } + + /** + * Result of trying to (re)launch ldadp. + */ + public static function ldadpStartup($task) + { + if (Taskmanager::isFailed($task)) + EventLog::warning("Could not start/stop LDAP-AD-Proxy instances", $task['data']['messages']); + } + +} |