From 694fd52ecdb7a2edb095beaea03cea6fcc56ab71 Mon Sep 17 00:00:00 2001 From: bergware Date: Fri, 9 Mar 2018 18:03:29 +0100 Subject: [PATCH] Start all VMs in the order given by list. Stop all VMs in the reversed order --- plugins/dynamix.vm.manager/include/VMManager.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/dynamix.vm.manager/include/VMManager.php b/plugins/dynamix.vm.manager/include/VMManager.php index ef949b2f8..a34c8bb5f 100644 --- a/plugins/dynamix.vm.manager/include/VMManager.php +++ b/plugins/dynamix.vm.manager/include/VMManager.php @@ -15,15 +15,26 @@ $docroot = $docroot ?? $_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp'; require_once "$docroot/plugins/dynamix.vm.manager/include/libvirt_helpers.php"; +$act = $_POST['action']; +$txt = '/boot/config/plugins/dynamix.vm.manager/userprefs.txt'; $vms = $lv->get_domains() ?: []; +if (file_exists($txt)) { + $prefs = parse_ini_file($txt); $sort = []; + foreach ($vms as $vm) $sort[] = $prefs[$vm] ?? 999; + array_multisort($sort,SORT_NUMERIC,$vms); +} else { + natsort($vms); +} +if ($act=='stop') $vms = array_reverse($vms); + foreach ($vms as $vm) { $res = $lv->get_domain_by_name($vm); $uuid = $lv->domain_get_uuid($res); $domName = $lv->domain_get_name_by_uuid($uuid); $dom = $lv->domain_get_info($res); $state = $lv->domain_state_translate($dom['state']); - switch ($_POST['action']) { + switch ($act) { case 'stop': if ($state!='running') continue; $result = $lv->domain_shutdown($domName) ? ['success'=>true, 'state'=>$lv->domain_get_state($domName)] : ['error'=>$lv->get_last_error()];