From 07b7dcd4d08be00541dcbd4a92a02f267a0b162c Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 17 Jan 2019 14:41:44 +0100 Subject: [serversetup-bwlp] Make ipxe trigger a hook for modularity --- inc/trigger.inc.php | 24 +++++++++++++++------- .../serversetup-bwlp/hooks/ipxe-update.inc.php | 10 +++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 modules-available/serversetup-bwlp/hooks/ipxe-update.inc.php diff --git a/inc/trigger.inc.php b/inc/trigger.inc.php index 93f57236..8a130aca 100644 --- a/inc/trigger.inc.php +++ b/inc/trigger.inc.php @@ -20,13 +20,23 @@ class Trigger */ public static function ipxe() { - $data = Property::getBootMenu(); - $data['ipaddress'] = Property::getServerIp(); - $task = Taskmanager::submit('CompileIPxe', $data); - if (!isset($task['id'])) - return false; - Property::set('ipxe-task-id', $task['id'], 15); - return $task['id']; + $hooks = Hook::load('ipxe-update'); + $taskId = false; + foreach ($hooks as $hook) { + $ret = (function($taskId) use ($hook) { + $ret = include_once($hook->file); + if (is_string($ret)) + return $ret; + return isset($taskId) ? $taskId : false; + })($taskId); + if (is_string($ret)) { + $taskId = $ret; + } elseif (is_array($ret) && isset($ret['id'])) { + $taskId = $ret['id']; + } + } + Property::set('ipxe-task-id', $taskId, 15); + return $taskId; } /** diff --git a/modules-available/serversetup-bwlp/hooks/ipxe-update.inc.php b/modules-available/serversetup-bwlp/hooks/ipxe-update.inc.php new file mode 100644 index 00000000..166e80a8 --- /dev/null +++ b/modules-available/serversetup-bwlp/hooks/ipxe-update.inc.php @@ -0,0 +1,10 @@ + Property::getServerIp() +]; +$task = Taskmanager::submit('CompileIPxeNew', $data); +if (!isset($task['id'])) +return false; +Property::set('ipxe-task-id', $task['id'], 15); +return $task['id']; \ No newline at end of file -- cgit v1.2.3-55-g7522