From nobody Sat Feb 7 08:44:09 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1770119240; cv=none; d=zohomail.com; s=zohoarc; b=Dty3dchGuYW8yVaJ2sidQOcf5UmwfcrOctrduqxSru8RzKmaPLa3otWNncnVd3ueTjA2F6tcQRQEca5EozJI/FZOS9xSRu9KeJJuAQWpLpA4iVsovfbfplYcR0aTZuu0Q2sgWI+TrpbAicaXx7JgsSfFaVNDvfiixkyE5TMyxFM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770119240; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Dqfr+maX9BJk8cLtLzKyZPPkmmwpgIdpki5XdC9JHgk=; b=GRxjuIXZJRFtmtjh08HXRfpc9JolJjJa5si0STTjxN3uREPzW3hHdJsaeMIDv/q0sj1azI8TWM7SB0hiFA4/h7EFdL8W83CbYonVTZCAQTQbX7m/xC41osdU2BxzC/Px7cowx9laYAg9KsrqQZYMYoZwACQPW+UbX378EfYm86w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770119240319731.7558618567565; Tue, 3 Feb 2026 03:47:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnErP-0005fW-9B; Tue, 03 Feb 2026 06:46:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnErJ-0005ee-GH for qemu-devel@nongnu.org; Tue, 03 Feb 2026 06:46:17 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnErH-0002Xa-Ni for qemu-devel@nongnu.org; Tue, 03 Feb 2026 06:46:17 -0500 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-245-TPNsUWJCPyeiJ_Xos3Enpg-1; Tue, 03 Feb 2026 06:46:12 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 23D0518005B0; Tue, 3 Feb 2026 11:46:12 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.3]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E54061955F16; Tue, 3 Feb 2026 11:46:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770119174; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Dqfr+maX9BJk8cLtLzKyZPPkmmwpgIdpki5XdC9JHgk=; b=hukEGUlTx13ERmMZ+JhRCXgxjjmwPqjxoezwLBHrO+qFQMSYLDEldUTpZkkeadfX19Xf5B m7HcVruiCIZkveVF8GOVJKprn5npsl4x2BXWn9zO9OL3feete/q0PelUe2lgHJk/BDz2KZ 8TL9ayUYaBQy326EqBifwaeLE4m/nWc= X-MC-Unique: TPNsUWJCPyeiJ_Xos3Enpg-1 X-Mimecast-MFC-AGG-ID: TPNsUWJCPyeiJ_Xos3Enpg_1770119172 From: Peter Krempa To: qemu-devel@nongnu.org Cc: John Snow , qemu-block@nongnu.org Subject: [PATCH v3 1/3] scripts: render_block_graph: Fix invalid escape sequence warning with python 3.12 Date: Tue, 3 Feb 2026 12:46:05 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pkrempa@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1770119241755158500 Content-Type: text/plain; charset="utf-8" From: Peter Krempa Trying to run 'render_block_graph' produces following warnings on machine with python 3.12: $ ./scripts/render_block_graph.py cd-throttle ble.png ./scripts/render_block_graph.py:57: SyntaxWarning: invalid escape sequence= '\l' ' w - Write\l' ./scripts/render_block_graph.py:58: SyntaxWarning: invalid escape sequence= '\l' ' r - consistent-Read\l' ./scripts/render_block_graph.py:59: SyntaxWarning: invalid escape sequence= '\l' ' u - write - Unchanged\l' ./scripts/render_block_graph.py:60: SyntaxWarning: invalid escape sequence= '\l' [...] The graphviz '\l' escape sequence is used to left-justify the line and new python started enforcing of strings to contain only known escape sequences. Convert the strings containing the dot language to raw. Signed-off-by: Peter Krempa --- scripts/render_block_graph.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/scripts/render_block_graph.py b/scripts/render_block_graph.py index 3e1a2e3fa7..14b2d02ec2 100755 --- a/scripts/render_block_graph.py +++ b/scripts/render_block_graph.py @@ -53,16 +53,16 @@ def render_block_graph(qmp, filename, format=3D'png'): graph =3D Digraph(comment=3D'Block Nodes Graph') graph.format =3D format - graph.node('permission symbols:\l' - ' w - Write\l' - ' r - consistent-Read\l' - ' u - write - Unchanged\l' - ' g - Graph-mod\l' - ' s - reSize\l' - 'edge label scheme:\l' - ' \l' - ' \l' - ' \l', shape=3D'none') + graph.node(r'permission symbols:\l' + r' w - Write\l' + r' r - consistent-Read\l' + r' u - write - Unchanged\l' + r' g - Graph-mod\l' + r' s - reSize\l' + r'edge label scheme:\l' + r' \l' + r' \l' + r' \l', shape=3D'none') for n in block_graph['nodes']: if n['type'] =3D=3D 'block-driver': @@ -83,8 +83,8 @@ def render_block_graph(qmp, filename, format=3D'png'): graph.node(str(n['id']), label, shape=3Dshape) for e in block_graph['edges']: - label =3D '%s\l%s\l%s\l' % (e['name'], perm(e['perm']), - perm(e['shared-perm'])) + label =3D r'%s\l%s\l%s\l' % (e['name'], perm(e['perm']), + perm(e['shared-perm'])) graph.edge(str(e['parent']), str(e['child']), label=3Dlabel) graph.render(filename) --=20 2.52.0 From nobody Sat Feb 7 08:44:09 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1770119224; cv=none; d=zohomail.com; s=zohoarc; b=ENEzZgbCfatpI6GSUx4SHwj4DN/bZay20rgfqyw4PV8I1CfJjN3lEnFayOhnluA/bPscaoX4kYw81dAxrpZbvG2dcDFF8TuEvKDCRpU74y9KKx97zGSFja8qhK64uG7Buxq4i1A4fu1BH//P29cdKN3yVh//gnxpceBVrWmbsgI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770119224; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=odbqucNEKD34NCFK37irTQs0y2GKmu6KPWjHIjGF09s=; b=KDOXTRneFy3KZyUXcFKVal6xp/us4+PX3Uf5J8re0FfyFnCxEyYLnG+z0+vShTKRFnlzeKPS8PsDgwg5bl8p2SECvodr3eZjt+CbhzgNhc5FNzrMoZqTYJ/bHzvdV1vgVqjdiepqaqLqpv7NqjYD/3W9piNAE12ekDELy30QxZ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770119224203107.85181207348671; Tue, 3 Feb 2026 03:47:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnErT-0005fp-1N; Tue, 03 Feb 2026 06:46:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnErL-0005f7-WE for qemu-devel@nongnu.org; Tue, 03 Feb 2026 06:46:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnErJ-0002Xz-QS for qemu-devel@nongnu.org; Tue, 03 Feb 2026 06:46:19 -0500 Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-350-C78MeEn-OiOVtnnRUnia7Q-1; Tue, 03 Feb 2026 06:46:15 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2CC69195608D; Tue, 3 Feb 2026 11:46:14 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.3]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id BDF7A1956053; Tue, 3 Feb 2026 11:46:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770119176; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=odbqucNEKD34NCFK37irTQs0y2GKmu6KPWjHIjGF09s=; b=hDGnFyin3p4+pXMBDgbHQEsHBz60BomVmfCWkzIpW95cX63MYvlV9Yc+6YuwLh2cJd7Vcn MvVIhBez6A408Smn8PRr3hVzIEah/3DCXFaG3e2O+1VleyIwf9uPuRSFGZMUHyQFFbUw32 5Wbkx3wCrnD9XCJeiR1TykN0aCAOVf4= X-MC-Unique: C78MeEn-OiOVtnnRUnia7Q-1 X-Mimecast-MFC-AGG-ID: C78MeEn-OiOVtnnRUnia7Q_1770119174 From: Peter Krempa To: qemu-devel@nongnu.org Cc: John Snow , qemu-block@nongnu.org Subject: [PATCH v3 2/3] scripts: render_block_graph: Implement proper argument parser Date: Tue, 3 Feb 2026 12:46:06 +0100 Message-ID: <72ba260b04c021740924e5638a7e165ed5121687.1770108741.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pkrempa@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1770119226092158500 Content-Type: text/plain; charset="utf-8" From: Peter Krempa As no argument parsing is employed the script is hard to use and when running without arguments it blurbs: $ ./scripts/render_block_graph.py Traceback (most recent call last): File "/home/pipo/git/qemu.git/./scripts/render_block_graph.py", line 135= , in obj =3D sys.argv[1] ~~~~~~~~^^^ IndexError: list index out of range instead of an actionable error. The user then usually needs to read the script to understand arguments. Implement proper argument parsing via 'argparse'. The following arguments will be supported: $ ./scripts/render_block_graph.py --help usage: render_block_graph.py [-h] (--socket SOCKET | --vm VM) [--uri URI]= [--output OUTPUT] Tool that renders the qemu block graph into a image. options: -h, --help show this help message and exit --socket SOCKET socket mode - path to qemu monitor socket --vm VM libvirt mode - name of libvirt VM --uri URI libvirt URI to connect to --output OUTPUT path to output image (.png suffix added); in libvirt m= ode default is the name of the VM Usage then requires one of '--vm' or '--socket'. In libvirt mode the output file is by default populated from the VM name and the '--uri' parameter allows overriding the libvirt connection uri. Signed-off-by: Peter Krempa --- scripts/render_block_graph.py | 51 ++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/scripts/render_block_graph.py b/scripts/render_block_graph.py index 14b2d02ec2..6f668dec51 100755 --- a/scripts/render_block_graph.py +++ b/scripts/render_block_graph.py @@ -23,6 +23,7 @@ import subprocess import json from graphviz import Digraph +import argparse sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'python')) from qemu.qmp import QMPError @@ -91,13 +92,19 @@ def render_block_graph(qmp, filename, format=3D'png'): class LibvirtGuest(): - def __init__(self, name): + def __init__(self, name, uri=3DNone): self.name =3D name + self.uri =3D uri def cmd(self, cmd): # only supports qmp commands without parameters m =3D {'execute': cmd} - ar =3D ['virsh', 'qemu-monitor-command', self.name, json.dumps(m)] + ar =3D ['virsh'] + + if self.uri: + ar +=3D ['-c', self.uri] + + ar +=3D ['qemu-monitor-command', self.name, json.dumps(m)] reply =3D json.loads(subprocess.check_output(ar)) @@ -108,15 +115,39 @@ def cmd(self, cmd): if __name__ =3D=3D '__main__': - obj =3D sys.argv[1] - out =3D sys.argv[2] + parser =3D argparse.ArgumentParser( + description=3D'Tool that renders the qemu block graph into a i= mage.') + + modegroup =3D parser.add_mutually_exclusive_group(required=3DTrue) + + modegroup.add_argument('--socket', + help=3D'socket mode - path to qemu monitor sock= et') + modegroup.add_argument('--vm', help=3D'libvirt mode - name of libvirt = VM') + + parser.add_argument('--uri', help=3D'libvirt URI to connect to') + + parser.add_argument('--output', + help=3D'path to output image (.png suffix added); ' + 'in libvirt mode default is the name of the V= M') - if os.path.exists(obj): - # assume unix socket - qmp =3D QEMUMonitorProtocol(obj) + args =3D parser.parse_args() + + if args.socket: + if not args.output: + print("--output required in socket mode", file=3Dsys.stderr) + parser.print_usage() + sys.exit(1) + + qmp =3D QEMUMonitorProtocol(args.socket) qmp.connect() - else: - # assume libvirt guest name - qmp =3D LibvirtGuest(obj) + out =3D args.output + + if args.vm: + qmp =3D LibvirtGuest(args.vm, args.uri) + + if args.output: + out =3D args.output + else: + out =3D args.vm render_block_graph(qmp, out) --=20 2.52.0 From nobody Sat Feb 7 08:44:09 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1770119247; cv=none; d=zohomail.com; s=zohoarc; b=gkiPb5MtWAPq6XIWUH1FxeyCR4VDGofiAqZna4eX/tMrcbrl/wH1j4jVw0dKPwuLtnLqbME35v0q1gu3Jnk54lcKVCVshxBjJw3lwJFR7Th2F5y8LeTY2pPpbFD5gb7L6LagFuoMsg2jdIYZOL7m1g+6We614R39okBlASgkyt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770119247; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=RKFh1tELC5JFN4Ye45utstgAs6HTnOl5iObcbtaVoy0=; b=RqZZv/t8dtZVtvcfN6lIqr/fsIS0/GLiby61JnOHYs9HG7XHVlpg04sAwTijQ3xgFabyI5KVvc1zXe2cmEN9sAS3lT+hWLfbpeppIKjWmmkEwaJkddPMv531nCeGIrJIWblOxpIah2kAZPHbF04O0SGhctO3ix6CibKvO9eOT34= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770119247103866.2483605354342; Tue, 3 Feb 2026 03:47:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnErV-0005my-El; Tue, 03 Feb 2026 06:46:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnErU-0005m3-36 for qemu-devel@nongnu.org; Tue, 03 Feb 2026 06:46:28 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnErQ-0002Yb-1X for qemu-devel@nongnu.org; Tue, 03 Feb 2026 06:46:27 -0500 Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-144-pAdb6O35MiGbaOYhite3VQ-1; Tue, 03 Feb 2026 06:46:17 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BD6D21800447; Tue, 3 Feb 2026 11:46:15 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.3]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 943201956053; Tue, 3 Feb 2026 11:46:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770119179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RKFh1tELC5JFN4Ye45utstgAs6HTnOl5iObcbtaVoy0=; b=PReUzl7Czb1zKMSzLs5EVFrLPNbKHB2MQ9eyT7/Z0/Aswzp/2cvq18dJU2CiJXSVMd/AI+ Rc/RNiP2U2nnWs+OuZy7NW8DkKeliXxuiYO7YVIBVC/7ucz4e0E/7tlu1gEHyWZ/Osl+Li Y+WNfNrcWCFadVxdIEplOgeVdLeVx7Q= X-MC-Unique: pAdb6O35MiGbaOYhite3VQ-1 X-Mimecast-MFC-AGG-ID: pAdb6O35MiGbaOYhite3VQ_1770119176 From: Peter Krempa To: qemu-devel@nongnu.org Cc: John Snow , qemu-block@nongnu.org Subject: [PATCH v3 3/3] scripts: render_block_graph: Avoid backtrace on error from virsh Date: Tue, 3 Feb 2026 12:46:07 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pkrempa@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1770119249571154100 Content-Type: text/plain; charset="utf-8" From: Peter Krempa An error from virsh spews also backtrace: $ ./scripts/render_block_graph.py --vm doesnotexist error: failed to get domain 'doesnotexist' Traceback (most recent call last): File "/home/pipo/git/qemu.git/./scripts/render_block_graph.py", line 15= 2, in render_block_graph(qmp, out) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/home/pipo/git/qemu.git/./scripts/render_block_graph.py", line 47= , in render_block_graph [snipped] instead of just the important bits: $ ./scripts/render_block_graph.py --vm doesnotexist error: failed to get domain 'doesnotexist' Catch the exception and exit. 'virsh' already printed the error. Signed-off-by: Peter Krempa --- scripts/render_block_graph.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/render_block_graph.py b/scripts/render_block_graph.py index 6f668dec51..3bfc751caa 100755 --- a/scripts/render_block_graph.py +++ b/scripts/render_block_graph.py @@ -106,7 +106,10 @@ def cmd(self, cmd): ar +=3D ['qemu-monitor-command', self.name, json.dumps(m)] - reply =3D json.loads(subprocess.check_output(ar)) + try: + reply =3D json.loads(subprocess.check_output(ar)) + except subprocess.CalledProcessError: + sys.exit(1) if 'error' in reply: raise QMPError(reply) --=20 2.52.0