From nobody Sat Apr 27 04:22:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1631704073; cv=none; d=zohomail.com; s=zohoarc; b=i+6d5sDauGfHkjWhy5W3e8yi04FWC6pWi5tWBxEtUMyg/IJ3qTe3zyqPzl0afXetkGyqnHefjD4VpQPOTEGKPh3JVLFE6g17DVOoGg5ZS2iqzS0NhVhEoG5W8q/7fqQXTdMHPtUP3eHZnLe34690idoLGIJ3kSdoyczn1szxflQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1631704073; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DruOQ4jYX9WblqzuyjK5LJg2Vs46eyx4Tpv8kCTCduM=; b=VhYetVbBT/6/ULAl7s6bZnWUFielHy64Wy3qU/nMvrHwl9GukK//nF7a0Vh8/By0WPDFMeYIhY1pXHMdo86Ms5otYBuMYETzDHf9nAwysLW68YJnwWAVd0G7LD58gMnBQqXMWFY5O/mJ9JJtO33aj40DWvbc2xeVGMKEcL+jd/E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1631704073815930.3147534532754; Wed, 15 Sep 2021 04:07:53 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-109-VCT4cTbgPua2pUDVFWXcHQ-1; Wed, 15 Sep 2021 07:07:51 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 853941084683; Wed, 15 Sep 2021 11:07:46 +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 59FE07A8CA; Wed, 15 Sep 2021 11:07:46 +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 F2E614EA2A; Wed, 15 Sep 2021 11:07:45 +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 18FB7ihu029020 for ; Wed, 15 Sep 2021 07:07:44 -0400 Received: by smtp.corp.redhat.com (Postfix) id 16C1610023B0; Wed, 15 Sep 2021 11:07:44 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.43.2.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9597510023AE for ; Wed, 15 Sep 2021 11:07:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1631704072; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=DruOQ4jYX9WblqzuyjK5LJg2Vs46eyx4Tpv8kCTCduM=; b=WgGE/mZnSkIZtqembMBXDYtEeanYZB6FOSKcsmSzkTevJq5yoqUWl3oD7GdUxYOVtgbxCv VPtUcYa8gwMOjt2TjoxlBZvFRixSaahhtRgHnq+MKhpjt8gMz7cH4OWkpp0UV8DWr8czui I7Q/pn2OpKMuL1T2tPPl30mTdH9NgNc= X-MC-Unique: VCT4cTbgPua2pUDVFWXcHQ-1 From: Kristina Hanicova To: libvir-list@redhat.com Subject: [PATCH v2 1/5] api: add public virNetworkCreateXMLFlags() and remote protocol Date: Wed, 15 Sep 2021 13:07:27 +0200 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 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1631704074233100002 Content-Type: text/plain; charset="utf-8" This new API creates network with given flags. Signed-off-by: Kristina Hanicova Reviewed-by: Michal Privoznik --- include/libvirt/libvirt-network.h | 3 +++ src/driver-network.h | 6 +++++ src/libvirt-network.c | 41 +++++++++++++++++++++++++++++++ src/libvirt_public.syms | 1 + src/remote/remote_driver.c | 1 + src/remote/remote_protocol.x | 18 +++++++++++++- src/remote_protocol-structs | 8 ++++++ 7 files changed, 77 insertions(+), 1 deletion(-) diff --git a/include/libvirt/libvirt-network.h b/include/libvirt/libvirt-ne= twork.h index df29aabd5f..e505c3eb7e 100644 --- a/include/libvirt/libvirt-network.h +++ b/include/libvirt/libvirt-network.h @@ -118,6 +118,9 @@ virNetworkPtr virNetworkLookupByUUIDString = (virConnectPtr conn, */ virNetworkPtr virNetworkCreateXML (virConnectPtr conn, const char *xmlDesc); +virNetworkPtr virNetworkCreateXMLFlags(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags); =20 typedef enum { VIR_NETWORK_DEFINE_VALIDATE =3D 1 << 0, /* Validate the XML document a= gainst schema */ diff --git a/src/driver-network.h b/src/driver-network.h index d31d7c667d..99efd4c8aa 100644 --- a/src/driver-network.h +++ b/src/driver-network.h @@ -69,6 +69,11 @@ typedef virNetworkPtr (*virDrvNetworkCreateXML)(virConnectPtr conn, const char *xmlDesc); =20 +typedef virNetworkPtr +(*virDrvNetworkCreateXMLFlags)(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags); + typedef virNetworkPtr (*virDrvNetworkDefineXML)(virConnectPtr conn, const char *xml); @@ -176,6 +181,7 @@ struct _virNetworkDriver { virDrvNetworkLookupByUUID networkLookupByUUID; virDrvNetworkLookupByName networkLookupByName; virDrvNetworkCreateXML networkCreateXML; + virDrvNetworkCreateXMLFlags networkCreateXMLFlags; virDrvNetworkDefineXML networkDefineXML; virDrvNetworkDefineXMLFlags networkDefineXMLFlags; virDrvNetworkUndefine networkUndefine; diff --git a/src/libvirt-network.c b/src/libvirt-network.c index cf32912063..ee53b9f2c5 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -427,6 +427,47 @@ virNetworkCreateXML(virConnectPtr conn, const char *xm= lDesc) } =20 =20 +/** + * virNetworkCreateXMLFlags: + * @conn: pointer to the hypervisor connection + * @xmlDesc: an XML description of the network + * @flags: extra flags; not used yet, so callers should always pass 0 + * + * Create and start a new virtual network, based on an XML description + * similar to the one returned by virNetworkGetXMLDesc() + * + * virNetworkFree should be used to free the resources after the + * network object is no longer needed. + * + * Returns a new network object or NULL in case of failure + */ +virNetworkPtr +virNetworkCreateXMLFlags(virConnectPtr conn, const char *xmlDesc, unsigned= int flags) +{ + VIR_DEBUG("conn=3D%p, xmlDesc=3D%s, flags=3D0x%x", conn, NULLSTR(xmlDe= sc), flags); + + virResetLastError(); + + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgGoto(xmlDesc, error); + virCheckReadOnlyGoto(conn->flags, error); + + if (conn->networkDriver && conn->networkDriver->networkCreateXMLFlags)= { + virNetworkPtr ret; + ret =3D conn->networkDriver->networkCreateXMLFlags(conn, xmlDesc, = flags); + if (!ret) + goto error; + return ret; + } + + virReportUnsupportedError(); + + error: + virDispatchError(conn); + return NULL; +} + + /** * virNetworkDefineXML: * @conn: pointer to the hypervisor connection diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms index 905072a21e..788a967df7 100644 --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -908,6 +908,7 @@ LIBVIRT_7.8.0 { virNodeDeviceGetAutostart; virNodeDeviceIsPersistent; virNodeDeviceIsActive; + virNetworkCreateXMLFlags; } LIBVIRT_7.7.0; =20 # .... define new API here using predicted next version number .... diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 49afcc9924..83ea33e91b 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -8552,6 +8552,7 @@ static virNetworkDriver network_driver =3D { .networkLookupByUUID =3D remoteNetworkLookupByUUID, /* 0.3.0 */ .networkLookupByName =3D remoteNetworkLookupByName, /* 0.3.0 */ .networkCreateXML =3D remoteNetworkCreateXML, /* 0.3.0 */ + .networkCreateXMLFlags =3D remoteNetworkCreateXMLFlags, /* 7.8.0 */ .networkDefineXML =3D remoteNetworkDefineXML, /* 0.3.0 */ .networkDefineXMLFlags =3D remoteNetworkDefineXMLFlags, /* 7.7.0 */ .networkUndefine =3D remoteNetworkUndefine, /* 0.3.0 */ diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index 9d8a66786b..296610a94d 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -1530,6 +1530,15 @@ struct remote_network_create_xml_ret { remote_nonnull_network net; }; =20 +struct remote_network_create_xml_flags_args { + remote_nonnull_string xml; + unsigned int flags; +}; + +struct remote_network_create_xml_flags_ret { + remote_nonnull_network net; +}; + struct remote_network_define_xml_args { remote_nonnull_string xml; }; @@ -6875,6 +6884,13 @@ enum remote_procedure { * @priority: high * @acl: node_device:read */ - REMOTE_PROC_NODE_DEVICE_IS_ACTIVE =3D 436 + REMOTE_PROC_NODE_DEVICE_IS_ACTIVE =3D 436, =20 + /** + * @generate: both + * @priority: high + * @acl: network:write + * @acl: network:start + */ + REMOTE_PROC_NETWORK_CREATE_XML_FLAGS =3D 437 }; diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index 8d012dc8a0..de06895d53 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -1098,6 +1098,13 @@ struct remote_network_create_xml_args { struct remote_network_create_xml_ret { remote_nonnull_network net; }; +struct remote_network_create_xml_flags_args { + remote_nonnull_string xml; + u_int flags; +}; +struct remote_network_create_xml_flags_ret { + remote_nonnull_network net; +}; struct remote_network_define_xml_args { remote_nonnull_string xml; }; @@ -3665,4 +3672,5 @@ enum remote_procedure { REMOTE_PROC_NODE_DEVICE_SET_AUTOSTART =3D 434, REMOTE_PROC_NODE_DEVICE_IS_PERSISTENT =3D 435, REMOTE_PROC_NODE_DEVICE_IS_ACTIVE =3D 436, + REMOTE_PROC_NETWORK_CREATE_XML_FLAGS =3D 437, }; --=20 2.31.1 From nobody Sat Apr 27 04:22:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1631704080; cv=none; d=zohomail.com; s=zohoarc; b=ODIL4Oj7I6aVFHtEd/4gc35Ha8R6Q3rlGphhoNo5iqqgN1Lk2u7wvU3HizViBk79TCMWTyrgEQ+tLxE7Nav7Cn4NJAsIgYZ6sTnxfsoXPviDrj0Bth4lN/BNK5rqfXjdMybvSMjp6EHaOrzLHlLE7RiU9UB/FGHG3SwizzCiMd4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1631704080; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ajfrjy6lbmrjWjpMg7gTcGv+PU2ARgbOIXDLAl1A3lc=; b=FYn245CELxUUqkoVbVAPuOqMtG9H0ojuA3SbPLANcwZQtvK7nOd3H7uuYa3NxMMCsufyDUBG9dgrMBXXKIPs0ra3qDUl7XV7jM7jW0kaGyCqHymjPB/z7vrqnBecYmnRg0IUlFyl2q44RIxwJ9VCprmi278q/RpCQK2P8UKkHlc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1631704080019454.65619569322405; Wed, 15 Sep 2021 04:08:00 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-30-mQJWsBLRMs-b2i4Of7YsRQ-1; Wed, 15 Sep 2021 07:07:57 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 18A7319057A8; Wed, 15 Sep 2021 11:07:50 +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 ECF206B556; Wed, 15 Sep 2021 11:07:49 +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 B8F8E4EA38; Wed, 15 Sep 2021 11:07:49 +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 18FB7i6D029030 for ; Wed, 15 Sep 2021 07:07:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id DB28A1001281; Wed, 15 Sep 2021 11:07:44 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.43.2.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id 654F410023AE for ; Wed, 15 Sep 2021 11:07:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1631704079; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=ajfrjy6lbmrjWjpMg7gTcGv+PU2ARgbOIXDLAl1A3lc=; b=cl9QvdfSbOAZjqeQ9W9Kiw8j4GJYLLDnjqTafIwwy+ohfzfuqarrw6w7nfwvCoXSZUbnYD b9fv+iZcMlAV/zs/cOC0GTIYRG02WRJBI0uxmAkRPe5batCJ1z8LkacK7uyLEQL7V37uDd 3zj9f18XMUcVsyyXbtJk2efhNDt01uA= X-MC-Unique: mQJWsBLRMs-b2i4Of7YsRQ-1 From: Kristina Hanicova To: libvir-list@redhat.com Subject: [PATCH v2 2/5] src: add driver support for networkCreateXMLFlags() Date: Wed, 15 Sep 2021 13:07:28 +0200 Message-Id: <51ff496b286f745bec2e477714141eb0190b05f6.1631703632.git.khanicov@redhat.com> 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 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1631704080774100001 Content-Type: text/plain; charset="utf-8" I added new driver functions to handle creating network with given flags. I also replaced definitions of the functions without flags with function calls to the new ones. Signed-off-by: Kristina Hanicova Reviewed-by: Michal Privoznik --- src/network/bridge_driver.c | 18 +++++++++++++++--- src/test/test_driver.c | 13 ++++++++++++- src/vbox/vbox_network.c | 7 +++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 86cefbd82b..dbb8846e05 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -3464,8 +3464,9 @@ networkValidate(virNetworkDriverState *driver, =20 =20 static virNetworkPtr -networkCreateXML(virConnectPtr conn, - const char *xml) +networkCreateXMLFlags(virConnectPtr conn, + const char *xml, + unsigned int flags) { virNetworkDriverState *driver =3D networkGetDriver(); virNetworkDef *newDef; @@ -3474,10 +3475,12 @@ networkCreateXML(virConnectPtr conn, virNetworkPtr net =3D NULL; virObjectEvent *event =3D NULL; =20 + virCheckFlags(0, NULL); + if (!(newDef =3D virNetworkDefParseString(xml, network_driver->xmlopt,= false))) goto cleanup; =20 - if (virNetworkCreateXMLEnsureACL(conn, newDef) < 0) + if (virNetworkCreateXMLFlagsEnsureACL(conn, newDef) < 0) goto cleanup; =20 if (networkValidate(driver, newDef) < 0) @@ -3515,6 +3518,14 @@ networkCreateXML(virConnectPtr conn, } =20 =20 +static virNetworkPtr +networkCreateXML(virConnectPtr conn, + const char *xml) +{ + return networkCreateXMLFlags(conn, xml, 0); +} + + static virNetworkPtr networkDefineXMLFlags(virConnectPtr conn, const char *xml, @@ -5630,6 +5641,7 @@ static virNetworkDriver networkDriver =3D { .networkLookupByUUID =3D networkLookupByUUID, /* 0.2.0 */ .networkLookupByName =3D networkLookupByName, /* 0.2.0 */ .networkCreateXML =3D networkCreateXML, /* 0.2.0 */ + .networkCreateXMLFlags =3D networkCreateXMLFlags, /* 7.8.0 */ .networkDefineXML =3D networkDefineXML, /* 0.2.0 */ .networkDefineXMLFlags =3D networkDefineXMLFlags, /* 7.7.0 */ .networkUndefine =3D networkUndefine, /* 0.2.0 */ diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 2c2c6f52d1..26ff2cc759 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -5572,7 +5572,8 @@ testNetworkIsPersistent(virNetworkPtr net) =20 =20 static virNetworkPtr -testNetworkCreateXML(virConnectPtr conn, const char *xml) +testNetworkCreateXMLFlags(virConnectPtr conn, const char *xml, + unsigned int flags) { testDriver *privconn =3D conn->privateData; virNetworkDef *newDef; @@ -5581,6 +5582,8 @@ testNetworkCreateXML(virConnectPtr conn, const char *= xml) virNetworkPtr net =3D NULL; virObjectEvent *event =3D NULL; =20 + virCheckFlags(0, NULL); + if ((newDef =3D virNetworkDefParseString(xml, NULL, false)) =3D=3D NUL= L) goto cleanup; =20 @@ -5606,6 +5609,13 @@ testNetworkCreateXML(virConnectPtr conn, const char = *xml) } =20 =20 +static virNetworkPtr +testNetworkCreateXML(virConnectPtr conn, const char *xml) +{ + return testNetworkCreateXMLFlags(conn, xml, 0); +} + + static virNetworkPtr testNetworkDefineXMLFlags(virConnectPtr conn, const char *xml, @@ -9723,6 +9733,7 @@ static virNetworkDriver testNetworkDriver =3D { .networkLookupByUUID =3D testNetworkLookupByUUID, /* 0.3.2 */ .networkLookupByName =3D testNetworkLookupByName, /* 0.3.2 */ .networkCreateXML =3D testNetworkCreateXML, /* 0.3.2 */ + .networkCreateXMLFlags =3D testNetworkCreateXMLFlags, /* 7.8.0 */ .networkDefineXML =3D testNetworkDefineXML, /* 0.3.2 */ .networkDefineXMLFlags =3D testNetworkDefineXMLFlags, /* 7.7.0 */ .networkUndefine =3D testNetworkUndefine, /* 0.3.2 */ diff --git a/src/vbox/vbox_network.c b/src/vbox/vbox_network.c index e772e580ad..1c23b880e8 100644 --- a/src/vbox/vbox_network.c +++ b/src/vbox/vbox_network.c @@ -561,6 +561,12 @@ static virNetworkPtr vboxNetworkCreateXML(virConnectPt= r conn, const char *xml) return vboxNetworkDefineCreateXML(conn, xml, true, 0); } =20 +static virNetworkPtr vboxNetworkCreateXMLFlags(virConnectPtr conn, const c= har *xml, + unsigned int flags) +{ + return vboxNetworkDefineCreateXML(conn, xml, true, flags); +} + static virNetworkPtr vboxNetworkDefineXML(virConnectPtr conn, const char *= xml) { return vboxNetworkDefineCreateXML(conn, xml, false, 0); @@ -930,6 +936,7 @@ virNetworkDriver vboxNetworkDriver =3D { .networkLookupByUUID =3D vboxNetworkLookupByUUID, /* 0.6.4 */ .networkLookupByName =3D vboxNetworkLookupByName, /* 0.6.4 */ .networkCreateXML =3D vboxNetworkCreateXML, /* 0.6.4 */ + .networkCreateXMLFlags =3D vboxNetworkCreateXMLFlags, /* 7.8.0 */ .networkDefineXML =3D vboxNetworkDefineXML, /* 0.6.4 */ .networkDefineXMLFlags =3D vboxNetworkDefineXMLFlags, /* 7.7.0 */ .networkUndefine =3D vboxNetworkUndefine, /* 0.6.4 */ --=20 2.31.1 From nobody Sat Apr 27 04:22:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1631704074; cv=none; d=zohomail.com; s=zohoarc; b=Y9WkRcsbWFlLqxoIGLFYZqxPiZRFWRyBcaUorITFQHpB0mY+Evapm3LN/l/2xCRwkd9Yq0V4us81g5zRNOzSe/biGeW96zKQdwwnPngcmXfXkISphQC353SUMb3cZ8pF296EEnew8oPlsuRY96rJHJIYxyP1oEdaizdQqD1L/tY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1631704074; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=T+Yjj+NoKH6kC4ZAbwd8Fe4/J4Fyp2nujwbtXboYh5A=; b=MnQERpR8CmpTfMtZGBGHuxLgRm+t7nGAWQjyGJ/MdIgeC2lasFKaFymjr4jpcLd5myhYvJ/riuTQO5GSWlEWvRegFhNvtweVGhwC+oGGHxygug01ldOLxhGc07wB4MgFYwzL8Ka5BqlYYtj+wc0tNT5ZTqYji2CuDjxF/n2Nk28= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1631704074336953.0172090431146; Wed, 15 Sep 2021 04:07:54 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-51-ujVgZsZlPSGoVnwfNDM-Eg-1; Wed, 15 Sep 2021 07:07:52 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E7071100CCC3; Wed, 15 Sep 2021 11:07:46 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CD7B260622; Wed, 15 Sep 2021 11:07:46 +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 9F7A41805989; Wed, 15 Sep 2021 11:07:46 +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 18FB7jc1029038 for ; Wed, 15 Sep 2021 07:07:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id A9206100164C; Wed, 15 Sep 2021 11:07:45 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.43.2.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id 33A4F1001281 for ; Wed, 15 Sep 2021 11:07:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1631704073; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=T+Yjj+NoKH6kC4ZAbwd8Fe4/J4Fyp2nujwbtXboYh5A=; b=Kt97mIVp3rcpX4B2VY6peKScIM6yBCuDpCWlgwQC+M47O8OTGDNe75iiW2uKIH4FS2R53p MBmHkyqwhUCya6AcKWmrH2G7MDuEdYu5m+1AVT9N+ydxAJ5+wbJeP0X8E4KA/AM4PMtvOw fh7uyVZn2LthZ46gpNAPQ0HhNLi8aio= X-MC-Unique: ujVgZsZlPSGoVnwfNDM-Eg-1 From: Kristina Hanicova To: libvir-list@redhat.com Subject: [PATCH v2 3/5] api: add virNetworkCreateFlags Date: Wed, 15 Sep 2021 13:07:29 +0200 Message-Id: <9600685f3d369ab846c619a466441cee26c7cdba.1631703632.git.khanicov@redhat.com> 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 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1631704076194100005 Content-Type: text/plain; charset="utf-8" Signed-off-by: Kristina Hanicova Reviewed-by: Michal Privoznik --- include/libvirt/libvirt-network.h | 4 ++++ src/libvirt-network.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/libvirt/libvirt-network.h b/include/libvirt/libvirt-ne= twork.h index e505c3eb7e..398d8fccd4 100644 --- a/include/libvirt/libvirt-network.h +++ b/include/libvirt/libvirt-network.h @@ -113,6 +113,10 @@ virNetworkPtr virNetworkLookupByUUID = (virConnectPtr conn, virNetworkPtr virNetworkLookupByUUIDString (virConnectPtr con= n, const char *uuid); =20 +typedef enum { + VIR_NETWORK_CREATE_VALIDATE =3D 1 << 0, /* Validate the XML document a= gainst schema */ +} virNetworkCreateFlags; + /* * Create active transient network */ diff --git a/src/libvirt-network.c b/src/libvirt-network.c index ee53b9f2c5..883dd40f6b 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -431,7 +431,7 @@ virNetworkCreateXML(virConnectPtr conn, const char *xml= Desc) * virNetworkCreateXMLFlags: * @conn: pointer to the hypervisor connection * @xmlDesc: an XML description of the network - * @flags: extra flags; not used yet, so callers should always pass 0 + * @flags: bitwise-OR of virNetworkCreateFlags * * Create and start a new virtual network, based on an XML description * similar to the one returned by virNetworkGetXMLDesc() --=20 2.31.1 From nobody Sat Apr 27 04:22:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1631704085; cv=none; d=zohomail.com; s=zohoarc; b=D5mA2e/hzNOJI4et4TUr2gbSuPWl2/hcMqkmXAgErpny4AH34a76IRW7Pih3Y1cLk8Y5SFs2oF0xzSLlT5/JX8dHyCjHe6nddYXuHgMS4P9Z5fxUPBBcUbrA1d38KnVM/h4rPmo0i93vcRh3FgHYQzdT11Y3aNDs2C9/uwIe3a4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1631704085; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v+8p2kfIaq3B/B7IEaUTYwiCI6DUv5EdT1QBF4Fh+Uo=; b=YZpUEtLEO4n/1XJfFKAvI/Dhwe8aRuGQXiO+Ye12P4nmaIzzM2GHbkkRFXTAjAVhjN0cWx372NlLHcCjFhz0mG1aStywIbMZwDTe4MsKsbtZaR5rc8vId2GmGZj27H+3GF8Gs9q0UgWixk4tfDTcrEiDMWJHQNLQlQ42l9vWGnI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1631704085343351.0170968178322; Wed, 15 Sep 2021 04:08:05 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-402-H6Qy2DASNcm4H63priVJ-w-1; Wed, 15 Sep 2021 07:08:01 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 92F809F938; Wed, 15 Sep 2021 11:07:52 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7598010023AE; Wed, 15 Sep 2021 11:07:52 +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 485BF1819AC2; Wed, 15 Sep 2021 11:07:52 +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 18FB7kXR029045 for ; Wed, 15 Sep 2021 07:07:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id 777E1100164C; Wed, 15 Sep 2021 11:07:46 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.43.2.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0223A1001281 for ; Wed, 15 Sep 2021 11:07:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1631704084; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=v+8p2kfIaq3B/B7IEaUTYwiCI6DUv5EdT1QBF4Fh+Uo=; b=AkIkTdm36BGci567/1QXdN2CeOt2WGHKN9kh6DZremrKijckQ/clkuPAK4EcP9UKTdfEh7 Cgbr0VzW5KARCl9/Lf1EkSOeoAMLg4OT2bFqgqgCmsDA1SbPtOZYlFHSqyBx7oZwKnA/9x AJTXTgcNFUbqfqDP8fz2gv1UJkAYEAc= X-MC-Unique: H6Qy2DASNcm4H63priVJ-w-1 From: Kristina Hanicova To: libvir-list@redhat.com Subject: [PATCH v2 4/5] network: allow VIR_NETWORK_CREATE_VALIDATE flag Date: Wed, 15 Sep 2021 13:07:30 +0200 Message-Id: <93397a23b8bd1e41faf6fe81aa0bc8cbba92aa3c.1631703632.git.khanicov@redhat.com> 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 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1631704087277100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Kristina Hanicova Reviewed-by: Michal Privoznik --- src/network/bridge_driver.c | 5 +++-- src/test/test_driver.c | 5 +++-- src/vbox/vbox_network.c | 6 +++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index dbb8846e05..7027dc636c 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -3475,9 +3475,10 @@ networkCreateXMLFlags(virConnectPtr conn, virNetworkPtr net =3D NULL; virObjectEvent *event =3D NULL; =20 - virCheckFlags(0, NULL); + virCheckFlags(VIR_NETWORK_CREATE_VALIDATE, NULL); =20 - if (!(newDef =3D virNetworkDefParseString(xml, network_driver->xmlopt,= false))) + if (!(newDef =3D virNetworkDefParseString(xml, network_driver->xmlopt, + !!(flags & VIR_NETWORK_CREATE_= VALIDATE)))) goto cleanup; =20 if (virNetworkCreateXMLFlagsEnsureACL(conn, newDef) < 0) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 26ff2cc759..4f3fd0197e 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -5582,9 +5582,10 @@ testNetworkCreateXMLFlags(virConnectPtr conn, const = char *xml, virNetworkPtr net =3D NULL; virObjectEvent *event =3D NULL; =20 - virCheckFlags(0, NULL); + virCheckFlags(VIR_NETWORK_CREATE_VALIDATE, NULL); =20 - if ((newDef =3D virNetworkDefParseString(xml, NULL, false)) =3D=3D NUL= L) + if (!(newDef =3D virNetworkDefParseString(xml, NULL, + !!(flags & VIR_NETWORK_CREATE_= VALIDATE)))) goto cleanup; =20 if (!(obj =3D virNetworkObjAssignDef(privconn->networks, newDef, diff --git a/src/vbox/vbox_network.c b/src/vbox/vbox_network.c index 1c23b880e8..343b8d35ad 100644 --- a/src/vbox/vbox_network.c +++ b/src/vbox/vbox_network.c @@ -386,7 +386,8 @@ vboxNetworkDefineCreateXML(virConnectPtr conn, const ch= ar *xml, bool start, virNetworkPtr ret =3D NULL; nsresult rc; =20 - virCheckFlags(VIR_NETWORK_DEFINE_VALIDATE, NULL); + virCheckFlags(VIR_NETWORK_DEFINE_VALIDATE | + VIR_NETWORK_CREATE_VALIDATE, NULL); =20 if (!data->vboxObj) return ret; @@ -397,6 +398,9 @@ vboxNetworkDefineCreateXML(virConnectPtr conn, const ch= ar *xml, bool start, =20 VBOX_IID_INITIALIZE(&vboxnetiid); =20 + /* Here we rely on the fact that VIR_NETWORK_DEFINE_VALIDATE and + * VIR_NETWORK_CREATE_VALIDATE always have the same value. + */ if (!(def =3D virNetworkDefParseString(xml, NULL, !!(flags & VIR_NETWORK_DEFINE_VAL= IDATE))) || (def->forward.type !=3D VIR_NETWORK_FORWARD_NONE) || --=20 2.31.1 From nobody Sat Apr 27 04:22:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1631704081; cv=none; d=zohomail.com; s=zohoarc; b=Gb8yrtwkrXqPKG96TBChR26ZKvt0JKqMYp/m19zlI45ceitXmFRHgFlgkYYx+44uOwFRoAMdbxlmvmCTqvNOu/AV3w3ReN3zGGPU3ETbg9k5O4r6fal3I03Ok4vmfX93W1KDysi7pYrPruBQZfJWex0Z6zofE5dtMpYkl/cIjQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1631704081; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wj2wj3NyxUMKvWPpe2/cFgiby9FW6hYEMcCJAJHjNIE=; b=i1CwbElQk2FGgQUjtj3HXZ1DxO0Lc1yzIzr2RRRP0+L1o/boLzHqNJQAO7XNW4RcvYakVR0HaspR9+pTh+wMhGF2F0TZVrU8nSYUTYWz0OadqborlACCXSVIyGPzJz8KajugT33g6ylCIuYHOtmkN6Eies36boddpxpLID/YKYw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 163170408147789.83494793773696; Wed, 15 Sep 2021 04:08:01 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-28-dAXnbi1pOOyBQSXeXzbgKQ-1; Wed, 15 Sep 2021 07:07:58 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08BAB100CCC8; Wed, 15 Sep 2021 11:07:50 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DED065D9F4; Wed, 15 Sep 2021 11:07:49 +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 AF8851806D02; Wed, 15 Sep 2021 11:07:49 +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 18FB7lTj029053 for ; Wed, 15 Sep 2021 07:07:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4534710023AE; Wed, 15 Sep 2021 11:07:47 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.43.2.78]) by smtp.corp.redhat.com (Postfix) with ESMTP id C45371001281 for ; Wed, 15 Sep 2021 11:07:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1631704080; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=wj2wj3NyxUMKvWPpe2/cFgiby9FW6hYEMcCJAJHjNIE=; b=H3NpwYPX7o+1C/RH2LXUOicj8u7yQ8VZvmDf3uG60+cBeDj5qxOJBeeV+3y9tsdRO32QnS goMmh67P3s3CDDchRcr+h/0EHCc7x6N8DscSGOOXPolnj8JUX8nuoIyuJL4kBN1Ov3g9R7 fxNGpATQKBraNVcrlNRA/X2OcSJjAq4= X-MC-Unique: dAXnbi1pOOyBQSXeXzbgKQ-1 From: Kristina Hanicova To: libvir-list@redhat.com Subject: [PATCH v2 5/5] virsh: add support for '--validate' option in create network Date: Wed, 15 Sep 2021 13:07:31 +0200 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 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1631704082867100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Kristina Hanicova Reviewed-by: Michal Privoznik --- docs/manpages/virsh.rst | 4 +++- tools/virsh-network.c | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index ce98283ae3..48d6ab54df 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -5189,13 +5189,15 @@ net-create =20 :: =20 - net-create file + net-create file [--validate] =20 Create a transient (temporary) virtual network from an XML *file* and instantiate (start) the network. See the documentation at `https://libvirt.org/formatnetwork.html `__ to get a description of the XML network format used by libvirt. =20 +Optionally, the format of the input XML file can be validated against an +internal RNG schema with *--validate*. =20 net-define ---------- diff --git a/tools/virsh-network.c b/tools/virsh-network.c index a8f7f46905..37c19b663b 100644 --- a/tools/virsh-network.c +++ b/tools/virsh-network.c @@ -197,6 +197,10 @@ static const vshCmdInfo info_network_create[] =3D { =20 static const vshCmdOptDef opts_network_create[] =3D { VIRSH_COMMON_OPT_FILE(N_("file containing an XML network description")= ), + {.name =3D "validate", + .type =3D VSH_OT_BOOL, + .help =3D N_("validate the XML against the schema") + }, {.name =3D NULL} }; =20 @@ -207,15 +211,22 @@ cmdNetworkCreate(vshControl *ctl, const vshCmd *cmd) const char *from =3D NULL; bool ret =3D true; g_autofree char *buffer =3D NULL; + unsigned int flags =3D 0; virshControl *priv =3D ctl->privData; =20 if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0) return false; =20 + if (vshCommandOptBool(cmd, "validate")) + flags |=3D VIR_NETWORK_CREATE_VALIDATE; + if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0) return false; =20 - network =3D virNetworkCreateXML(priv->conn, buffer); + if (flags) + network =3D virNetworkCreateXMLFlags(priv->conn, buffer, flags); + else + network =3D virNetworkCreateXML(priv->conn, buffer); =20 if (network !=3D NULL) { vshPrintExtra(ctl, _("Network %s created from %s\n"), --=20 2.31.1