[libvirt] [PATCH v2] virsh: Separate 'create'/'modify' message for secret-define

Li Yang liyang.fnst at cn.fujitsu.com
Mon Apr 21 08:10:39 UTC 2014


The current message of secret-define always be:
Secret 09a9736f-eedb-449c-9983-80d0ab67393f created

even you just modify the secret, perhaps this may puzzle uses. Now
this patch make the modify action output message like this:
Secret f2d1bafc-ac58-4a47-93e4-47723686fef5 modified

Signed-off-by: Li Yang <liyang.fnst at cn.fujitsu.com>
---
 tools/virsh-secret.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/tools/virsh-secret.c b/tools/virsh-secret.c
index 10d5db3..47974fe 100644
--- a/tools/virsh-secret.c
+++ b/tools/virsh-secret.c
@@ -96,6 +96,8 @@ cmdSecretDefine(vshControl *ctl, const vshCmd *cmd)
     char *buffer;
     virSecretPtr res;
     char uuid[VIR_UUID_STRING_BUFLEN];
+    virSecretDefPtr new_attrs;
+    virSecretPtr new_res;
     bool ret = false;
 
     if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0)
@@ -104,6 +106,14 @@ cmdSecretDefine(vshControl *ctl, const vshCmd *cmd)
     if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0)
         return false;
 
+    if (!(new_attrs = virSecretDefParseString(buffer))) {
+        VIR_FREE(buffer);
+        return false;
+    }
+
+    new_res = virSecretLookupByUUID(ctl->conn, new_attrs->uuid);
+    new_attrs = NULL;
+
     if (!(res = virSecretDefineXML(ctl->conn, buffer, 0))) {
         vshError(ctl, _("Failed to set attributes from %s"), from);
         goto cleanup;
@@ -114,13 +124,19 @@ cmdSecretDefine(vshControl *ctl, const vshCmd *cmd)
         goto cleanup;
     }
 
-    vshPrint(ctl, _("Secret %s created\n"), uuid);
+    if (new_res == NULL)
+        vshPrint(ctl, _("Secret %s created\n"), uuid);
+    else
+        vshPrint(ctl, _("Secret %s modified\n"), uuid);
     ret = true;
 
  cleanup:
     VIR_FREE(buffer);
+    virSecretDefFree(new_attrs);
     if (res)
         virSecretFree(res);
+    if (new_res)
+        virSecretFree(new_res);
     return ret;
 }
 
-- 
1.7.1




More information about the libvir-list mailing list