summaryrefslogtreecommitdiffstats
path: root/inc/taskmanagercallback.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/taskmanagercallback.inc.php')
-rw-r--r--inc/taskmanagercallback.inc.php61
1 files changed, 45 insertions, 16 deletions
diff --git a/inc/taskmanagercallback.inc.php b/inc/taskmanagercallback.inc.php
index 5f153baa..c6b447c9 100644
--- a/inc/taskmanagercallback.inc.php
+++ b/inc/taskmanagercallback.inc.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* Contains all callbacks for detached taskmanager tasks.
*/
@@ -13,7 +15,7 @@ class TaskmanagerCallback
* @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, $args = NULL)
+ public static function addCallback($task, string $callback, $args = NULL): void
{
if (!call_user_func_array('method_exists', array('TaskmanagerCallback', $callback))) {
EventLog::warning("addCallback: Invalid callback function: $callback");
@@ -50,13 +52,13 @@ class TaskmanagerCallback
*
* @return array list of array(taskid => list of callbacks)
*/
- public static function getPendingCallbacks()
+ public static function getPendingCallbacks(): array
{
$res = Database::simpleQuery("SELECT taskid, cbfunction, args FROM callback", array(), true);
if ($res === false)
return array();
$retval = array();
- while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
+ foreach ($res as $row) {
$retval[$row['taskid']][] = $row;
}
return $retval;
@@ -67,9 +69,9 @@ class TaskmanagerCallback
* table if appropriate.
*
* @param array $callback entry from the callback table (cbfunction + taskid + args)
- * @param array $status status of the task as returned by the taskmanager. If NULL it will be queried.
+ * @param ?array $status status of the task as returned by the taskmanager. If NULL it will be queried.
*/
- public static function handleCallback($callback, $status = NULL)
+ public static function handleCallback(array $callback, array $status = NULL): void
{
if (is_null($status))
$status = Taskmanager::status($callback['taskid']);
@@ -82,12 +84,13 @@ class TaskmanagerCallback
}
}
if (Taskmanager::isFinished($status)) {
+ Taskmanager::release($status);
$func = array('TaskmanagerCallback', preg_replace('/\W/', '', $callback['cbfunction']));
if (!call_user_func_array('method_exists', $func)) {
Eventlog::warning("handleCallback: Callback {$callback['cbfunction']} doesn't exist.");
} else {
if (empty($callback['args']))
- call_user_func($func, $status);
+ call_user_func($func, $status, null);
else
call_user_func($func, $status, unserialize($callback['args']));
}
@@ -99,7 +102,7 @@ class TaskmanagerCallback
/**
* Result of trying to (re)launch ldadp.
*/
- public static function ldadpStartup($task)
+ public static function ldadpStartup(array $task)
{
if (Taskmanager::isFailed($task)) {
if (!isset($task['data']['messages'])) {
@@ -112,14 +115,14 @@ class TaskmanagerCallback
/**
* Result of restoring the server configuration
*/
- public static function dbRestored($task)
+ public static function dbRestored(array $task)
{
if (!Taskmanager::isFailed($task)) {
EventLog::info('Configuration backup restored.');
}
}
- public static function adConfigCreate($task)
+ public static function adConfigCreate(array $task)
{
if (Taskmanager::isFailed($task))
EventLog::warning("Could not generate Active Directory configuration", $task['data']['error']);
@@ -131,7 +134,7 @@ class TaskmanagerCallback
* @param array $task task obj
* @param array $args has keys 'moduleid' and optionally 'deleteOnError' and 'tmpTgz'
*/
- public static function cbConfModCreated($task, $args)
+ public static function cbConfModCreated(array $task, array $args)
{
$mod = Module::get('sysconfig');
if ($mod === false)
@@ -150,7 +153,7 @@ class TaskmanagerCallback
* @param array $task task obj
* @param array $args has keys 'configid' and optionally 'deleteOnError'
*/
- public static function cbConfTgzCreated($task, $args)
+ public static function cbConfTgzCreated(array $task, array $args)
{
$mod = Module::get('sysconfig');
if ($mod === false)
@@ -163,7 +166,7 @@ class TaskmanagerCallback
}
}
- public static function manualMount($task, $args)
+ public static function manualMount(array $task, $args)
{
if (!isset($task['data']['exitCode']))
return;
@@ -180,11 +183,10 @@ class TaskmanagerCallback
unset($data['storetype']);
Property::setVmStoreConfig($data);
}
- return;
}
}
- public static function mlGotList($task, $args)
+ public static function mlGotList(array $task, $args)
{
$mod = Module::get('minilinux');
if ($mod === false)
@@ -193,7 +195,7 @@ class TaskmanagerCallback
MiniLinux::listDownloadCallback($task, $args);
}
- public static function mlGotLinux($task, $args)
+ public static function mlGotLinux(array $task, $args)
{
$mod = Module::get('minilinux');
if ($mod === false)
@@ -202,7 +204,7 @@ class TaskmanagerCallback
MiniLinux::linuxDownloadCallback($task, $args);
}
- public static function rbcConnCheck($task, $args)
+ public static function rbcConnCheck(array $task, $args)
{
$mod = Module::get('rebootcontrol');
if ($mod === false)
@@ -211,4 +213,31 @@ class TaskmanagerCallback
RebootControl::connectionCheckCallback($task, $args);
}
+ public static function ipxeVersionSet(array $task)
+ {
+ $mod = Module::get('serversetup');
+ if ($mod === false)
+ return;
+ $mod->activate(1, false);
+ IPxeBuilder::setIPxeVersionCallback($task);
+ }
+
+ public static function ipxeCompileDone(array $task)
+ {
+ $mod = Module::get('serversetup');
+ if ($mod === false)
+ return;
+ $mod->activate(1, false);
+ IPxeBuilder::compileCompleteCallback($task);
+ }
+
+ public static function ssUpgradable(array $task): void
+ {
+ $mod = Module::get('systemstatus');
+ if ($mod === false)
+ return;
+ $mod->activate(1, false);
+ SystemStatus::setUpgradableData($task);
+ }
+
}