From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 92FFEC433FE for ; Wed, 23 Feb 2022 15:28:50 +0000 (UTC) Received: from localhost ([::1]:41156 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMtZR-0005vf-B2 for qemu-devel@archiver.kernel.org; Wed, 23 Feb 2022 10:28:49 -0500 Received: from eggs.gnu.org ([209.51.188.92]:37886) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMtYA-00052r-G9 for qemu-devel@nongnu.org; Wed, 23 Feb 2022 10:27:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:53461) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMtY7-0006c2-Ch for qemu-devel@nongnu.org; Wed, 23 Feb 2022 10:27:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645630046; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=kQGXNSqO5cjGsbtF8CWxi/3LCNfp0yuEX6eYBPTq0Zc=; b=Rxj3DgIluE3inNG7ydE/D3BXOMVfNuUxnnHNDy4qFXVPXrLy4F52FuP1wyEVeOTqGtaPKM z7lY7Rl6bkj0oQoMry9WwC/ZpkZlb6uIFtWc59Wmha5YfFfMAmqcKYKEVSMEi8C6Q1C0Aw TaI+woqH/4Ej//Yuo4hkkxnlZxEmO5k= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-107-zSrZ446GM1aHN6SWFJPbyw-1; Wed, 23 Feb 2022 10:27:21 -0500 X-MC-Unique: zSrZ446GM1aHN6SWFJPbyw-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6ABFA80D6A7; Wed, 23 Feb 2022 15:27:20 +0000 (UTC) Received: from redhat.com (unknown [10.39.195.66]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A313083791; Wed, 23 Feb 2022 15:27:14 +0000 (UTC) Date: Wed, 23 Feb 2022 15:27:11 +0000 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: John Snow Subject: Re: [PATCH 4/5] python: qmp_shell: add -e/--exit-on-error option Message-ID: References: <20220221155519.2367-1-damien.hedde@greensocs.com> <20220221155519.2367-5-damien.hedde@greensocs.com> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/2.1.5 (2021-12-30) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Cc: Damien Hedde , Eduardo Habkost , qemu-devel , Cleber Rosa Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" On Wed, Feb 23, 2022 at 10:22:11AM -0500, John Snow wrote: > On Mon, Feb 21, 2022 at 10:55 AM Damien Hedde > wrote: > > > > This option makes qmp_shell exit (with error code 1) > > as soon as one of the following error occurs: > > + command parsing error > > + disconnection > > + command failure (response is an error) > > > > _execute_cmd() method now returns None or the response > > so that read_exec_command() can do the last check. > > > > This is meant to be used in combination with an input file > > redirection. It allows to store a list of commands > > into a file and try to run them by qmp_shell and easily > > see if it failed or not. > > > > Signed-off-by: Damien Hedde > > Based on this patch, it looks like you really want something > scriptable, so I think the qemu-send idea that Dan has suggested might > be the best way to go. Are you still hoping to use the interactive > "short" QMP command format? That might be a bad idea, given how flaky > the parsing is -- and how we don't actually have a published standard > for that format. We've *never* liked the bad parsing here, so I have a > reluctance to use it in more places. > > I'm having the naive idea that a script file could be as simple as a > list of QMP commands to send: > > [ > {"execute": "block-dirty-bitmap-add", "arguments": { ... }}, > ... > ] I'd really recommend against creating a new format for the script file, especially one needing opening & closing [] like this, as that isn't so amenable to dynamic usage/creation. ie you can't just append an extcra command to an existing file. IMHO, the "file" format should be identical to the result of capturing the socket data off the wire. ie just a concatenation of QMP commands, with no extra wrapping / change in format. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|