From nobody Sun Feb 8 22:57:53 2026 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1710511109180917.3313799760197; Fri, 15 Mar 2024 06:58:29 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 02CA918E7; Fri, 15 Mar 2024 09:58:27 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id B711F1C02; Fri, 15 Mar 2024 09:45:46 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 325131B0A; Fri, 15 Mar 2024 09:45:12 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id BD42117EF for ; Fri, 15 Mar 2024 09:44:41 -0400 (EDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-13-vXG5JSkNOAa1BOBjuyjebg-1; Fri, 15 Mar 2024 09:44:39 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DB49684B062 for ; Fri, 15 Mar 2024 13:44:38 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.5]) by smtp.corp.redhat.com (Postfix) with ESMTP id 55216C1576F for ; Fri, 15 Mar 2024 13:44:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: vXG5JSkNOAa1BOBjuyjebg-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [PATCH 15/28] virsh-checkpoint: Make 'checkpointname' positional and required Date: Fri, 15 Mar 2024 14:44:10 +0100 Message-ID: <57bb46588c006b3e354d0acfa1fc0aafb3cb0201.1710510136.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: ARWAXRMKUAZAQSD47ZYTI5ZUQMEVJSBH X-Message-ID-Hash: ARWAXRMKUAZAQSD47ZYTI5ZUQMEVJSBH X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1710511109729100001 The argument was being parsed positionally due to the command parser quirk as we didn't opt out of it. Since the code in virshLookupCheckpoint requires that the checkpointname is present we can mark all the options as positional and required and remove the redundant check from virshLookupCheckpoint. Signed-off-by: Peter Krempa --- tools/virsh-checkpoint.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/virsh-checkpoint.c b/tools/virsh-checkpoint.c index 65061cbf3d..9aeb8a5e7e 100644 --- a/tools/virsh-checkpoint.c +++ b/tools/virsh-checkpoint.c @@ -281,16 +281,8 @@ virshLookupCheckpoint(vshControl *ctl, if (vshCommandOptStringReq(ctl, cmd, arg, &chkname) < 0) return -1; - if (chkname) { - *chk =3D virDomainCheckpointLookupByName(dom, chkname, 0); - } else { - vshError(ctl, _("--%1$s is required"), arg); + if (!(*chk =3D virDomainCheckpointLookupByName(dom, chkname, 0))) return -1; - } - if (!*chk) { - vshReportError(ctl); - return -1; - } *name =3D virDomainCheckpointGetName(*chk); return 0; @@ -309,6 +301,8 @@ static const vshCmdOptDef opts_checkpoint_edit[] =3D { VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_HAS_CHECKPOINT), {.name =3D "checkpointname", .type =3D VSH_OT_STRING, + .positional =3D true, + .required =3D true, .help =3D N_("checkpoint name"), .completer =3D virshCheckpointNameCompleter, }, @@ -420,6 +414,8 @@ static const vshCmdOptDef opts_checkpoint_info[] =3D { VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_HAS_CHECKPOINT), {.name =3D "checkpointname", .type =3D VSH_OT_STRING, + .positional =3D true, + .required =3D true, .help =3D N_("checkpoint name"), .completer =3D virshCheckpointNameCompleter, }, @@ -810,6 +806,8 @@ static const vshCmdOptDef opts_checkpoint_dumpxml[] =3D= { VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_HAS_CHECKPOINT), {.name =3D "checkpointname", .type =3D VSH_OT_STRING, + .positional =3D true, + .required =3D true, .help =3D N_("checkpoint name"), .completer =3D virshCheckpointNameCompleter, }, @@ -886,6 +884,8 @@ static const vshCmdOptDef opts_checkpoint_parent[] =3D { VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_HAS_CHECKPOINT), {.name =3D "checkpointname", .type =3D VSH_OT_STRING, + .positional =3D true, + .required =3D true, .help =3D N_("find parent of checkpoint name"), .completer =3D virshCheckpointNameCompleter, }, @@ -935,6 +935,8 @@ static const vshCmdOptDef opts_checkpoint_delete[] =3D { VIR_CONNECT_LIST_DOMAINS_ACTIVE), {.name =3D "checkpointname", .type =3D VSH_OT_STRING, + .positional =3D true, + .required =3D true, .help =3D N_("checkpoint name"), .completer =3D virshCheckpointNameCompleter, }, --=20 2.44.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org