From c2fbb3c656caeae632cb16ed7b4ea4424bc0cab1 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 4 Dec 2012 16:38:02 +0100 Subject: [PATCH] domain: Keep assigned class_id in domstatus XML Interfaces keeps a class_id, which is an ID from which bridge part of QoS settings is derived. We need to store class_id in domain status file, so we can later pass it to virNetDevBandwidthUnplug. --- src/conf/domain_conf.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 18e65ca834..f5e2f71c48 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -4819,6 +4819,17 @@ virDomainActualNetDefParseXML(xmlNodePtr node, hostdev, flags) < 0) { goto error; } + } else if (actual->type == VIR_DOMAIN_NET_TYPE_NETWORK) { + char *class_id = virXPathString("string(./class/@id)", ctxt); + if (class_id && + virStrToLong_ui(class_id, NULL, 10, &actual->class_id) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Unable to parse class id '%s'"), + class_id); + VIR_FREE(class_id); + goto error; + } + VIR_FREE(class_id); } bandwidth_node = virXPathNode("./bandwidth", ctxt); @@ -12511,6 +12522,8 @@ virDomainActualNetDefFormat(virBufferPtr buf, break; case VIR_DOMAIN_NET_TYPE_NETWORK: + if (def->class_id) + virBufferAsprintf(buf, "", def->class_id); break; default: virReportError(VIR_ERR_INTERNAL_ERROR,