From nobody Mon Feb 9 05:20:21 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1647328143; cv=none; d=zohomail.com; s=zohoarc; b=GQ2yW3dYGZaqpzbb93qmAaYXrnUsv3is0Uxt1gZo8YNm0l67kh9JbzKyorZlZna0+yigQUkTUnxhYqDjrW2fXzhvy5qaQX3w4JQ+mWlXlbTqO0M4dJDYGZZEggtaOS2XlwammGUExUuji0X5rQjhPZdigNVGbJ1m+5GzYHiSyoU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647328143; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9uof99H9jYnetnU4QR6CbPlce8IrzU5ceTN9m3DZdDc=; b=Pqzl8+RxtJYaD7xAMfrlXreFGMWhlFnpOdghSIRRPLeXLgFv6uothvjOYmFlO/qAOi4hiEHJDEQWTANHVyizfT3ZZaOgznjJTlTRocJx8FYOT2o6NO0yc4g47MTOFGBwfyHWN66qVgKTYcjvY+w0GA+FojwIuF3URiaZ7Sb45Qw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1647328143323860.7771264909186; Tue, 15 Mar 2022 00:09:03 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-7-rTr9_PUIO26bxfBX19xLFg-1; Tue, 15 Mar 2022 03:08:28 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3AD6C811E83; Tue, 15 Mar 2022 07:08:26 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 24809141DED5; Tue, 15 Mar 2022 07:08:26 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id E52741930E27; Tue, 15 Mar 2022 07:08:22 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id AB4C11932106 for ; Tue, 15 Mar 2022 07:08:21 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 8159E40C1247; Tue, 15 Mar 2022 07:08:21 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id 03A4D40C128B for ; Tue, 15 Mar 2022 07:08:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647328142; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=9uof99H9jYnetnU4QR6CbPlce8IrzU5ceTN9m3DZdDc=; b=c/OCt6+t0UwcH2v7J0U0s7UbWBMrF/Zp+l5g39yoY+u1HRpPY7cMQG9nDdVX9bFZEP4tWz 8ablWCM/nJ7MZcK8LZNDEAJJwTdK7uzhcLBz3N3jATX7A2aOYJwUUQ6S0tXF7GF72Ivi13 u5MTNxMxM8NGc1KY6Hxnh25qIjWJJdE= X-MC-Unique: rTr9_PUIO26bxfBX19xLFg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 3/3] virsh: Don't open code virshEnumComplete() Date: Tue, 15 Mar 2022 08:08:17 +0100 Message-Id: <9d11f169a30d02a42b4ff66789302021aa414d84.1647328065.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1647328145955100001 Content-Type: text/plain; charset="utf-8" Now that we have a function that generates string list for given enum, let's use that instead of open coding it. Note, after this there are still some 'candidates' left (e.g, virshNetworkEventNameCompleter(), or virshNetworkUpdateCommandCompleter()). These are not converted because either they don't have a convenient int2str function or they don't start from the very beginning of the enum. Signed-off-by: Michal Privoznik --- tools/virsh-completer-domain.c | 147 ++++++-------------------------- tools/virsh-completer-host.c | 11 +-- tools/virsh-completer-nodedev.c | 7 +- tools/virsh-completer-pool.c | 7 +- tools/virsh-completer-volume.c | 11 +-- 5 files changed, 36 insertions(+), 147 deletions(-) diff --git a/tools/virsh-completer-domain.c b/tools/virsh-completer-domain.c index 9cc27b84cb..d4c877cd04 100644 --- a/tools/virsh-completer-domain.c +++ b/tools/virsh-completer-domain.c @@ -476,17 +476,10 @@ virshDomainInterfaceAddrSourceCompleter(vshControl *c= tl G_GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST + 1); - - for (i =3D 0; i < VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST; i++) - ret[i] =3D g_strdup(virshDomainInterfaceAddressesSourceTypeToStrin= g(i)); - - return ret; + return virshEnumComplete(VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LAST, + virshDomainInterfaceAddressesSourceTypeToStri= ng); } =20 =20 @@ -495,17 +488,10 @@ virshDomainInterfaceSourceModeCompleter(vshControl *c= tl G_GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIRSH_DOMAIN_INTERFACE_SOURCE_MODE_LAST + 1); - - for (i =3D 0; i < VIRSH_DOMAIN_INTERFACE_SOURCE_MODE_LAST; i++) - ret[i] =3D g_strdup(virshDomainInterfaceSourceModeTypeToString(i)); - - return ret; + return virshEnumComplete(VIRSH_DOMAIN_INTERFACE_SOURCE_MODE_LAST, + virshDomainInterfaceSourceModeTypeToString); } =20 =20 @@ -514,17 +500,10 @@ virshDomainHostnameSourceCompleter(vshControl *ctl G_= GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST + 1); - - for (i =3D 0; i < VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST; i++) - ret[i] =3D g_strdup(virshDomainHostnameSourceTypeToString(i)); - - return ret; + return virshEnumComplete(VIRSH_DOMAIN_HOSTNAME_SOURCE_LAST, + virshDomainHostnameSourceTypeToString); } =20 =20 @@ -533,20 +512,17 @@ virshDomainPerfEnableCompleter(vshControl *ctl, const vshCmd *cmd, unsigned int flags) { - size_t i =3D 0; g_auto(GStrv) events =3D NULL; const char *event =3D NULL; =20 virCheckFlags(0, NULL); =20 - events =3D g_new0(char *, VIR_PERF_EVENT_LAST + 1); - - for (i =3D 0; i < VIR_PERF_EVENT_LAST; i++) - events[i] =3D g_strdup(virPerfEventTypeToString(i)); - if (vshCommandOptStringQuiet(ctl, cmd, "enable", &event) < 0) return NULL; =20 + events =3D virshEnumComplete(VIR_PERF_EVENT_LAST, + virPerfEventTypeToString); + return virshCommaStringListComplete(event, (const char **)events); } =20 @@ -556,20 +532,17 @@ virshDomainPerfDisableCompleter(vshControl *ctl, const vshCmd *cmd, unsigned int flags) { - size_t i =3D 0; g_auto(GStrv) events =3D NULL; const char *event =3D NULL; =20 virCheckFlags(0, NULL); =20 - events =3D g_new0(char *, VIR_PERF_EVENT_LAST + 1); - - for (i =3D 0; i < VIR_PERF_EVENT_LAST; i++) - events[i] =3D g_strdup(virPerfEventTypeToString(i)); - if (vshCommandOptStringQuiet(ctl, cmd, "disable", &event) < 0) return NULL; =20 + events =3D virshEnumComplete(VIR_PERF_EVENT_LAST, + virPerfEventTypeToString); + return virshCommaStringListComplete(event, (const char **)events); } =20 @@ -871,19 +844,10 @@ virshDomainSignalCompleter(vshControl *ctl G_GNUC_UNU= SED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - g_auto(GStrv) tmp =3D NULL; - size_t i =3D 0; - virCheckFlags(0, NULL); =20 - tmp =3D g_new0(char *, VIR_DOMAIN_PROCESS_SIGNAL_LAST + 1); - - for (i =3D 0; i < VIR_DOMAIN_PROCESS_SIGNAL_LAST; i++) { - const char *name =3D virshDomainProcessSignalTypeToString(i); - tmp[i] =3D g_strdup(name); - } - - return g_steal_pointer(&tmp); + return virshEnumComplete(VIR_DOMAIN_PROCESS_SIGNAL_LAST, + virshDomainProcessSignalTypeToString); } =20 =20 @@ -892,19 +856,10 @@ virshDomainLifecycleCompleter(vshControl *ctl G_GNUC_= UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - g_auto(GStrv) tmp =3D NULL; - size_t i =3D 0; - virCheckFlags(0, NULL); =20 - tmp =3D g_new0(char *, VIR_DOMAIN_LIFECYCLE_LAST + 1); - - for (i =3D 0; i < VIR_DOMAIN_LIFECYCLE_LAST; i++) { - const char *name =3D virshDomainLifecycleTypeToString(i); - tmp[i] =3D g_strdup(name); - } - - return g_steal_pointer(&tmp); + return virshEnumComplete(VIR_DOMAIN_LIFECYCLE_LAST, + virshDomainLifecycleTypeToString); } =20 =20 @@ -913,19 +868,10 @@ virshDomainLifecycleActionCompleter(vshControl *ctl G= _GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - g_auto(GStrv) tmp =3D NULL; - size_t i =3D 0; - virCheckFlags(0, NULL); =20 - tmp =3D g_new0(char *, VIR_DOMAIN_LIFECYCLE_ACTION_LAST + 1); - - for (i =3D 0; i < VIR_DOMAIN_LIFECYCLE_ACTION_LAST; i++) { - const char *action =3D virshDomainLifecycleActionTypeToString(i); - tmp[i] =3D g_strdup(action); - } - - return g_steal_pointer(&tmp); + return virshEnumComplete(VIR_DOMAIN_LIFECYCLE_ACTION_LAST, + virshDomainLifecycleActionTypeToString); } =20 =20 @@ -934,19 +880,10 @@ virshCodesetNameCompleter(vshControl *ctl G_GNUC_UNUS= ED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - g_auto(GStrv) tmp =3D NULL; - size_t i =3D 0; - virCheckFlags(0, NULL); =20 - tmp =3D g_new0(char *, VIR_KEYCODE_SET_LAST + 1); - - for (i =3D 0; i < VIR_KEYCODE_SET_LAST; i++) { - const char *name =3D virKeycodeSetTypeToString(i); - tmp[i] =3D g_strdup(name); - } - - return g_steal_pointer(&tmp); + return virshEnumComplete(VIR_KEYCODE_SET_LAST, + virKeycodeSetTypeToString); } =20 =20 @@ -1064,17 +1001,10 @@ virshDomainCoreDumpFormatCompleter(vshControl *ctl = G_GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIR_DOMAIN_CORE_DUMP_FORMAT_LAST + 1); - - for (i =3D 0; i < VIR_DOMAIN_CORE_DUMP_FORMAT_LAST; i++) - ret[i] =3D g_strdup(virshDomainCoreDumpFormatTypeToString(i)); - - return ret; + return virshEnumComplete(VIR_DOMAIN_CORE_DUMP_FORMAT_LAST, + virshDomainCoreDumpFormatTypeToString); } =20 =20 @@ -1100,17 +1030,10 @@ virshDomainStorageFileFormatCompleter(vshControl *c= tl G_GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIR_STORAGE_FILE_LAST + 1); - - for (i =3D 0; i < VIR_STORAGE_FILE_LAST; i++) - ret[i] =3D g_strdup(virStorageFileFormatTypeToString(i)); - - return ret; + return virshEnumComplete(VIR_STORAGE_FILE_LAST, + virStorageFileFormatTypeToString); } =20 =20 @@ -1119,17 +1042,10 @@ virshDomainNumatuneModeCompleter(vshControl *ctl G_= GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIR_DOMAIN_NUMATUNE_MEM_LAST + 1); - - for (i =3D 0; i < VIR_DOMAIN_NUMATUNE_MEM_LAST; i++) - ret[i] =3D g_strdup(virDomainNumatuneMemModeTypeToString(i)); - - return ret; + return virshEnumComplete(VIR_DOMAIN_NUMATUNE_MEM_LAST, + virDomainNumatuneMemModeTypeToString); } =20 =20 @@ -1138,15 +1054,8 @@ virshDomainDirtyRateCalcModeCompleter(vshControl *ct= l G_GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIRSH_DOMAIN_DIRTYRATE_CALC_MODE_LAST + 1); - - for (i =3D 0; i < VIRSH_DOMAIN_DIRTYRATE_CALC_MODE_LAST; i++) - ret[i] =3D g_strdup(virshDomainDirtyRateCalcModeTypeToString(i)); - - return ret; + return virshEnumComplete(VIRSH_DOMAIN_DIRTYRATE_CALC_MODE_LAST, + virshDomainDirtyRateCalcModeTypeToString); } diff --git a/tools/virsh-completer-host.c b/tools/virsh-completer-host.c index 3795d1fd3a..40cb687582 100644 --- a/tools/virsh-completer-host.c +++ b/tools/virsh-completer-host.c @@ -175,15 +175,8 @@ virshNodeSuspendTargetCompleter(vshControl *ctl G_GNUC= _UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIR_NODE_SUSPEND_TARGET_LAST + 1); - - for (i =3D 0; i < VIR_NODE_SUSPEND_TARGET_LAST; i++) - ret[i] =3D g_strdup(virshNodeSuspendTargetTypeToString(i)); - - return ret; + return virshEnumComplete(VIR_NODE_SUSPEND_TARGET_LAST, + virshNodeSuspendTargetTypeToString); } diff --git a/tools/virsh-completer-nodedev.c b/tools/virsh-completer-nodede= v.c index d10bf2b78c..bf6e809b5a 100644 --- a/tools/virsh-completer-nodedev.c +++ b/tools/virsh-completer-nodedev.c @@ -91,17 +91,14 @@ virshNodeDeviceCapabilityNameCompleter(vshControl *ctl, { g_auto(GStrv) tmp =3D NULL; const char *cap_str =3D NULL; - size_t i =3D 0; =20 virCheckFlags(0, NULL); =20 if (vshCommandOptStringQuiet(ctl, cmd, "cap", &cap_str) < 0) return NULL; =20 - tmp =3D g_new0(char *, VIR_NODE_DEV_CAP_LAST + 1); - - for (i =3D 0; i < VIR_NODE_DEV_CAP_LAST; i++) - tmp[i] =3D g_strdup(virNodeDevCapTypeToString(i)); + tmp =3D virshEnumComplete(VIR_NODE_DEV_CAP_LAST, + virNodeDevCapTypeToString); =20 return virshCommaStringListComplete(cap_str, (const char **)tmp); } diff --git a/tools/virsh-completer-pool.c b/tools/virsh-completer-pool.c index 84e9d6cc5a..1a966d95b9 100644 --- a/tools/virsh-completer-pool.c +++ b/tools/virsh-completer-pool.c @@ -94,17 +94,14 @@ virshPoolTypeCompleter(vshControl *ctl, { g_auto(GStrv) tmp =3D NULL; const char *type_str =3D NULL; - size_t i =3D 0; =20 virCheckFlags(0, NULL); =20 if (vshCommandOptStringQuiet(ctl, cmd, "type", &type_str) < 0) return NULL; =20 - tmp =3D g_new0(char *, VIR_STORAGE_POOL_LAST + 1); - - for (i =3D 0; i < VIR_STORAGE_POOL_LAST; i++) - tmp[i] =3D g_strdup(virStoragePoolTypeToString(i)); + tmp =3D virshEnumComplete(VIR_STORAGE_POOL_LAST, + virStoragePoolTypeToString); =20 return virshCommaStringListComplete(type_str, (const char **)tmp); } diff --git a/tools/virsh-completer-volume.c b/tools/virsh-completer-volume.c index bed45fa1ca..a1ebadccac 100644 --- a/tools/virsh-completer-volume.c +++ b/tools/virsh-completer-volume.c @@ -123,15 +123,8 @@ virshStorageVolWipeAlgorithmCompleter(vshControl *ctl = G_GNUC_UNUSED, const vshCmd *cmd G_GNUC_UNUSED, unsigned int flags) { - char **ret =3D NULL; - size_t i; - virCheckFlags(0, NULL); =20 - ret =3D g_new0(char *, VIR_STORAGE_VOL_WIPE_ALG_LAST + 1); - - for (i =3D 0; i < VIR_STORAGE_VOL_WIPE_ALG_LAST; i++) - ret[i] =3D g_strdup(virshStorageVolWipeAlgorithmTypeToString(i)); - - return ret; + return virshEnumComplete(VIR_STORAGE_VOL_WIPE_ALG_LAST, + virshStorageVolWipeAlgorithmTypeToString); } --=20 2.34.1