virsh: add support for '--validate' option in define nwfilter

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Kristina Hanicova 2021-08-20 13:57:10 +02:00 committed by Michal Privoznik
parent a59d196b5d
commit a3d88c9d4c
2 changed files with 16 additions and 2 deletions

View File

@ -7483,7 +7483,7 @@ nwfilter-define
::
nwfilter-define xmlfile
nwfilter-define xmlfile [--validate]
Make a new network filter known to libvirt. If a network filter with
the same name already exists, it will be replaced with the new XML.
@ -7492,6 +7492,9 @@ its network traffic rules adapted. If for any reason the network traffic
filtering rules cannot be instantiated by any of the running virtual
machines, then the new XML will be rejected.
Optionally, the format of the input XML file can be validated against an
internal RNG schema with *--validate*.
nwfilter-undefine
-----------------

View File

@ -81,6 +81,10 @@ static const vshCmdInfo info_nwfilter_define[] = {
static const vshCmdOptDef opts_nwfilter_define[] = {
VIRSH_COMMON_OPT_FILE(N_("file containing an XML network "
"filter description")),
{.name = "validate",
.type = VSH_OT_BOOL,
.help = N_("validate the XML against the schema")
},
{.name = NULL}
};
@ -91,15 +95,22 @@ cmdNWFilterDefine(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_NWFILTER_DEFINE_VALIDATE;
if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0)
return false;
nwfilter = virNWFilterDefineXML(priv->conn, buffer);
if (flags)
nwfilter = virNWFilterDefineXMLFlags(priv->conn, buffer, flags);
else
nwfilter = virNWFilterDefineXML(priv->conn, buffer);
if (nwfilter != NULL) {
vshPrintExtra(ctl, _("Network filter %s defined from %s\n"),