]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: add support for '--validate' option in define secret
authorKristina Hanicova <khanicov@redhat.com>
Fri, 20 Aug 2021 12:30:40 +0000 (14:30 +0200)
committerJán Tomko <jtomko@redhat.com>
Fri, 20 Aug 2021 13:41:22 +0000 (15:41 +0200)
Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
docs/manpages/virsh.rst
tools/virsh-secret.c

index bbdf8312f5b4893859bf6c2a0ca206c392a0cc30..e0cdabf3aa5bf12dce1b7ffdc542f79cac0fb54f 100644 (file)
@@ -6698,13 +6698,15 @@ secret-define
 
 ::
 
-   secret-define file
+   secret-define file [--validate]
 
 Create a secret with the properties specified in *file*, with no associated
 secret value.  If *file* does not specify a UUID, choose one automatically.
 If *file* specifies a UUID of an existing secret, replace its properties by
 properties defined in *file*, without affecting the secret value.
 
+Optionally, the format of the input XML file can be validated against an
+internal RNG schema with *--validate*.
 
 secret-dumpxml
 --------------
index dde0d26398fb9e715368821c843049a320a34868..173a77fd90485a7dcc37df348163bc5b3796d7f5 100644 (file)
@@ -73,6 +73,10 @@ static const vshCmdInfo info_secret_define[] = {
 
 static const vshCmdOptDef opts_secret_define[] = {
     VIRSH_COMMON_OPT_FILE(N_("file containing secret attributes in XML")),
+    {.name = "validate",
+     .type = VSH_OT_BOOL,
+     .help = N_("validate the XML against the schema")
+    },
     {.name = NULL}
 };
 
@@ -84,15 +88,19 @@ cmdSecretDefine(vshControl *ctl, const vshCmd *cmd)
     virSecretPtr res;
     char uuid[VIR_UUID_STRING_BUFLEN];
     bool ret = false;
+    unsigned int flags = 0;
     virshControl *priv = ctl->privData;
 
     if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0)
         return false;
 
+    if (vshCommandOptBool(cmd, "validate"))
+        flags |= VIR_SECRET_DEFINE_VALIDATE;
+
     if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0)
         return false;
 
-    if (!(res = virSecretDefineXML(priv->conn, buffer, 0))) {
+    if (!(res = virSecretDefineXML(priv->conn, buffer, flags))) {
         vshError(ctl, _("Failed to set attributes from %s"), from);
         goto cleanup;
     }