From nobody Mon Feb 9 02:12:25 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1623717665898575.5533103328016; Mon, 14 Jun 2021 17:41:05 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-556-BwHhXc0CPsmdfnIc39NwAQ-1; Mon, 14 Jun 2021 20:41:03 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83920107ACF6; Tue, 15 Jun 2021 00:40:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5F6935D9D5; Tue, 15 Jun 2021 00:40:58 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 269AC1800BAE; Tue, 15 Jun 2021 00:40:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 15F0du1O002140 for ; Mon, 14 Jun 2021 20:39:57 -0400 Received: by smtp.corp.redhat.com (Postfix) id CCC0E51EF; Tue, 15 Jun 2021 00:39:56 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C71BA63ABC for ; Tue, 15 Jun 2021 00:39:54 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2DA8A185A79C for ; Tue, 15 Jun 2021 00:39:54 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-441-tvZvqCJMN5mCLm_TIuX0kg-1; Mon, 14 Jun 2021 20:39:51 -0400 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-36-_SORRijlPXGaTKaRfEXo5A-1; Tue, 15 Jun 2021 02:39:48 +0200 Received: from AM9PR04MB8602.eurprd04.prod.outlook.com (2603:10a6:20b:439::12) by AM9PR04MB8779.eurprd04.prod.outlook.com (2603:10a6:20b:40a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Tue, 15 Jun 2021 00:39:47 +0000 Received: from AM9PR04MB8602.eurprd04.prod.outlook.com ([fe80::cd4e:6cc0:8021:f249]) by AM9PR04MB8602.eurprd04.prod.outlook.com ([fe80::cd4e:6cc0:8021:f249%4]) with mapi id 15.20.4219.025; Tue, 15 Jun 2021 00:39:47 +0000 Received: from localhost (139.212.198.161) by HKAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:203:d0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21 via Frontend Transport; Tue, 15 Jun 2021 00:39:46 +0000 X-MC-Unique: BwHhXc0CPsmdfnIc39NwAQ-1 X-MC-Unique: tvZvqCJMN5mCLm_TIuX0kg-1 X-MC-Unique: _SORRijlPXGaTKaRfEXo5A-1 From: Lin Ma To: libvir-list@redhat.com Subject: [libvirt] [PATCH 10/12] virsh-volume: Add macros VIRSH_COMMON_OPT_VOL_* Date: Tue, 15 Jun 2021 08:38:30 +0800 Message-ID: <20210615003832.5571-11-lma@suse.com> In-Reply-To: <20210615003832.5571-1-lma@suse.com> References: <20210615003832.5571-1-lma@suse.com> X-Originating-IP: [139.212.198.161] X-ClientProxiedBy: HKAPR04CA0003.apcprd04.prod.outlook.com (2603:1096:203:d0::13) To AM9PR04MB8602.eurprd04.prod.outlook.com (2603:10a6:20b:439::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4cab66b5-f0d0-4a39-73c9-08d92f9613c7 X-MS-TrafficTypeDiagnostic: AM9PR04MB8779: X-LD-Processed: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba,ExtFwd X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:862 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: vxEvd9AFoH1tqxumSTEZYWKVcGZftzVbzusHnonlGlxH3uVG+ulbvfGV3ySzgyKva4baJuFsJxhhhOtZA9X2zzx/wM+56Qg+X52MMTMklZjIDtOTRUheKDXwCmVf5MmYwG2yeq1l2DbW5GnJuA/EYfQyhSwTasWek3QE8N2xPJyIhPBjDKH4qaOcQ4wgYk+UxsAymopnU1iH33pYzUTfiwVNEkArj22M7aVuRnzqsqhDCG63+rTQt59CIJ57bUOv1Tl4SbL+BnwZ5cpfbx6MVU9MM1pGcVvA/fhPswPace//bBMRF2QGUuC9/WySjNI/FDeFtDuYdMgbGlMnw870Gfli67ubLiYOfI3e0qajgenK7nRU6F5q/fF2mw890ts6mKaW/QyMOfRrRvcxfWFSPKrVkkCpz7ej/f9CeH7iBf3tqkTNlJ+OtX3b5hbJ4e/8Bn9IWv3L37qGk5nyk31zG+M8pjSTtPpykGcHX0JeS9GLljRulnkcNmywtxfWOMJ28zDzFPjstjXr+dr9fmcq6ujTi4m8bA6YU/2JzsKJyu9Pn3OLOPH0NOXe0SsNryqyxKJ/1ph/9vsKVtcMP8e01laEZ3kH7UcF3fD3FiP4n0c= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8602.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(39860400002)(396003)(346002)(376002)(136003)(186003)(86362001)(16526019)(26005)(450100002)(6916009)(478600001)(8676002)(5660300002)(8936002)(4326008)(66946007)(66556008)(66476007)(83380400001)(2616005)(956004)(1076003)(107886003)(316002)(6496006)(6666004)(2906002)(36756003)(38100700002)(6486002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yl6+VkN0C/rVl1AsxfTaM6OcTHndi0MdnvsK/ugBLStQe8QZScPiPvJ1lov2?= =?us-ascii?Q?F473sWXFroftoF2hymTe4h3p0hT9szU7AL9UqSUvh6Rjkbnbraimk9taGsDZ?= =?us-ascii?Q?SKCAZm0v5/DsXFXqsbdlXfFbotwB/a74syuaoatCLHp4LN0zMPhP1uG85fhz?= =?us-ascii?Q?UXUya0lROOI7Lh5a/m8zvoHK9ryfIAB2O8nLhP7hF/2oV9wuhmdkbEuCs17y?= =?us-ascii?Q?7kDxVgsv8tGKYVksNkTjZNRv8EfPbvyguh2zut2zAmDiRdwkkhB8qRPilY/F?= =?us-ascii?Q?BDAu641BBu+n3zvrVfNTa7CAcM8c3exz5KWt2PNi/d8vHiGjjBgJgLumg1Xc?= =?us-ascii?Q?S2D7dm7SSXbnOszfGM1UTFIyH2f1bdNcEt+vS2uAJEJoyJUO11dawN9j9/o4?= =?us-ascii?Q?xZvxQD7VbiTj4V5t7wLHMw65tcCNTqi0BTI561jUKVTMxR7T9gYKzDEwyeGk?= =?us-ascii?Q?rxC7MRCOijmH/ev6zo9SbaGKnVevca28jWTQM+LI4utQbX/ywvAsdlTKJWXZ?= =?us-ascii?Q?P/gp2yI4vgez7qwLeKA2CX6ggMT9D7cMXDgCBpAXfD9ggus2jEXJOTZncKCT?= =?us-ascii?Q?4V2NZztVvgCR+asdPCCL3Al1YrQxLVYMMxFjV/GLa1OiUaFsX/26b73hrLPr?= =?us-ascii?Q?7oNByqKJuKk3wh/ncve0okEYhfsM8Y/wRY+yknPJZUgTbYblZFnT81Dao3EV?= =?us-ascii?Q?4DYZnxnu8RDXhU959CpQ9CRvbie6zWFA7XUBFyvOm8Q2nhClgUu6iY1SKW1m?= =?us-ascii?Q?kssOiJllFyfTJEvSBjRqTgPnlvOjlG0K51vO22jYd9SZtRM2HhuUsiSS4u8t?= =?us-ascii?Q?4laivkPuDp4iXyq7wAsXAQaIsx5GaudRq2aEmDQRDXSY32k3qTcCHEIc9wnr?= =?us-ascii?Q?MjLuiZF5qwcLaqcvoiLyxZW4AESZtYj7i3RvAuUQUv2q0/YPFefodFSf62FP?= =?us-ascii?Q?ZmVHCC8m1Tcp+nbxUL1+hWK7cc5uIi2dgo1mhxhT4gRAM+Ry6jMa8H44mbER?= =?us-ascii?Q?q3N7grxAgfK9z4RZ4reeBg9WQqc9JV4oSGrmrN0xZoQ9KoD8SpZzmrRaV3BV?= =?us-ascii?Q?GP3E4cpKkkEyW0pQs1zf786akEl10hn88mnyFFyTpAG8ygGIHcmHEK0D+arU?= =?us-ascii?Q?QDUH82acmMB1LgJlwxcDnQQeOTemHfK4kjHEfeDTgX7AlkFatQrpUdf3rsYa?= =?us-ascii?Q?wvZ9+L+ltJWeJdNX2ae9MVVCIa9DIwuwbrIMw1ODr4ma1vJWSk8ij4TPUonw?= =?us-ascii?Q?0mhkakphWWO9vzIab/QoEGkdjX0rdVorbs17ZUpCoZRytk7UNJMGOQCWXAo7?= =?us-ascii?Q?NDqOlbu9r6ysdNyH1w77td+N?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cab66b5-f0d0-4a39-73c9-08d92f9613c7 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8602.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 00:39:47.7544 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IiVb2mF5N/Pkeyfu5C4JIa92oHQDeWV3TTl+W5UaDmNLJQn/e7KzL/dKDcwNk2M8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8779 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 15F0du1O002140 X-loop: libvir-list@redhat.com Cc: mprivozn@redhat.com, Lin Ma X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 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 Content-Type: text/plain; charset="utf-8" Signed-off-by: Lin Ma --- tools/virsh-volume.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c index c7d5ab8c3b..41b366a833 100644 --- a/tools/virsh-volume.c +++ b/tools/virsh-volume.c @@ -54,14 +54,28 @@ .completer_flags =3D VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE, \ } =20 -#define VIRSH_COMMON_OPT_VOLUME_VOL \ +#define VIRSH_COMMON_OPT_VOL_NAME(_helpstr) \ {.name =3D "vol", \ .type =3D VSH_OT_DATA, \ .flags =3D VSH_OFLAG_REQ, \ - .help =3D N_("vol name, key or path"), \ + .help =3D _helpstr, \ .completer =3D virshStorageVolNameCompleter, \ } =20 +#define VIRSH_COMMON_OPT_VOL_KEY(_helpstr) \ + {.name =3D "vol", \ + .type =3D VSH_OT_DATA, \ + .flags =3D VSH_OFLAG_REQ, \ + .help =3D _helpstr, \ + .completer =3D virshStorageVolKeyCompleter, \ + } + +#define VIRSH_COMMON_OPT_VOL_FULL \ + VIRSH_COMMON_OPT_VOL_NAME(N_("vol name, key or path")) + +#define VIRSH_COMMON_OPT_VOL_BY_KEY \ + VIRSH_COMMON_OPT_VOL_KEY(N_("volume key or path")) + virStorageVolPtr virshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd, const char *optname, @@ -440,7 +454,7 @@ static const vshCmdInfo info_vol_create_from[] =3D { static const vshCmdOptDef opts_vol_create_from[] =3D { VIRSH_COMMON_OPT_POOL_FULL, VIRSH_COMMON_OPT_FILE(N_("file containing an XML vol description")), - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, {.name =3D "inputpool", .type =3D VSH_OT_STRING, .help =3D N_("pool name or uuid of the input volume's pool") @@ -550,7 +564,7 @@ static const vshCmdInfo info_vol_clone[] =3D { }; =20 static const vshCmdOptDef opts_vol_clone[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, {.name =3D "newname", .type =3D VSH_OT_DATA, .flags =3D VSH_OFLAG_REQ, @@ -646,7 +660,7 @@ static const vshCmdInfo info_vol_upload[] =3D { }; =20 static const vshCmdOptDef opts_vol_upload[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, VIRSH_COMMON_OPT_FILE(N_("file")), VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name =3D "offset", @@ -768,7 +782,7 @@ static const vshCmdInfo info_vol_download[] =3D { }; =20 static const vshCmdOptDef opts_vol_download[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, VIRSH_COMMON_OPT_FILE(N_("file")), VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name =3D "offset", @@ -889,7 +903,7 @@ static const vshCmdInfo info_vol_delete[] =3D { }; =20 static const vshCmdOptDef opts_vol_delete[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name =3D "delete-snapshots", .type =3D VSH_OT_BOOL, @@ -939,7 +953,7 @@ static const vshCmdInfo info_vol_wipe[] =3D { }; =20 static const vshCmdOptDef opts_vol_wipe[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name =3D "algorithm", .type =3D VSH_OT_STRING, @@ -1027,7 +1041,7 @@ static const vshCmdInfo info_vol_info[] =3D { }; =20 static const vshCmdOptDef opts_vol_info[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name =3D "bytes", .type =3D VSH_OT_BOOL, @@ -1117,7 +1131,7 @@ static const vshCmdInfo info_vol_resize[] =3D { }; =20 static const vshCmdOptDef opts_vol_resize[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, {.name =3D "capacity", .type =3D VSH_OT_DATA, .flags =3D VSH_OFLAG_REQ, @@ -1214,7 +1228,7 @@ static const vshCmdInfo info_vol_dumpxml[] =3D { }; =20 static const vshCmdOptDef opts_vol_dumpxml[] =3D { - VIRSH_COMMON_OPT_VOLUME_VOL, + VIRSH_COMMON_OPT_VOL_FULL, VIRSH_COMMON_OPT_POOL_OPTIONAL, {.name =3D NULL} }; --=20 2.26.2