[libvirt] [PATCH 2/4] virsh: Add timestamps to events

Jiri Denemark jdenemar at redhat.com
Mon Dec 21 10:04:35 UTC 2015


A new --timestamp option for event virsh command can be used to print
timestamp of each event.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 tools/virsh-domain.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index ba38ed9..6e219de 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -12137,6 +12137,7 @@ struct virshDomEventData {
     vshControl *ctl;
     bool loop;
     int *count;
+    bool timestamp;
     vshEventCallback *cb;
     int id;
 };
@@ -12154,7 +12155,16 @@ virshEventPrint(virshDomEventData *data,
     if (!data->loop && *data->count)
         goto cleanup;
 
-    vshPrint(data->ctl, "%s", msg);
+    if (data->timestamp) {
+        char timestamp[VIR_TIME_STRING_BUFLEN];
+
+        if (virTimeStringNowRaw(timestamp) < 0)
+            timestamp[0] = '\0';
+
+        vshPrint(data->ctl, "%s: %s", timestamp, msg);
+    } else {
+        vshPrint(data->ctl, "%s", msg);
+    }
 
     (*data->count)++;
     if (!data->loop)
@@ -12533,6 +12543,10 @@ static const vshCmdOptDef opts_event[] = {
      .type = VSH_OT_BOOL,
      .help = N_("list valid event types")
     },
+    {.name = "timestamp",
+     .type = VSH_OT_BOOL,
+     .help = N_("show timestamp for each printed event")
+    },
     {.name = NULL}
 };
 
@@ -12548,6 +12562,7 @@ cmdEvent(vshControl *ctl, const vshCmd *cmd)
     int event = -1;
     bool all = vshCommandOptBool(cmd, "all");
     bool loop = vshCommandOptBool(cmd, "loop");
+    bool timestamp = vshCommandOptBool(cmd, "timestamp");
     int count = 0;
     virshControlPtr priv = ctl->privData;
 
@@ -12580,6 +12595,7 @@ cmdEvent(vshControl *ctl, const vshCmd *cmd)
             data[i].ctl = ctl;
             data[i].loop = loop;
             data[i].count = &count;
+            data[i].timestamp = timestamp;
             data[i].cb = &vshEventCallbacks[i];
             data[i].id = -1;
         }
@@ -12589,6 +12605,7 @@ cmdEvent(vshControl *ctl, const vshCmd *cmd)
         data[0].ctl = ctl;
         data[0].loop = vshCommandOptBool(cmd, "loop");
         data[0].count = &count;
+        data[0].timestamp = timestamp;
         data[0].cb = &vshEventCallbacks[event];
         data[0].id = -1;
     }
-- 
2.6.4




More information about the libvir-list mailing list