From nobody Thu Apr 3 09:56:00 2025 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=1742315834; cv=none; d=zohomail.com; s=zohoarc; b=OnChj0pArEArsT2RieIiR3c1whY6LeE4LNAAbwJNXFzkCiFbI6rjHZFr2A9AiKodGmNnMW65gYRG/384d3mqNfxPV2Tu7wRyE7i4FMuLrtzTT/2CJN5k7RwNiTwphIpSvqjWFEQ3L0I/inyrltQQ8wo39oprx3/dk3FENq9b41A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742315834; 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=Ldx0piybqUILZ+q26+wafghVoHtgoMwecCWubBVXrAc=; b=iKf6l7xFf3N6SRdSq/tTqT9ueWPsazR2miLxXV1Kezu0GS0pztqo6BIS6ZJViCRm3DUu9mzQhDfQ3yuBaEdKXoOLbpSFcnaB2JLLxd2lMR1IRsTdhOHoPkE/Ko0Gy4exsMaO5JTcSOC6xOP6awg9taoDzmLH62yTnB3zfpQLjG0= 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 1742315834735346.13241460041047; Tue, 18 Mar 2025 09:37:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tuZvT-0006S6-N9; Tue, 18 Mar 2025 12:36:24 -0400 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 1tuZvQ-0006Qx-KY for qemu-devel@nongnu.org; Tue, 18 Mar 2025 12:36:20 -0400 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 1tuZvO-0004Vd-2T for qemu-devel@nongnu.org; Tue, 18 Mar 2025 12:36:20 -0400 Received: from mx-prod-mc-03.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-26-ceQ7WSqCORmEbs6hz266ZA-1; Tue, 18 Mar 2025 12:36:14 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 28C0E1956050; Tue, 18 Mar 2025 16:36:12 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.45.242.6]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 63C941955BE1; Tue, 18 Mar 2025 16:36:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742315777; 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=Ldx0piybqUILZ+q26+wafghVoHtgoMwecCWubBVXrAc=; b=CzILxBcit/ZguYqr3jG19xFh/ZGXbr36dl3a8uZcDi6ItUxuuGqDHquehSwNulenDxRQhd VRZa76ym+n85MVeVmSCIpkLbPYJdV9lKSDtKM1gF0xfqKS8EqNRtMhR/rRSpk5k803+wRJ mCBnmaWE+exxhjlPySe0VpvWWqFQFMc= X-MC-Unique: ceQ7WSqCORmEbs6hz266ZA-1 X-Mimecast-MFC-AGG-ID: ceQ7WSqCORmEbs6hz266ZA_1742315773 From: Peter Krempa To: qemu-devel@nongnu.org Cc: John Snow , Cleber Rosa , qemu-block@nongnu.org Subject: [PATCH 1/3] scripts: render_block_graph: Fix invalid escape sequence warning with python 3.12 Date: Tue, 18 Mar 2025 17:36:02 +0100 Message-ID: <4d8f833ad9355cb9c64633cdbab362300f0a7b4a.1742315602.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.40 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: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=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: 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: 1742315836825019100 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.48.1 From nobody Thu Apr 3 09:56:00 2025 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=1742315834; cv=none; d=zohomail.com; s=zohoarc; b=nlGi68AuuSHXdydsLbpuLar0qTe0KTVvetmOgHKNJLURvTC235xwhPYna/mV6CrnHEt+j6tgiOCR2rQE9vcy5GcdR/vpOgGK41puOU0kGebrmY638ZLrTyylC6pZJFSZl+/CnhGhlhCW38VIsnUeSE6oYofqhIzNjxXXAqXol48= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742315834; 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=0nSFEwDzD0/q5vdwxo+YqLLaHUGRDBgwOiRZZHxK+Rc=; b=V0ipABRJ5dAFr8KsaRlzPI6jNxSh5ViyTs9IcszJ0P0uN/IWuYe9yM6I5634NZR9cdRfZn34GX1YeDE0J/j7Ifap0gmnCsEbblIDUxDKRsR/ynSrvjgpNUBy5/0DfFR2tP694gaO5IJ6tVy+XwHLMW1NWlwRi1MbjwJb7QilLfQ= 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 1742315834734932.3571176874729; Tue, 18 Mar 2025 09:37:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tuZvw-0006Yw-DD; Tue, 18 Mar 2025 12:36:53 -0400 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 1tuZvW-0006TT-P5 for qemu-devel@nongnu.org; Tue, 18 Mar 2025 12:36:33 -0400 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 1tuZvV-0004X4-0u for qemu-devel@nongnu.org; Tue, 18 Mar 2025 12:36:26 -0400 Received: from mx-prod-mc-04.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-517-lT1krjGZNUuD0BF6tklUHg-1; Tue, 18 Mar 2025 12:36:21 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5D89B19560B4; Tue, 18 Mar 2025 16:36:15 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.45.242.6]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AB64A1955BE1; Tue, 18 Mar 2025 16:36:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742315783; 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=0nSFEwDzD0/q5vdwxo+YqLLaHUGRDBgwOiRZZHxK+Rc=; b=G2yX0WYTeZa2ldYjfMTGu2SLjxzyfZwHRNApclIgatJDVfLWIXPdpYQzydMNHKS0yei4+a MKgKDa66ftcRyEUw0sSEoUL7fnSI1Wtqo6axS/V1eq9pbjqSvKrL5yhtLJwS8UtHrE1FPA 3Kurk5HYqXKJ3Tl7K6uxQtfV8cS3vHw= X-MC-Unique: lT1krjGZNUuD0BF6tklUHg-1 X-Mimecast-MFC-AGG-ID: lT1krjGZNUuD0BF6tklUHg_1742315780 From: Peter Krempa To: qemu-devel@nongnu.org Cc: John Snow , Cleber Rosa , qemu-block@nongnu.org Subject: [PATCH 2/3] scripts: render_block_graph: Implement proper argument parser Date: Tue, 18 Mar 2025 17:36:03 +0100 Message-ID: <00eab2a417ecdb7f0ea7eaf3880806f3309133dc.1742315602.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.40 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: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=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: 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: 1742315836852019100 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 direct 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 will be added; in lib= virt mode 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 | 53 ++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/scripts/render_block_graph.py b/scripts/render_block_graph.py index 14b2d02ec2..7a6738410c 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,41 @@ 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.') + + parser.add_argument('--socket', + help=3D'direct mode - path to qemu monitor socket') + + parser.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') + + args =3D parser.parse_args() - if os.path.exists(obj): - # assume unix socket - qmp =3D QEMUMonitorProtocol(obj) + if (args.socket and args.vm) or (not args.socket and not args.vm): + print("One of --socket or --vm is required.", file=3Dsys.stderr) + parser.print_help() + sys.exit(1) + + if args.socket: + qmp =3D QEMUMonitorProtocol(args.socket) qmp.connect() - else: - # assume libvirt guest name - qmp =3D LibvirtGuest(obj) + + if args.vm: + qmp =3D LibvirtGuest(args.vm, args.uri) + + if args.output: + out =3D args.output + else: + out =3D args.vm + + if not out: + print("--output required", file=3Dsys.stderr) + parser.print_help() + sys.exit(1) render_block_graph(qmp, out) --=20 2.48.1 From nobody Thu Apr 3 09:56:00 2025 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=1742315872; cv=none; d=zohomail.com; s=zohoarc; b=W3VHXkq1z8r0gX8oBWrbm63JF/ZDF+5EXPzQt9+XwLKdrqjBabgHLyxJ73dDz5c/wuyiPN1XbTfmRxuBnVOa3gm0HwoAzp/ld6vzKB6vSXV6S/RZpKLolHrgRdLUZRwrkvpDf4usd0GcHyo/Mnipsoi06/QPeeBWQm5yiyU3xu8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742315872; 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=aD3XptiGY0q8bTfzzfMt/ed3Ps/Cu6ykYAwObd+Bvlg=; b=JcU5R0W+rIn+yHl1981o/oPSc6BDpquL7DUDhBhbtz2P0zeVhv6kDkK+6b8LUM6HV2VMaO6FV/184QF33Y03WHNAn09okqyvNuy+iC5Q1m4fa+vSUTxYXJ9qhv/r+ysYB5iCe/e2ZHtTQ4H7tlU/mznv0gJ2h+HKZNAQTmiA8A8= 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 1742315872834877.0237169690215; Tue, 18 Mar 2025 09:37:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tuZvt-0006X8-4T; Tue, 18 Mar 2025 12:36:49 -0400 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 1tuZvT-0006SF-Nu for qemu-devel@nongnu.org; Tue, 18 Mar 2025 12:36:24 -0400 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 1tuZvR-0004W2-Ul for qemu-devel@nongnu.org; Tue, 18 Mar 2025 12:36:23 -0400 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-212-oUK13ubXPp6UNrzVDEwBaQ-1; Tue, 18 Mar 2025 12:36:18 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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 805F6180AF55; Tue, 18 Mar 2025 16:36:17 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.45.242.6]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D7C901955BEF; Tue, 18 Mar 2025 16:36:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742315780; 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=aD3XptiGY0q8bTfzzfMt/ed3Ps/Cu6ykYAwObd+Bvlg=; b=TWVVoKv1qTqok2vGNC/602BxM2xZaxDZig5TLy0yJ9UCMW9QtWAE9a3xldB6XgULuz41As HX4v6qlfiNRfdZZ0DEX3mNH+8BtldZ0wufPojoOrepOFkFqxvB4eD0cu+tsGkA72QCHW7q 7A3Mkuw49cYxw9SzekLnEShIBURKwns= X-MC-Unique: oUK13ubXPp6UNrzVDEwBaQ-1 X-Mimecast-MFC-AGG-ID: oUK13ubXPp6UNrzVDEwBaQ_1742315777 From: Peter Krempa To: qemu-devel@nongnu.org Cc: John Snow , Cleber Rosa , qemu-block@nongnu.org Subject: [PATCH 3/3] scripts: render_block_graph: Avoid backtrace on error from virsh Date: Tue, 18 Mar 2025 17:36:04 +0100 Message-ID: <8926805f0283b8aca7d709ae06b1103db857cbde.1742315602.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.40 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: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=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: 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: 1742315875094019000 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 7a6738410c..e2bb83b60e 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.48.1