
On 05/08/2018 04:20 PM, Lin Ma wrote:
Signed-off-by: Lin Ma <lma@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