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

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>
This commit is contained in:
Kristina Hanicova 2021-08-20 14:30:40 +02:00 committed by Ján Tomko
parent 5cb3d4ed6d
commit ec5561c0bb
2 changed files with 12 additions and 2 deletions

View 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
--------------

View 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;
}