Add VM names to confirmation.

This commit is contained in:
SimonFair
2025-04-18 08:39:39 +01:00
parent 6baa22be89
commit c04eac0468
2 changed files with 84 additions and 26 deletions

View File

@@ -14,6 +14,7 @@
<?
$docroot ??= ($_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp');
require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/plugins/dynamix.vm.manager/include/libvirt_helpers.php";
function process_action($pciaddr,$action)
@@ -30,6 +31,20 @@ function process_action($pciaddr,$action)
}
}
function build_pci_vm_map() {
global $lv;
$pci_device_changes = comparePCIData();
$vms = $lv->get_domains();
foreach ($vms as $vm) {
$vmpciids = $lv->domain_get_vm_pciids($vm);
foreach($vmpciids as $pciid => $pcidetail) {
if (isset($pci_device_changes["0000:".$pciid])) {
$pcitovm["0000:".$pciid][$vm] = $vm;
}
}
}
return $pcitovm;
}
$savedfile = "/boot/config/savedpcidata.json";
$saved = loadSavedData($savedfile);
@@ -38,15 +53,43 @@ $current = loadCurrentPCIData();
$pciaddr = $_POST['pciid'];
$action = $_POST['action']??'';
if ($action == 'all') {
switch($action) {
case "all":
$pciaddrs = explode(";", $pciaddr);
foreach ($pciaddrs as $pciaddraction){
$values = explode(',',$pciaddraction);
process_action($values[0],$values[1]);
}
} else {
process_action($pciaddr,$action);
file_put_contents($savedfile,json_encode($saved,JSON_PRETTY_PRINT));
break;
case "removed":
case "added":
case "changed":
process_action($pciaddr,$action);
file_put_contents($savedfile,json_encode($saved,JSON_PRETTY_PRINT));
break;
case "getvm":
$pcimap = build_pci_vm_map();
$pciaddrs = explode(";", $pciaddr);
$vmact =[];
foreach ($pciaddrs as $pcidev) {
if ($pcidev == "") continue;
if (strpos($pcidev,",")) {
$values = explode(',',$pcidev);
$pcidev = $values[0];
}
foreach ($pcimap[$pcidev] as $key => $vmname) {
$vmact[$vmname]= $vmname;
}
}
$ret = implode(";",$vmact);
echo $ret;
exit;
}
file_put_contents($savedfile,json_encode($saved,JSON_PRETTY_PRINT));
echo "OK";
?>