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); if (!$saved) {echo "ERROR"; return;}; $current = loadCurrentPCIData(); $pciaddr = $_POST['pciid']; $action = $_POST['action']??''; switch($action) { case "all": $pciaddrs = explode(";", $pciaddr); foreach ($pciaddrs as $pciaddraction){ if ($pciaddraction == "") continue; $values = explode(',',$pciaddraction); process_action($values[0],$values[1]); } 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 = ($libvirt_running == "yes") ? 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"; ?>