Signed-off-by: Kristina Hanicova <khanicov(a)redhat.com>
---
docs/manpages/virsh.rst | 4 +++-
tools/virsh-pool.c | 11 +++++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index 850a862fd9..2204bed3bb 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -5958,10 +5958,12 @@ pool-define
::
- pool-define file
+ pool-define file [--validate]
Define an inactive persistent storage pool 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*.
pool-define-as
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index f0ee95bdf8..1a2ab8cc53 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -520,7 +520,10 @@ static const vshCmdInfo info_pool_define[] = {
static const vshCmdOptDef opts_pool_define[] = {
VIRSH_COMMON_OPT_FILE(N_("file containing an XML pool description")),
-
+ {.name = "validate",
+ .type = VSH_OT_BOOL,
+ .help = N_("validate the XML against the schema")
+ },
{.name = NULL}
};
@@ -531,15 +534,19 @@ cmdPoolDefine(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_STORAGE_POOL_DEFINE_VALIDATE;
+
if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0)
return false;
- pool = virStoragePoolDefineXML(priv->conn, buffer, 0);
+ pool = virStoragePoolDefineXML(priv->conn, buffer, flags);
if (pool != NULL) {
vshPrintExtra(ctl, _("Pool %s defined from %s\n"),
--
2.31.1