On 05/08/2018 04:20 PM, Lin Ma wrote:
Signed-off-by: Lin Ma <lma(a)suse.com>
---
tools/virsh-util.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/virsh-util.h | 3 +++
2 files changed, 63 insertions(+)
diff --git a/tools/virsh-util.c b/tools/virsh-util.c
index 44be3ad64b..686f9aef98 100644
--- a/tools/virsh-util.c
+++ b/tools/virsh-util.c
@@ -285,3 +285,63 @@ virshDomainGetXML(vshControl *ctl,
return ret;
}
+
+
+const char *
+virshDomainEventGetName(int event)
+{
+ switch ((int)event) {
+ case VIR_DOMAIN_EVENT_ID_LIFECYCLE:
+ return "lifecycle";
+ case VIR_DOMAIN_EVENT_ID_REBOOT:
+ return "reboot";
+ case VIR_DOMAIN_EVENT_ID_RTC_CHANGE:
+ return "rtc-change";
+ case VIR_DOMAIN_EVENT_ID_WATCHDOG:
+ return "watchdog";
+ case VIR_DOMAIN_EVENT_ID_IO_ERROR:
+ return "io-error";
+ case VIR_DOMAIN_EVENT_ID_GRAPHICS:
+ return "graphics";
+ case VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON:
+ return "io-error-reason";
+ case VIR_DOMAIN_EVENT_ID_CONTROL_ERROR:
+ return "control-error";
+ case VIR_DOMAIN_EVENT_ID_BLOCK_JOB:
+ return "block-job";
+ case VIR_DOMAIN_EVENT_ID_DISK_CHANGE:
+ return "disk-change";
+ case VIR_DOMAIN_EVENT_ID_TRAY_CHANGE:
+ return "tray-change";
+ case VIR_DOMAIN_EVENT_ID_PMWAKEUP:
+ return "pm-wakeup";
+ case VIR_DOMAIN_EVENT_ID_PMSUSPEND:
+ return "pm-suspend";
+ case VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE:
+ return "balloon-change";
+ case VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK:
+ return "pm-suspend-disk";
+ case VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED:
+ return "device-removed";
+ case VIR_DOMAIN_EVENT_ID_BLOCK_JOB_2:
+ return "block-job-2";
+ case VIR_DOMAIN_EVENT_ID_TUNABLE:
+ return "tunable";
+ case VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE:
+ return "agent-lifecycle";
+ case VIR_DOMAIN_EVENT_ID_DEVICE_ADDED:
+ return "device-added";
+ case VIR_DOMAIN_EVENT_ID_MIGRATION_ITERATION:
+ return "migration-iteration";
+ case VIR_DOMAIN_EVENT_ID_JOB_COMPLETED:
+ return "job-completed";
+ case VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED:
+ return "device-removal-failed";
+ case VIR_DOMAIN_EVENT_ID_METADATA_CHANGE:
+ return "metadata-change";
+ case VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD:
+ return "block-threshold";
+ default:
+ return NULL;
+ }
Or simply:
const char *
virshDomainEventGetName(int event)
{
if (event < 0 || event >= VIR_DOMAIN_EVENT_ID_LAST)
return NULL;
return vshEventCallbacks[event].name;
}
I really want to avoid having two places defining strings (one for
command parse code, the other for completions).
Michal