require_once('/usr/local/emhttp/webGui/include/Helpers.php'); require_once('/usr/local/emhttp/plugins/dynamix.vm.manager/classes/libvirt.php'); require_once('/usr/local/emhttp/plugins/dynamix.vm.manager/classes/libvirt_helpers.php'); $strSelectedTemplate = array_keys($arrAllTemplates)[1]; if (!empty($_GET['template']) && !(empty($arrAllTemplates[$_GET['template']]))) { $strSelectedTemplate = $_GET['template']; } $arrLoad = [ 'name' => '', 'icon' => $arrAllTemplates[$strSelectedTemplate]['icon'], 'autostart' => false, 'form' => $arrAllTemplates[$strSelectedTemplate]['form'] ]; $strIconURL = '/plugins/dynamix.vm.manager/templates/images/'.$arrLoad['icon']; if (!empty($_GET['uuid'])) { // Edit VM mode $res = $lv->domain_get_domain_by_uuid($_GET['uuid']); if ($res === false) { echo "
Invalid VM to edit.
"; return; } $strIcon = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@icon'); if (!empty($strIcon)) { if (is_file($strIcon)) { $strIconURL = $strIcon; } else if (is_file('/usr/local/emhttp/plugins/dynamix.vm.manager/templates/images/' . $strIcon)) { $strIconURL = '/plugins/dynamix.vm.manager/templates/images/' . $strIcon; } } else { $strIcon = ($lv->domain_get_clock_offset($res) == 'localtime' ? 'windows.png' : 'linux.png'); $strIconURL = '/plugins/dynamix.vm.manager/templates/images/' . $strIcon; } $arrLoad = [ 'name' => $lv->domain_get_name($res), 'icon' => $strIcon, 'autostart' => $lv->domain_get_autostart($res), 'form' => $arrAllTemplates[$strSelectedTemplate]['form'] ]; if (empty($_GET['template'])) { $strTemplateOS = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@os'); if (empty($strTemplateOS)) { $strTemplate = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@name'); if (!empty($strTemplate)) { $strSelectedTemplate = $strTemplate; } } else { // Legacy VM support for <6.2 but need it going forward too foreach ($arrAllTemplates as $strName => $arrTemplate) { if (!empty($arrTemplate) && !empty($arrTemplate['os']) && $arrTemplate['os'] == $strTemplateOS) { $strSelectedTemplate = $strName; break; } } } if (empty($strSelectedTemplate) || empty($arrAllTemplates[$strSelectedTemplate])) { $strSelectedTemplate = 'Custom'; } } $arrLoad['form'] = $arrAllTemplates[$strSelectedTemplate]['form']; } ?>