summaryrefslogtreecommitdiffstats
path: root/modules-available/rebootcontrol/inc/rebootqueries.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/rebootcontrol/inc/rebootqueries.inc.php')
-rw-r--r--modules-available/rebootcontrol/inc/rebootqueries.inc.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules-available/rebootcontrol/inc/rebootqueries.inc.php b/modules-available/rebootcontrol/inc/rebootqueries.inc.php
new file mode 100644
index 00000000..df3c13d8
--- /dev/null
+++ b/modules-available/rebootcontrol/inc/rebootqueries.inc.php
@@ -0,0 +1,44 @@
+<?php
+
+class RebootQueries
+{
+
+ // Get Client+IP+CurrentVM+CurrentUser+Location to fill the table
+ public static function getMachineTable($locationId) {
+ if ($locationId === 0) {
+ $where = 'machine.locationid IS NULL';
+ } else {
+ $where = 'machine.locationid = :locationid';
+ }
+ $leftJoin = '';
+ $sessionField = 'machine.currentsession';
+ if (Module::get('dozmod') !== false) {
+ // SELECT lectureid, displayname FROM sat.lecture WHERE lectureid = :lectureid
+ $leftJoin = 'LEFT JOIN sat.lecture ON (lecture.lectureid = machine.currentsession)';
+ $sessionField = 'IFNULL(lecture.displayname, machine.currentsession) AS currentsession';
+ }
+ $res = Database::simpleQuery("
+ SELECT machine.machineuuid, machine.hostname, machine.clientip,
+ IF(machine.lastboot = 0 OR UNIX_TIMESTAMP() - machine.lastseen >= 600, 0, 1) AS status,
+ $sessionField, machine.currentuser, machine.locationid
+ FROM machine
+ $leftJoin
+ WHERE " . $where, array('locationid' => $locationId));
+ return $res->fetchAll(PDO::FETCH_ASSOC);
+ }
+
+ /**
+ * Get machines by list of UUIDs
+ * @param string[] $list list of system UUIDs
+ * @return array list of machines with machineuuid, clientip and locationid
+ */
+ public static function getMachinesByUuid($list)
+ {
+ if (empty($list))
+ return array();
+ $qs = '?' . str_repeat(',?', count($list) - 1);
+ $res = Database::simpleQuery("SELECT machineuuid, clientip, locationid FROM machine WHERE machineuuid IN ($qs)", $list);
+ return $res->fetchAll(PDO::FETCH_ASSOC);
+ }
+
+} \ No newline at end of file