From nobody Sun Feb 8 22:08:37 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1552924586429490.1146633518074; Mon, 18 Mar 2019 08:56:26 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8ACF13082200; Mon, 18 Mar 2019 15:56:24 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 65FD060FAB; Mon, 18 Mar 2019 15:56:24 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1DA5324C12; Mon, 18 Mar 2019 15:56:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x2IFtoVb022827 for ; Mon, 18 Mar 2019 11:55:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id DE4701001E6A; Mon, 18 Mar 2019 15:55:50 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 678491001E61 for ; Mon, 18 Mar 2019 15:55:50 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Mon, 18 Mar 2019 16:55:16 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 27/34] conf: Use virDomainStorageSourceParseFull to parse disk source in virDomainDiskDefParseXML X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Mon, 18 Mar 2019 15:56:25 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Use the new parser function for disk source. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d77d3befd3..ec666d8d8c 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9783,17 +9783,8 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlop= t, ctxt->node =3D node; /* defaults */ - def->src->type =3D VIR_STORAGE_TYPE_FILE; def->device =3D VIR_DOMAIN_DISK_DEVICE_DISK; - if ((tmp =3D virXMLPropString(node, "type")) && - (def->src->type =3D virStorageTypeFromString(tmp)) <=3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown disk type '%s'"), tmp); - goto error; - } - VIR_FREE(tmp); - if ((tmp =3D virXMLPropString(node, "device")) && (def->device =3D virDomainDiskDeviceTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -9815,14 +9806,18 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlo= pt, rawio =3D virXMLPropString(node, "rawio"); sgio =3D virXMLPropString(node, "sgio"); + virObjectUnref(def->src); + if (!(def->src =3D virDomainStorageSourceParseFull("string(@type)", NU= LL, + "./source", + "string(./source/@ind= ex)", + true, ctxt, flags, xm= lopt))) + goto error; + for (cur =3D node->children; cur !=3D NULL; cur =3D cur->next) { if (cur->type !=3D XML_ELEMENT_NODE) continue; if (!source && virXMLNodeNameEqual(cur, "source")) { - if (virDomainStorageSourceParse(cur, ctxt, def->src, flags, xm= lopt) < 0) - goto error; - /* If we've already found an as a child of and * we find one as a child of , then force an error to * avoid ambiguity */ @@ -9851,14 +9846,6 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlop= t, source =3D true; startupPolicy =3D virXMLPropString(cur, "startupPolicy"); - - if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) && - (tmp =3D virXMLPropString(cur, "index")) && - virStrToLong_uip(tmp, NULL, 10, &def->src->id) < 0) { - virReportError(VIR_ERR_XML_ERROR, _("invalid disk index '%= s'"), tmp); - goto error; - } - VIR_FREE(tmp); } else if (!target && virXMLNodeNameEqual(cur, "target")) { target =3D virXMLPropString(cur, "dev"); --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list