]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: Display perf enabled/disabled message for set operations
authorNitesh Konkar <niteshkonkar.libvirt@gmail.com>
Wed, 28 Dec 2016 11:36:22 +0000 (17:06 +0530)
committerJohn Ferlan <jferlan@redhat.com>
Mon, 9 Jan 2017 22:55:59 +0000 (17:55 -0500)
When setting perf events, the enabled/disabled perf events are not
listed. Since we know which events were changed it's possible to
print out the values on successful set, such as :

    virsh perf Domain --enable instructions --disable cache_misses
    instructions   : enabled
    cache_misses   : disabled

Created a helper to print the messages - use the vshPrintExtra to
adhere to the --quiet|-q option being set by some script. This will
cause the get code to print nothing, but will return success/failure.

Signed-off-by: Nitesh Konkar <nitkon12@linux.vnet.ibm.com>
tools/virsh-domain.c

index f8f5d9c662a414bbd756b5bff28d59cd53072ef0..93587e8bc7c79cbb66b6ee107472dfec5f320dab 100644 (file)
@@ -8848,13 +8848,27 @@ virshParseEventStr(const char *event,
     return ret;
 }
 
+static void
+virshPrintPerfStatus(vshControl *ctl, virTypedParameterPtr params, int nparams)
+{
+    size_t i;
+
+    for (i = 0; i < nparams; i++) {
+        if (params[i].type == VIR_TYPED_PARAM_BOOLEAN &&
+            params[i].value.b) {
+            vshPrintExtra(ctl, "%-15s: %s\n", params[i].field, _("enabled"));
+        } else {
+            vshPrintExtra(ctl, "%-15s: %s\n", params[i].field, _("disabled"));
+        }
+    }
+}
+
 static bool
 cmdPerf(vshControl *ctl, const vshCmd *cmd)
 {
     virDomainPtr dom;
     int nparams = 0;
     int maxparams = 0;
-    size_t i;
     virTypedParameterPtr params = NULL;
     bool ret = false;
     const char *enable = NULL, *disable = NULL;
@@ -8891,18 +8905,13 @@ cmdPerf(vshControl *ctl, const vshCmd *cmd)
             vshError(ctl, "%s", _("Unable to get perf events"));
             goto cleanup;
         }
-        for (i = 0; i < nparams; i++) {
-            if (params[i].type == VIR_TYPED_PARAM_BOOLEAN &&
-                params[i].value.b) {
-                vshPrint(ctl, "%-15s: %s\n", params[i].field, _("enabled"));
-            } else {
-                vshPrint(ctl, "%-15s: %s\n", params[i].field, _("disabled"));
-            }
-        }
+        virshPrintPerfStatus(ctl, params, nparams);
     } else {
         if (virDomainSetPerfEvents(dom, params, nparams, flags) != 0) {
             vshError(ctl, "%s", _("Unable to enable/disable perf events"));
             goto cleanup;
+        } else {
+            virshPrintPerfStatus(ctl, params, nparams);
         }
     }