mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-03 10:25:16 +00:00
domain: Convert os.type to VIR_DOMAIN_OSTYPE enum
This commit is contained in:
parent
d0440e3269
commit
5f7c599456
@ -593,23 +593,16 @@ virCapabilitiesSupportsGuestArch(virCapsPtr caps,
|
||||
/**
|
||||
* virCapabilitiesSupportsGuestOSType:
|
||||
* @caps: capabilities to query
|
||||
* @ostype: OS type to search for (eg 'hvm', 'xen')
|
||||
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
|
||||
*
|
||||
* Returns non-zero if the capabilities support the
|
||||
* requested operating system type
|
||||
*/
|
||||
extern int
|
||||
virCapabilitiesSupportsGuestOSType(virCapsPtr caps,
|
||||
const char *ostypestr)
|
||||
int ostype)
|
||||
{
|
||||
size_t i;
|
||||
int ostype;
|
||||
|
||||
if ((ostype = virDomainOSTypeFromString(ostypestr)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown OS type '%s'"), ostypestr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < caps->nguests; i++) {
|
||||
if (caps->guests[i]->ostype == ostype)
|
||||
@ -622,7 +615,7 @@ virCapabilitiesSupportsGuestOSType(virCapsPtr caps,
|
||||
/**
|
||||
* virCapabilitiesSupportsGuestOSTypeArch:
|
||||
* @caps: capabilities to query
|
||||
* @ostype: OS type to search for (eg 'hvm', 'xen')
|
||||
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
|
||||
* @arch: Architecture to search for
|
||||
*
|
||||
* Returns non-zero if the capabilities support the
|
||||
@ -630,17 +623,10 @@ virCapabilitiesSupportsGuestOSType(virCapsPtr caps,
|
||||
*/
|
||||
extern int
|
||||
virCapabilitiesSupportsGuestOSTypeArch(virCapsPtr caps,
|
||||
const char *ostypestr,
|
||||
int ostype,
|
||||
virArch arch)
|
||||
{
|
||||
size_t i;
|
||||
int ostype;
|
||||
|
||||
if ((ostype = virDomainOSTypeFromString(ostypestr)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown OS type '%s'"), ostypestr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < caps->nguests; i++) {
|
||||
if (caps->guests[i]->ostype == ostype &&
|
||||
@ -654,24 +640,17 @@ virCapabilitiesSupportsGuestOSTypeArch(virCapsPtr caps,
|
||||
/**
|
||||
* virCapabilitiesDefaultGuestArch:
|
||||
* @caps: capabilities to query
|
||||
* @ostype: OS type to search for
|
||||
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
|
||||
*
|
||||
* Returns the first architecture able to run the
|
||||
* requested operating system type
|
||||
*/
|
||||
extern virArch
|
||||
virCapabilitiesDefaultGuestArch(virCapsPtr caps,
|
||||
const char *ostypestr,
|
||||
int ostype,
|
||||
const char *domain)
|
||||
{
|
||||
size_t i, j;
|
||||
int ostype;
|
||||
|
||||
if ((ostype = virDomainOSTypeFromString(ostypestr)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown OS type '%s'"), ostypestr);
|
||||
return VIR_ARCH_NONE;
|
||||
}
|
||||
|
||||
/* First try to find one matching host arch */
|
||||
for (i = 0; i < caps->nguests; i++) {
|
||||
@ -700,7 +679,7 @@ virCapabilitiesDefaultGuestArch(virCapsPtr caps,
|
||||
/**
|
||||
* virCapabilitiesDefaultGuestMachine:
|
||||
* @caps: capabilities to query
|
||||
* @ostype: OS type to search for
|
||||
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
|
||||
* @arch: architecture to search for
|
||||
* @domain: domain type to search for
|
||||
*
|
||||
@ -710,18 +689,11 @@ virCapabilitiesDefaultGuestArch(virCapsPtr caps,
|
||||
*/
|
||||
extern const char *
|
||||
virCapabilitiesDefaultGuestMachine(virCapsPtr caps,
|
||||
const char *ostypestr,
|
||||
int ostype,
|
||||
virArch arch,
|
||||
const char *domain)
|
||||
{
|
||||
size_t i;
|
||||
int ostype;
|
||||
|
||||
if ((ostype = virDomainOSTypeFromString(ostypestr)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown OS type '%s'"), ostypestr);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < caps->nguests; i++) {
|
||||
virCapsGuestPtr guest = caps->guests[i];
|
||||
@ -753,7 +725,7 @@ virCapabilitiesDefaultGuestMachine(virCapsPtr caps,
|
||||
/**
|
||||
* virCapabilitiesDefaultGuestEmulator:
|
||||
* @caps: capabilities to query
|
||||
* @ostype: OS type to search for ('xen', 'hvm')
|
||||
* @ostype: guest operating system type, of enum VIR_DOMAIN_OSTYPE
|
||||
* @arch: architecture to search for
|
||||
* @domain: domain type ('xen', 'qemu', 'kvm')
|
||||
*
|
||||
@ -763,18 +735,11 @@ virCapabilitiesDefaultGuestMachine(virCapsPtr caps,
|
||||
*/
|
||||
extern const char *
|
||||
virCapabilitiesDefaultGuestEmulator(virCapsPtr caps,
|
||||
const char *ostypestr,
|
||||
int ostype,
|
||||
virArch arch,
|
||||
const char *domain)
|
||||
{
|
||||
size_t i, j;
|
||||
int ostype;
|
||||
|
||||
if ((ostype = virDomainOSTypeFromString(ostypestr)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown OS type '%s'"), ostypestr);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < caps->nguests; i++) {
|
||||
char *emulator;
|
||||
|
@ -267,10 +267,10 @@ virCapabilitiesSupportsGuestArch(virCapsPtr caps,
|
||||
virArch arch);
|
||||
extern int
|
||||
virCapabilitiesSupportsGuestOSType(virCapsPtr caps,
|
||||
const char *ostype);
|
||||
int ostype);
|
||||
extern int
|
||||
virCapabilitiesSupportsGuestOSTypeArch(virCapsPtr caps,
|
||||
const char *ostype,
|
||||
int ostype,
|
||||
virArch arch);
|
||||
|
||||
void
|
||||
@ -279,16 +279,16 @@ virCapabilitiesClearHostNUMACellCPUTopology(virCapsHostNUMACellCPUPtr cpu,
|
||||
|
||||
extern virArch
|
||||
virCapabilitiesDefaultGuestArch(virCapsPtr caps,
|
||||
const char *ostype,
|
||||
int ostype,
|
||||
const char *domain);
|
||||
extern const char *
|
||||
virCapabilitiesDefaultGuestMachine(virCapsPtr caps,
|
||||
const char *ostype,
|
||||
int ostype,
|
||||
virArch arch,
|
||||
const char *domain);
|
||||
extern const char *
|
||||
virCapabilitiesDefaultGuestEmulator(virCapsPtr caps,
|
||||
const char *ostype,
|
||||
int ostype,
|
||||
virArch arch,
|
||||
const char *domain);
|
||||
|
||||
|
@ -859,7 +859,7 @@ virDomainAuditStart(virDomainObjPtr vm, const char *reason, bool success)
|
||||
if (i == 0 &&
|
||||
(vm->def->consoles[i]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL ||
|
||||
vm->def->consoles[i]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE) &&
|
||||
STREQ_NULLABLE(vm->def->os.type, "hvm"))
|
||||
vm->def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
continue;
|
||||
|
||||
virDomainAuditChardev(vm, NULL, vm->def->consoles[i], "start", true);
|
||||
|
@ -2276,7 +2276,6 @@ void virDomainDefFree(virDomainDefPtr def)
|
||||
VIR_FREE(def->idmap.uidmap);
|
||||
VIR_FREE(def->idmap.gidmap);
|
||||
|
||||
VIR_FREE(def->os.type);
|
||||
VIR_FREE(def->os.machine);
|
||||
VIR_FREE(def->os.init);
|
||||
for (i = 0; def->os.initargv && def->os.initargv[i]; i++)
|
||||
@ -3065,7 +3064,7 @@ virDomainDeviceInfoIterateInternal(virDomainDefPtr def,
|
||||
i == 0 &&
|
||||
(def->consoles[i]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL ||
|
||||
def->consoles[i]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE) &&
|
||||
STREQ_NULLABLE(def->os.type, "hvm"))
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
continue;
|
||||
device.data.chr = def->consoles[i];
|
||||
if (cb(def, &device, &def->consoles[i]->info, opaque) < 0)
|
||||
@ -3299,14 +3298,8 @@ virDomainDefPostParseInternal(virDomainDefPtr def,
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (!def->os.type) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("hypervisor type must be specified"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* verify init path for container based domains */
|
||||
if (STREQ(def->os.type, "exe") && !def->os.init) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_EXE && !def->os.init) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("init binary must be specified"));
|
||||
return -1;
|
||||
@ -3384,7 +3377,7 @@ virDomainDefPostParseInternal(virDomainDefPtr def,
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (def->nconsoles > 0 && STREQ(def->os.type, "hvm") &&
|
||||
if (def->nconsoles > 0 && def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
|
||||
(def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL ||
|
||||
def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE)) {
|
||||
|
||||
@ -9451,7 +9444,7 @@ virDomainInputDefParseXML(const virDomainDef *dom,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (STREQ(dom->os.type, "hvm")) {
|
||||
if (dom->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (def->bus == VIR_DOMAIN_INPUT_BUS_PS2 &&
|
||||
def->type != VIR_DOMAIN_INPUT_TYPE_MOUSE &&
|
||||
def->type != VIR_DOMAIN_INPUT_TYPE_KBD) {
|
||||
@ -9466,7 +9459,7 @@ virDomainInputDefParseXML(const virDomainDef *dom,
|
||||
bus);
|
||||
goto error;
|
||||
}
|
||||
} else if (STREQ(dom->os.type, "xen")) {
|
||||
} else if (dom->os.type == VIR_DOMAIN_OSTYPE_XEN) {
|
||||
if (def->bus != VIR_DOMAIN_INPUT_BUS_XEN) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unsupported input bus %s"),
|
||||
@ -9506,7 +9499,7 @@ virDomainInputDefParseXML(const virDomainDef *dom,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (STREQ(dom->os.type, "hvm")) {
|
||||
if (dom->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if ((def->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
|
||||
def->type == VIR_DOMAIN_INPUT_TYPE_KBD) &&
|
||||
(ARCH_IS_X86(dom->os.arch) || dom->os.arch == VIR_ARCH_NONE)) {
|
||||
@ -9514,7 +9507,7 @@ virDomainInputDefParseXML(const virDomainDef *dom,
|
||||
} else {
|
||||
def->bus = VIR_DOMAIN_INPUT_BUS_USB;
|
||||
}
|
||||
} else if (STREQ(dom->os.type, "xen")) {
|
||||
} else if (dom->os.type == VIR_DOMAIN_OSTYPE_XEN) {
|
||||
def->bus = VIR_DOMAIN_INPUT_BUS_XEN;
|
||||
} else {
|
||||
if ((dom->virtType == VIR_DOMAIN_VIRT_PARALLELS))
|
||||
@ -10989,9 +10982,8 @@ virDomainVideoDefaultType(const virDomainDef *def)
|
||||
case VIR_DOMAIN_VIRT_KQEMU:
|
||||
case VIR_DOMAIN_VIRT_KVM:
|
||||
case VIR_DOMAIN_VIRT_XEN:
|
||||
if (def->os.type &&
|
||||
(STREQ(def->os.type, "xen") ||
|
||||
STREQ(def->os.type, "linux")))
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_LINUX)
|
||||
return VIR_DOMAIN_VIDEO_TYPE_XEN;
|
||||
else if ARCH_IS_PPC64(def->os.arch)
|
||||
return VIR_DOMAIN_VIDEO_TYPE_VGA;
|
||||
@ -11005,15 +10997,10 @@ virDomainVideoDefaultType(const virDomainDef *def)
|
||||
return VIR_DOMAIN_VIDEO_TYPE_VMVGA;
|
||||
|
||||
case VIR_DOMAIN_VIRT_PARALLELS:
|
||||
if (def->os.type) {
|
||||
if (STREQ(def->os.type, "hvm"))
|
||||
return VIR_DOMAIN_VIDEO_TYPE_VGA;
|
||||
else
|
||||
return VIR_DOMAIN_VIDEO_TYPE_PARALLELS;
|
||||
} else {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
return VIR_DOMAIN_VIDEO_TYPE_VGA;
|
||||
}
|
||||
|
||||
else
|
||||
return VIR_DOMAIN_VIDEO_TYPE_PARALLELS;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
@ -12992,7 +12979,8 @@ virDomainDefGetDefaultEmulator(virDomainDefPtr def,
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("no emulator for domain %s os type %s "
|
||||
"on architecture %s"),
|
||||
type, def->os.type, virArchToString(def->os.arch));
|
||||
type, virDomainOSTypeToString(def->os.type),
|
||||
virArchToString(def->os.arch));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -14640,27 +14628,32 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
def->os.bootloader = virXPathString("string(./bootloader)", ctxt);
|
||||
def->os.bootloaderArgs = virXPathString("string(./bootloader_args)", ctxt);
|
||||
|
||||
def->os.type = virXPathString("string(./os/type[1])", ctxt);
|
||||
if (!def->os.type) {
|
||||
tmp = virXPathString("string(./os/type[1])", ctxt);
|
||||
if (!tmp) {
|
||||
if (def->os.bootloader) {
|
||||
if (VIR_STRDUP(def->os.type, "xen") < 0)
|
||||
goto error;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_XEN;
|
||||
} else {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("an os <type> must be specified"));
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
if ((def->os.type = virDomainOSTypeFromString(tmp)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown OS type '%s'"), tmp);
|
||||
goto error;
|
||||
}
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
|
||||
/*
|
||||
* HACK: For xen driver we previously used bogus 'linux' as the
|
||||
* os type for paravirt, whereas capabilities declare it to
|
||||
* be 'xen'. So we accept the former and convert
|
||||
*/
|
||||
if (STREQ(def->os.type, "linux") &&
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_LINUX &&
|
||||
def->virtType == VIR_DOMAIN_VIRT_XEN) {
|
||||
VIR_FREE(def->os.type);
|
||||
if (VIR_STRDUP(def->os.type, "xen") < 0)
|
||||
goto error;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_XEN;
|
||||
}
|
||||
|
||||
tmp = virXPathString("string(./os/type[1]/@arch)", ctxt);
|
||||
@ -14678,7 +14671,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
if (!virCapabilitiesSupportsGuestOSType(caps, def->os.type)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("no support found for os <type> '%s'"),
|
||||
def->os.type);
|
||||
virDomainOSTypeToString(def->os.type));
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -14695,7 +14688,8 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
def->os.arch)) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("No os type '%s' available for arch '%s'"),
|
||||
def->os.type, virArchToString(def->os.arch));
|
||||
virDomainOSTypeToString(def->os.type),
|
||||
virArchToString(def->os.arch));
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
@ -14706,7 +14700,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
if (!def->os.arch) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("no supported architecture for os type '%s'"),
|
||||
def->os.type);
|
||||
virDomainOSTypeToString(def->os.type));
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
@ -14731,7 +14725,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
* - An init script (exe)
|
||||
*/
|
||||
|
||||
if (STREQ(def->os.type, "exe")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_EXE) {
|
||||
def->os.init = virXPathString("string(./os/init[1])", ctxt);
|
||||
def->os.cmdline = virXPathString("string(./os/cmdline[1])", ctxt);
|
||||
|
||||
@ -14755,9 +14749,9 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
VIR_FREE(nodes);
|
||||
}
|
||||
|
||||
if (STREQ(def->os.type, "xen") ||
|
||||
STREQ(def->os.type, "hvm") ||
|
||||
STREQ(def->os.type, "uml")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM ||
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_UML) {
|
||||
xmlNodePtr loader_node;
|
||||
|
||||
def->os.kernel = virXPathString("string(./os/kernel[1])", ctxt);
|
||||
@ -14777,7 +14771,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
}
|
||||
}
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (virDomainDefParseBootXML(ctxt, def) < 0)
|
||||
goto error;
|
||||
if (!(bootHash = virHashCreate(5, NULL)))
|
||||
@ -15055,15 +15049,15 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
/* With QEMU / KVM / Xen graphics, mouse + PS/2 is implicit
|
||||
* with graphics, so don't store it.
|
||||
* XXX will this be true for other virt types ? */
|
||||
if ((STREQ(def->os.type, "hvm") &&
|
||||
if ((def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
|
||||
input->bus == VIR_DOMAIN_INPUT_BUS_PS2 &&
|
||||
(input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
|
||||
input->type == VIR_DOMAIN_INPUT_TYPE_KBD)) ||
|
||||
(STREQ(def->os.type, "xen") &&
|
||||
(def->os.type == VIR_DOMAIN_OSTYPE_XEN &&
|
||||
input->bus == VIR_DOMAIN_INPUT_BUS_XEN &&
|
||||
(input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
|
||||
input->type == VIR_DOMAIN_INPUT_TYPE_KBD)) ||
|
||||
(STREQ(def->os.type, "exe") &&
|
||||
(def->os.type == VIR_DOMAIN_OSTYPE_EXE &&
|
||||
def->virtType == VIR_DOMAIN_VIRT_PARALLELS &&
|
||||
input->bus == VIR_DOMAIN_INPUT_BUS_PARALLELS &&
|
||||
(input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ||
|
||||
@ -15097,9 +15091,9 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
(ARCH_IS_X86(def->os.arch) || def->os.arch == VIR_ARCH_NONE)) {
|
||||
int input_bus = VIR_DOMAIN_INPUT_BUS_XEN;
|
||||
|
||||
if (STREQ(def->os.type, "hvm"))
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
input_bus = VIR_DOMAIN_INPUT_BUS_PS2;
|
||||
if (STREQ(def->os.type, "exe") &&
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_EXE &&
|
||||
def->virtType == VIR_DOMAIN_VIRT_PARALLELS)
|
||||
input_bus = VIR_DOMAIN_INPUT_BUS_PARALLELS;
|
||||
|
||||
@ -16795,10 +16789,11 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (STRNEQ(src->os.type, dst->os.type)) {
|
||||
if (src->os.type != dst->os.type) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Target domain OS type %s does not match source %s"),
|
||||
dst->os.type, src->os.type);
|
||||
virDomainOSTypeToString(dst->os.type),
|
||||
virDomainOSTypeToString(src->os.type));
|
||||
goto error;
|
||||
}
|
||||
if (src->os.arch != dst->os.arch) {
|
||||
@ -16810,8 +16805,8 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
|
||||
}
|
||||
if (STRNEQ_NULLABLE(src->os.machine, dst->os.machine)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Target domain OS type %s does not match source %s"),
|
||||
dst->os.machine, src->os.machine);
|
||||
_("Target domain machine type %s does not match source %s"),
|
||||
dst->os.machine, src->os.machine);
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -20819,10 +20814,12 @@ virDomainDefFormatInternal(virDomainDefPtr def,
|
||||
* be 'xen'. So we convert to the former for backcompat
|
||||
*/
|
||||
if (def->virtType == VIR_DOMAIN_VIRT_XEN &&
|
||||
STREQ(def->os.type, "xen"))
|
||||
virBufferAsprintf(buf, ">%s</type>\n", "linux");
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_XEN)
|
||||
virBufferAsprintf(buf, ">%s</type>\n",
|
||||
virDomainOSTypeToString(VIR_DOMAIN_OSTYPE_LINUX));
|
||||
else
|
||||
virBufferAsprintf(buf, ">%s</type>\n", def->os.type);
|
||||
virBufferAsprintf(buf, ">%s</type>\n",
|
||||
virDomainOSTypeToString(def->os.type));
|
||||
|
||||
virBufferEscapeString(buf, "<init>%s</init>\n",
|
||||
def->os.init);
|
||||
@ -21194,7 +21191,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
|
||||
/* Back compat, ignore the console element for hvm guests
|
||||
* if it is type == serial
|
||||
*/
|
||||
if (STREQ(def->os.type, "hvm") &&
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
|
||||
(def->consoles[n]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL ||
|
||||
def->consoles[n]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE) &&
|
||||
(n < def->nserials)) {
|
||||
@ -21207,7 +21204,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
|
||||
if (virDomainChrDefFormat(buf, &console, flags) < 0)
|
||||
goto error;
|
||||
}
|
||||
if (STREQ(def->os.type, "hvm") &&
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
|
||||
def->nconsoles == 0 &&
|
||||
def->nserials > 0) {
|
||||
virDomainChrDef console;
|
||||
@ -21240,9 +21237,9 @@ virDomainDefFormatInternal(virDomainDefPtr def,
|
||||
.info = { .alias = NULL },
|
||||
};
|
||||
|
||||
if (STREQ(def->os.type, "hvm"))
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
autoInput.bus = VIR_DOMAIN_INPUT_BUS_PS2;
|
||||
else if (STREQ(def->os.type, "exe") &&
|
||||
else if (def->os.type == VIR_DOMAIN_OSTYPE_EXE &&
|
||||
def->virtType == VIR_DOMAIN_VIRT_PARALLELS)
|
||||
autoInput.bus = VIR_DOMAIN_INPUT_BUS_PARALLELS;
|
||||
else
|
||||
@ -21479,7 +21476,7 @@ virDomainDefCompatibleDevice(virDomainDefPtr def,
|
||||
return 0;
|
||||
|
||||
if (!virDomainDefHasUSB(def) &&
|
||||
STRNEQ(def->os.type, "exe") &&
|
||||
def->os.type != VIR_DOMAIN_OSTYPE_EXE &&
|
||||
virDomainDeviceIsUSB(dev)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("Device configuration is not compatible: "
|
||||
|
@ -1783,7 +1783,7 @@ void virDomainLoaderDefFree(virDomainLoaderDefPtr loader);
|
||||
typedef struct _virDomainOSDef virDomainOSDef;
|
||||
typedef virDomainOSDef *virDomainOSDefPtr;
|
||||
struct _virDomainOSDef {
|
||||
char *type;
|
||||
int type;
|
||||
virArch arch;
|
||||
char *machine;
|
||||
size_t nBootDevs;
|
||||
|
@ -875,9 +875,7 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
|
||||
|
||||
def->vcpus = processorSettingData->data->VirtualQuantity;
|
||||
def->maxvcpus = processorSettingData->data->VirtualQuantity;
|
||||
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
goto cleanup;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
|
||||
/* FIXME: devices section is totally missing */
|
||||
|
||||
|
@ -499,7 +499,7 @@ libxlMakeDomCreateInfo(libxl_ctx *ctx,
|
||||
|
||||
libxl_domain_create_info_init(c_info);
|
||||
|
||||
if (STREQ(def->os.type, "hvm"))
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
c_info->type = LIBXL_DOMAIN_TYPE_HVM;
|
||||
else
|
||||
c_info->type = LIBXL_DOMAIN_TYPE_PV;
|
||||
@ -625,7 +625,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
|
||||
libxl_domain_config *d_config)
|
||||
{
|
||||
libxl_domain_build_info *b_info = &d_config->b_info;
|
||||
int hvm = STREQ(def->os.type, "hvm");
|
||||
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
|
||||
size_t i;
|
||||
|
||||
libxl_domain_build_info_init(b_info);
|
||||
@ -875,7 +875,7 @@ libxlDomainGetEmulatorType(const virDomainDef *def)
|
||||
virCommandPtr cmd = NULL;
|
||||
char *output = NULL;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (def->emulator) {
|
||||
cmd = virCommandNew(def->emulator);
|
||||
|
||||
@ -1070,7 +1070,7 @@ libxlMakeNic(virDomainDefPtr def,
|
||||
virDomainNetDefPtr l_nic,
|
||||
libxl_device_nic *x_nic)
|
||||
{
|
||||
bool ioemu_nic = STREQ(def->os.type, "hvm");
|
||||
bool ioemu_nic = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
|
||||
virDomainNetType actual_type = virDomainNetGetActualType(l_nic);
|
||||
|
||||
/* TODO: Where is mtu stored?
|
||||
@ -1309,7 +1309,7 @@ libxlMakeVfbList(virPortAllocatorPtr graphicsports,
|
||||
* VNC or SDL info must also be set in libxl_domain_build_info
|
||||
* for HVM domains. Use the first vfb device.
|
||||
*/
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
libxl_domain_build_info *b_info = &d_config->b_info;
|
||||
libxl_device_vfb vfb = d_config->vfbs[0];
|
||||
|
||||
|
@ -235,7 +235,7 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_CHR &&
|
||||
dev->data.chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
|
||||
dev->data.chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE &&
|
||||
STRNEQ(def->os.type, "hvm"))
|
||||
def->os.type != VIR_DOMAIN_OSTYPE_HVM)
|
||||
dev->data.chr->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN;
|
||||
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_NET &&
|
||||
@ -278,7 +278,7 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
|
||||
pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN;
|
||||
}
|
||||
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO && STREQ(def->os.type, "hvm")) {
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO && def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
int dm_type = libxlDomainGetEmulatorType(def);
|
||||
|
||||
switch (dev->data.video->type) {
|
||||
@ -315,7 +315,7 @@ libxlDomainDefPostParse(virDomainDefPtr def,
|
||||
{
|
||||
/* Xen PV domains always have a PV console, so add one to the domain config
|
||||
* via post-parse callback if not explicitly specified in the XML. */
|
||||
if (STRNEQ(def->os.type, "hvm") && def->nconsoles == 0) {
|
||||
if (def->os.type != VIR_DOMAIN_OSTYPE_HVM && def->nconsoles == 0) {
|
||||
virDomainChrDefPtr chrdef;
|
||||
|
||||
if (!(chrdef = virDomainChrDefNew()))
|
||||
|
@ -1295,7 +1295,7 @@ libxlDomainGetOSType(virDomainPtr dom)
|
||||
if (virDomainGetOSTypeEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (VIR_STRDUP(type, vm->def->os.type) < 0)
|
||||
if (VIR_STRDUP(type, virDomainOSTypeToString(vm->def->os.type)) < 0)
|
||||
goto cleanup;
|
||||
|
||||
cleanup:
|
||||
|
@ -665,7 +665,7 @@ static char *lxcDomainGetOSType(virDomainPtr dom)
|
||||
if (virDomainGetOSTypeEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (VIR_STRDUP(ret, vm->def->os.type) < 0)
|
||||
if (VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)) < 0)
|
||||
goto cleanup;
|
||||
|
||||
cleanup:
|
||||
|
@ -1025,9 +1025,7 @@ lxcParseConfigString(const char *config)
|
||||
vmdef->vcpus = 1;
|
||||
|
||||
vmdef->nfss = 0;
|
||||
|
||||
if (VIR_STRDUP(vmdef->os.type, "exe") < 0)
|
||||
goto error;
|
||||
vmdef->os.type = VIR_DOMAIN_OSTYPE_EXE;
|
||||
|
||||
if ((value = virConfGetValue(properties, "lxc.arch")) && value->str) {
|
||||
virArch arch = virArchFromString(value->str);
|
||||
|
@ -564,8 +564,7 @@ int openvzLoadDomains(struct openvz_driver *driver)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (VIR_STRDUP(def->os.type, "exe") < 0)
|
||||
goto cleanup;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_EXE;
|
||||
if (VIR_STRDUP(def->os.init, "/sbin/init") < 0)
|
||||
goto cleanup;
|
||||
|
||||
|
@ -92,7 +92,7 @@ openvzDomainDefPostParse(virDomainDefPtr def,
|
||||
void *opaque ATTRIBUTE_UNUSED)
|
||||
{
|
||||
/* fill the init path */
|
||||
if (STREQ(def->os.type, "exe") && !def->os.init) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_EXE && !def->os.init) {
|
||||
if (VIR_STRDUP(def->os.init, "/sbin/init") < 0)
|
||||
return -1;
|
||||
}
|
||||
@ -371,7 +371,7 @@ static char *openvzDomainGetOSType(virDomainPtr dom)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ignore_value(VIR_STRDUP(ret, vm->def->os.type));
|
||||
ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)));
|
||||
|
||||
cleanup:
|
||||
if (vm)
|
||||
|
@ -184,7 +184,7 @@ parallelsDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
|
||||
(dev->data.net->type == VIR_DOMAIN_NET_TYPE_NETWORK ||
|
||||
dev->data.net->type == VIR_DOMAIN_NET_TYPE_BRIDGE) &&
|
||||
!dev->data.net->model &&
|
||||
STREQ(def->os.type, "hvm") &&
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
|
||||
VIR_STRDUP(dev->data.net->model, "e1000") < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -575,7 +575,7 @@ parallelsDomainGetOSType(virDomainPtr domain)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ignore_value(VIR_STRDUP(ret, privdom->def->os.type));
|
||||
ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(privdom->def->os.type)));
|
||||
|
||||
cleanup:
|
||||
if (privdom)
|
||||
@ -712,15 +712,16 @@ parallelsDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int
|
||||
olddom = virDomainObjListFindByUUID(privconn->domains, def->uuid);
|
||||
if (olddom == NULL) {
|
||||
virResetLastError();
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (prlsdkCreateVm(conn, def))
|
||||
goto cleanup;
|
||||
} else if (STREQ(def->os.type, "exe")) {
|
||||
} else if (def->os.type == VIR_DOMAIN_OSTYPE_EXE) {
|
||||
if (prlsdkCreateCt(conn, def))
|
||||
goto cleanup;
|
||||
} else {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("Unsupported OS type: %s"), def->os.type);
|
||||
_("Unsupported OS type: %s"),
|
||||
virDomainOSTypeToString(def->os.type));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
@ -1174,12 +1174,10 @@ prlsdkConvertDomainType(PRL_HANDLE sdkdom, virDomainDefPtr def)
|
||||
|
||||
switch (domainType) {
|
||||
case PVT_VM:
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
return -1;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
break;
|
||||
case PVT_CT:
|
||||
if (VIR_STRDUP(def->os.type, "exe") < 0)
|
||||
return -1;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_EXE;
|
||||
if (VIR_STRDUP(def->os.init, "/sbin/init") < 0)
|
||||
return -1;
|
||||
break;
|
||||
|
@ -37,7 +37,7 @@
|
||||
virReportErrorHelper(VIR_FROM_TEST, VIR_ERR_OPERATION_FAILED, __FILE__, \
|
||||
__FUNCTION__, __LINE__, _("Can't parse prlctl output"))
|
||||
|
||||
# define IS_CT(def) (STREQ_NULLABLE(def->os.type, "exe"))
|
||||
# define IS_CT(def) (def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
|
||||
# define parallelsDomNotFoundError(domain) \
|
||||
do { \
|
||||
|
@ -1720,8 +1720,7 @@ phypDomainAttachDevice(virDomainPtr domain, const char *xml)
|
||||
if (domain_name == NULL)
|
||||
goto cleanup;
|
||||
|
||||
if (VIR_STRDUP(def->os.type, "aix") < 0)
|
||||
goto cleanup;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_AIX;
|
||||
|
||||
dev = virDomainDeviceDefParse(xml, def, phyp_driver->caps, NULL,
|
||||
VIR_DOMAIN_DEF_PARSE_INACTIVE);
|
||||
|
@ -1897,7 +1897,7 @@ int virQEMUCapsGetDefaultVersion(virCapsPtr caps,
|
||||
|
||||
hostarch = virArchFromHost();
|
||||
if ((binary = virCapabilitiesDefaultGuestEmulator(caps,
|
||||
"hvm",
|
||||
VIR_DOMAIN_OSTYPE_HVM,
|
||||
hostarch,
|
||||
"qemu")) == NULL) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
|
@ -8834,8 +8834,8 @@ qemuBuildCommandLine(virConnectPtr conn,
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_UUID))
|
||||
virCommandAddArgList(cmd, "-uuid", uuid, NULL);
|
||||
if (def->virtType == VIR_DOMAIN_VIRT_XEN ||
|
||||
STREQ(def->os.type, "xen") ||
|
||||
STREQ(def->os.type, "linux")) {
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_LINUX) {
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_XEN_DOMID)) {
|
||||
virCommandAddArg(cmd, "-xen-attach");
|
||||
virCommandAddArg(cmd, "-xen-domid");
|
||||
@ -12315,11 +12315,9 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
|
||||
|
||||
if (strstr(path, "xenner")) {
|
||||
def->virtType = VIR_DOMAIN_VIRT_KVM;
|
||||
if (VIR_STRDUP(def->os.type, "xen") < 0)
|
||||
goto error;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_XEN;
|
||||
} else {
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
goto error;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
if (strstr(path, "kvm")) {
|
||||
def->virtType = VIR_DOMAIN_VIRT_KVM;
|
||||
def->features[VIR_DOMAIN_FEATURE_PAE] = VIR_TRISTATE_SWITCH_ON;
|
||||
|
@ -2241,7 +2241,7 @@ static char *qemuDomainGetOSType(virDomainPtr dom) {
|
||||
if (virDomainGetOSTypeEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
ignore_value(VIR_STRDUP(type, vm->def->os.type));
|
||||
ignore_value(VIR_STRDUP(type, virDomainOSTypeToString(vm->def->os.type)));
|
||||
|
||||
cleanup:
|
||||
qemuDomObjEndAPI(&vm);
|
||||
|
@ -1773,7 +1773,7 @@ static char *umlDomainGetOSType(virDomainPtr dom) {
|
||||
if (virDomainGetOSTypeEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (VIR_STRDUP(type, vm->def->os.type) < 0)
|
||||
if (VIR_STRDUP(type, virDomainOSTypeToString(vm->def->os.type)) < 0)
|
||||
goto cleanup;
|
||||
|
||||
cleanup:
|
||||
|
@ -930,7 +930,7 @@ vboxSetBootDeviceOrder(virDomainDefPtr def, vboxGlobalData *data,
|
||||
PRUint32 maxBootPosition = 0;
|
||||
size_t i = 0;
|
||||
|
||||
VIR_DEBUG("def->os.type %s", def->os.type);
|
||||
VIR_DEBUG("def->os.type %s", virDomainOSTypeToString(def->os.type));
|
||||
VIR_DEBUG("def->os.arch %s", virArchToString(def->os.arch));
|
||||
VIR_DEBUG("def->os.machine %s", def->os.machine);
|
||||
VIR_DEBUG("def->os.nBootDevs %zu", def->os.nBootDevs);
|
||||
@ -3906,9 +3906,7 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
||||
|
||||
/* Skip cpumasklen, cpumask, onReboot, onPoweroff, onCrash */
|
||||
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
goto cleanup;
|
||||
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
def->os.arch = virArchFromHost();
|
||||
|
||||
def->os.nBootDevs = 0;
|
||||
@ -4122,8 +4120,7 @@ static int vboxDomainAttachDeviceImpl(virDomainPtr dom,
|
||||
if (!(def = virDomainDefNew()))
|
||||
return ret;
|
||||
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
goto cleanup;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
|
||||
dev = virDomainDeviceDefParse(xml, def, data->caps, data->xmlopt,
|
||||
VIR_DOMAIN_DEF_PARSE_INACTIVE);
|
||||
@ -4254,8 +4251,7 @@ static int vboxDomainDetachDevice(virDomainPtr dom, const char *xml)
|
||||
if (!(def = virDomainDefNew()))
|
||||
return ret;
|
||||
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
goto cleanup;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
|
||||
dev = virDomainDeviceDefParse(xml, def, data->caps, data->xmlopt,
|
||||
VIR_DOMAIN_DEF_PARSE_INACTIVE);
|
||||
@ -6061,8 +6057,7 @@ static char *vboxDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
|
||||
* reading and while dumping xml
|
||||
*/
|
||||
virDomainDefSetMemoryInitial(def->dom, memorySize * 1024);
|
||||
if (VIR_STRDUP(def->dom->os.type, "hvm") < 0)
|
||||
goto cleanup;
|
||||
def->dom->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
def->dom->os.arch = virArchFromHost();
|
||||
gVBoxAPI.UIMachine.GetCPUCount(machine, &CPUCount);
|
||||
def->dom->maxvcpus = def->dom->vcpus = CPUCount;
|
||||
|
@ -870,7 +870,7 @@ vmwareDomainGetOSType(virDomainPtr dom)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ignore_value(VIR_STRDUP(ret, vm->def->os.type));
|
||||
ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)));
|
||||
|
||||
cleanup:
|
||||
if (vm)
|
||||
|
@ -1522,8 +1522,7 @@ virVMXParseConfig(virVMXContext *ctx,
|
||||
def->onCrash = VIR_DOMAIN_LIFECYCLE_DESTROY;
|
||||
|
||||
/* def:os */
|
||||
if (VIR_STRDUP(def->os.type, "hvm") < 0)
|
||||
goto cleanup;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
|
||||
/* vmx:guestOS -> def:os.arch */
|
||||
if (virVMXGetConfigString(conf, "guestOS", &guestOS, true) < 0)
|
||||
|
@ -338,7 +338,7 @@ xenDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_CHR &&
|
||||
dev->data.chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
|
||||
dev->data.chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE &&
|
||||
STRNEQ(def->os.type, "hvm"))
|
||||
def->os.type != VIR_DOMAIN_OSTYPE_HVM)
|
||||
dev->data.chr->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN;
|
||||
|
||||
/* forbid capabilities mode hostdev in this kind of hypervisor */
|
||||
|
@ -2261,7 +2261,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr conn,
|
||||
case VIR_DOMAIN_DEVICE_DISK:
|
||||
if (xenFormatSxprDisk(dev->data.disk,
|
||||
&buf,
|
||||
STREQ(def->os.type, "hvm") ? 1 : 0,
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM ? 1 : 0,
|
||||
priv->xendConfigVersion, 1) < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2274,7 +2274,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr conn,
|
||||
if (xenFormatSxprNet(conn,
|
||||
dev->data.net,
|
||||
&buf,
|
||||
STREQ(def->os.type, "hvm") ? 1 : 0,
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM ? 1 : 0,
|
||||
priv->xendConfigVersion, 1) < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2409,7 +2409,7 @@ xenDaemonUpdateDeviceFlags(virConnectPtr conn,
|
||||
case VIR_DOMAIN_DEVICE_DISK:
|
||||
if (xenFormatSxprDisk(dev->data.disk,
|
||||
&buf,
|
||||
STREQ(def->os.type, "hvm") ? 1 : 0,
|
||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM ? 1 : 0,
|
||||
priv->xendConfigVersion, 1) < 0)
|
||||
goto cleanup;
|
||||
break;
|
||||
|
@ -52,7 +52,7 @@ xenapiDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_CHR &&
|
||||
dev->data.chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
|
||||
dev->data.chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE &&
|
||||
STRNEQ(def->os.type, "hvm"))
|
||||
def->os.type != VIR_DOMAIN_OSTYPE_HVM)
|
||||
dev->data.chr->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN;
|
||||
|
||||
/* forbid capabilities mode hostdev in this kind of hypervisor */
|
||||
@ -1427,10 +1427,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
||||
goto error;
|
||||
xen_vm_get_hvm_boot_policy(session, &boot_policy, vm);
|
||||
if (STREQ(boot_policy, "BIOS order")) {
|
||||
if (VIR_STRDUP(defPtr->os.type, "hvm") < 0) {
|
||||
VIR_FREE(boot_policy);
|
||||
goto error;
|
||||
}
|
||||
defPtr->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||
xen_vm_get_hvm_boot_params(session, &result, vm);
|
||||
if (result != NULL) {
|
||||
size_t i;
|
||||
@ -1450,10 +1447,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
||||
VIR_FREE(boot_policy);
|
||||
} else {
|
||||
char *value = NULL;
|
||||
if (VIR_STRDUP(defPtr->os.type, "xen") < 0) {
|
||||
VIR_FREE(boot_policy);
|
||||
goto error;
|
||||
}
|
||||
defPtr->os.type = VIR_DOMAIN_OSTYPE_XEN;
|
||||
if (VIR_ALLOC(defPtr->os.loader) < 0 ||
|
||||
VIR_STRDUP(defPtr->os.loader->path, "pygrub") < 0) {
|
||||
VIR_FREE(boot_policy);
|
||||
|
@ -464,7 +464,7 @@ createVMRecordFromXml(virConnectPtr conn, virDomainDefPtr def,
|
||||
virUUIDFormat(def->uuid, uuidStr);
|
||||
if (VIR_STRDUP((*record)->uuid, uuidStr) < 0)
|
||||
goto error;
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
char *boot_order = NULL;
|
||||
if (VIR_STRDUP((*record)->hvm_boot_policy, "BIOS order") < 0)
|
||||
goto error;
|
||||
@ -476,7 +476,7 @@ createVMRecordFromXml(virConnectPtr conn, virDomainDefPtr def,
|
||||
(*record)->hvm_boot_params = hvm_boot_params;
|
||||
VIR_FREE(boot_order);
|
||||
}
|
||||
} else if (STREQ(def->os.type, "xen")) {
|
||||
} else if (def->os.type == VIR_DOMAIN_OSTYPE_XEN) {
|
||||
if (VIR_STRDUP((*record)->pv_bootloader, "pygrub") < 0)
|
||||
goto error;
|
||||
if (def->os.kernel) {
|
||||
|
@ -331,7 +331,7 @@ xenParseTimeOffset(virConfPtr conf, virDomainDefPtr def,
|
||||
if (xenConfigGetBool(conf, "localtime", &vmlocaltime, 0) < 0)
|
||||
return -1;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
/* only managed HVM domains since 3.1.0 have persistent rtc_timeoffset */
|
||||
if (xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) {
|
||||
if (vmlocaltime)
|
||||
@ -513,7 +513,7 @@ xenParseCPUFeatures(virConfPtr conf, virDomainDefPtr def)
|
||||
if (str && (virBitmapParse(str, 0, &def->cpumask, 4096) < 0))
|
||||
return -1;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xenConfigGetBool(conf, "pae", &val, 1) < 0)
|
||||
return -1;
|
||||
|
||||
@ -570,7 +570,7 @@ xenParseVfb(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
{
|
||||
int val;
|
||||
char *listenAddr = NULL;
|
||||
int hvm = STREQ(def->os.type, "hvm");
|
||||
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
|
||||
virConfValuePtr list;
|
||||
virDomainGraphicsDefPtr graphics = NULL;
|
||||
|
||||
@ -724,7 +724,7 @@ xenParseCharDev(virConfPtr conf, virDomainDefPtr def)
|
||||
virConfValuePtr value = NULL;
|
||||
virDomainChrDefPtr chr = NULL;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xenConfigGetString(conf, "parallel", &str, NULL) < 0)
|
||||
goto cleanup;
|
||||
if (str && STRNEQ(str, "none") &&
|
||||
@ -967,7 +967,7 @@ xenParseEmulatedDevices(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xenConfigGetString(conf, "soundhw", &str, NULL) < 0)
|
||||
return -1;
|
||||
|
||||
@ -997,8 +997,7 @@ xenParseGeneralMeta(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps)
|
||||
STREQ(str, "hvm"))
|
||||
hvm = 1;
|
||||
|
||||
if (VIR_STRDUP(def->os.type, hvm ? "hvm" : "xen") < 0)
|
||||
return -1;
|
||||
def->os.type = (hvm ? VIR_DOMAIN_OSTYPE_HVM : VIR_DOMAIN_OSTYPE_XEN);
|
||||
|
||||
def->os.arch =
|
||||
virCapabilitiesDefaultGuestArch(caps,
|
||||
@ -1007,7 +1006,7 @@ xenParseGeneralMeta(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps)
|
||||
if (!def->os.arch) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("no supported architecture for os type '%s'"),
|
||||
def->os.type);
|
||||
virDomainOSTypeToString(def->os.type));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1346,7 +1345,7 @@ xenFormatTimeOffset(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
}
|
||||
|
||||
} else {
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
/* >=3.1 HV: VARIABLE */
|
||||
int rtc_timeoffset;
|
||||
|
||||
@ -1447,7 +1446,7 @@ xenFormatCharDev(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (def->nparallels) {
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
char *str;
|
||||
@ -1565,7 +1564,7 @@ xenFormatCPUFeatures(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xenConfigSetInt(conf, "pae",
|
||||
(def->features[VIR_DOMAIN_FEATURE_PAE] ==
|
||||
VIR_TRISTATE_SWITCH_ON) ? 1 : 0) < 0)
|
||||
@ -1621,7 +1620,7 @@ xenFormatCDROM(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xendConfigVersion == XEND_CONFIG_VERSION_3_0_2) {
|
||||
for (i = 0; i < def->ndisks; i++) {
|
||||
if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_CDROM &&
|
||||
@ -1644,7 +1643,7 @@ xenFormatCDROM(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
static int
|
||||
xenFormatVfb(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
{
|
||||
int hvm = STREQ(def->os.type, "hvm") ? 1 : 0;
|
||||
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM ? 1 : 0;
|
||||
|
||||
if (def->ngraphics == 1 &&
|
||||
def->graphics[0]->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
|
||||
@ -1763,7 +1762,7 @@ xenFormatVfb(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
static int
|
||||
xenFormatSound(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (def->sounds) {
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
char *str = NULL;
|
||||
@ -1792,7 +1791,7 @@ xenFormatVif(virConfPtr conf,
|
||||
{
|
||||
virConfValuePtr netVal = NULL;
|
||||
size_t i;
|
||||
int hvm = STREQ(def->os.type, "hvm");
|
||||
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
|
||||
|
||||
if (VIR_ALLOC(netVal) < 0)
|
||||
goto cleanup;
|
||||
|
@ -1145,8 +1145,7 @@ xenParseSxpr(const struct sexpr *root,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (VIR_STRDUP(def->os.type, hvm ? "hvm" : "linux") < 0)
|
||||
goto error;
|
||||
def->os.type = (hvm ? VIR_DOMAIN_OSTYPE_HVM : VIR_DOMAIN_OSTYPE_LINUX);
|
||||
|
||||
if (def->id != 0) {
|
||||
if (sexpr_lookup(root, "domain/image")) {
|
||||
@ -2273,7 +2272,7 @@ xenFormatSxpr(virConnectPtr conn,
|
||||
}
|
||||
virBufferAsprintf(&buf, "(on_crash '%s')", tmp);
|
||||
|
||||
if (STREQ(def->os.type, "hvm"))
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM)
|
||||
hvm = 1;
|
||||
|
||||
if (!def->os.bootloader) {
|
||||
|
@ -64,7 +64,7 @@ xenParseXLOS(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps)
|
||||
size_t i;
|
||||
const char *extra, *root;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
const char *boot;
|
||||
|
||||
for (i = 0; i < caps->nguests; i++) {
|
||||
@ -159,7 +159,7 @@ xenParseXLSpice(virConfPtr conf, virDomainDefPtr def)
|
||||
char *listenAddr = NULL;
|
||||
int val;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xenConfigGetBool(conf, "spice", &val, 0) < 0)
|
||||
return -1;
|
||||
|
||||
@ -353,7 +353,8 @@ xenParseXLDisk(virConfPtr conf, virDomainDefPtr def)
|
||||
}
|
||||
}
|
||||
|
||||
if (STRPREFIX(libxldisk->vdev, "xvd") || !STREQ(def->os.type, "hvm"))
|
||||
if (STRPREFIX(libxldisk->vdev, "xvd") ||
|
||||
def->os.type != VIR_DOMAIN_OSTYPE_HVM)
|
||||
disk->bus = VIR_DOMAIN_DISK_BUS_XEN;
|
||||
else if (STRPREFIX(libxldisk->vdev, "sd"))
|
||||
disk->bus = VIR_DOMAIN_DISK_BUS_SCSI;
|
||||
@ -388,7 +389,7 @@ xenParseXLInputDevs(virConfPtr conf, virDomainDefPtr def)
|
||||
const char *str;
|
||||
virConfValuePtr val;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
val = virConfGetValue(conf, "usbdevice");
|
||||
/* usbdevice can be defined as either a single string or a list */
|
||||
if (val && val->type == VIR_CONF_LIST) {
|
||||
@ -475,7 +476,7 @@ xenFormatXLOS(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
char boot[VIR_DOMAIN_BOOT_LAST+1];
|
||||
if (xenConfigSetString(conf, "builder", "hvm") < 0)
|
||||
return -1;
|
||||
@ -667,7 +668,7 @@ xenFormatXLSpice(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
const char *listenAddr = NULL;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
|
||||
/* set others to false but may not be necessary */
|
||||
if (xenConfigSetInt(conf, "sdl", 0) < 0)
|
||||
@ -726,7 +727,7 @@ xenFormatXLInputDevs(virConfPtr conf, virDomainDefPtr def)
|
||||
const char *devtype;
|
||||
virConfValuePtr usbdevices = NULL, lastdev;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (VIR_ALLOC(usbdevices) < 0)
|
||||
goto error;
|
||||
|
||||
|
@ -42,7 +42,7 @@ xenParseXMOS(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
const char *boot;
|
||||
|
||||
if (VIR_ALLOC(def->os.loader) < 0 ||
|
||||
@ -108,7 +108,7 @@ xenParseXMDisk(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
{
|
||||
const char *str = NULL;
|
||||
virDomainDiskDefPtr disk = NULL;
|
||||
int hvm = STREQ(def->os.type, "hvm");
|
||||
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
|
||||
virConfValuePtr list = virConfGetValue(conf, "disk");
|
||||
|
||||
if (list && list->type == VIR_CONF_LIST) {
|
||||
@ -391,7 +391,7 @@ xenFormatXMDisks(virConfPtr conf, virDomainDefPtr def, int xendConfigVersion)
|
||||
{
|
||||
virConfValuePtr diskVal = NULL;
|
||||
size_t i = 0;
|
||||
int hvm = STREQ(def->os.type, "hvm");
|
||||
int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
|
||||
|
||||
if (VIR_ALLOC(diskVal) < 0)
|
||||
goto cleanup;
|
||||
@ -436,7 +436,7 @@ xenParseXMInputDevs(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
if (xenConfigGetString(conf, "usbdevice", &str, NULL) < 0)
|
||||
return -1;
|
||||
if (str &&
|
||||
@ -503,7 +503,7 @@ xenFormatXMOS(virConfPtr conf, virDomainDefPtr def)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
char boot[VIR_DOMAIN_BOOT_LAST+1];
|
||||
if (xenConfigSetString(conf, "builder", "hvm") < 0)
|
||||
return -1;
|
||||
@ -573,7 +573,7 @@ xenFormatXMInputDevs(virConfPtr conf, virDomainDefPtr def)
|
||||
size_t i;
|
||||
const char *devtype;
|
||||
|
||||
if (STREQ(def->os.type, "hvm")) {
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||
for (i = 0; i < def->ninputs; i++) {
|
||||
if (def->inputs[i]->bus == VIR_DOMAIN_INPUT_BUS_USB) {
|
||||
if (xenConfigSetInt(conf, "usb", 1) < 0)
|
||||
|
@ -103,11 +103,11 @@ testReadNetworkConf(const void *data ATTRIBUTE_UNUSED)
|
||||
"</domain>\n";
|
||||
|
||||
if (!(def = virDomainDefNew()) ||
|
||||
VIR_STRDUP(def->os.type, "exe") < 0 ||
|
||||
VIR_STRDUP(def->os.init, "/sbin/init") < 0)
|
||||
goto cleanup;
|
||||
|
||||
def->virtType = VIR_DOMAIN_VIRT_OPENVZ;
|
||||
def->os.type = VIR_DOMAIN_OSTYPE_EXE;
|
||||
|
||||
if (openvzReadNetworkConf(def, 1) < 0) {
|
||||
err = virGetLastError();
|
||||
|
Loading…
x
Reference in New Issue
Block a user