mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
conf: remove 'bootHash' completely
Its only use is now to check for duplicate boot order values, which is now also done in virDomainDefPostParseCommon. Remove it completely. Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
a17b088218
commit
fe9454c719
@ -6585,8 +6585,7 @@ virDomainDeviceUSBMasterParseXML(xmlNodePtr node,
|
||||
|
||||
static int
|
||||
virDomainDeviceBootParseXML(xmlNodePtr node,
|
||||
virDomainDeviceInfoPtr info,
|
||||
virHashTablePtr bootHash)
|
||||
virDomainDeviceInfoPtr info)
|
||||
{
|
||||
char *order;
|
||||
char *loadparm = NULL;
|
||||
@ -6606,18 +6605,6 @@ virDomainDeviceBootParseXML(xmlNodePtr node,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (bootHash) {
|
||||
if (virHashLookup(bootHash, order)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("boot order '%s' used for more than one device"),
|
||||
order);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virHashAddEntry(bootHash, order, (void *) 1) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
loadparm = virXMLPropString(node, "loadparm");
|
||||
if (loadparm) {
|
||||
if (virStringToUpper(&info->loadparm, loadparm) != 1) {
|
||||
@ -6815,7 +6802,6 @@ virDomainDeviceAliasIsUserAlias(const char *aliasStr)
|
||||
static int
|
||||
virDomainDeviceInfoParseXML(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED,
|
||||
xmlNodePtr node,
|
||||
virHashTablePtr bootHash,
|
||||
virDomainDeviceInfoPtr info,
|
||||
unsigned int flags)
|
||||
{
|
||||
@ -6875,7 +6861,7 @@ virDomainDeviceInfoParseXML(virDomainXMLOptionPtr xmlopt ATTRIBUTE_UNUSED,
|
||||
}
|
||||
|
||||
if (boot) {
|
||||
if (virDomainDeviceBootParseXML(boot, info, bootHash))
|
||||
if (virDomainDeviceBootParseXML(boot, info))
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -9400,7 +9386,6 @@ static virDomainDiskDefPtr
|
||||
virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virHashTablePtr bootHash,
|
||||
virSecurityLabelDefPtr* vmSeclabels,
|
||||
int nvmSeclabels,
|
||||
unsigned int flags)
|
||||
@ -9767,7 +9752,7 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
|
||||
} else {
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info,
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
|
||||
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0)
|
||||
goto error;
|
||||
}
|
||||
@ -10258,7 +10243,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_USB &&
|
||||
def->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE) {
|
||||
VIR_DEBUG("Ignoring device address for none model usb controller");
|
||||
} else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
|
||||
} else if (virDomainDeviceInfoParseXML(xmlopt, node,
|
||||
&def->info, flags) < 0) {
|
||||
goto error;
|
||||
}
|
||||
@ -10646,7 +10631,7 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
def->dst = target;
|
||||
target = NULL;
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
cleanup:
|
||||
@ -10936,7 +10921,6 @@ static virDomainNetDefPtr
|
||||
virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virHashTablePtr bootHash,
|
||||
char *prefix,
|
||||
unsigned int flags)
|
||||
{
|
||||
@ -11224,7 +11208,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
|
||||
} else {
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info,
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
|
||||
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT
|
||||
| VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0)
|
||||
goto error;
|
||||
@ -12523,7 +12507,7 @@ virDomainChrDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
if (def->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
|
||||
def->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD) {
|
||||
VIR_DEBUG("Ignoring device address for gustfwd channel");
|
||||
} else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
|
||||
} else if (virDomainDeviceInfoParseXML(xmlopt, node,
|
||||
&def->info, flags) < 0) {
|
||||
goto error;
|
||||
}
|
||||
@ -12661,7 +12645,7 @@ virDomainSmartcardDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
if (def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
|
||||
def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID) {
|
||||
@ -12762,7 +12746,7 @@ virDomainTPMDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
cleanup:
|
||||
@ -12791,7 +12775,7 @@ virDomainPanicDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
if (VIR_ALLOC(panic) < 0)
|
||||
return NULL;
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node,
|
||||
&panic->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
@ -12927,7 +12911,7 @@ virDomainInputDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
if (def->bus == VIR_DOMAIN_INPUT_BUS_USB &&
|
||||
@ -12991,7 +12975,7 @@ virDomainHubDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
cleanup:
|
||||
@ -14148,7 +14132,7 @@ virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
cleanup:
|
||||
@ -14202,7 +14186,7 @@ virDomainWatchdogDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
cleanup:
|
||||
@ -14314,7 +14298,7 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
break;
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt),
|
||||
@ -14384,7 +14368,7 @@ virDomainMemballoonDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
|
||||
if (def->model == VIR_DOMAIN_MEMBALLOON_MODEL_NONE)
|
||||
VIR_DEBUG("Ignoring device address for none model Memballoon");
|
||||
else if (virDomainDeviceInfoParseXML(xmlopt, node, NULL,
|
||||
else if (virDomainDeviceInfoParseXML(xmlopt, node,
|
||||
&def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
@ -14415,7 +14399,7 @@ virDomainNVRAMDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
if (VIR_ALLOC(def) < 0)
|
||||
return NULL;
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
return def;
|
||||
@ -14511,7 +14495,7 @@ virDomainShmemDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
|
||||
@ -15165,7 +15149,7 @@ virDomainVideoDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
}
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, NULL, &def->info, flags) < 0)
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
def->driver = virDomainVideoDriverDefParseXML(node);
|
||||
@ -15192,7 +15176,6 @@ static virDomainHostdevDefPtr
|
||||
virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virHashTablePtr bootHash,
|
||||
unsigned int flags)
|
||||
{
|
||||
virDomainHostdevDefPtr def;
|
||||
@ -15233,7 +15216,7 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
}
|
||||
|
||||
if (def->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, def->info,
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, def->info,
|
||||
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT
|
||||
| VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0)
|
||||
goto error;
|
||||
@ -15273,7 +15256,6 @@ static virDomainRedirdevDefPtr
|
||||
virDomainRedirdevDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virHashTablePtr bootHash,
|
||||
unsigned int flags)
|
||||
{
|
||||
xmlNodePtr cur;
|
||||
@ -15320,7 +15302,7 @@ virDomainRedirdevDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
if (def->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC)
|
||||
def->source->data.spicevmc = VIR_DOMAIN_CHR_SPICEVMC_USBREDIR;
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, bootHash, &def->info,
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
|
||||
flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0)
|
||||
goto error;
|
||||
|
||||
@ -15799,7 +15781,7 @@ virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
goto error;
|
||||
|
||||
if (virDomainDeviceInfoParseXML(xmlopt, memdevNode,
|
||||
NULL, &def->info, flags) < 0)
|
||||
&def->info, flags) < 0)
|
||||
goto error;
|
||||
|
||||
ctxt->node = save;
|
||||
@ -15929,7 +15911,7 @@ virDomainDeviceDefParse(const char *xmlStr,
|
||||
switch ((virDomainDeviceType) dev->type) {
|
||||
case VIR_DOMAIN_DEVICE_DISK:
|
||||
if (!(dev->data.disk = virDomainDiskDefParseXML(xmlopt, node, ctxt,
|
||||
NULL, def->seclabels,
|
||||
def->seclabels,
|
||||
def->nseclabels,
|
||||
flags)))
|
||||
goto error;
|
||||
@ -15945,7 +15927,7 @@ virDomainDeviceDefParse(const char *xmlStr,
|
||||
case VIR_DOMAIN_DEVICE_NET:
|
||||
netprefix = caps->host.netprefix;
|
||||
if (!(dev->data.net = virDomainNetDefParseXML(xmlopt, node, ctxt,
|
||||
NULL, netprefix, flags)))
|
||||
netprefix, flags)))
|
||||
goto error;
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_INPUT:
|
||||
@ -15970,7 +15952,7 @@ virDomainDeviceDefParse(const char *xmlStr,
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_HOSTDEV:
|
||||
if (!(dev->data.hostdev = virDomainHostdevDefParseXML(xmlopt, node,
|
||||
ctxt, NULL,
|
||||
ctxt,
|
||||
flags)))
|
||||
goto error;
|
||||
break;
|
||||
@ -15989,7 +15971,7 @@ virDomainDeviceDefParse(const char *xmlStr,
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_REDIRDEV:
|
||||
if (!(dev->data.redirdev = virDomainRedirdevDefParseXML(xmlopt, node,
|
||||
ctxt, NULL, flags)))
|
||||
ctxt, flags)))
|
||||
goto error;
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_RNG:
|
||||
@ -16096,7 +16078,7 @@ virDomainDiskDefParse(const char *xmlStr,
|
||||
}
|
||||
|
||||
disk = virDomainDiskDefParseXML(xmlopt, ctxt->node, ctxt,
|
||||
NULL, seclabels, nseclabels, flags);
|
||||
seclabels, nseclabels, flags);
|
||||
|
||||
cleanup:
|
||||
xmlFreeDoc(xml);
|
||||
@ -18476,8 +18458,7 @@ virDomainVcpuParse(virDomainDefPtr def,
|
||||
|
||||
static int
|
||||
virDomainDefParseBootOptions(virDomainDefPtr def,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virHashTablePtr *bootHash)
|
||||
xmlXPathContextPtr ctxt)
|
||||
{
|
||||
xmlNodePtr *nodes = NULL;
|
||||
char *tmp = NULL;
|
||||
@ -18609,8 +18590,6 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
|
||||
|
||||
if (virDomainDefParseBootXML(ctxt, def) < 0)
|
||||
goto error;
|
||||
if (!(*bootHash = virHashCreate(5, NULL)))
|
||||
goto error;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
@ -18827,7 +18806,6 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
long id = -1;
|
||||
virDomainDefPtr def;
|
||||
bool uuid_generated = false;
|
||||
virHashTablePtr bootHash = NULL;
|
||||
bool usb_none = false;
|
||||
bool usb_other = false;
|
||||
bool usb_master = false;
|
||||
@ -19872,7 +19850,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
}
|
||||
VIR_FREE(nodes);
|
||||
|
||||
if (virDomainDefParseBootOptions(def, ctxt, &bootHash) < 0)
|
||||
if (virDomainDefParseBootOptions(def, ctxt) < 0)
|
||||
goto error;
|
||||
|
||||
/* analysis of the disk devices */
|
||||
@ -19886,7 +19864,6 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
virDomainDiskDefPtr disk = virDomainDiskDefParseXML(xmlopt,
|
||||
nodes[i],
|
||||
ctxt,
|
||||
bootHash,
|
||||
def->seclabels,
|
||||
def->nseclabels,
|
||||
flags);
|
||||
@ -19993,7 +19970,6 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
virDomainNetDefPtr net = virDomainNetDefParseXML(xmlopt,
|
||||
nodes[i],
|
||||
ctxt,
|
||||
bootHash,
|
||||
netprefix,
|
||||
flags);
|
||||
if (!net)
|
||||
@ -20235,7 +20211,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
virDomainHostdevDefPtr hostdev;
|
||||
|
||||
hostdev = virDomainHostdevDefParseXML(xmlopt, nodes[i], ctxt,
|
||||
bootHash, flags);
|
||||
flags);
|
||||
if (!hostdev)
|
||||
goto error;
|
||||
|
||||
@ -20379,7 +20355,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
goto error;
|
||||
for (i = 0; i < n; i++) {
|
||||
virDomainRedirdevDefPtr redirdev =
|
||||
virDomainRedirdevDefParseXML(xmlopt, nodes[i], ctxt, bootHash, flags);
|
||||
virDomainRedirdevDefParseXML(xmlopt, nodes[i], ctxt, flags);
|
||||
if (!redirdev)
|
||||
goto error;
|
||||
|
||||
@ -20553,14 +20529,11 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
if (virDomainDefValidate(def, caps, flags, xmlopt) < 0)
|
||||
goto error;
|
||||
|
||||
virHashFree(bootHash);
|
||||
|
||||
return def;
|
||||
|
||||
error:
|
||||
VIR_FREE(tmp);
|
||||
VIR_FREE(nodes);
|
||||
virHashFree(bootHash);
|
||||
virDomainDefFree(def);
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user