[libvirt] [PATCH v2 11/12] virsh: add helper for returning event name string

Michal Privoznik mprivozn at redhat.com
Thu May 10 09:17:04 UTC 2018


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




More information about the libvir-list mailing list