[PATCH 7/7] virsh: add support for '--validate' option in define network

Kristina Hanicova khanicov at redhat.com
Mon Aug 23 16:50:14 UTC 2021


Signed-off-by: Kristina Hanicova <khanicov at redhat.com>
---
 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 e0cdabf3aa..850a862fd9 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -5177,10 +5177,12 @@ net-define
 
 ::
 
-   net-define file
+   net-define file [--validate]
 
 Define an inactive persistent virtual network or modify an existing persistent
 one from the XML *file*.
+Optionally, the format of the input XML file can be validated against an
+internal RNG schema with *--validate*.
 
 
 net-destroy
diff --git a/tools/virsh-network.c b/tools/virsh-network.c
index 0d61e20093..badbcd0a92 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -244,6 +244,10 @@ static const vshCmdInfo info_network_define[] = {
 
 static const vshCmdOptDef opts_network_define[] = {
     VIRSH_COMMON_OPT_FILE(N_("file containing an XML network description")),
+    {.name = "validate",
+     .type = VSH_OT_BOOL,
+     .help = N_("validate the XML against the schema")
+    },
     {.name = NULL}
 };
 
@@ -254,15 +258,22 @@ cmdNetworkDefine(vshControl *ctl, const vshCmd *cmd)
     const char *from = NULL;
     bool ret = true;
     g_autofree char *buffer = NULL;
+    unsigned int flags = 0;
     virshControl *priv = ctl->privData;
 
     if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0)
         return false;
 
+    if (vshCommandOptBool(cmd, "validate"))
+        flags |= VIR_NETWORK_DEFINE_VALIDATE;
+
     if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0)
         return false;
 
-    network = virNetworkDefineXML(priv->conn, buffer);
+    if (flags)
+        network = virNetworkDefineXMLFlags(priv->conn, buffer, flags);
+    else
+        network = virNetworkDefineXML(priv->conn, buffer);
 
     if (network != NULL) {
         vshPrintExtra(ctl, _("Network %s defined from %s\n"),
-- 
2.31.1




More information about the libvir-list mailing list