summaryrefslogtreecommitdiffstats
path: root/modules-available/rebootcontrol
diff options
context:
space:
mode:
authorSimon Rettberg2017-11-03 13:20:19 +0100
committerSimon Rettberg2017-11-03 13:20:19 +0100
commitab8046f57ad7e42dfd9faf596fc5a3045d9c27a1 (patch)
treed4be35c9beb917fb0e10b4706c9a0a048d8c2313 /modules-available/rebootcontrol
parent[inc/module] Fix sorting bug, show errors in debug mode, add optional param t... (diff)
downloadslx-admin-ab8046f57ad7e42dfd9faf596fc5a3045d9c27a1.tar.gz
slx-admin-ab8046f57ad7e42dfd9faf596fc5a3045d9c27a1.tar.xz
slx-admin-ab8046f57ad7e42dfd9faf596fc5a3045d9c27a1.zip
[rebootcontrol] Move reboot function to helper class
Diffstat (limited to 'modules-available/rebootcontrol')
-rw-r--r--modules-available/rebootcontrol/inc/rebootcontrol.inc.php30
-rw-r--r--modules-available/rebootcontrol/page.inc.php9
2 files changed, 31 insertions, 8 deletions
diff --git a/modules-available/rebootcontrol/inc/rebootcontrol.inc.php b/modules-available/rebootcontrol/inc/rebootcontrol.inc.php
new file mode 100644
index 00000000..789552cd
--- /dev/null
+++ b/modules-available/rebootcontrol/inc/rebootcontrol.inc.php
@@ -0,0 +1,30 @@
+<?php
+
+class RebootControl
+{
+
+ /**
+ * @param string[] $uuids List of machineuuids to reboot
+ * @return false|array task struct for the reboot job
+ */
+ public static function reboot($uuids)
+ {
+ $list = RebootQueries::getMachinesByUuid($uuids);
+ if (empty($list))
+ return false;
+ return self::execute($list, false, 0, 0);
+ }
+
+ public static function execute($list, $shutdown, $minutes, $locationId)
+ {
+ return Taskmanager::submit("RemoteReboot", array(
+ "clients" => $list,
+ "shutdown" => $shutdown,
+ "minutes" => $minutes,
+ "locationId" => $locationId,
+ "sshkey" => SSHKey::getPrivateKey(),
+ "port" => 9922, // Hard-coded, must match mgmt-sshd module
+ ));
+ }
+
+} \ No newline at end of file
diff --git a/modules-available/rebootcontrol/page.inc.php b/modules-available/rebootcontrol/page.inc.php
index d7083528..db7882d9 100644
--- a/modules-available/rebootcontrol/page.inc.php
+++ b/modules-available/rebootcontrol/page.inc.php
@@ -45,14 +45,7 @@ class Page_RebootControl extends Page
// TODO: we could also check if the locationid is equal or a sublocation of the $locationId from above
// (this would be more of a sanity check though, or does the UI allow selecting machines from different locations)
- $task = Taskmanager::submit("RemoteReboot", array(
- "clients" => $list,
- "shutdown" => $shutdown,
- "minutes" => $minutes,
- "locationId" => $locationId,
- "sshkey" => $privKey,
- "port" => 22, // TODO: Get from ssh config
- ));
+ $task = RebootControl::execute($list, $shutdown, $minutes, $locationId);
Util::redirect("?do=rebootcontrol&taskid=".$task["id"]);
}