diff options
Diffstat (limited to 'inc/taskmanagercallback.inc.php')
-rw-r--r-- | inc/taskmanagercallback.inc.php | 78 |
1 files changed, 50 insertions, 28 deletions
diff --git a/inc/taskmanagercallback.inc.php b/inc/taskmanagercallback.inc.php index 0c4b116a..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) @@ -159,11 +162,11 @@ class TaskmanagerCallback if (Taskmanager::isFailed($task)) { ConfigTgz::generateFailed($task, $args); } else { - ConfigTgz::generateSucceeded($args); + ConfigTgz::generateSucceeded($task, $args); } } - 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,20 +204,40 @@ class TaskmanagerCallback MiniLinux::linuxDownloadCallback($task, $args); } - public static function uploadimg($task) + public static function rbcConnCheck(array $task, $args) { - //$string=var_export($task, true); - //file_put_contents('teste.txt',$string); - if (Taskmanager::isFailed($task)){ - EventLog::warning("ApiUpload failed: ", $task['data']['messages']); - } - $ret = Database::exec("UPDATE upload SET is_ready = :ready," . - " path = :path WHERE token = :token", array( - "ready"=>true, - "path"=>$task['data']['path'], - "token"=>$task['data']['token'] - )); + $mod = Module::get('rebootcontrol'); + if ($mod === false) + return; + $mod->activate(1, false); + 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); + } } |