From nobody Mon Feb 9 04:03:48 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 1623830609526933.6072862647849; Wed, 16 Jun 2021 01:03:29 -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-558-YShWf8WMO0GbzvBoTlJryA-1; Wed, 16 Jun 2021 04:03:24 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 73C2F800685; Wed, 16 Jun 2021 08:03:19 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2AC9F197F9; Wed, 16 Jun 2021 08:03:19 +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 1A12C4A717; Wed, 16 Jun 2021 08:03:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 15G83G3G002301 for ; Wed, 16 Jun 2021 04:03:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0A8D920A8945; Wed, 16 Jun 2021 08:03:16 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 059F120A8944 for ; Wed, 16 Jun 2021 08:03:16 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.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 DE9C080D0E2 for ; Wed, 16 Jun 2021 08:03:15 +0000 (UTC) Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-445-372pjEunNzKHFUuNuwvZ1A-1; Wed, 16 Jun 2021 04:03:13 -0400 Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-db5eur03lp2056.outbound.protection.outlook.com [104.47.10.56]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-23-uaHTIMOmN9i1AmJ2jhfAHg-2; Wed, 16 Jun 2021 10:03:11 +0200 Received: from AM9PR04MB8602.eurprd04.prod.outlook.com (2603:10a6:20b:439::12) by AM9PR04MB8793.eurprd04.prod.outlook.com (2603:10a6:20b:408::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.18; Wed, 16 Jun 2021 08:03:08 +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.4242.019; Wed, 16 Jun 2021 08:03:08 +0000 Received: from localhost (60.251.47.115) by PR3P251CA0026.EURP251.PROD.OUTLOOK.COM (2603:10a6:102:b5::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.18 via Frontend Transport; Wed, 16 Jun 2021 08:03:07 +0000 X-MC-Unique: YShWf8WMO0GbzvBoTlJryA-1 X-MC-Unique: 372pjEunNzKHFUuNuwvZ1A-1 X-MC-Unique: uaHTIMOmN9i1AmJ2jhfAHg-2 From: Lin Ma To: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 2/5] virsh-volume: Introduce virshStorageVolKeyCompleter Date: Wed, 16 Jun 2021 16:02:51 +0800 Message-ID: <20210616080254.19513-3-lma@suse.com> In-Reply-To: <20210616080254.19513-1-lma@suse.com> References: <20210616080254.19513-1-lma@suse.com> X-Originating-IP: [60.251.47.115] X-ClientProxiedBy: PR3P251CA0026.EURP251.PROD.OUTLOOK.COM (2603:10a6:102:b5::30) 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: 1061afea-86ea-4d4c-93fc-08d9309d2da3 X-MS-TrafficTypeDiagnostic: AM9PR04MB8793: 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:1013 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: p/RpOmVdDQMbJ5/MHeev6kgpeBQZEjXpGJn6n7UADmDjB7A/Oj2en+QV8B2GHS9phEOz7ctH2IT/lULalXy1Wv19fNwJR4HYjvSMmpyO6GlnuGGJkLPOP99nzN9owey7MlEGtr/r4UPWusM3Jnn6uR66eq4rvPB5y59xBd0dtyBfAxk+5aY1FlMO1bsUtXIunB/4KGskT/0HjLVbRfy9qvg/1u/TiM/lMcYnHvWG/pR3S3gDEt56MKmdfYaX31sbKlUNFScaAga+qFAlnbpy5u590fWyjxs9sZUVuUgMsy6ETAjFTaojsWaxasT0dJ5nrNSbeqCGWnXPjMeH9PinTMMY4AaDjJOMlmB0WhCUWZ2AjnooOz6aY8GB9wUq3ZQfN0LK2CIL3F0kr2xYe5QPYaUpIJLm2Z/wI9JeWgzECNSRjqb69H8Z5XGhu2iM9xcsrypS8eFGUpybWYxs8gPZ75HZr6DjDQih7szNQOG+Ai+F4Y6xdlbMYkn0it12NR3kX7u6XwHGaUolmZzI/L77erdKX76pr9pDYLV5Pjwgqz5R3Bd/MKiVrQ6DbFXKEQn5nGaDqbNqVV/movJUP4iI3azfUSU+V/bOQX1VY1xNbtoaKWzHHW11k30hrJ0VOonPDpkAnjX2+5PQG2YMQlV3SI7idRA1SDJpsmPZZK+oLcY= 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)(396003)(376002)(136003)(346002)(39860400002)(6916009)(107886003)(186003)(26005)(55236004)(1076003)(16526019)(316002)(5660300002)(38100700002)(450100002)(8936002)(6486002)(2616005)(36756003)(4326008)(66556008)(6496006)(66476007)(8676002)(956004)(86362001)(2906002)(66946007)(478600001)(6666004)(145543001)(145603002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AUUWyCMaYo5SxKElx1M1cEPUwCIarwtob9x8eMxD38Z46eyM4/rb3IviOedg?= =?us-ascii?Q?+OydYUABR6M6V06v+Vq2aNdDi8M63kRQrevTxCmLWKTCUvTe/fNOHyDP79Q2?= =?us-ascii?Q?H2F/+9LXlk7L3LvDHgCxmrAaKjajSO0Ur03owYwMzXLDs+f+Ls5R/jN5hExR?= =?us-ascii?Q?PCrfRIoCb4p5yyHh7FGLTMqQC1MFA1atKJ+yZBmhBLCUg/Fo9AC1WQkBfeUn?= =?us-ascii?Q?bwjLZkqFT5SAEIzg5sEnZoUm1+iaiyL47bqMQMF+k8SXBLQA6+bU6dl18Zgt?= =?us-ascii?Q?m330Oq5lt+5XXEs0bZFNb1XcyjasqiB7jFWSkA+dTrTaUabO429BIRJ+dP0z?= =?us-ascii?Q?b5vs1M1OYyyh91qMOA58Oe3TXZqgKxCdXjHPvMQQNsQV3Auvxw4J8Fugervn?= =?us-ascii?Q?htVTWwhUZJdOCPksI0WQLm85xSgezKTprRKr8G10F/c4lJFkGLJ6V+PTTD6N?= =?us-ascii?Q?axYfuDsikg3CnT1xiUszpS3T/S4x64gwS7UBKzWUYkRja3NT+gJ5D3PHkJ7E?= =?us-ascii?Q?QYroSiZ4TWEihfqTojMvyClDsmeJdJnVspw4QUxLZbl4RtI1NKIEi+QbE+ep?= =?us-ascii?Q?yp3VdQmIBQAMIOAlCRAVlTyrFAQHA4UkS048bpO/pLCQWtU2Zn6WMzcq05aS?= =?us-ascii?Q?RJsh+bUwPVypmm4sQZpM527vs/QAjjgMNMot/pwSRleGLxfYn3n1QPOChhAe?= =?us-ascii?Q?xTvMs6Kx8zGTRzxI6Rn+RTsFtCHYI3UsyxNeAWdYIFIE7R+E0FM+s8VZXeAa?= =?us-ascii?Q?OLQNXNjzfGNs0TS6xHdBbg+NlMl7jCjPeTRTFwIRav4t8J/1Aj2QcbdXpfuT?= =?us-ascii?Q?yP1qzwxYzI6QRWZOj4tP4HxYM/ahniaMy/ZVLhgDzMsFy4s/6uOx/tzWUF2d?= =?us-ascii?Q?YM4fcb3r3NVN5eaOzsRHAttk5yfiNV81wxlMlSBlelcqw0ydKOzAsgor5tQp?= =?us-ascii?Q?YDS939+5qantv+vWhYH+4zwE6RIXPGgl079roqDstuBdlNCHVfa8BmXv0b6Y?= =?us-ascii?Q?uveXhgmC82iSEbbrx9zltCmeAstqcCXOpsaH/j3VdbQJApL5gZSHSSeDSZFk?= =?us-ascii?Q?iVQvKCN5QsL9a1cUJ6S0+QwrNjilnEdXbHWIVhDc5bFDlHMRNszjqkisBtyG?= =?us-ascii?Q?7ycesWAj5UeIo7Mpw3x/4ofCZz2K1yhDvNNGxkgBfDEsROYWUQ/0ygXRwa/8?= =?us-ascii?Q?myDdcTyprUHo2kaX+gRIHU3h4jYcPEF3ceS3Jn9+xrx5VNWBln1AMXd5sp7t?= =?us-ascii?Q?CKaYXglYKx/1W8C8dJPGAQ9BGj9q88mV/AW2b60oRQtTHvcX3K/sCNQGWO0r?= =?us-ascii?Q?c/aBC3o6JX36WGwzAGnTEUHo?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1061afea-86ea-4d4c-93fc-08d9309d2da3 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8602.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2021 08:03:08.4106 (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: mGYIexQ1FYnwYa/oXzX8bh6n5vaSyjRnz4t2SLmJXj4qf7dZfyGll95AHgdteRBn X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8793 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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 15G83G3G002301 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.11 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-completer-volume.c | 47 ++++++++++++++++++++++++++++++++++ tools/virsh-completer-volume.h | 5 ++++ 2 files changed, 52 insertions(+) diff --git a/tools/virsh-completer-volume.c b/tools/virsh-completer-volume.c index 301ee982a5..a29c5eca41 100644 --- a/tools/virsh-completer-volume.c +++ b/tools/virsh-completer-volume.c @@ -69,3 +69,50 @@ virshStorageVolNameCompleter(vshControl *ctl, g_free(vols); return ret; } + +char ** +virshStorageVolKeyCompleter(vshControl *ctl, + const vshCmd *cmd G_GNUC_UNUSED, + unsigned int flags) +{ + virshControl *priv =3D ctl->privData; + struct virshStoragePoolList *list =3D NULL; + virStorageVolPtr *vols =3D NULL; + int rc; + int nvols =3D 0; + size_t i =3D 0, j =3D 0; + char **ret =3D NULL; + g_auto(GStrv) tmp =3D NULL; + + virCheckFlags(0, NULL); + + if (!priv->conn || virConnectIsAlive(priv->conn) <=3D 0) + return NULL; + + if (!(list =3D virshStoragePoolListCollect(ctl, + VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE))) + goto cleanup; + + for (i =3D 0; i < list->npools; i++) { + if ((rc =3D virStoragePoolListAllVolumes(list->pools[i], &vols, 0)= ) < 0) + goto cleanup; + + tmp =3D g_renew(char *, tmp, nvols + rc + 1); + memset(&tmp[nvols], 0, sizeof(*tmp) * (rc + 1)); + + for (j =3D 0; j < rc; j++) { + const char *key =3D virStorageVolGetKey(vols[j]); + tmp[nvols] =3D g_strdup(key); + nvols++; + virStorageVolFree(vols[j]); + } + + g_free(vols); + } + + ret =3D g_steal_pointer(&tmp); + + cleanup: + virshStoragePoolListFree(list); + return ret; +} diff --git a/tools/virsh-completer-volume.h b/tools/virsh-completer-volume.h index 6591e13fdf..b41d8f4f3e 100644 --- a/tools/virsh-completer-volume.h +++ b/tools/virsh-completer-volume.h @@ -26,3 +26,8 @@ char ** virshStorageVolNameCompleter(vshControl *ctl, const vshCmd *cmd, unsigned int flags); + + +char ** virshStorageVolKeyCompleter(vshControl *ctl, + const vshCmd *cmd, + unsigned int flags); --=20 2.26.2