From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467607; cv=none; d=zohomail.com; s=zohoarc; b=blQ+SC0M5T4gsVXqZF/uuaBiaJk4eq1igp0n8CE9aoBktp8X9E4O9PmcGeHFdWG8jLrbYNokPjKqjyyosbGktolHlZ0qzA5kRbZjpPL/DXiwoU1uh5CfVP9GsA1xd3XSSmiYXU6JRTrLZtFwCVbiRhB8Pk3rPE6Q7mBgPfEHHTk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467607; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=20ZYspOoLkdDiu/y3xIksBPWcAcMTz8TJrJGLAPEosU=; b=IGv2y33rQ2Jm4jnK95auMvf/Q/Us6qoI2EnSZ2OXUeFdtofbAxZsE3i782kWjFrholfZzV3qJ+7DNKb+zMXYTSGB0ivXoqPeXjFVR2yRcqW6fQrBO9yJkf7uWcXzS5O5GfnkgsYNLjCc0PkndSgdBkHoJ0AvAW3S+Y7nRqKC1co= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467607559274.8805008364668; Wed, 15 Feb 2023 05:26:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnb-0002WG-4r; Wed, 15 Feb 2023 08:26:15 -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 1pSHnX-0002Uc-Ar for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:12 -0500 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnS-0006D7-Hj for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:11 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 2EA4260042; Wed, 15 Feb 2023 16:25:55 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-Zqb6D0Rf; Wed, 15 Feb 2023 16:25:54 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467554; bh=20ZYspOoLkdDiu/y3xIksBPWcAcMTz8TJrJGLAPEosU=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=ew8mrWUBNcw2LR/rkxUE+wmccBuS9K1J+wXs27XusRck91nq8fmfrUhdu9VTzL+Br BpT1NzvNSruCXqBj6i5eqbJjPbQzBO5B2Xz8RZ7cQ9SfJq41MVE4cJdD/3PHoRP77C i60TYfjzHnX1ANCAaxBm5A838TGXk2y5vTn3ZsGE= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 01/16] python: fix superfluous-parens pylint error Date: Wed, 15 Feb 2023 16:25:32 +0300 Message-Id: <20230215132547.1620575-2-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467609929100007 Content-Type: text/plain; charset="utf-8" Now make check-dev called in python/ directory fails due to this error. Let's fix it. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: John Snow --- python/qemu/qmp/protocol.py | 2 +- python/qemu/qmp/qmp_client.py | 2 +- tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/python/qemu/qmp/protocol.py b/python/qemu/qmp/protocol.py index 6d3d739daa..22e60298d2 100644 --- a/python/qemu/qmp/protocol.py +++ b/python/qemu/qmp/protocol.py @@ -207,7 +207,7 @@ class AsyncProtocol(Generic[T]): logger =3D logging.getLogger(__name__) =20 # Maximum allowable size of read buffer - _limit =3D (64 * 1024) + _limit =3D 64 * 1024 =20 # ------------------------- # Section: Public interface diff --git a/python/qemu/qmp/qmp_client.py b/python/qemu/qmp/qmp_client.py index b5772e7f32..9d73ae6e7a 100644 --- a/python/qemu/qmp/qmp_client.py +++ b/python/qemu/qmp/qmp_client.py @@ -198,7 +198,7 @@ async def run(self, address=3D'/tmp/qemu.socket'): logger =3D logging.getLogger(__name__) =20 # Read buffer limit; 10MB like libvirt default - _limit =3D (10 * 1024 * 1024) + _limit =3D 10 * 1024 * 1024 =20 # Type alias for pending execute() result items _PendingT =3D Union[Message, ExecInterruptedError] diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test b/tests= /qemu-iotests/tests/migrate-bitmaps-postcopy-test index fc9c4b4ef4..dda55fad28 100755 --- a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test +++ b/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test @@ -84,7 +84,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCas= e): e['vm'] =3D 'SRC' for e in self.vm_b_events: e['vm'] =3D 'DST' - events =3D (self.vm_a_events + self.vm_b_events) + events =3D self.vm_a_events + self.vm_b_events events =3D [(e['timestamp']['seconds'], e['timestamp']['microseconds'], e['vm'], --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467717; cv=none; d=zohomail.com; s=zohoarc; b=jGs6ZEoF9ShoBjEsTwKcFczUfVPcYaMs4flzTrY/PTW4sLX6M/sNsdGzsjGvrrF3Fst8A1cF3qgd4bVa8y/s8vEywOxfAZfg8tQ8qhbQrK8EI0UVtHuXSsfWHoLkeBo+r5fxV1lOx2B3HoGWmwK80BVdrimgUx7HP155NPsZF2c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467717; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BF9Ccif5Ao6lLQH10lJ7mApDNkEiYj8kKEyoD/cEacE=; b=i0MmRh4luWRHmGbSk6bqEt0i7Gli3W+zaHed/h848FnXo4MzW29AkIyyOFwgRrlUF90VPcscp7fFh+YZ5xkaUvcTcIo0oeQ4PXkD7LANV6vECkZ6RYeBYynbLtRRIuzrFr1EvQ/TD8GC0JZKRQfn9ECVJZeCT19fytNgUxrqiVE= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467717748995.6234250850165; Wed, 15 Feb 2023 05:28:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnd-0002aN-9k; Wed, 15 Feb 2023 08:26:17 -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 1pSHnX-0002UY-5r; Wed, 15 Feb 2023 08:26:12 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnS-0006D9-Kd; Wed, 15 Feb 2023 08:26:10 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 4AB8C6005D; Wed, 15 Feb 2023 16:25:56 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-uNAGPYbq; Wed, 15 Feb 2023 16:25:55 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467555; bh=BF9Ccif5Ao6lLQH10lJ7mApDNkEiYj8kKEyoD/cEacE=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=neGDs6cJbzIvGVyIip8Z02L31sPzxqwyzQNhcV2sBsNzW6d2ZomT4KuOhpkCDgM1l qO00dOPJ/AF4pm56PArOzCh6WOONhdPb4i8qbhOdO0sphiKmLD4DLK9shPbUo0+hU2 ZW9cCf0myxymVivuXe/cyampaQiw359ZQSK1+CyI= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 02/16] python: fix broad-exception-raised pylint error Date: Wed, 15 Feb 2023 16:25:33 +0300 Message-Id: <20230215132547.1620575-3-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467718686100001 Content-Type: text/plain; charset="utf-8" Now 'make check-dev' called in python/ directory raises several W0719: Raising too general exception: Exception (broad-exception-raised) Let's fix. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: John Snow --- python/qemu/utils/qemu_ga_client.py | 6 +++--- tests/qemu-iotests/iotests.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/python/qemu/utils/qemu_ga_client.py b/python/qemu/utils/qemu_g= a_client.py index 8c38a7ac9c..d8411bb2d0 100644 --- a/python/qemu/utils/qemu_ga_client.py +++ b/python/qemu/utils/qemu_ga_client.py @@ -155,7 +155,7 @@ def ping(self, timeout: Optional[float]) -> bool: =20 def fsfreeze(self, cmd: str) -> object: if cmd not in ['status', 'freeze', 'thaw']: - raise Exception('Invalid command: ' + cmd) + raise ValueError('Invalid command: ' + cmd) # Can be int (freeze, thaw) or GuestFsfreezeStatus (status) return getattr(self.qga, 'fsfreeze' + '_' + cmd)() =20 @@ -167,7 +167,7 @@ def fstrim(self, minimum: int) -> Dict[str, object]: =20 def suspend(self, mode: str) -> None: if mode not in ['disk', 'ram', 'hybrid']: - raise Exception('Invalid mode: ' + mode) + raise ValueError('Invalid mode: ' + mode) =20 try: getattr(self.qga, 'suspend' + '_' + mode)() @@ -178,7 +178,7 @@ def suspend(self, mode: str) -> None: =20 def shutdown(self, mode: str =3D 'powerdown') -> None: if mode not in ['powerdown', 'halt', 'reboot']: - raise Exception('Invalid mode: ' + mode) + raise ValueError('Invalid mode: ' + mode) =20 try: self.qga.shutdown(mode=3Dmode) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 94aeb3f3b2..3e82c634cf 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -720,7 +720,7 @@ def __exit__(self, exc_type, value, traceback): signal.setitimer(signal.ITIMER_REAL, 0) return False def timeout(self, signum, frame): - raise Exception(self.errmsg) + raise TimeoutError(self.errmsg) =20 def file_pattern(name): return "{0}-{1}".format(os.getpid(), name) @@ -804,7 +804,7 @@ def remote_filename(path): elif imgproto =3D=3D 'ssh': return "ssh://%s@127.0.0.1:22%s" % (os.environ.get('USER'), path) else: - raise Exception("Protocol %s not supported" % (imgproto)) + raise ValueError("Protocol %s not supported" % (imgproto)) =20 class VM(qtest.QEMUQtestMachine): '''A QEMU VM''' --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467695; cv=none; d=zohomail.com; s=zohoarc; b=k7vRVre7Gl6mPJEXu+slQcqwuErt+GelIrWgM7XOsZicMzezld2g1+/ECFvAvVkKxpiqwc7Oe5nxeLX6DweeuduCrRFIuOASNHWLnCwsfueEvb2Vl9S+/vgNE3N6P2o7o7GnWav1eEddQlgmzyDnYxjXh39WP2CJ6KXpWcv/TpU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467695; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EWP3/t4l0M2SZRHC0ufVXVgelUe0djDAJDYBYXDXDB4=; b=irCCzbgL3m+RZmiMCEovMwU/J+fkwR+p0b+2LZyOySboif1R11tGTy7lsfqXIpv23QMed4boZYxQWY0A7i46wdpC+1l9V17N+wWoAY3+Gp5iB12tzJA7OnYeku7SQODZvXHcjIv7X76snyunBySKhiIR853Ws0G0+v61SYkvuBA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467695739197.1230440844845; Wed, 15 Feb 2023 05:28:15 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnb-0002Z2-Lv; Wed, 15 Feb 2023 08:26:15 -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 1pSHnY-0002Ug-6i for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:12 -0500 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnS-0006DJ-Sw for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:11 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id D481F60063; Wed, 15 Feb 2023 16:25:57 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-bDJNFpei; Wed, 15 Feb 2023 16:25:56 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467556; bh=EWP3/t4l0M2SZRHC0ufVXVgelUe0djDAJDYBYXDXDB4=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=K/k6LP2A4G+jZ2FddW4PcV6GRmB4+BnMPobRQvHOU6nRZ/zMIphJiFoiwHahZ56Yc rf3fLShA9E07LGmv1Y9bA15AFYDPJQ5dLbdKClqooKeJ87oQwapyAZYpdnZuoO2bn5 loVhMXJ1GemogN1cUITg6NTcdY3ESiSgFnFpeF2Q= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 03/16] python/qemu/qmp/legacy: cmd(): drop cmd_id unused argument Date: Wed, 15 Feb 2023 16:25:34 +0300 Message-Id: <20230215132547.1620575-4-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467696465100001 Content-Type: text/plain; charset="utf-8" The argument is unused, let's drop it for now, as we are going to refactor the interface and don't want to refactor unused things. Signed-off-by: Vladimir Sementsov-Ogievskiy --- python/qemu/qmp/legacy.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/python/qemu/qmp/legacy.py b/python/qemu/qmp/legacy.py index 8b09ee7dbb..c7b252842a 100644 --- a/python/qemu/qmp/legacy.py +++ b/python/qemu/qmp/legacy.py @@ -199,20 +199,16 @@ def cmd_obj(self, qmp_cmd: QMPMessage) -> QMPMessage: ) =20 def cmd(self, name: str, - args: Optional[Dict[str, object]] =3D None, - cmd_id: Optional[object] =3D None) -> QMPMessage: + args: Optional[Dict[str, object]] =3D None) -> QMPMessage: """ Build a QMP command and send it to the QMP Monitor. =20 :param name: command name (string) :param args: command arguments (dict) - :param cmd_id: command id (dict, list, string or int) """ qmp_cmd: QMPMessage =3D {'execute': name} if args: qmp_cmd['arguments'] =3D args - if cmd_id: - qmp_cmd['id'] =3D cmd_id return self.cmd_obj(qmp_cmd) =20 def command(self, cmd: str, **kwds: object) -> QMPReturnValue: --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467704; cv=none; d=zohomail.com; s=zohoarc; b=X934EFwqYc0y9i9rRuMu3Y1tFOZ7le4Z3CJFXEtRz2vmP6//dAYXhjGqnytQSPTPNppvgf2hejoTWnOy0NgS/KxsDzeJj2RHmZkGEw0agKz1umpfFHNFonPvNk8lTlYLW9xWXYq1hp09J1YF9MC7dV2UKAukAmotb3p2PRL4kuY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467704; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wN0A3wTmDxmKDpR59QQejhwd5O2aUNDBOGsYbLFUwxk=; b=OfeNPCJeTkyfOQa/TdnSArRMRlEhbwb1IBW73c3mAL1SuHQk+i/sMbe/rtr5kG2CNcnRiC4qhDPtFbai/j1rJ/em17721yaW5Hfta+degEoIc/zdkkF1ivbAtRidbfCUpwmBJRj1cnrln3Y06Tq9b3cglm0Gflwaf9RuDwpfXug= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467704115874.4477485209703; Wed, 15 Feb 2023 05:28:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnd-0002aO-AI; Wed, 15 Feb 2023 08:26:17 -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 1pSHnY-0002Uq-DG; Wed, 15 Feb 2023 08:26:12 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnT-0006DW-Fd; Wed, 15 Feb 2023 08:26:12 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 6A3BB60061; Wed, 15 Feb 2023 16:25:59 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-VVCQ6ZPj; Wed, 15 Feb 2023 16:25:57 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467557; bh=wN0A3wTmDxmKDpR59QQejhwd5O2aUNDBOGsYbLFUwxk=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=naGMZ4lRz5RpM/qbhXTp6/i8hVXkeVYxOfDHbJKP/0T+HTSQ/sTfkeP1KElOiFj0/ J70VQOvBSOuMIEETu8Nmb4qyT9hfPVRpdD1Hq6U2qmbhat4mqZscVuS7I0gea+Dmpn jjghGSeXO+6dcUKHLJwvJMs3R3B3SoDTnFJ9ohoI= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 04/16] qmp_shell.py: _fill_completion() use .command() instead of .cmd() Date: Wed, 15 Feb 2023 16:25:35 +0300 Message-Id: <20230215132547.1620575-5-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467704383100001 Content-Type: text/plain; charset="utf-8" We just want to ignore failure, so we don't need low level .cmd(). This helps further renaming .command() to .cmd(). Signed-off-by: Vladimir Sementsov-Ogievskiy --- python/qemu/qmp/qmp_shell.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/python/qemu/qmp/qmp_shell.py b/python/qemu/qmp/qmp_shell.py index 619ab42ced..988d79c01b 100644 --- a/python/qemu/qmp/qmp_shell.py +++ b/python/qemu/qmp/qmp_shell.py @@ -91,14 +91,21 @@ import sys from typing import ( IO, + Dict, Iterator, List, NoReturn, Optional, Sequence, + cast, ) =20 -from qemu.qmp import ConnectError, QMPError, SocketAddrT +from qemu.qmp import ( + ConnectError, + ExecuteError, + QMPError, + SocketAddrT, +) from qemu.qmp.legacy import ( QEMUMonitorProtocol, QMPBadPortError, @@ -194,11 +201,12 @@ def close(self) -> None: super().close() =20 def _fill_completion(self) -> None: - cmds =3D self.cmd('query-commands') - if 'error' in cmds: - return - for cmd in cmds['return']: - self._completer.append(cmd['name']) + try: + cmds =3D cast(List[Dict[str, str]], self.command('query-comman= ds')) + for cmd in cmds: + self._completer.append(cmd['name']) + except ExecuteError: + pass =20 def _completer_setup(self) -> None: self._completer =3D QMPCompleter() --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467704; cv=none; d=zohomail.com; s=zohoarc; b=MKzICiKzGrCQYi5B2W/VzfrpeFHQHXdEGrI1CJ/wP+84OJUVh3LlorWHaSgRCrMm6qGFnWonl0ssUIy4am2QRTOUzZ43rbfswNnrhpWDJRUernRJfE2vGpkwXXpAc3kl+AVX8GdFQKeJhbTwrWBT7lb3xuSgCvO0oGA+8uSBdHA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467704; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IKeqSfH0nYTKbyo+3Gpwbo88G/FIpSjB1bLtuFBlPV4=; b=cALJV5Nbo/+LQKLV5p/HBWvDh5XtP1Mc3ZZYts2WpFcO71q9K5+P2U0nxa2IbD7p3Uz6Umn9RNwDUHtgynNrvASw0bbAQAPsEy8dh5Cq9MmbajpRYLGnjmd9HDEb/SU7ytJpOZslPeBlRf8rfvdF2uFOaUT42xU776hTBefC2AA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467704890203.21349023470873; Wed, 15 Feb 2023 05:28:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnc-0002ZY-9e; Wed, 15 Feb 2023 08:26:16 -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 1pSHnY-0002VA-MC; Wed, 15 Feb 2023 08:26:14 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnU-0006Di-SV; Wed, 15 Feb 2023 08:26:12 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 15C7B60066; Wed, 15 Feb 2023 16:26:01 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-2jJXVwBo; Wed, 15 Feb 2023 16:25:59 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467559; bh=IKeqSfH0nYTKbyo+3Gpwbo88G/FIpSjB1bLtuFBlPV4=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=aRuf3lvZEZ0wONq1rAtch0D9i4kcIX0TW9woW5sq3UoyNTGqmkMlBl/i36FaJggsL v5x5QNpd+ldq2SLK4pElfPwkZHtHO/nsXi1uiBxOqDFB0Q7skAy0mxMcAuTJokB8rJ 5HuS9NBz30paBKaNQNRk3IxOSMlp9KOYw7TbSZjk= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 05/16] scripts/cpu-x86-uarch-abi.py: use .command() instead of .cmd() Date: Wed, 15 Feb 2023 16:25:36 +0300 Message-Id: <20230215132547.1620575-6-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467706376100003 Content-Type: text/plain; charset="utf-8" Here we don't expect a failure. In case on failure we'll crash on trying to access ['return']. Let's better use .command() that clearly raise on failure. Signed-off-by: Vladimir Sementsov-Ogievskiy --- scripts/cpu-x86-uarch-abi.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/cpu-x86-uarch-abi.py b/scripts/cpu-x86-uarch-abi.py index 82ff07582f..893afd1b35 100644 --- a/scripts/cpu-x86-uarch-abi.py +++ b/scripts/cpu-x86-uarch-abi.py @@ -69,7 +69,7 @@ shell =3D QEMUMonitorProtocol(sock) shell.connect() =20 -models =3D shell.cmd("query-cpu-definitions") +models =3D shell.command("query-cpu-definitions") =20 # These QMP props don't correspond to CPUID fatures # so ignore them @@ -85,7 +85,7 @@ =20 names =3D [] =20 -for model in models["return"]: +for model in models: if "alias-of" in model: continue names.append(model["name"]) @@ -93,12 +93,12 @@ models =3D {} =20 for name in sorted(names): - cpu =3D shell.cmd("query-cpu-model-expansion", - { "type": "static", - "model": { "name": name }}) + cpu =3D shell.command("query-cpu-model-expansion", + { "type": "static", + "model": { "name": name }}) =20 got =3D {} - for (feature, present) in cpu["return"]["model"]["props"].items(): + for (feature, present) in cpu["model"]["props"].items(): if present and feature not in skip: got[feature] =3D True =20 --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467697; cv=none; d=zohomail.com; s=zohoarc; b=FEyw7rYlYpbk3jZFgMVsXFoZOznEdNFrvI5kcPKbZuid6G7YxtMEZNhSspV/Zh5olb2dHG8hqgGSyK413EEXfHW65ysuShyp0mhg4og+KmyFPVJkDn6hU43dlhU7Wo4mnaOwI9SOHH0LWv3P51bitk6+j30P9I6pY2szw2xJyUE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467697; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4q7yHq5S4Z63P/ahm7pjK2Tqngrc7sOnIY6XgPxHZ88=; b=bCxDjv26SWv2WQ3Z0S3JvcbWSVwtoN12G4Nj58xk8uHzlOr8pLbYzCuv0XkBZWTIPACyYCEYAc/u9TwrvWCnX5SgJYvDEN/LRoCYsY3tEhdrcVxQnxdCIK+pUTiIsgtVD/H93e5qvT/HG2zeMd4JJGtGeqQXFm0Y86yOD61b+QQ= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467697452914.3217029627041; Wed, 15 Feb 2023 05:28:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnd-0002aM-8o; Wed, 15 Feb 2023 08:26:17 -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 1pSHnZ-0002VB-IL; Wed, 15 Feb 2023 08:26:14 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnV-0006Do-HC; Wed, 15 Feb 2023 08:26:13 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 5ACD65FEA9; Wed, 15 Feb 2023 16:26:02 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-DwywQfGB; Wed, 15 Feb 2023 16:26:01 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467561; bh=4q7yHq5S4Z63P/ahm7pjK2Tqngrc7sOnIY6XgPxHZ88=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=kVmDSLTa8/DHOiaGeRv+sdKPRttOx4HGJNvHkDpxglMBIio70X65LrGa5oXVoJGHQ yVUK83tCwy1kj7yTMgWGLuELH/H8F1y0EFVNTEXeOauiy6SRMUziN6V9EN6muPMXqC G5p15InYRFeOcGirhq+lPfqL0lWCvvH0fEfpSwyk= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 06/16] python: rename QEMUMonitorProtocol.cmd() to cmd_raw() Date: Wed, 15 Feb 2023 16:25:37 +0300 Message-Id: <20230215132547.1620575-7-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467698338100010 Content-Type: text/plain; charset="utf-8" Having cmd() and command() methods in one class doesn't look good. Rename cmd() to cmd_raw(), to show its meaning better. We also want to rename command() to cmd() in future, so this commit is a necessary step. Signed-off-by: Vladimir Sementsov-Ogievskiy --- python/qemu/machine/machine.py | 2 +- python/qemu/qmp/legacy.py | 4 ++-- tests/qemu-iotests/iotests.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index e57c254484..0428eec50c 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -683,7 +683,7 @@ def qmp(self, cmd: str, conv_keys =3D True =20 qmp_args =3D self._qmp_args(conv_keys, args) - ret =3D self._qmp.cmd(cmd, args=3Dqmp_args) + ret =3D self._qmp.cmd_raw(cmd, args=3Dqmp_args) if cmd =3D=3D 'quit' and 'error' not in ret and 'return' in ret: self._quit_issued =3D True return ret diff --git a/python/qemu/qmp/legacy.py b/python/qemu/qmp/legacy.py index c7b252842a..5552f4ebb4 100644 --- a/python/qemu/qmp/legacy.py +++ b/python/qemu/qmp/legacy.py @@ -198,8 +198,8 @@ def cmd_obj(self, qmp_cmd: QMPMessage) -> QMPMessage: ) ) =20 - def cmd(self, name: str, - args: Optional[Dict[str, object]] =3D None) -> QMPMessage: + def cmd_raw(self, name: str, + args: Optional[Dict[str, object]] =3D None) -> QMPMessage: """ Build a QMP command and send it to the QMP Monitor. =20 diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 3e82c634cf..675fbaa1c3 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -460,7 +460,7 @@ def __init__(self, *args: str, instance_id: str =3D 'a'= , qmp: bool =3D False): def qmp(self, cmd: str, args: Optional[Dict[str, object]] =3D None) \ -> QMPMessage: assert self._qmp is not None - return self._qmp.cmd(cmd, args) + return self._qmp.cmd_raw(cmd, args) =20 def stop(self, kill_signal=3D15): self._p.send_signal(kill_signal) --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467613; cv=none; d=zohomail.com; s=zohoarc; b=WE4Gv34Dgx7N8V4CQdSISjAcnNfQVbBLLYCTK+JSuGBKylGVCR+zlgQomnRfrpxo/4ufyWGxsMrD8xo8cuK6LQKa0QIe7hNWMt4QZ09qNCZjk+5jhdeZZyohO6RPEvKRiBgj2MxVwP6IMuulnErodL9x2VHTB4UiVszmqXaIefw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467613; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iCywJMbm/EgLTESvzU1Z0RcLowbDtU6hJh52rif+Qqc=; b=FZ0Z2rsSyhz9i4Cwfj8vHs3VaTzZ9ZAaDMV/y4IUg1iZubCppZl9l3HA3ndxCMt5rQIQEQtRkcbQMT8ss7X6IjpFUxzftJJw9xD6trI2XhHvQMhHJVwMzDTNtuGh3Riwsu3ZkfbfgD4qU0jpVx6vJB5eyc9v4531rI9RJQnkDGc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467613631305.2937524256894; Wed, 15 Feb 2023 05:26:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHne-0002bm-1b; Wed, 15 Feb 2023 08:26:18 -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 1pSHnb-0002Yz-JM for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:15 -0500 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnW-0006E2-Je for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:15 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 9E19B6006A; Wed, 15 Feb 2023 16:26:03 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-nGHPR37I; Wed, 15 Feb 2023 16:26:02 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467562; bh=iCywJMbm/EgLTESvzU1Z0RcLowbDtU6hJh52rif+Qqc=; h=Cc:Message-Id:References:Date:In-Reply-To:Subject:To:From; b=eTJg4YvKOhna4+EvzQ+UfNYdqcXbI6il4pNhDke6weR+xx1vjuoJnZPf38WVlNrZx +xgIBLC8gpGxm5jeftDb7d+v4arPj4FOZ2LzPYJ3i7FUpCWsEUFMXdyDSnjZXTICy1 kUm3JWX9IilQrYdrfGemgLSqK2Wx/AJ2DiL9RCIM= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com, =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PATCH v5 07/16] python/qemu: rename command() to cmd() Date: Wed, 15 Feb 2023 16:25:38 +0300 Message-Id: <20230215132547.1620575-8-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467615758100003 Use a shorter name. We are going to move in iotests from qmp() to command() where possible. But command() is longer than qmp() and don't look better. Let's rename. You can simply grep for '\.command(' and for 'def command(' to check that everything is updated (command() in tests/docker/docker.py is unrelated). Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- docs/devel/testing.rst | 10 +- python/qemu/machine/machine.py | 8 +- python/qemu/qmp/legacy.py | 2 +- python/qemu/qmp/qmp_shell.py | 2 +- python/qemu/utils/qemu_ga_client.py | 2 +- python/qemu/utils/qom.py | 8 +- python/qemu/utils/qom_common.py | 2 +- python/qemu/utils/qom_fuse.py | 6 +- scripts/cpu-x86-uarch-abi.py | 8 +- scripts/device-crash-test | 8 +- scripts/render_block_graph.py | 8 +- tests/avocado/avocado_qemu/__init__.py | 4 +- tests/avocado/cpu_queries.py | 5 +- tests/avocado/hotplug_cpu.py | 10 +- tests/avocado/info_usernet.py | 4 +- tests/avocado/machine_arm_integratorcp.py | 6 +- tests/avocado/machine_m68k_nextcube.py | 4 +- tests/avocado/machine_mips_malta.py | 6 +- tests/avocado/machine_s390_ccw_virtio.py | 28 ++-- tests/avocado/migration.py | 10 +- tests/avocado/pc_cpu_hotplug_props.py | 2 +- tests/avocado/version.py | 4 +- tests/avocado/virtio_check_params.py | 6 +- tests/avocado/virtio_version.py | 5 +- tests/avocado/x86_cpu_model_versions.py | 13 +- tests/migration/guestperf/engine.py | 150 +++++++++++----------- tests/qemu-iotests/256 | 34 ++--- tests/qemu-iotests/257 | 36 +++--- 28 files changed, 198 insertions(+), 193 deletions(-) diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst index e10c47b5a7..e3d7bb218c 100644 --- a/docs/devel/testing.rst +++ b/docs/devel/testing.rst @@ -988,8 +988,8 @@ class. Here's a simple usage example: """ def test_qmp_human_info_version(self): self.vm.launch() - res =3D self.vm.command('human-monitor-command', - command_line=3D'info version') + res =3D self.vm.cmd('human-monitor-command', + command_line=3D'info version') self.assertRegexpMatches(res, r'^(\d+\.\d+\.\d)') =20 To execute your test, run: @@ -1039,15 +1039,15 @@ and hypothetical example follows: first_machine.launch() second_machine.launch() =20 - first_res =3D first_machine.command( + first_res =3D first_machine.cmd( 'human-monitor-command', command_line=3D'info version') =20 - second_res =3D second_machine.command( + second_res =3D second_machine.cmd( 'human-monitor-command', command_line=3D'info version') =20 - third_res =3D self.get_vm(name=3D'third_machine').command( + third_res =3D self.get_vm(name=3D'third_machine').cmd( 'human-monitor-command', command_line=3D'info version') =20 diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index 0428eec50c..3b01607769 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -688,16 +688,16 @@ def qmp(self, cmd: str, self._quit_issued =3D True return ret =20 - def command(self, cmd: str, - conv_keys: bool =3D True, - **args: Any) -> QMPReturnValue: + def cmd(self, cmd: str, + conv_keys: bool =3D True, + **args: Any) -> QMPReturnValue: """ Invoke a QMP command. On success return the response dict. On failure raise an exception. """ qmp_args =3D self._qmp_args(conv_keys, args) - ret =3D self._qmp.command(cmd, **qmp_args) + ret =3D self._qmp.cmd(cmd, **qmp_args) if cmd =3D=3D 'quit': self._quit_issued =3D True return ret diff --git a/python/qemu/qmp/legacy.py b/python/qemu/qmp/legacy.py index 5552f4ebb4..d4e39b1bb2 100644 --- a/python/qemu/qmp/legacy.py +++ b/python/qemu/qmp/legacy.py @@ -211,7 +211,7 @@ def cmd_raw(self, name: str, qmp_cmd['arguments'] =3D args return self.cmd_obj(qmp_cmd) =20 - def command(self, cmd: str, **kwds: object) -> QMPReturnValue: + def cmd(self, cmd: str, **kwds: object) -> QMPReturnValue: """ Build and send a QMP command to the monitor, report errors if any """ diff --git a/python/qemu/qmp/qmp_shell.py b/python/qemu/qmp/qmp_shell.py index 988d79c01b..98e684e9e8 100644 --- a/python/qemu/qmp/qmp_shell.py +++ b/python/qemu/qmp/qmp_shell.py @@ -202,7 +202,7 @@ def close(self) -> None: =20 def _fill_completion(self) -> None: try: - cmds =3D cast(List[Dict[str, str]], self.command('query-comman= ds')) + cmds =3D cast(List[Dict[str, str]], self.cmd('query-commands')) for cmd in cmds: self._completer.append(cmd['name']) except ExecuteError: diff --git a/python/qemu/utils/qemu_ga_client.py b/python/qemu/utils/qemu_g= a_client.py index d8411bb2d0..9a665e6e99 100644 --- a/python/qemu/utils/qemu_ga_client.py +++ b/python/qemu/utils/qemu_ga_client.py @@ -64,7 +64,7 @@ class QemuGuestAgent(QEMUMonitorProtocol): def __getattr__(self, name: str) -> Callable[..., Any]: def wrapper(**kwds: object) -> object: - return self.command('guest-' + name.replace('_', '-'), **kwds) + return self.cmd('guest-' + name.replace('_', '-'), **kwds) return wrapper =20 =20 diff --git a/python/qemu/utils/qom.py b/python/qemu/utils/qom.py index bcf192f477..426a0f245f 100644 --- a/python/qemu/utils/qom.py +++ b/python/qemu/utils/qom.py @@ -84,7 +84,7 @@ def __init__(self, args: argparse.Namespace): self.value =3D args.value =20 def run(self) -> int: - rsp =3D self.qmp.command( + rsp =3D self.qmp.cmd( 'qom-set', path=3Dself.path, property=3Dself.prop, @@ -129,7 +129,7 @@ def __init__(self, args: argparse.Namespace): self.prop =3D tmp[1] =20 def run(self) -> int: - rsp =3D self.qmp.command( + rsp =3D self.qmp.cmd( 'qom-get', path=3Dself.path, property=3Dself.prop @@ -231,8 +231,8 @@ def _list_node(self, path: str) -> None: if item.child: continue try: - rsp =3D self.qmp.command('qom-get', path=3Dpath, - property=3Ditem.name) + rsp =3D self.qmp.cmd('qom-get', path=3Dpath, + property=3Ditem.name) print(f" {item.name}: {rsp} ({item.type})") except ExecuteError as err: print(f" {item.name}: ({item.type})") diff --git a/python/qemu/utils/qom_common.py b/python/qemu/utils/qom_common= .py index 80da1b2304..dd2c8b1908 100644 --- a/python/qemu/utils/qom_common.py +++ b/python/qemu/utils/qom_common.py @@ -140,7 +140,7 @@ def qom_list(self, path: str) -> List[ObjectPropertyInf= o]: """ :return: a strongly typed list from the 'qom-list' command. """ - rsp =3D self.qmp.command('qom-list', path=3Dpath) + rsp =3D self.qmp.cmd('qom-list', path=3Dpath) # qom-list returns List[ObjectPropertyInfo] assert isinstance(rsp, list) return [ObjectPropertyInfo.make(x) for x in rsp] diff --git a/python/qemu/utils/qom_fuse.py b/python/qemu/utils/qom_fuse.py index 8dcd59fcde..cf7e344bd5 100644 --- a/python/qemu/utils/qom_fuse.py +++ b/python/qemu/utils/qom_fuse.py @@ -137,7 +137,7 @@ def read(self, path: str, size: int, offset: int, fh: I= O[bytes]) -> bytes: if path =3D=3D '': path =3D '/' try: - data =3D str(self.qmp.command('qom-get', path=3Dpath, property= =3Dprop)) + data =3D str(self.qmp.cmd('qom-get', path=3Dpath, property=3Dp= rop)) data +=3D '\n' # make values shell friendly except ExecuteError as err: raise FuseOSError(EPERM) from err @@ -152,8 +152,8 @@ def readlink(self, path: str) -> Union[bool, str]: return False path, prop =3D path.rsplit('/', 1) prefix =3D '/'.join(['..'] * (len(path.split('/')) - 1)) - return prefix + str(self.qmp.command('qom-get', path=3Dpath, - property=3Dprop)) + return prefix + str(self.qmp.cmd('qom-get', path=3Dpath, + property=3Dprop)) =20 def getattr(self, path: str, fh: Optional[IO[bytes]] =3D None) -> Mapping[str, object]: diff --git a/scripts/cpu-x86-uarch-abi.py b/scripts/cpu-x86-uarch-abi.py index 893afd1b35..f6baeeff24 100644 --- a/scripts/cpu-x86-uarch-abi.py +++ b/scripts/cpu-x86-uarch-abi.py @@ -69,7 +69,7 @@ shell =3D QEMUMonitorProtocol(sock) shell.connect() =20 -models =3D shell.command("query-cpu-definitions") +models =3D shell.cmd("query-cpu-definitions") =20 # These QMP props don't correspond to CPUID fatures # so ignore them @@ -93,9 +93,9 @@ models =3D {} =20 for name in sorted(names): - cpu =3D shell.command("query-cpu-model-expansion", - { "type": "static", - "model": { "name": name }}) + cpu =3D shell.cmd("query-cpu-model-expansion", + { "type": "static", + "model": { "name": name }}) =20 got =3D {} for (feature, present) in cpu["model"]["props"].items(): diff --git a/scripts/device-crash-test b/scripts/device-crash-test index 73bcb98693..3a01425868 100755 --- a/scripts/device-crash-test +++ b/scripts/device-crash-test @@ -269,14 +269,14 @@ def formatTestCase(t): =20 def qomListTypeNames(vm, **kwargs): """Run qom-list-types QMP command, return type names""" - types =3D vm.command('qom-list-types', **kwargs) + types =3D vm.cmd('qom-list-types', **kwargs) return [t['name'] for t in types] =20 =20 def infoQDM(vm): """Parse 'info qdm' output""" args =3D {'command-line': 'info qdm'} - devhelp =3D vm.command('human-monitor-command', **args) + devhelp =3D vm.cmd('human-monitor-command', **args) for l in devhelp.split('\n'): l =3D l.strip() if l =3D=3D '' or l.endswith(':'): @@ -304,9 +304,9 @@ class QemuBinaryInfo(object): # there's no way to query DeviceClass::user_creatable using QM= P, # so use 'info qdm': self.no_user_devs =3D set([d['name'] for d in infoQDM(vm, ) if= d['no-user']]) - self.machines =3D list(m['name'] for m in vm.command('query-ma= chines')) + self.machines =3D list(m['name'] for m in vm.cmd('query-machin= es')) self.user_devs =3D self.alldevs.difference(self.no_user_devs) - self.kvm_available =3D vm.command('query-kvm')['enabled'] + self.kvm_available =3D vm.cmd('query-kvm')['enabled'] finally: vm.shutdown() =20 diff --git a/scripts/render_block_graph.py b/scripts/render_block_graph.py index 8f731a5cfe..3e1a2e3fa7 100755 --- a/scripts/render_block_graph.py +++ b/scripts/render_block_graph.py @@ -43,13 +43,13 @@ def render_block_graph(qmp, filename, format=3D'png'): representation in @format into "@filename.@format" ''' =20 - bds_nodes =3D qmp.command('query-named-block-nodes') + bds_nodes =3D qmp.cmd('query-named-block-nodes') bds_nodes =3D {n['node-name']: n for n in bds_nodes} =20 - job_nodes =3D qmp.command('query-block-jobs') + job_nodes =3D qmp.cmd('query-block-jobs') job_nodes =3D {n['device']: n for n in job_nodes} =20 - block_graph =3D qmp.command('x-debug-query-block-graph') + block_graph =3D qmp.cmd('x-debug-query-block-graph') =20 graph =3D Digraph(comment=3D'Block Nodes Graph') graph.format =3D format @@ -94,7 +94,7 @@ class LibvirtGuest(): def __init__(self, name): self.name =3D name =20 - def command(self, cmd): + 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)] diff --git a/tests/avocado/avocado_qemu/__init__.py b/tests/avocado/avocado= _qemu/__init__.py index 25a546842f..5ab2e0d23a 100644 --- a/tests/avocado/avocado_qemu/__init__.py +++ b/tests/avocado/avocado_qemu/__init__.py @@ -381,8 +381,8 @@ class LinuxSSHMixIn: =20 def ssh_connect(self, username, credential, credential_is_key=3DTrue): self.ssh_logger =3D logging.getLogger('ssh') - res =3D self.vm.command('human-monitor-command', - command_line=3D'info usernet') + res =3D self.vm.cmd('human-monitor-command', + command_line=3D'info usernet') port =3D get_info_usernet_hostfwd_port(res) self.assertIsNotNone(port) self.assertGreater(port, 0) diff --git a/tests/avocado/cpu_queries.py b/tests/avocado/cpu_queries.py index cf69f69b11..86c2d5c92d 100644 --- a/tests/avocado/cpu_queries.py +++ b/tests/avocado/cpu_queries.py @@ -23,12 +23,13 @@ def test(self): self.vm.add_args('-S') self.vm.launch() =20 - cpus =3D self.vm.command('query-cpu-definitions') + cpus =3D self.vm.cmd('query-cpu-definitions') for c in cpus: self.log.info("Checking CPU: %s", c) self.assertNotIn('', c['unavailable-features'], c['name']) =20 for c in cpus: model =3D {'name': c['name']} - e =3D self.vm.command('query-cpu-model-expansion', model=3Dmod= el, type=3D'full') + e =3D self.vm.cmd('query-cpu-model-expansion', model=3Dmodel, + type=3D'full') self.assertEquals(e['model']['name'], c['name']) diff --git a/tests/avocado/hotplug_cpu.py b/tests/avocado/hotplug_cpu.py index 6374bf1b54..292bb43e4d 100644 --- a/tests/avocado/hotplug_cpu.py +++ b/tests/avocado/hotplug_cpu.py @@ -29,9 +29,9 @@ def test(self): with self.assertRaises(AssertionError): self.ssh_command('test -e /sys/devices/system/cpu/cpu1') =20 - self.vm.command('device_add', - driver=3D'Haswell-x86_64-cpu', - socket_id=3D0, - core_id=3D1, - thread_id=3D0) + self.vm.cmd('device_add', + driver=3D'Haswell-x86_64-cpu', + socket_id=3D0, + core_id=3D1, + thread_id=3D0) self.ssh_command('test -e /sys/devices/system/cpu/cpu1') diff --git a/tests/avocado/info_usernet.py b/tests/avocado/info_usernet.py index fdc4d90c42..e1aa7a6e0a 100644 --- a/tests/avocado/info_usernet.py +++ b/tests/avocado/info_usernet.py @@ -22,8 +22,8 @@ def test_hostfwd(self): self.require_netdev('user') self.vm.add_args('-netdev', 'user,id=3Dvnet,hostfwd=3D:127.0.0.1:0= -:22') self.vm.launch() - res =3D self.vm.command('human-monitor-command', - command_line=3D'info usernet') + res =3D self.vm.cmd('human-monitor-command', + command_line=3D'info usernet') port =3D get_info_usernet_hostfwd_port(res) self.assertIsNotNone(port, ('"info usernet" output content does not seem= to ' diff --git a/tests/avocado/machine_arm_integratorcp.py b/tests/avocado/mach= ine_arm_integratorcp.py index 1ffe1073ef..87f5cf3953 100644 --- a/tests/avocado/machine_arm_integratorcp.py +++ b/tests/avocado/machine_arm_integratorcp.py @@ -81,9 +81,9 @@ def test_framebuffer_tux_logo(self): self.boot_integratorcp() framebuffer_ready =3D 'Console: switching to colour frame buffer d= evice' wait_for_console_pattern(self, framebuffer_ready) - self.vm.command('human-monitor-command', command_line=3D'stop') - self.vm.command('human-monitor-command', - command_line=3D'screendump %s' % screendump_path) + self.vm.cmd('human-monitor-command', command_line=3D'stop') + self.vm.cmd('human-monitor-command', + command_line=3D'screendump %s' % screendump_path) logger =3D logging.getLogger('framebuffer') =20 cpu_count =3D 1 diff --git a/tests/avocado/machine_m68k_nextcube.py b/tests/avocado/machine= _m68k_nextcube.py index 6790e7d9cd..d6da2fbb01 100644 --- a/tests/avocado/machine_m68k_nextcube.py +++ b/tests/avocado/machine_m68k_nextcube.py @@ -43,8 +43,8 @@ def check_bootrom_framebuffer(self, screenshot_path): # 'displaysurface_create 1120x832' trace-event. time.sleep(2) =20 - self.vm.command('human-monitor-command', - command_line=3D'screendump %s' % screenshot_path) + self.vm.cmd('human-monitor-command', + command_line=3D'screendump %s' % screenshot_path) =20 @skipUnless(PIL_AVAILABLE, 'Python PIL not installed') def test_bootrom_framebuffer_size(self): diff --git a/tests/avocado/machine_mips_malta.py b/tests/avocado/machine_mi= ps_malta.py index 92233451c5..9bd54518bf 100644 --- a/tests/avocado/machine_mips_malta.py +++ b/tests/avocado/machine_mips_malta.py @@ -71,9 +71,9 @@ def do_test_i6400_framebuffer_logo(self, cpu_cores_count): framebuffer_ready =3D 'Console: switching to colour frame buffer d= evice' wait_for_console_pattern(self, framebuffer_ready, failure_message=3D'Kernel panic - not syn= cing') - self.vm.command('human-monitor-command', command_line=3D'stop') - self.vm.command('human-monitor-command', - command_line=3D'screendump %s' % screendump_path) + self.vm.cmd('human-monitor-command', command_line=3D'stop') + self.vm.cmd('human-monitor-command', + command_line=3D'screendump %s' % screendump_path) logger =3D logging.getLogger('framebuffer') =20 match_threshold =3D 0.95 diff --git a/tests/avocado/machine_s390_ccw_virtio.py b/tests/avocado/machi= ne_s390_ccw_virtio.py index 78152f2ad1..aac4731a6c 100644 --- a/tests/avocado/machine_s390_ccw_virtio.py +++ b/tests/avocado/machine_s390_ccw_virtio.py @@ -107,10 +107,10 @@ def test_s390x_devices(self): 'dd if=3D/dev/hwrng of=3D/dev/null bs=3D1k count= =3D10', '10+0 records out') self.clear_guest_dmesg() - self.vm.command('device_del', id=3D'rn1') + self.vm.cmd('device_del', id=3D'rn1') self.wait_for_crw_reports() self.clear_guest_dmesg() - self.vm.command('device_del', id=3D'rn2') + self.vm.cmd('device_del', id=3D'rn2') self.wait_for_crw_reports() exec_command_and_wait_for_pattern(self, 'dd if=3D/dev/hwrng of=3D/dev/null bs=3D1k count= =3D10', @@ -132,8 +132,8 @@ def test_s390x_devices(self): '0x0000000c') # add another device self.clear_guest_dmesg() - self.vm.command('device_add', driver=3D'virtio-net-ccw', - devno=3D'fe.0.4711', id=3D'net_4711') + self.vm.cmd('device_add', driver=3D'virtio-net-ccw', + devno=3D'fe.0.4711', id=3D'net_4711') self.wait_for_crw_reports() exec_command_and_wait_for_pattern(self, 'for i in 1 2 3 4 5 6 7 ; = do ' 'if [ -e /sys/bus/ccw/devices/*4711 ]; then break; fi = ;' @@ -141,7 +141,7 @@ def test_s390x_devices(self): '0.0.4711') # and detach it again self.clear_guest_dmesg() - self.vm.command('device_del', id=3D'net_4711') + self.vm.cmd('device_del', id=3D'net_4711') self.vm.event_wait(name=3D'DEVICE_DELETED', match=3D{'data': {'device': 'net_4711'}}) self.wait_for_crw_reports() @@ -151,10 +151,10 @@ def test_s390x_devices(self): # test the virtio-balloon device exec_command_and_wait_for_pattern(self, 'head -n 1 /proc/meminfo', 'MemTotal: 115640 kB') - self.vm.command('human-monitor-command', command_line=3D'balloon 9= 6') + self.vm.cmd('human-monitor-command', command_line=3D'balloon 96') exec_command_and_wait_for_pattern(self, 'head -n 1 /proc/meminfo', 'MemTotal: 82872 kB') - self.vm.command('human-monitor-command', command_line=3D'balloon 1= 28') + self.vm.cmd('human-monitor-command', command_line=3D'balloon 128') exec_command_and_wait_for_pattern(self, 'head -n 1 /proc/meminfo', 'MemTotal: 115640 kB') =20 @@ -244,7 +244,7 @@ def test_s390x_fedora(self): '12+0 records out') with tempfile.NamedTemporaryFile(suffix=3D'.ppm', prefix=3D'qemu-scrdump-') as ppmf= ile: - self.vm.command('screendump', filename=3Dppmfile.name) + self.vm.cmd('screendump', filename=3Dppmfile.name) ppmfile.seek(0) line =3D ppmfile.readline() self.assertEqual(line, b"P6\n") @@ -258,16 +258,16 @@ def test_s390x_fedora(self): # Hot-plug a virtio-crypto device and see whether it gets accepted self.log.info("Test hot-plug virtio-crypto device") self.clear_guest_dmesg() - self.vm.command('object-add', qom_type=3D'cryptodev-backend-builti= n', - id=3D'cbe0') - self.vm.command('device_add', driver=3D'virtio-crypto-ccw', id=3D'= crypdev0', - cryptodev=3D'cbe0', devno=3D'fe.0.2342') + self.vm.cmd('object-add', qom_type=3D'cryptodev-backend-builtin', + id=3D'cbe0') + self.vm.cmd('device_add', driver=3D'virtio-crypto-ccw', id=3D'cryp= dev0', + cryptodev=3D'cbe0', devno=3D'fe.0.2342') exec_command_and_wait_for_pattern(self, 'while ! (dmesg -c | grep Accelerator.device) ; do' ' sleep 1 ; done', 'Accelerator device is ready') exec_command_and_wait_for_pattern(self, 'lscss', '0.0.2342') - self.vm.command('device_del', id=3D'crypdev0') - self.vm.command('object-del', id=3D'cbe0') + self.vm.cmd('device_del', id=3D'crypdev0') + self.vm.cmd('object-del', id=3D'cbe0') exec_command_and_wait_for_pattern(self, 'while ! (dmesg -c | grep Start.virtcrypto_remove)= ; do' ' sleep 1 ; done', 'Start virtcrypto_remove.') diff --git a/tests/avocado/migration.py b/tests/avocado/migration.py index 4b25680c50..8dda9f7f81 100644 --- a/tests/avocado/migration.py +++ b/tests/avocado/migration.py @@ -28,7 +28,7 @@ class Migration(QemuSystemTest): =20 @staticmethod def migration_finished(vm): - return vm.command('query-migrate')['status'] in ('completed', 'fai= led') + return vm.cmd('query-migrate')['status'] in ('completed', 'failed') =20 def assert_migration(self, src_vm, dst_vm): wait.wait_for(self.migration_finished, @@ -39,10 +39,10 @@ def assert_migration(self, src_vm, dst_vm): timeout=3Dself.timeout, step=3D0.1, args=3D(dst_vm,)) - self.assertEqual(src_vm.command('query-migrate')['status'], 'compl= eted') - self.assertEqual(dst_vm.command('query-migrate')['status'], 'compl= eted') - self.assertEqual(dst_vm.command('query-status')['status'], 'runnin= g') - self.assertEqual(src_vm.command('query-status')['status'],'postmig= rate') + self.assertEqual(src_vm.cmd('query-migrate')['status'], 'completed= ') + self.assertEqual(dst_vm.cmd('query-migrate')['status'], 'completed= ') + self.assertEqual(dst_vm.cmd('query-status')['status'], 'running') + self.assertEqual(src_vm.cmd('query-status')['status'],'postmigrate= ') =20 def do_migrate(self, dest_uri, src_uri=3DNone): dest_vm =3D self.get_vm('-incoming', dest_uri) diff --git a/tests/avocado/pc_cpu_hotplug_props.py b/tests/avocado/pc_cpu_h= otplug_props.py index 52b878188e..b56f51d02a 100644 --- a/tests/avocado/pc_cpu_hotplug_props.py +++ b/tests/avocado/pc_cpu_hotplug_props.py @@ -32,4 +32,4 @@ def test_no_die_id(self): self.vm.add_args('-smp', '1,sockets=3D2,cores=3D2,threads=3D2,maxc= pus=3D8') self.vm.add_args('-device', 'qemu64-x86_64-cpu,socket-id=3D1,core-= id=3D0,thread-id=3D0') self.vm.launch() - self.assertEquals(len(self.vm.command('query-cpus-fast')), 2) + self.assertEquals(len(self.vm.cmd('query-cpus-fast')), 2) diff --git a/tests/avocado/version.py b/tests/avocado/version.py index ded7f039c1..b8ce739743 100644 --- a/tests/avocado/version.py +++ b/tests/avocado/version.py @@ -19,6 +19,6 @@ class Version(QemuSystemTest): def test_qmp_human_info_version(self): self.vm.add_args('-nodefaults') self.vm.launch() - res =3D self.vm.command('human-monitor-command', - command_line=3D'info version') + res =3D self.vm.cmd('human-monitor-command', + command_line=3D'info version') self.assertRegexpMatches(res, r'^(\d+\.\d+\.\d)') diff --git a/tests/avocado/virtio_check_params.py b/tests/avocado/virtio_ch= eck_params.py index 4093da8a67..f4314ef824 100644 --- a/tests/avocado/virtio_check_params.py +++ b/tests/avocado/virtio_check_params.py @@ -51,8 +51,8 @@ def query_virtqueue(self, vm, dev_type_name): error =3D None props =3D None =20 - output =3D vm.command('human-monitor-command', - command_line =3D 'info qtree') + output =3D vm.cmd('human-monitor-command', + command_line =3D 'info qtree') props_list =3D DEV_TYPES[dev_type_name].values(); pattern =3D self.make_pattern(props_list) res =3D re.findall(pattern, output) @@ -121,7 +121,7 @@ def test_machine_types(self): # collect all machine types except 'none', 'isapc', 'microvm' with QEMUMachine(self.qemu_bin) as vm: vm.launch() - machines =3D [m['name'] for m in vm.command('query-machines')] + machines =3D [m['name'] for m in vm.cmd('query-machines')] vm.shutdown() machines.remove('none') machines.remove('isapc') diff --git a/tests/avocado/virtio_version.py b/tests/avocado/virtio_version= .py index c84e48813a..afe5e828b5 100644 --- a/tests/avocado/virtio_version.py +++ b/tests/avocado/virtio_version.py @@ -48,7 +48,8 @@ def pci_modern_device_id(virtio_devid): return virtio_devid + 0x1040 =20 def devtype_implements(vm, devtype, implements): - return devtype in [d['name'] for d in vm.command('qom-list-types', imp= lements=3Dimplements)] + return devtype in [d['name'] for d in + vm.cmd('qom-list-types', implements=3Dimplements)] =20 def get_pci_interfaces(vm, devtype): interfaces =3D ('pci-express-device', 'conventional-pci-device') @@ -78,7 +79,7 @@ def run_device(self, devtype, opts=3DNone, machine=3D'pc'= ): vm.add_args('-S') vm.launch() =20 - pcibuses =3D vm.command('query-pci') + pcibuses =3D vm.cmd('query-pci') alldevs =3D [dev for bus in pcibuses for dev in bus['devices']] devfortest =3D [dev for dev in alldevs if dev['qdev_id'] =3D=3D 'devfortest'] diff --git a/tests/avocado/x86_cpu_model_versions.py b/tests/avocado/x86_cp= u_model_versions.py index a6edf74c1c..9e07b8a55d 100644 --- a/tests/avocado/x86_cpu_model_versions.py +++ b/tests/avocado/x86_cpu_model_versions.py @@ -84,7 +84,8 @@ def test_4_0_alias_compatibility(self): # with older QEMU versions that didn't have the versioned CPU model self.vm.add_args('-S') self.vm.launch() - cpus =3D dict((m['name'], m) for m in self.vm.command('query-cpu-d= efinitions')) + cpus =3D dict((m['name'], m) for m in + self.vm.cmd('query-cpu-definitions')) =20 self.assertFalse(cpus['Cascadelake-Server']['static'], 'unversioned Cascadelake-Server CPU model must no= t be static') @@ -115,7 +116,8 @@ def test_4_1_alias(self): self.vm.add_args('-S') self.vm.launch() =20 - cpus =3D dict((m['name'], m) for m in self.vm.command('query-cpu-d= efinitions')) + cpus =3D dict((m['name'], m) for m in + self.vm.cmd('query-cpu-definitions')) =20 self.assertFalse(cpus['Cascadelake-Server']['static'], 'unversioned Cascadelake-Server CPU model must no= t be static') @@ -220,7 +222,8 @@ def test_none_alias(self): self.vm.add_args('-S') self.vm.launch() =20 - cpus =3D dict((m['name'], m) for m in self.vm.command('query-cpu-d= efinitions')) + cpus =3D dict((m['name'], m) for m in + self.vm.cmd('query-cpu-definitions')) =20 self.assertFalse(cpus['Cascadelake-Server']['static'], 'unversioned Cascadelake-Server CPU model must no= t be static') @@ -246,8 +249,8 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSyst= emTest): :avocado: tags=3Darch:x86_64 """ def get_cpu_prop(self, prop): - cpu_path =3D self.vm.command('query-cpus-fast')[0].get('qom-path') - return self.vm.command('qom-get', path=3Dcpu_path, property=3Dprop) + cpu_path =3D self.vm.cmd('query-cpus-fast')[0].get('qom-path') + return self.vm.cmd('qom-get', path=3Dcpu_path, property=3Dprop) =20 def test_4_1(self): """ diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestper= f/engine.py index cc06fac592..846cd2f637 100644 --- a/tests/migration/guestperf/engine.py +++ b/tests/migration/guestperf/engine.py @@ -77,7 +77,7 @@ def _cpu_timing(self, pid): return TimingRecord(pid, now, 1000 * (stime + utime) / jiffies= _per_sec) =20 def _migrate_progress(self, vm): - info =3D vm.command("query-migrate") + info =3D vm.cmd("query-migrate") =20 if "ram" not in info: info["ram"] =3D {} @@ -109,7 +109,7 @@ def _migrate(self, hardware, scenario, src, dst, connec= t_uri): src_vcpu_time =3D [] src_pid =3D src.get_pid() =20 - vcpus =3D src.command("query-cpus-fast") + vcpus =3D src.cmd("query-cpus-fast") src_threads =3D [] for vcpu in vcpus: src_threads.append(vcpu["thread-id"]) @@ -128,82 +128,82 @@ def _migrate(self, hardware, scenario, src, dst, conn= ect_uri): if self._verbose: print("Starting migration") if scenario._auto_converge: - resp =3D src.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "auto-converge", - "state": True } - ]) - resp =3D src.command("migrate-set-parameters", - cpu_throttle_increment=3Dscenario._auto_con= verge_step) + resp =3D src.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "auto-converge", + "state": True } + ]) + resp =3D src.cmd("migrate-set-parameters", + cpu_throttle_increment=3Dscenario._auto_converg= e_step) =20 if scenario._post_copy: - resp =3D src.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "postcopy-ram", - "state": True } - ]) - resp =3D dst.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "postcopy-ram", - "state": True } - ]) - - resp =3D src.command("migrate-set-parameters", - max_bandwidth=3Dscenario._bandwidth * 1024 * 10= 24) - - resp =3D src.command("migrate-set-parameters", - downtime_limit=3Dscenario._downtime) + resp =3D src.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "postcopy-ram", + "state": True } + ]) + resp =3D dst.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "postcopy-ram", + "state": True } + ]) + + resp =3D src.cmd("migrate-set-parameters", + max_bandwidth=3Dscenario._bandwidth * 1024 * 1024) + + resp =3D src.cmd("migrate-set-parameters", + downtime_limit=3Dscenario._downtime) =20 if scenario._compression_mt: - resp =3D src.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "compress", - "state": True } - ]) - resp =3D src.command("migrate-set-parameters", - compress_threads=3Dscenario._compression_mt= _threads) - resp =3D dst.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "compress", - "state": True } - ]) - resp =3D dst.command("migrate-set-parameters", - decompress_threads=3Dscenario._compression_= mt_threads) + resp =3D src.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "compress", + "state": True } + ]) + resp =3D src.cmd("migrate-set-parameters", + compress_threads=3Dscenario._compression_mt_thr= eads) + resp =3D dst.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "compress", + "state": True } + ]) + resp =3D dst.cmd("migrate-set-parameters", + decompress_threads=3Dscenario._compression_mt_t= hreads) =20 if scenario._compression_xbzrle: - resp =3D src.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "xbzrle", - "state": True } - ]) - resp =3D dst.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "xbzrle", - "state": True } - ]) - resp =3D src.command("migrate-set-parameters", - xbzrle_cache_size=3D( - hardware._mem * - 1024 * 1024 * 1024 / 100 * - scenario._compression_xbzrle_cache)) + resp =3D src.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "xbzrle", + "state": True } + ]) + resp =3D dst.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "xbzrle", + "state": True } + ]) + resp =3D src.cmd("migrate-set-parameters", + xbzrle_cache_size=3D( + hardware._mem * + 1024 * 1024 * 1024 / 100 * + scenario._compression_xbzrle_cache)) =20 if scenario._multifd: - resp =3D src.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "multifd", - "state": True } - ]) - resp =3D src.command("migrate-set-parameters", - multifd_channels=3Dscenario._multifd_channe= ls) - resp =3D dst.command("migrate-set-capabilities", - capabilities =3D [ - { "capability": "multifd", - "state": True } - ]) - resp =3D dst.command("migrate-set-parameters", - multifd_channels=3Dscenario._multifd_channe= ls) - - resp =3D src.command("migrate", uri=3Dconnect_uri) + resp =3D src.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "multifd", + "state": True } + ]) + resp =3D src.cmd("migrate-set-parameters", + multifd_channels=3Dscenario._multifd_channels) + resp =3D dst.cmd("migrate-set-capabilities", + capabilities =3D [ + { "capability": "multifd", + "state": True } + ]) + resp =3D dst.cmd("migrate-set-parameters", + multifd_channels=3Dscenario._multifd_channels) + + resp =3D src.cmd("migrate", uri=3Dconnect_uri) =20 post_copy =3D False paused =3D False @@ -228,7 +228,7 @@ def _migrate(self, hardware, scenario, src, dst, connec= t_uri): =20 if progress._status in ("completed", "failed", "cancelled"): if progress._status =3D=3D "completed" and paused: - dst.command("cont") + dst.cmd("cont") if progress_history[-1] !=3D progress: progress_history.append(progress) =20 @@ -256,13 +256,13 @@ def _migrate(self, hardware, scenario, src, dst, conn= ect_uri): if progress._ram._iterations > scenario._max_iters: if self._verbose: print("No completion after %d iterations over RAM" % s= cenario._max_iters) - src.command("migrate_cancel") + src.cmd("migrate_cancel") continue =20 if time.time() > (start + scenario._max_time): if self._verbose: print("No completion after %d seconds" % scenario._max= _time) - src.command("migrate_cancel") + src.cmd("migrate_cancel") continue =20 if (scenario._post_copy and @@ -270,7 +270,7 @@ def _migrate(self, hardware, scenario, src, dst, connec= t_uri): not post_copy): if self._verbose: print("Switching to post-copy after %d iterations" % s= cenario._post_copy_iters) - resp =3D src.command("migrate-start-postcopy") + resp =3D src.cmd("migrate-start-postcopy") post_copy =3D True =20 if (scenario._pause and @@ -278,7 +278,7 @@ def _migrate(self, hardware, scenario, src, dst, connec= t_uri): not paused): if self._verbose: print("Pausing VM after %d iterations" % scenario._pau= se_iters) - resp =3D src.command("stop") + resp =3D src.cmd("stop") paused =3D True =20 def _is_ppc64le(self): diff --git a/tests/qemu-iotests/256 b/tests/qemu-iotests/256 index 13666813bd..fffc8ef055 100755 --- a/tests/qemu-iotests/256 +++ b/tests/qemu-iotests/256 @@ -40,25 +40,25 @@ with iotests.FilePath('img0') as img0_path, \ def create_target(filepath, name, size): basename =3D os.path.basename(filepath) nodename =3D "file_{}".format(basename) - log(vm.command('blockdev-create', job_id=3D'job1', - options=3D{ - 'driver': 'file', - 'filename': filepath, - 'size': 0, - })) + log(vm.cmd('blockdev-create', job_id=3D'job1', + options=3D{ + 'driver': 'file', + 'filename': filepath, + 'size': 0, + })) vm.run_job('job1') - log(vm.command('blockdev-add', driver=3D'file', - node_name=3Dnodename, filename=3Dfilepath)) - log(vm.command('blockdev-create', job_id=3D'job2', - options=3D{ - 'driver': iotests.imgfmt, - 'file': nodename, - 'size': size, - })) + log(vm.cmd('blockdev-add', driver=3D'file', + node_name=3Dnodename, filename=3Dfilepath)) + log(vm.cmd('blockdev-create', job_id=3D'job2', + options=3D{ + 'driver': iotests.imgfmt, + 'file': nodename, + 'size': size, + })) vm.run_job('job2') - log(vm.command('blockdev-add', driver=3Diotests.imgfmt, - node_name=3Dname, - file=3Dnodename)) + log(vm.cmd('blockdev-add', driver=3Diotests.imgfmt, + node_name=3Dname, + file=3Dnodename)) =20 log('--- Preparing images & VM ---\n') vm.add_object('iothread,id=3Diothread0') diff --git a/tests/qemu-iotests/257 b/tests/qemu-iotests/257 index e7e7a2317e..7d3720b8e5 100755 --- a/tests/qemu-iotests/257 +++ b/tests/qemu-iotests/257 @@ -160,26 +160,26 @@ class Drive: file_node_name =3D "file_{}".format(basename) vm =3D self.vm =20 - log(vm.command('blockdev-create', job_id=3D'bdc-file-job', - options=3D{ - 'driver': 'file', - 'filename': self.path, - 'size': 0, - })) + log(vm.cmd('blockdev-create', job_id=3D'bdc-file-job', + options=3D{ + 'driver': 'file', + 'filename': self.path, + 'size': 0, + })) vm.run_job('bdc-file-job') - log(vm.command('blockdev-add', driver=3D'file', - node_name=3Dfile_node_name, filename=3Dself.path)) - - log(vm.command('blockdev-create', job_id=3D'bdc-fmt-job', - options=3D{ - 'driver': fmt, - 'file': file_node_name, - 'size': size, - })) + log(vm.cmd('blockdev-add', driver=3D'file', + node_name=3Dfile_node_name, filename=3Dself.path)) + + log(vm.cmd('blockdev-create', job_id=3D'bdc-fmt-job', + options=3D{ + 'driver': fmt, + 'file': file_node_name, + 'size': size, + })) vm.run_job('bdc-fmt-job') - log(vm.command('blockdev-add', driver=3Dfmt, - node_name=3Dname, - file=3Dfile_node_name)) + log(vm.cmd('blockdev-add', driver=3Dfmt, + node_name=3Dname, + file=3Dfile_node_name)) self.fmt =3D fmt self.size =3D size self.node =3D name --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467648; cv=none; d=zohomail.com; s=zohoarc; b=V9Bvmis7qfzsssEwKNJQg7JxuJl4F0xxNAPX6oLiQhDnAMunYjGF612hCHQGqv3pTVZaj9v3pacwhIEhHDZcqUEuSkWL6e/pxGjXp/4m8tJn12Ssan1mDpZTSHh52kCVqBOWYyaZ/YwC2un+c9g24OIWwPERufeTZi3GfWrL3YQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467648; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Nsc3GGKhdthblioLzs9CIJJX+I0nXus/Z3Gia/jtW6I=; b=Ec+o5pXHwtq713O6fUdOKREdEF3w+luPJ2SD1FvesPiWU6OS7UD0R6A2jnXAWm9LkKslmhbczrHJVEjci5q7Ay7/FjcoN0y76yugslA5AjqvlaeydNQRCN4hxUpvWL59XacJuOBhWPksyv5+Xjhkdr2q3tHA2ft6SepjoXuQjaA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467648253468.7695727484273; Wed, 15 Feb 2023 05:27:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHne-0002bu-6f; Wed, 15 Feb 2023 08:26:18 -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 1pSHnZ-0002VD-Sj; Wed, 15 Feb 2023 08:26:14 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnY-0006E8-9e; Wed, 15 Feb 2023 08:26:13 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 9B2176006D; Wed, 15 Feb 2023 16:26:04 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-PBpRMK7e; Wed, 15 Feb 2023 16:26:03 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467563; bh=Nsc3GGKhdthblioLzs9CIJJX+I0nXus/Z3Gia/jtW6I=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=ttU6kc6Ca7z1dP+/XPMqVZRcHFOW6gSizP8WurjDSMnjbhWitz+xb88vbQRVIBG7i yEYBx5LZ8OIhG1duDh35afITaNRYbj2eLjOIN5CexMeCJ4r+7XBNnPewEg0icwmNrp xP0RzAr/DLi9IdmIbkULO+23G4Zw3pnFIO1gcbOk= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 08/16] python/machine.py: upgrade vm.cmd() method Date: Wed, 15 Feb 2023 16:25:39 +0300 Message-Id: <20230215132547.1620575-9-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467650062100003 Content-Type: text/plain; charset="utf-8" The method is not popular in iotests, we prefer use vm.qmp() and then check success by hand.. But that's not optimal. To simplify movement to vm.cmd() let's support same interface improvements like in vm.qmp(). Signed-off-by: Vladimir Sementsov-Ogievskiy --- python/qemu/machine/machine.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index 3b01607769..17be82e709 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -689,13 +689,23 @@ def qmp(self, cmd: str, return ret =20 def cmd(self, cmd: str, - conv_keys: bool =3D True, + args_dict: Optional[Dict[str, object]] =3D None, + conv_keys: Optional[bool] =3D None, **args: Any) -> QMPReturnValue: """ Invoke a QMP command. On success return the response dict. On failure raise an exception. """ + if args_dict is not None: + assert not args + assert conv_keys is None + args =3D args_dict + conv_keys =3D False + + if conv_keys is None: + conv_keys =3D True + qmp_args =3D self._qmp_args(conv_keys, args) ret =3D self._qmp.cmd(cmd, **qmp_args) if cmd =3D=3D 'quit': --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467587; cv=none; d=zohomail.com; s=zohoarc; b=mjc/QFmcp0NgW7PREfb4dFGyFr6/lPYHmOF8cSkUWMGUaTu0wq0XRf50pvm4G4/GybkCNEWP3209dpZSN+xN+rwSOvCpwFWcawljhMGp5FVwM6kipdu53rK/ut/Q2e6rXG/sGGcTNMW4QjniEXYnOl81UyhXb+pX1QEx+NT+tqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467587; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xM8qlz/J85jJcaYDaa9hz/uTtpt+sMCG1BGRJjjV4Bw=; b=HjJrB3R47v1txwbBEj549x3nVcQ1pbAAbL6FV9NsR5ZXil1z6suo+lHI2R2yFEOrCdymtWmYvfBWs9o5yiWK7NmTEdYWCqDOnT46ndY9ZBD4S4Onr5Hsb+hXqH5Kg2kiusIzYzg6b4PjrrRoQ1B9z3WuBT0llvqhPJNQ3f26+nA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467587546905.2608681472658; Wed, 15 Feb 2023 05:26:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnb-0002ZD-RV; Wed, 15 Feb 2023 08:26:15 -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 1pSHna-0002VN-Gq; Wed, 15 Feb 2023 08:26:14 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnY-0006EB-Kh; Wed, 15 Feb 2023 08:26:13 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 78EF16006E; Wed, 15 Feb 2023 16:26:05 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-z2N6PguY; Wed, 15 Feb 2023 16:26:04 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467564; bh=xM8qlz/J85jJcaYDaa9hz/uTtpt+sMCG1BGRJjjV4Bw=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=R3BNQPOm+C/IYKqvp1Iq7gpDklv+TPzZ9m0fqaw3HDhHAsdtK7IwdFzIorHKV3hVF gJotcFGamsi60QIV+VK/Cgd7D4p8A/NX8j9IgTw4e1oT9GCaBddelcj0MlAvjdC590 Zk8Iw0azpZ6f7WjyBhoCzH+2EGOVa+97RrKaSsxM= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 09/16] iotests: QemuStorageDaemon: add cmd() method like in QEMUMachine. Date: Wed, 15 Feb 2023 16:25:40 +0300 Message-Id: <20230215132547.1620575-10-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467590812100003 Content-Type: text/plain; charset="utf-8" Add similar method for consistency. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/iotests.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 675fbaa1c3..8ef1c8a5d2 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -38,7 +38,7 @@ from contextlib import contextmanager =20 from qemu.machine import qtest -from qemu.qmp.legacy import QMPMessage, QEMUMonitorProtocol +from qemu.qmp.legacy import QMPMessage, QMPReturnValue, QEMUMonitorProtocol from qemu.utils import VerboseProcessError =20 # Use this logger for logging messages directly from the iotests module @@ -462,6 +462,11 @@ def qmp(self, cmd: str, args: Optional[Dict[str, objec= t]] =3D None) \ assert self._qmp is not None return self._qmp.cmd_raw(cmd, args) =20 + def cmd(self, cmd: str, args: Optional[Dict[str, object]] =3D None) \ + -> QMPReturnValue: + assert self._qmp is not None + return self._qmp.cmd(cmd, **(args or {})) + def stop(self, kill_signal=3D15): self._p.send_signal(kill_signal) self._p.wait() --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467726; cv=none; d=zohomail.com; s=zohoarc; b=iR3pPLXJIsyR8dfmZf1nIMvfXKIiIAyhnaVVNZVXS+KI/qXdzS7udSHmiI4UzzfKMEpgX8GXaYC5L5Yb8aUIVEMg+JZbk8M2/unprBWl66mwwuL7df4GWH/8CbtXJS18bOny9W4Fi0pyPeZ/e6r0VElMPK0+V1ie98VxT0YEJCs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467726; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ue9H0VVTFc/NFBBo19GdFV7OLPb9thJm9K5AkJZCNJs=; b=imzoE2+ZSKD9yn2uch8wymdxsta0jbBIAU21e/XkziVJSIMnVSaHuluYVZG2i3azxBGpaWbRQWC0TLF2THuOzeyTytzf1cIL+aNbDR+KZQopnxHuSriOIVbrIrmoW7nOMs6TJsy4Z+s4AorueGMFaV7obNoK+kgU0Y9r/vmXMCI= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167646772677985.1027156451056; Wed, 15 Feb 2023 05:28:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHo5-00037x-Ln; Wed, 15 Feb 2023 08:26:45 -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 1pSHnj-0002gj-LA for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:26 -0500 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHne-0006FD-9O for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:19 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id D373360071; Wed, 15 Feb 2023 16:26:06 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-xgOuNV7i; Wed, 15 Feb 2023 16:26:06 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467566; bh=ue9H0VVTFc/NFBBo19GdFV7OLPb9thJm9K5AkJZCNJs=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=SikY0C3OWLNMcGcijvt6P77/Dx4MUxOq/RKwo5Hw0nYBuyqLkkn3sno0ivRDscJnJ VOrwcs93h11JOKaXHOk3i1ViAHBXOpyMy5ZXxm1jupC8TI9qu6a48F1dLy6qGnVeNk jU6DmgY3OIzey/L2O1hWiqYoKKpd1ofESQUe/ecc= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 10/16] iotests: add some missed checks of qmp result Date: Wed, 15 Feb 2023 16:25:41 +0300 Message-Id: <20230215132547.1620575-11-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467728695100011 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/041 | 1 + tests/qemu-iotests/151 | 1 + tests/qemu-iotests/152 | 2 ++ tests/qemu-iotests/tests/migrate-bitmaps-test | 2 ++ 4 files changed, 6 insertions(+) diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041 index 8429958bf0..4d7a829b65 100755 --- a/tests/qemu-iotests/041 +++ b/tests/qemu-iotests/041 @@ -1087,6 +1087,7 @@ class TestRepairQuorum(iotests.QMPTestCase): result =3D self.vm.qmp('blockdev-snapshot-sync', node_name=3D'img1= ', snapshot_file=3Dquorum_snapshot_file, snapshot_node_name=3D"snap1"); + self.assert_qmp(result, 'return', {}) =20 result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', sync=3D'full', node_name=3D'repair0', replace= s=3D"img1", diff --git a/tests/qemu-iotests/151 b/tests/qemu-iotests/151 index b4d1bc2553..668d0c1e9c 100755 --- a/tests/qemu-iotests/151 +++ b/tests/qemu-iotests/151 @@ -159,6 +159,7 @@ class TestActiveMirror(iotests.QMPTestCase): sync=3D'full', copy_mode=3D'write-blocking', speed=3D1) + self.assert_qmp(result, 'return', {}) =20 self.vm.hmp_qemu_io('source', 'break write_aio A') self.vm.hmp_qemu_io('source', 'aio_write 0 1M') # 1 diff --git a/tests/qemu-iotests/152 b/tests/qemu-iotests/152 index 4e179c340f..b73a0d08a2 100755 --- a/tests/qemu-iotests/152 +++ b/tests/qemu-iotests/152 @@ -43,6 +43,7 @@ class TestUnaligned(iotests.QMPTestCase): def test_unaligned(self): result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', granularity=3D65536, target=3Dtarget_img) + self.assert_qmp(result, 'return', {}) self.complete_and_wait() self.vm.shutdown() self.assertEqual(iotests.image_size(test_img), iotests.image_size(= target_img), @@ -51,6 +52,7 @@ class TestUnaligned(iotests.QMPTestCase): def test_unaligned_with_update(self): result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', granularity=3D65536, target=3Dtarget_img) + self.assert_qmp(result, 'return', {}) self.wait_ready() self.vm.hmp_qemu_io('drive0', 'write 0 512') self.complete_and_wait(wait_ready=3DFalse) diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-test b/tests/qemu-iot= ests/tests/migrate-bitmaps-test index 59f3357580..8668caae1e 100755 --- a/tests/qemu-iotests/tests/migrate-bitmaps-test +++ b/tests/qemu-iotests/tests/migrate-bitmaps-test @@ -101,6 +101,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): sha256 =3D get_bitmap_hash(self.vm_a) =20 result =3D self.vm_a.qmp('migrate', uri=3Dmig_cmd) + self.assert_qmp(result, 'return', {}) while True: event =3D self.vm_a.event_wait('MIGRATION') if event['data']['status'] =3D=3D 'completed': @@ -176,6 +177,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): self.assert_qmp(result, 'return', {}) =20 result =3D self.vm_a.qmp('migrate', uri=3Dmig_cmd) + self.assert_qmp(result, 'return', {}) while True: event =3D self.vm_a.event_wait('MIGRATION') if event['data']['status'] =3D=3D 'completed': --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467606; cv=none; d=zohomail.com; s=zohoarc; b=MMEAjeDGyMz4SozMUOgfN7NFHt7Lv1WLKHnCWRDvdgiQfe0VIzf3TskGh2Asd4Mhx+ABqNb6m94CpZXgaPLs79SvUuC7WboPPn9woWzPYGuvhhomGuQcOmbwce2QqgJOiciXG1A9rwBKZ0DeSwbBaHR6MvGEQemXah4rxXqmXP0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467606; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=q65mSZu0xdYWtdX1kdwO/chIdWJeyl4LNH4kexNOfLU=; b=Jh3ygaA3+1xIaQ2VHfwPkxHKw9wp7dvo14zLp94Am0m+5GvcGGkzyXR0iUNVQx4S8BY7tDzTFRe9PquA/ScoCjMDi2gzujf0Fi/ZTmxeOVSnKaId/KzsQ2GlUEuCMZmjmnlgu9nP+5KxdtQdXYsFnVyNZX0wjmB6tNRv12ASLno= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467606027558.247800610881; Wed, 15 Feb 2023 05:26:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnu-0002ls-TO; Wed, 15 Feb 2023 08:26:35 -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 1pSHnj-0002gi-Kb for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:26 -0500 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnd-0006F7-UA for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:19 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id DDD8A60073; Wed, 15 Feb 2023 16:26:07 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-obrbTl5H; Wed, 15 Feb 2023 16:26:07 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467567; bh=q65mSZu0xdYWtdX1kdwO/chIdWJeyl4LNH4kexNOfLU=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=aX7J6YfWK/kdN99mrFXvqZfZC6Mo0W7GNJlN2Xmmv7ScsqXNDyQDxvZYUUt/poHlc Zfbj7mqWBRSH4/utRk1la62eUig7uRqmt/VbrpQPwmWADLg9CIUPZHOEb7OU3Cw6Wd yOr9L3op4/mHQY/fbBvUvXsbPC0XDCRYD+154Ijc= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 11/16] iotests: refactor some common qmp result checks into generic pattern Date: Wed, 15 Feb 2023 16:25:42 +0300 Message-Id: <20230215132547.1620575-12-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467607672100003 Content-Type: text/plain; charset="utf-8" To simplify further conversion. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/040 | 3 ++- tests/qemu-iotests/147 | 3 ++- tests/qemu-iotests/155 | 4 ++-- tests/qemu-iotests/218 | 4 ++-- tests/qemu-iotests/296 | 3 ++- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040 index 30eb97829e..2b68946744 100755 --- a/tests/qemu-iotests/040 +++ b/tests/qemu-iotests/040 @@ -62,9 +62,10 @@ class ImageCommitTestCase(iotests.QMPTestCase): self.assert_no_active_block_jobs() if node_names: result =3D self.vm.qmp('block-commit', device=3D'drive0', top_= node=3Dtop, base_node=3Dbase) + self.assert_qmp(result, 'return', {}) else: result =3D self.vm.qmp('block-commit', device=3D'drive0', top= =3Dtop, base=3Dbase) - self.assert_qmp(result, 'return', {}) + self.assert_qmp(result, 'return', {}) self.wait_for_complete(need_ready) =20 def run_default_commit_test(self): diff --git a/tests/qemu-iotests/147 b/tests/qemu-iotests/147 index 47dfa62e6b..770b73e2f4 100755 --- a/tests/qemu-iotests/147 +++ b/tests/qemu-iotests/147 @@ -159,10 +159,11 @@ class BuiltinNBD(NBDBlockdevAddBase): =20 if export_name is None: result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort') + self.assert_qmp(result, 'return', {}) else: result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort', name=3Dexport_name) - self.assert_qmp(result, 'return', {}) + self.assert_qmp(result, 'return', {}) =20 if export_name2 is not None: result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort', diff --git a/tests/qemu-iotests/155 b/tests/qemu-iotests/155 index eadda52615..d3e1b7401e 100755 --- a/tests/qemu-iotests/155 +++ b/tests/qemu-iotests/155 @@ -181,6 +181,7 @@ class MirrorBaseClass(BaseClass): result =3D self.vm.qmp(self.cmd, job_id=3D'mirror-job', device= =3D'source', sync=3Dsync, target=3D'target', auto_finalize=3DFalse) + self.assert_qmp(result, 'return', {}) else: if self.existing: mode =3D 'existing' @@ -190,8 +191,7 @@ class MirrorBaseClass(BaseClass): sync=3Dsync, target=3Dtarget_img, format=3Diotests.imgfmt, mode=3Dmode, node_name=3D'target', auto_finalize=3DFal= se) - - self.assert_qmp(result, 'return', {}) + self.assert_qmp(result, 'return', {}) =20 self.vm.run_job('mirror-job', auto_finalize=3DFalse, pre_finalize=3Dself.openBacking, auto_dismiss=3DTr= ue) diff --git a/tests/qemu-iotests/218 b/tests/qemu-iotests/218 index 6320c4cb56..5e74c55b6a 100755 --- a/tests/qemu-iotests/218 +++ b/tests/qemu-iotests/218 @@ -61,14 +61,14 @@ def start_mirror(vm, speed=3DNone, buf_size=3DNone): sync=3D'full', speed=3Dspeed, buf_size=3Dbuf_size) + assert ret['return'] =3D=3D {} else: ret =3D vm.qmp('blockdev-mirror', job_id=3D'mirror', device=3D'source', target=3D'target', sync=3D'full') - - assert ret['return'] =3D=3D {} + assert ret['return'] =3D=3D {} =20 =20 log('') diff --git a/tests/qemu-iotests/296 b/tests/qemu-iotests/296 index 0d21b740a7..19a674c5ae 100755 --- a/tests/qemu-iotests/296 +++ b/tests/qemu-iotests/296 @@ -133,9 +133,10 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): =20 if reOpen: result =3D vm.qmp(command, options=3D[opts]) + self.assert_qmp(result, 'return', {}) else: result =3D vm.qmp(command, **opts) - self.assert_qmp(result, 'return', {}) + self.assert_qmp(result, 'return', {}) =20 =20 ######################################################################= ##### --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467697; cv=none; d=zohomail.com; s=zohoarc; b=Km3v1y0qOsDXqp8eKHo9KGSn4FTAwpBHgGkB2cRNGTkU58wc2jKDPuqTH2t5nFzmUrBdFNzds/mkC7ySJExXo6Eg1wO2TM5l7YP9tpYv1qfqyNHyuc4pnZQNCD4piFEo6yDVm1H3NkvX3HcqZ1nbmap4pask5a6r3rasTX0cKGA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467697; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aJbCaKySm+BZo0Y85DEBNFhcpLKCYyf/p7nL4epKZS4=; b=NK+OUbPH6hB3US0vtZMKJKYJHV7IN89W6t7SC/+FnSSq6bIH7dcIUQR+nM3QRjsAPiXy00qrhGzWyhu/b6XAulAhAZe5+OtHcJ9Y2sSmGRCeWF8VuHJc1ScCflyMb5ThkcjguSjoYUB1zPaEZZ5rB/xVUmuFqjNbXTZycF0Wi/I= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467697071601.3977115753921; Wed, 15 Feb 2023 05:28:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHo7-0003G4-A9; Wed, 15 Feb 2023 08:26:47 -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 1pSHnm-0002gv-1N for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:26 -0500 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnj-0006G1-DS for qemu-devel@nongnu.org; Wed, 15 Feb 2023 08:26:24 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 9F5EB60074; Wed, 15 Feb 2023 16:26:08 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-ss7nTsl6; Wed, 15 Feb 2023 16:26:08 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467568; bh=aJbCaKySm+BZo0Y85DEBNFhcpLKCYyf/p7nL4epKZS4=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=UnxzJ8jWE08DArW9v0EYGOhh0y/Hprl7Q545EAndYpGDEycV95K38aQFSyhlHJyqS Lnzi7UgZk403u5/gTxCjpiqvjrem1dURD4YMEUUGdRUkjCHU/WChecsYfxQIXet+17 2p8bjQdUJgWQxuKiaK1qVmPKEIJq56HQsov+eSfc= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 12/16] iotests: drop some occasional semicolons Date: Wed, 15 Feb 2023 16:25:43 +0300 Message-Id: <20230215132547.1620575-13-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467698318100009 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/041 | 2 +- tests/qemu-iotests/196 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041 index 4d7a829b65..550e4dc391 100755 --- a/tests/qemu-iotests/041 +++ b/tests/qemu-iotests/041 @@ -1086,7 +1086,7 @@ class TestRepairQuorum(iotests.QMPTestCase): def test_after_a_quorum_snapshot(self): result =3D self.vm.qmp('blockdev-snapshot-sync', node_name=3D'img1= ', snapshot_file=3Dquorum_snapshot_file, - snapshot_node_name=3D"snap1"); + snapshot_node_name=3D"snap1") self.assert_qmp(result, 'return', {}) =20 result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', diff --git a/tests/qemu-iotests/196 b/tests/qemu-iotests/196 index 76509a5ad1..27c1629be3 100755 --- a/tests/qemu-iotests/196 +++ b/tests/qemu-iotests/196 @@ -46,7 +46,7 @@ class TestInvalidateAutoclear(iotests.QMPTestCase): =20 def test_migration(self): result =3D self.vm_a.qmp('migrate', uri=3D'exec:cat>' + migfile) - self.assert_qmp(result, 'return', {}); + self.assert_qmp(result, 'return', {}) self.assertNotEqual(self.vm_a.event_wait("STOP"), None) =20 with open(disk, 'r+b') as f: --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467668; cv=none; d=zohomail.com; s=zohoarc; b=RSzTfAfyvpdEfYiJcH+sHsnACtoTK2ntQbvns4FyTVz6+3TfS124llgGLayYdmv+5LLH2Aht0KsdeOAKgv86MKucjn4K5Iro5U1S/2CnnOsBA6qAOB4zXNHEQMZVo4vGEiveeVVUvwpWhO1+KjoWaKLd3i/TpvliMOQfzWH1XGs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467668; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=O0YsSR2f1yF+/Zkfif4BVMCq6T8WAztAr+/gIS8IwkY=; b=diiqfLF2H+EXkoavWi9rm9GXuNB7LYqU7pni8q9UvD8O7k5L7zALosD+dwTpLn/R2dzGwJXxuZ5ENx3s5H8L5WBaguzWdAWK0wgWwUYPl0erD5vk5zt/MfdJiZHiY2zdSwWI5ISqxKzp0vcugfNpTBwNCQ5Pq26iHddshH6xWpw= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467668627152.06712930745016; Wed, 15 Feb 2023 05:27:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHo4-00032t-VS; Wed, 15 Feb 2023 08:26:45 -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 1pSHnj-0002gk-LD; Wed, 15 Feb 2023 08:26:26 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHne-0006Fk-W6; Wed, 15 Feb 2023 08:26:21 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id BF43C60078; Wed, 15 Feb 2023 16:26:09 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-fUJlkZYI; Wed, 15 Feb 2023 16:26:08 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467568; bh=O0YsSR2f1yF+/Zkfif4BVMCq6T8WAztAr+/gIS8IwkY=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=bSKWwrmGwspm9S1MxTVYcNkB20M2I1seVIsanU9eOjB0vcyHHK71O9AgpmmuvSBz9 LB5du7yKoL475MCxBzWqGwaWNSqt6kD9CYbYI7UcSP7qPIMwjaI4dZHjLvMWFT69RP 1jQCveAJNhF7vly68zif1aGyfJsVwQTxK2wf+u4c= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 13/16] iotests: drop some extra ** in qmp() call Date: Wed, 15 Feb 2023 16:25:44 +0300 Message-Id: <20230215132547.1620575-14-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467670205100003 Content-Type: text/plain; charset="utf-8" qmp() method supports passing dict (if it doesn't need substituting '_' to '-' in keys). So, drop some extra '**' operators. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/040 | 4 +- tests/qemu-iotests/041 | 14 +++--- tests/qemu-iotests/129 | 2 +- tests/qemu-iotests/147 | 2 +- tests/qemu-iotests/155 | 2 +- tests/qemu-iotests/264 | 12 ++--- tests/qemu-iotests/295 | 5 +- tests/qemu-iotests/296 | 15 +++--- tests/qemu-iotests/tests/migrate-bitmaps-test | 4 +- .../tests/mirror-ready-cancel-error | 50 +++++++++---------- 10 files changed, 54 insertions(+), 56 deletions(-) diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040 index 2b68946744..46a4ec9bde 100755 --- a/tests/qemu-iotests/040 +++ b/tests/qemu-iotests/040 @@ -774,7 +774,7 @@ class TestCommitWithFilters(iotests.QMPTestCase): result =3D self.vm.qmp('object-add', qom_type=3D'throttle-group', = id=3D'tg') self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm.qmp('blockdev-add', **{ + result =3D self.vm.qmp('blockdev-add', { 'node-name': 'top-filter', 'driver': 'throttle', 'throttle-group': 'tg', @@ -935,7 +935,7 @@ class TestCommitWithOverriddenBacking(iotests.QMPTestCa= se): self.vm.launch() =20 # Use base_b instead of base_a as the backing of top - result =3D self.vm.qmp('blockdev-add', **{ + result =3D self.vm.qmp('blockdev-add', { 'node-name': 'top', 'driver': iotests.imgfmt, 'file': { diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041 index 550e4dc391..3aef42aec8 100755 --- a/tests/qemu-iotests/041 +++ b/tests/qemu-iotests/041 @@ -236,7 +236,7 @@ class TestSingleBlockdev(TestSingleDrive): args =3D {'driver': iotests.imgfmt, 'node-name': self.qmp_target, 'file': { 'filename': target_img, 'driver': 'file' } } - result =3D self.vm.qmp("blockdev-add", **args) + result =3D self.vm.qmp("blockdev-add", args) self.assert_qmp(result, 'return', {}) =20 def test_mirror_to_self(self): @@ -963,7 +963,7 @@ class TestRepairQuorum(iotests.QMPTestCase): #assemble the quorum block device from the individual files args =3D { "driver": "quorum", "node-name": "quorum0", "vote-threshold": 2, "children": [ "img0", "img1", "img2"= ] } - result =3D self.vm.qmp("blockdev-add", **args) + result =3D self.vm.qmp("blockdev-add", args) self.assert_qmp(result, 'return', {}) =20 =20 @@ -1278,7 +1278,7 @@ class TestReplaces(iotests.QMPTestCase): """ Check that we can replace filter nodes. """ - result =3D self.vm.qmp('blockdev-add', **{ + result =3D self.vm.qmp('blockdev-add', { 'driver': 'copy-on-read', 'node-name': 'filter0', 'file': { @@ -1319,7 +1319,7 @@ class TestFilters(iotests.QMPTestCase): self.vm =3D iotests.VM().add_device('virtio-scsi,id=3Dvio-scsi') self.vm.launch() =20 - result =3D self.vm.qmp('blockdev-add', **{ + result =3D self.vm.qmp('blockdev-add', { 'node-name': 'target', 'driver': iotests.imgfmt, 'file': { @@ -1355,7 +1355,7 @@ class TestFilters(iotests.QMPTestCase): os.remove(backing_img) =20 def test_cor(self): - result =3D self.vm.qmp('blockdev-add', **{ + result =3D self.vm.qmp('blockdev-add', { 'node-name': 'filter', 'driver': 'copy-on-read', 'file': self.filterless_chain @@ -1384,7 +1384,7 @@ class TestFilters(iotests.QMPTestCase): assert target_map[1]['depth'] =3D=3D 0 =20 def test_implicit_mirror_filter(self): - result =3D self.vm.qmp('blockdev-add', **self.filterless_chain) + result =3D self.vm.qmp('blockdev-add', self.filterless_chain) self.assert_qmp(result, 'return', {}) =20 # We need this so we can query from above the mirror node @@ -1418,7 +1418,7 @@ class TestFilters(iotests.QMPTestCase): def test_explicit_mirror_filter(self): # Same test as above, but this time we give the mirror filter # a node-name so it will not be invisible - result =3D self.vm.qmp('blockdev-add', **self.filterless_chain) + result =3D self.vm.qmp('blockdev-add', self.filterless_chain) self.assert_qmp(result, 'return', {}) =20 # We need this so we can query from above the mirror node diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129 index c75ec62ecf..e1536ee3c3 100755 --- a/tests/qemu-iotests/129 +++ b/tests/qemu-iotests/129 @@ -87,7 +87,7 @@ class TestStopWithBlockJob(iotests.QMPTestCase): iotests.qemu_img('create', '-f', iotests.imgfmt, self.overlay_img, '1G') =20 - result =3D self.vm.qmp('blockdev-add', **{ + result =3D self.vm.qmp('blockdev-add', { 'node-name': 'overlay', 'driver': iotests.imgfmt, 'file': { diff --git a/tests/qemu-iotests/147 b/tests/qemu-iotests/147 index 770b73e2f4..08111c5108 100755 --- a/tests/qemu-iotests/147 +++ b/tests/qemu-iotests/147 @@ -58,7 +58,7 @@ class NBDBlockdevAddBase(iotests.QMPTestCase): def client_test(self, filename, address, export=3DNone, node_name=3D'nbd-blockdev', delete=3DTrue): bao =3D self.blockdev_add_options(address, export, node_name) - result =3D self.vm.qmp('blockdev-add', **bao) + result =3D self.vm.qmp('blockdev-add', bao) self.assert_qmp(result, 'return', {}) =20 found =3D False diff --git a/tests/qemu-iotests/155 b/tests/qemu-iotests/155 index d3e1b7401e..0c073fd61b 100755 --- a/tests/qemu-iotests/155 +++ b/tests/qemu-iotests/155 @@ -110,7 +110,7 @@ class BaseClass(iotests.QMPTestCase): elif self.target_blockdev_backing: options['backing'] =3D self.target_blockdev_backing =20 - result =3D self.vm.qmp('blockdev-add', **options) + result =3D self.vm.qmp('blockdev-add', options) self.assert_qmp(result, 'return', {}) =20 def tearDown(self): diff --git a/tests/qemu-iotests/264 b/tests/qemu-iotests/264 index 289381e315..d44deb673a 100755 --- a/tests/qemu-iotests/264 +++ b/tests/qemu-iotests/264 @@ -49,12 +49,12 @@ class TestNbdReconnect(iotests.QMPTestCase): assert job in ('blockdev-backup', 'blockdev-mirror') with qemu_nbd_popen('-k', nbd_sock, '-f', iotests.imgfmt, disk_b): result =3D self.vm.qmp('blockdev-add', - **{'node_name': 'backup0', - 'driver': 'raw', - 'file': {'driver': 'nbd', - 'server': {'type': 'unix', - 'path': nbd_sock}, - 'reconnect-delay': 10}}) + {'node-name': 'backup0', + 'driver': 'raw', + 'file': {'driver': 'nbd', + 'server': {'type': 'unix', + 'path': nbd_sock}, + 'reconnect-delay': 10}}) self.assert_qmp(result, 'return', {}) result =3D self.vm.qmp(job, device=3D'drive0', sync=3D'full', target=3D'backup0', diff --git a/tests/qemu-iotests/295 b/tests/qemu-iotests/295 index 270ad3999f..8ebe31054c 100755 --- a/tests/qemu-iotests/295 +++ b/tests/qemu-iotests/295 @@ -102,8 +102,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): } } =20 - result =3D self.vm.qmp('blockdev-add', ** - { + result =3D self.vm.qmp('blockdev-add', { 'driver': iotests.imgfmt, 'node-name': id, 'read-only': read_only, @@ -120,7 +119,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): =20 # close the encrypted block device def closeImageQmp(self, id): - result =3D self.vm.qmp('blockdev-del', **{ 'node-name': id }) + result =3D self.vm.qmp('blockdev-del', {'node-name': id}) self.assert_qmp(result, 'return', {}) =20 ######################################################################= ##### diff --git a/tests/qemu-iotests/296 b/tests/qemu-iotests/296 index 19a674c5ae..47d2526b72 100755 --- a/tests/qemu-iotests/296 +++ b/tests/qemu-iotests/296 @@ -42,7 +42,7 @@ class Secret: return [ "secret,id=3D" + self._id + ",data=3D" + self._secret] =20 def to_qmp_object(self): - return { "qom_type" : "secret", "id": self.id(), + return { "qom-type" : "secret", "id": self.id(), "data": self.secret() } =20 ##########################################################################= ###### @@ -61,9 +61,9 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): # create the secrets and load 'em into the VMs self.secrets =3D [ Secret(i) for i in range(0, 4) ] for secret in self.secrets: - result =3D self.vm1.qmp("object-add", **secret.to_qmp_object()) + result =3D self.vm1.qmp("object-add", secret.to_qmp_object()) self.assert_qmp(result, 'return', {}) - result =3D self.vm2.qmp("object-add", **secret.to_qmp_object()) + result =3D self.vm2.qmp("object-add", secret.to_qmp_object()) self.assert_qmp(result, 'return', {}) =20 # test case shutdown @@ -135,15 +135,14 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): result =3D vm.qmp(command, options=3D[opts]) self.assert_qmp(result, 'return', {}) else: - result =3D vm.qmp(command, **opts) + result =3D vm.qmp(command, opts) self.assert_qmp(result, 'return', {}) =20 =20 ######################################################################= ##### # add virtio-blk consumer for a block device def addImageUser(self, vm, id, disk_id, share_rw=3DFalse): - result =3D vm.qmp('device_add', ** - { + result =3D vm.qmp('device_add', { 'driver': 'virtio-blk', 'id': id, 'drive': disk_id, @@ -155,7 +154,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): =20 # close the encrypted block device def closeImageQmp(self, vm, id): - result =3D vm.qmp('blockdev-del', **{ 'node-name': id }) + result =3D vm.qmp('blockdev-del', {'node-name': id}) self.assert_qmp(result, 'return', {}) =20 ######################################################################= ##### @@ -174,7 +173,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): }, } =20 - result =3D vm.qmp('x-blockdev-amend', **args) + result =3D vm.qmp('x-blockdev-amend', args) iotests.log(result) # Run the job only if it was created event =3D ('JOB_STATUS_CHANGE', diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-test b/tests/qemu-iot= ests/tests/migrate-bitmaps-test index 8668caae1e..eebb256485 100755 --- a/tests/qemu-iotests/tests/migrate-bitmaps-test +++ b/tests/qemu-iotests/tests/migrate-bitmaps-test @@ -67,7 +67,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): if persistent: params['persistent'] =3D True =20 - result =3D vm.qmp('block-dirty-bitmap-add', **params) + result =3D vm.qmp('block-dirty-bitmap-add', params) self.assert_qmp(result, 'return', {}) =20 def check_bitmap(self, vm, sha256): @@ -256,7 +256,7 @@ class TestDirtyBitmapBackingMigration(iotests.QMPTestCa= se): self.vm =3D iotests.VM() self.vm.launch() =20 - result =3D self.vm.qmp('blockdev-add', **blockdev) + result =3D self.vm.qmp('blockdev-add', blockdev) self.assert_qmp(result, 'return', {}) =20 # Check that the bitmaps are there diff --git a/tests/qemu-iotests/tests/mirror-ready-cancel-error b/tests/qem= u-iotests/tests/mirror-ready-cancel-error index 01217459b9..a59e245659 100755 --- a/tests/qemu-iotests/tests/mirror-ready-cancel-error +++ b/tests/qemu-iotests/tests/mirror-ready-cancel-error @@ -49,12 +49,12 @@ class TestMirrorReadyCancelError(iotests.QMPTestCase): =20 def add_blockdevs(self, once: bool) -> None: res =3D self.vm.qmp('blockdev-add', - **{'node-name': 'source', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'file', - 'filename': source - }}) + {'node-name': 'source', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'file', + 'filename': source + }}) self.assert_qmp(res, 'return', {}) =20 # blkdebug notes: @@ -63,25 +63,25 @@ class TestMirrorReadyCancelError(iotests.QMPTestCase): # when the job is about to complete, and we want that one to # fail. res =3D self.vm.qmp('blockdev-add', - **{'node-name': 'target', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'blkdebug', - 'image': { - 'driver': 'file', - 'filename': target - }, - 'set-state': [{ - 'event': 'flush_to_disk', - 'state': 1, - 'new_state': 2 - }], - 'inject-error': [{ - 'event': 'flush_to_disk', - 'once': once, - 'immediately': True, - 'state': 2 - }]}}) + {'node-name': 'target', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'blkdebug', + 'image': { + 'driver': 'file', + 'filename': target + }, + 'set-state': [{ + 'event': 'flush_to_disk', + 'state': 1, + 'new_state': 2 + }], + 'inject-error': [{ + 'event': 'flush_to_disk', + 'once': once, + 'immediately': True, + 'state': 2 + }]}}) self.assert_qmp(res, 'return', {}) =20 def start_mirror(self) -> None: --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467603; cv=none; d=zohomail.com; s=zohoarc; b=DSolgXrRd7rwru0F31HKETh92yKJLiwIGvJy+VjnqdgN+lB9/lq9SakQEXCnTMJiitvMObRcewJ11WoWbWuMoGPJCrWqPw4bzWV8wty70krJ6ftWIQpjjZu64DLNEYCCbTk2LalRbJWNKpA7OW0a3zJOpRRN479tXTblHuPqWqw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467603; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=802o5ffL/YHVJc+5JovfRr0tUjXjUTOIGJAtLUqOCwI=; b=mNlFkJgxKaUMcmXt8Tm8iRWjF8C78Y+WxWlMX9QWbmnlMjp1Rwj63C7Imm8X3c/sMtz87WPrPfaxCTh7dYWLCsQE10JMujwD7vsKPJfNfa892G+UeofUkDNKNJKfPS3fKNyLQ2pB4cWRakZJUe9x08rpX4+z8ZvwIbpFtJOGEvs= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467603148392.87544454544866; Wed, 15 Feb 2023 05:26:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHnw-0002q0-RB; Wed, 15 Feb 2023 08:26:38 -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 1pSHnm-0002gu-1L; Wed, 15 Feb 2023 08:26:26 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHnj-0006Fw-DH; Wed, 15 Feb 2023 08:26:24 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 5240F6007A; Wed, 15 Feb 2023 16:26:10 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-4kpew0cx; Wed, 15 Feb 2023 16:26:09 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467569; bh=802o5ffL/YHVJc+5JovfRr0tUjXjUTOIGJAtLUqOCwI=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=BLR15W01Kjyg+DCdeVWQr5Vj2c6k0m9rcer5YHz7T6nM11I8PeXIKGHWFmTi0vuPS hG0aeOMtwMfJFqXdkzNGv4Zb/eLPFnlmtPAKiYy6+pGNf+8QVa5WMvHx5LsKg7pDMz afB1aOcCpWqLIUPMzlVH3ks5PMGbp19d5VkIAHjs= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 14/16] iotests.py: pause_job(): drop return value Date: Wed, 15 Feb 2023 16:25:45 +0300 Message-Id: <20230215132547.1620575-15-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467603812100001 Content-Type: text/plain; charset="utf-8" The returned value is unused. It's simple to check by command git grep -B 3 '\.pause_job(' Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/iotests.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 8ef1c8a5d2..0add93bc47 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -1334,8 +1334,7 @@ def pause_job(self, job_id=3D'job0', wait=3DTrue): result =3D self.vm.qmp('block-job-pause', device=3Djob_id) self.assert_qmp(result, 'return', {}) if wait: - return self.pause_wait(job_id) - return result + self.pause_wait(job_id) =20 def case_skip(self, reason): '''Skip this test case''' --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467724; cv=none; d=zohomail.com; s=zohoarc; b=ev5gG4wcjDoUi4Sr6wQsNTRoHBl9/wIrec0R92JqTlGuK6U592wBQiFE3mkox26Letg7TCcuaqDxYPkBFJz60tn8D+yDUs2EwMfUpTZBVWvuWH+CZA0/DGE4FJi6/KjilWL5A8h0cX0ZEJq81TnPqGEpGIFibMIUrJwr0sBPXsc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467724; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gM07pkLy096JbA30n+rIFlv2x4pSanX3JjAGj1HjfGU=; b=lwxmNrtHpnGwJPc7QLOuiao1o1tNGFqqo5buIzjuw+sDOnwCFCYeIFp4kBafj3DPNFCYOe/0nWiHWp43LPnijrN+5e3QmKpGPmzwkIZh3IpeqMHgCSd17GAAou4W/QBx1N4qIL1kCeiz6rWAz3Au2/kIiz6fW1oCGkr0W99wtb8= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467724634689.3971449496662; Wed, 15 Feb 2023 05:28:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHo7-0003IU-Nk; Wed, 15 Feb 2023 08:26:47 -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 1pSHo2-0002wi-9h; Wed, 15 Feb 2023 08:26:44 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHo0-0006Fy-Ib; Wed, 15 Feb 2023 08:26:41 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 2DB456007B; Wed, 15 Feb 2023 16:26:11 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-vHbMn4D5; Wed, 15 Feb 2023 16:26:10 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467570; bh=gM07pkLy096JbA30n+rIFlv2x4pSanX3JjAGj1HjfGU=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=vi3H14iS44w3yi41mIglPDQt9kqOLYsxDzG7MqsV6ibX/sSpWtAL5SahtXS0L1Y+p dAErZl81V7eH2tKtaHMpctOoayRHbcqGPnOI30cvbgY7dtW4zczHFS9QzFmzEcjf57 2c82he7bQIjZhCtWWwgFuCc14iEw/3EaXcWJCYm0= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 15/16] tests/vm/basevm.py: use cmd() instead of qmp() Date: Wed, 15 Feb 2023 16:25:46 +0300 Message-Id: <20230215132547.1620575-16-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467726704100006 Content-Type: text/plain; charset="utf-8" We don't expect failure here and need 'result' object. cmd() is better in this case. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/vm/basevm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py index 23229e23d1..e61f9f0fd1 100644 --- a/tests/vm/basevm.py +++ b/tests/vm/basevm.py @@ -311,8 +311,8 @@ def boot(self, img, extra_args=3D[]): self._guest =3D guest # Init console so we can start consuming the chars. self.console_init() - usernet_info =3D guest.qmp("human-monitor-command", - command_line=3D"info usernet").get("retur= n") + usernet_info =3D guest.cmd("human-monitor-command", + command_line=3D"info usernet") self.ssh_port =3D get_info_usernet_hostfwd_port(usernet_info) if not self.ssh_port: raise Exception("Cannot find ssh port from 'info usernet':\n%s= " % \ --=20 2.34.1 From nobody Sat May 18 04:13:21 2024 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=none dis=none) header.from=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1676467660; cv=none; d=zohomail.com; s=zohoarc; b=NoJTcC/Luu4612hQ1xdoU6n3mCpmzzyRd2cED+Axp1jXkDybIPFXdMBLlS7aJ1HqtVq/tJIaNia8naGFqiLrj4mfCjTiSTdTxibVmAUhogiAD6BJmnnh5dqN756enN4FSHvhG1tiJulHj8XLMerbsa12hA58ZHD+X6Qszt2NQSk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676467660; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=W8VMqSWNsJbBrwLoCP47TIaTrFhfu1Pu37lzTQ6L7VU=; b=E38BidJ7KTI98rAhr8aNM1PDGpGBFws3XFKLqiY9PUAYw28Flg6zEKPoife7I0ZN98mUU1K/9/TkymEu0XmvzD4Uc0kNq1xtHcWGFRxmP5De6S/SgpcLa8CVkzWC7ZOXrmZx8X0zqxkocqHMFTcktKDvhtWZ/mD25EKdv91kfgU= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676467660936182.94791140088785; Wed, 15 Feb 2023 05:27:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSHo9-0003Pb-77; Wed, 15 Feb 2023 08:26:49 -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 1pSHo6-0003Cc-BI; Wed, 15 Feb 2023 08:26:46 -0500 Received: from forwardcorp1a.mail.yandex.net ([178.154.239.72]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSHo0-0006Gb-RY; Wed, 15 Feb 2023 08:26:46 -0500 Received: from vla5-b2806cb321eb.qloud-c.yandex.net (vla5-b2806cb321eb.qloud-c.yandex.net [IPv6:2a02:6b8:c18:3e0d:0:640:b280:6cb3]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTP id 429F76007E; Wed, 15 Feb 2023 16:26:13 +0300 (MSK) Received: from vsementsov-win.yandex-team.ru (unknown [2a02:6b8:b081:b4bf::1:2e]) by vla5-b2806cb321eb.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id nPk8g80UxeA1-HSt0umOu; Wed, 15 Feb 2023 16:26:11 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1676467571; bh=W8VMqSWNsJbBrwLoCP47TIaTrFhfu1Pu37lzTQ6L7VU=; h=Message-Id:Date:In-Reply-To:Cc:Subject:References:To:From; b=Ok9ROVJ6ZfaFkRz3Lu3hMn9U5IkLZgyxIql0o65j71SaY6riQCNdarGqd2qLP1oIO Fxbx7/9wB7bb+Divwm6VPpkW6XTCwBeSh+E4ryVjlO9pK3rfY9iX/OnJUyROYI63qc ktS0JDevnVJHrQk6rEqjfd0VCzUWTAAxi1nDm1Js= Authentication-Results: vla5-b2806cb321eb.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@yandex-team.ru, jsnow@redhat.com, crosa@redhat.com, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v5 16/16] python: use vm.cmd() instead of vm.qmp() where appropriate Date: Wed, 15 Feb 2023 16:25:47 +0300 Message-Id: <20230215132547.1620575-17-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230215132547.1620575-1-vsementsov@yandex-team.ru> References: <20230215132547.1620575-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=178.154.239.72; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 @yandex-team.ru) X-ZM-MESSAGEID: 1676467662330100003 Content-Type: text/plain; charset="utf-8" In many cases we just want an effect of qmp command and want to raise on failure. Use vm.cmd() method which does exactly this. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/avocado/vnc.py | 16 +- tests/qemu-iotests/030 | 168 +++--- tests/qemu-iotests/040 | 172 +++---- tests/qemu-iotests/041 | 483 ++++++++---------- tests/qemu-iotests/045 | 15 +- tests/qemu-iotests/055 | 62 +-- tests/qemu-iotests/056 | 77 ++- tests/qemu-iotests/093 | 42 +- tests/qemu-iotests/118 | 225 ++++---- tests/qemu-iotests/124 | 102 ++-- tests/qemu-iotests/129 | 14 +- tests/qemu-iotests/132 | 5 +- tests/qemu-iotests/139 | 45 +- tests/qemu-iotests/147 | 31 +- tests/qemu-iotests/151 | 57 +-- tests/qemu-iotests/152 | 10 +- tests/qemu-iotests/155 | 55 +- tests/qemu-iotests/165 | 8 +- tests/qemu-iotests/196 | 3 +- tests/qemu-iotests/205 | 6 +- tests/qemu-iotests/218 | 105 ++-- tests/qemu-iotests/245 | 245 ++++----- tests/qemu-iotests/264 | 31 +- tests/qemu-iotests/281 | 21 +- tests/qemu-iotests/295 | 15 +- tests/qemu-iotests/296 | 15 +- tests/qemu-iotests/298 | 13 +- tests/qemu-iotests/300 | 54 +- tests/qemu-iotests/iotests.py | 9 +- .../tests/export-incoming-iothread | 6 +- .../qemu-iotests/tests/graph-changes-while-io | 6 +- tests/qemu-iotests/tests/image-fleecing | 3 +- .../tests/migrate-bitmaps-postcopy-test | 31 +- tests/qemu-iotests/tests/migrate-bitmaps-test | 47 +- .../qemu-iotests/tests/migrate-during-backup | 41 +- .../qemu-iotests/tests/migration-permissions | 9 +- .../tests/mirror-ready-cancel-error | 74 ++- tests/qemu-iotests/tests/mirror-top-perms | 16 +- tests/qemu-iotests/tests/nbd-multiconn | 12 +- tests/qemu-iotests/tests/reopen-file | 3 +- .../qemu-iotests/tests/stream-error-on-reset | 6 +- 41 files changed, 951 insertions(+), 1407 deletions(-) diff --git a/tests/avocado/vnc.py b/tests/avocado/vnc.py index aeeefc70be..862c8996a8 100644 --- a/tests/avocado/vnc.py +++ b/tests/avocado/vnc.py @@ -88,9 +88,8 @@ def test_change_password(self): self.vm.add_args('-nodefaults', '-S', '-vnc', ':0,password=3Don') self.vm.launch() self.assertTrue(self.vm.qmp('query-vnc')['return']['enabled']) - set_password_response =3D self.vm.qmp('change-vnc-password', - password=3D'new_password') - self.assertEqual(set_password_response['return'], {}) + self.vm.cmd('change-vnc-password', + password=3D'new_password') =20 def test_change_listen(self): a, b, c =3D find_free_ports(3) @@ -105,12 +104,11 @@ def test_change_listen(self): self.assertFalse(check_connect(b)) self.assertFalse(check_connect(c)) =20 - res =3D self.vm.qmp('display-update', type=3D'vnc', - addresses=3D[{'type': 'inet', 'host': VNC_ADDR, - 'port': str(b)}, - {'type': 'inet', 'host': VNC_ADDR, - 'port': str(c)}]) - self.assertEqual(res['return'], {}) + self.vm.cmd('display-update', type=3D'vnc', + addresses=3D[{'type': 'inet', 'host': VNC_ADDR, + 'port': str(b)}, + {'type': 'inet', 'host': VNC_ADDR, + 'port': str(c)}]) self.assertEqual(self.vm.qmp('query-vnc')['return']['service'], st= r(b)) self.assertFalse(check_connect(a)) self.assertTrue(check_connect(b)) diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 index 98595d47fe..0e6a39d103 100755 --- a/tests/qemu-iotests/030 +++ b/tests/qemu-iotests/030 @@ -56,8 +56,7 @@ class TestSingleDrive(iotests.QMPTestCase): def test_stream(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 self.wait_until_completed() =20 @@ -77,8 +76,7 @@ class TestSingleDrive(iotests.QMPTestCase): qemu_io('-f', iotests.imgfmt, '-rU', '-c', 'map', mid_img).std= out, 'image file map matches backing file before streaming') =20 - result =3D self.vm.qmp('block-stream', device=3D'mid', job_id=3D's= tream-mid') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'mid', job_id=3D'stream-mid') =20 self.wait_until_completed(drive=3D'stream-mid') =20 @@ -94,8 +92,7 @@ class TestSingleDrive(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 self.pause_job('drive0', wait=3DFalse) self.vm.resume_drive('drive0') @@ -108,8 +105,7 @@ class TestSingleDrive(iotests.QMPTestCase): result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/offset', offset) =20 - result =3D self.vm.qmp('block-job-resume', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 self.wait_until_completed() =20 @@ -129,8 +125,7 @@ class TestSingleDrive(iotests.QMPTestCase): '-f', iotests.imgfmt, '-rU', '-c', 'map', test_img).stdout =20 # This is a no-op: no data should ever be copied from the base ima= ge - result =3D self.vm.qmp('block-stream', device=3D'drive0', base=3Dm= id_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', base=3Dmid_img) =20 self.wait_until_completed() =20 @@ -144,8 +139,7 @@ class TestSingleDrive(iotests.QMPTestCase): def test_stream_partial(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0', base=3Db= acking_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', base=3Dbacking_img) =20 self.wait_until_completed() =20 @@ -172,24 +166,22 @@ class TestSingleDrive(iotests.QMPTestCase): qemu_img('create', '-f', iotests.imgfmt, ro_top_path, str(self.image_len)) =20 - result =3D self.vm.qmp('blockdev-add', - node_name=3D'ro-top', - driver=3Diotests.imgfmt, - read_only=3DTrue, - file=3D{ - 'driver': 'file', - 'filename': ro_top_path, - 'read-only': True - }, - backing=3D'mid') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'ro-top', + driver=3Diotests.imgfmt, + read_only=3DTrue, + file=3D{ + 'driver': 'file', + 'filename': ro_top_path, + 'read-only': True + }, + backing=3D'mid') =20 result =3D self.vm.qmp('block-stream', job_id=3D'stream', device=3D'ro-top', base_node=3D'base') self.assert_qmp(result, 'error/desc', 'Block node is read-only= ') =20 - result =3D self.vm.qmp('blockdev-del', node_name=3D'ro-top') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'ro-top') =20 =20 class TestParallelOps(iotests.QMPTestCase): @@ -254,10 +246,9 @@ class TestParallelOps(iotests.QMPTestCase): node_name =3D 'node%d' % i job_id =3D 'stream-%s' % node_name pending_jobs.append(job_id) - result =3D self.vm.qmp('block-stream', device=3Dnode_name, - job_id=3Djob_id, bottom=3Df'node{i-1}', - speed=3D1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3Dnode_name, + job_id=3Djob_id, bottom=3Df'node{i-1}', + speed=3D1024) =20 # Do this in reverse: After unthrottling them, some jobs may finish # before we have unthrottled all of them. This will drain their @@ -269,8 +260,7 @@ class TestParallelOps(iotests.QMPTestCase): # Starting from the top (i.e. in reverse) does not have this probl= em: # When a job finishes, the ones below it are not advanced. for job in reversed(pending_jobs): - result =3D self.vm.qmp('block-job-set-speed', device=3Djob, sp= eed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3Djob, speed=3D0) =20 # Wait for all jobs to be finished. while len(pending_jobs) > 0: @@ -297,10 +287,9 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Set a speed limit to make sure that this job blocks the rest - result =3D self.vm.qmp('block-stream', device=3D'node4', - job_id=3D'stream-node4', base=3Dself.imgs[1], - filter_node_name=3D'stream-filter', speed=3D1= 024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'node4', + job_id=3D'stream-node4', base=3Dself.imgs[1], + filter_node_name=3D'stream-filter', speed=3D1024*1024) =20 result =3D self.vm.qmp('block-stream', device=3D'node5', job_id=3D= 'stream-node5', base=3Dself.imgs[2]) self.assert_qmp(result, 'error/desc', @@ -328,8 +317,7 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_qmp(result, 'error/desc', "Node 'node2' is busy: block device is in use by block job: st= ream") =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'stream-nod= e4', speed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'stream-node4', speed= =3D0) =20 self.wait_until_completed(drive=3D'stream-node4') self.assert_no_active_block_jobs() @@ -341,8 +329,7 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Set a speed limit to make sure that this job blocks the rest - result =3D self.vm.qmp('block-commit', device=3D'drive0', top=3Dse= lf.imgs[5], base=3Dself.imgs[3], job_id=3D'commit-node3', speed=3D1024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', top=3Dself.imgs[5],= base=3Dself.imgs[3], job_id=3D'commit-node3', speed=3D1024*1024) =20 result =3D self.vm.qmp('block-stream', device=3D'node3', job_id=3D= 'stream-node3') self.assert_qmp(result, 'error/desc', @@ -365,8 +352,7 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_qmp(result, 'error/desc', "Node 'drive0' is busy: block device is in use by block job: c= ommit") =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'commit-nod= e3', speed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'commit-node3', speed= =3D0) =20 self.wait_until_completed(drive=3D'commit-node3') =20 @@ -377,23 +363,20 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Set a speed limit to make sure that this job blocks the rest - result =3D self.vm.qmp('block-commit', device=3D'drive0', base=3Ds= elf.imgs[3], job_id=3D'commit-drive0', speed=3D1024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', base=3Dself.imgs[3]= , job_id=3D'commit-drive0', speed=3D1024*1024) =20 result =3D self.vm.qmp('block-stream', device=3D'node5', base=3Dse= lf.imgs[3], job_id=3D'stream-node6') self.assert_qmp(result, 'error/desc', "Node 'node5' is busy: block device is in use by block job: co= mmit") =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'commit-dri= ve0', speed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'commit-drive0', speed= =3D0) =20 event =3D self.vm.event_wait(name=3D'BLOCK_JOB_READY') self.assert_qmp(event, 'data/device', 'commit-drive0') self.assert_qmp(event, 'data/type', 'commit') self.assert_qmp_absent(event, 'data/error') =20 - result =3D self.vm.qmp('block-job-complete', device=3D'commit-driv= e0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3D'commit-drive0') =20 self.wait_until_completed(drive=3D'commit-drive0') =20 @@ -404,18 +387,16 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Commit from node2 into node0 - result =3D self.vm.qmp('block-commit', device=3D'drive0', - top=3Dself.imgs[2], base=3Dself.imgs[0], - filter_node_name=3D'commit-filter', speed=3D1= 024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', + top=3Dself.imgs[2], base=3Dself.imgs[0], + filter_node_name=3D'commit-filter', speed=3D1024*1024) =20 # Stream from node2 into node4 result =3D self.vm.qmp('block-stream', device=3D'node4', base_node= =3D'node2', job_id=3D'node4') self.assert_qmp(result, 'error/desc', "Cannot freeze 'backing' link to 'commit-filter'") =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D0) =20 self.wait_until_completed() self.assert_no_active_block_jobs() @@ -428,18 +409,15 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Commit from node2 into node0 - result =3D self.vm.qmp('block-commit', device=3D'drive0', - top_node=3D'node2', base_node=3D'node0', - filter_node_name=3D'commit-filter', speed=3D1= 024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', + top_node=3D'node2', base_node=3D'node0', + filter_node_name=3D'commit-filter', speed=3D1024*1024) =20 # Stream from node2 into node4 - result =3D self.vm.qmp('block-stream', device=3D'node4', - base_node=3D'commit-filter', job_id=3D'node4') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'node4', + base_node=3D'commit-filter', job_id=3D'node4') =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D0) =20 self.vm.run_job(job=3D'drive0', auto_dismiss=3DTrue) self.vm.run_job(job=3D'node4', auto_dismiss=3DTrue) @@ -458,12 +436,10 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Stream from node0 into node2 - result =3D self.vm.qmp('block-stream', device=3D'node2', base_node= =3D'node0', job_id=3D'node2') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'node2', base_node=3D'node0',= job_id=3D'node2') =20 # Commit from the active layer into node3 - result =3D self.vm.qmp('block-commit', device=3D'drive0', base=3Ds= elf.imgs[3]) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', base=3Dself.imgs[3]) =20 # Wait for all jobs to be finished. pending_jobs =3D ['node2', 'drive0'] @@ -490,16 +466,13 @@ class TestParallelOps(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # Stream from node0 into node4 - result =3D self.vm.qmp('block-stream', device=3D'node4', base_node= =3D'node0', job_id=3D'node4', speed=3D1024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'node4', base_node=3D'node0',= job_id=3D'node4', speed=3D1024*1024) =20 # Commit from the active layer into node5 - result =3D self.vm.qmp('block-commit', device=3D'drive0', base=3Ds= elf.imgs[5], speed=3D1024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', base=3Dself.imgs[5]= , speed=3D1024*1024) =20 for job in ['drive0', 'node4']: - result =3D self.vm.qmp('block-job-set-speed', device=3Djob, sp= eed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3Djob, speed=3D0) =20 # Wait for all jobs to be finished. pending_jobs =3D ['node4', 'drive0'] @@ -549,8 +522,7 @@ class TestParallelOps(iotests.QMPTestCase): "'base' and 'base-node' cannot be specified at the same time") =20 # Success: the base node is a backing file of the top node - result =3D self.vm.qmp('block-stream', device=3D'node4', base_node= =3D'node2', job_id=3D'stream') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'node4', base_node=3D'node2',= job_id=3D'stream') =20 self.wait_until_completed(drive=3D'stream') =20 @@ -606,8 +578,7 @@ class TestQuorum(iotests.QMPTestCase): =20 self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'node0', job_id=3D= 'stream-node0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'node0', job_id=3D'stream-nod= e0') =20 self.wait_until_completed(drive=3D'stream-node0') =20 @@ -636,8 +607,7 @@ class TestSmallerBackingFile(iotests.QMPTestCase): def test_stream(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 self.wait_until_completed() =20 @@ -694,8 +664,7 @@ class TestEIO(TestErrors): def test_report(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 completed =3D False error =3D False @@ -722,8 +691,7 @@ class TestEIO(TestErrors): def test_ignore(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0', on_error= =3D'ignore') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', on_error=3D'ignore') =20 error =3D False completed =3D False @@ -756,8 +724,7 @@ class TestEIO(TestErrors): def test_stop(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0', on_error= =3D'stop') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', on_error=3D'stop') =20 error =3D False completed =3D False @@ -779,8 +746,7 @@ class TestEIO(TestErrors): self.assert_qmp(result, 'return[0]/offset', self.STREA= M_BUFFER_SIZE) self.assert_qmp(result, 'return[0]/io-status', 'failed= ') =20 - result =3D self.vm.qmp('block-job-resume', device=3D'd= rive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 result =3D self.vm.qmp('query-block-jobs') if result =3D=3D {'return': []}: @@ -806,8 +772,7 @@ class TestEIO(TestErrors): def test_enospc(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0', on_error= =3D'enospc') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', on_error=3D'enospc') =20 completed =3D False error =3D False @@ -852,8 +817,7 @@ class TestENOSPC(TestErrors): def test_enospc(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0', on_error= =3D'enospc') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', on_error=3D'enospc') =20 error =3D False completed =3D False @@ -875,8 +839,7 @@ class TestENOSPC(TestErrors): self.assert_qmp(result, 'return[0]/offset', self.STREA= M_BUFFER_SIZE) self.assert_qmp(result, 'return[0]/io-status', 'nospac= e') =20 - result =3D self.vm.qmp('block-job-resume', device=3D'd= rive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 result =3D self.vm.qmp('query-block-jobs') if result =3D=3D {'return': []}: @@ -921,8 +884,7 @@ class TestStreamStop(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 time.sleep(0.1) events =3D self.vm.get_qmp_events(wait=3DFalse) @@ -955,11 +917,9 @@ class TestSetSpeed(iotests.QMPTestCase): def perf_test_throughput(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D8 * 1024 * 1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D8 * = 1024 * 1024) =20 self.wait_until_completed() =20 @@ -969,16 +929,14 @@ class TestSetSpeed(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 # Default speed is 0 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') self.assert_qmp(result, 'return[0]/speed', 0) =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D8 * 1024 * 1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D8 * = 1024 * 1024) =20 # Ensure the speed we set was accepted result =3D self.vm.qmp('query-block-jobs') @@ -989,8 +947,7 @@ class TestSetSpeed(iotests.QMPTestCase): self.vm.pause_drive('drive0') =20 # Check setting speed in block-stream works - result =3D self.vm.qmp('block-stream', device=3D'drive0', speed=3D= 4 * 1024 * 1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0', speed=3D4 * 1024 * = 1024) =20 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') @@ -1007,8 +964,7 @@ class TestSetSpeed(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp('block-stream', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', device=3D'drive0') =20 result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D-1) self.assert_qmp(result, 'error/desc', "Parameter 'speed' expects a= non-negative value") diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040 index 46a4ec9bde..fe20d3dce9 100755 --- a/tests/qemu-iotests/040 +++ b/tests/qemu-iotests/040 @@ -61,17 +61,14 @@ class ImageCommitTestCase(iotests.QMPTestCase): def run_commit_test(self, top, base, need_ready=3DFalse, node_names=3D= False): self.assert_no_active_block_jobs() if node_names: - result =3D self.vm.qmp('block-commit', device=3D'drive0', top_= node=3Dtop, base_node=3Dbase) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', top_node=3Dtop,= base_node=3Dbase) else: - result =3D self.vm.qmp('block-commit', device=3D'drive0', top= =3Dtop, base=3Dbase) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', top=3Dtop, base= =3Dbase) self.wait_for_complete(need_ready) =20 def run_default_commit_test(self): self.assert_no_active_block_jobs() - result =3D self.vm.qmp('block-commit', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0') self.wait_for_complete() =20 class TestSingleDrive(ImageCommitTestCase): @@ -118,38 +115,30 @@ class TestSingleDrive(ImageCommitTestCase): =20 @iotests.skip_if_unsupported(['throttle']) def test_commit_with_filter_and_quit(self): - result =3D self.vm.qmp('object-add', qom_type=3D'throttle-group', = id=3D'tg') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', qom_type=3D'throttle-group', id=3D'tg') =20 # Add a filter outside of the backing chain - result =3D self.vm.qmp('blockdev-add', driver=3D'throttle', node_n= ame=3D'filter', throttle_group=3D'tg', file=3D'mid') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', driver=3D'throttle', node_name=3D'filt= er', throttle_group=3D'tg', file=3D'mid') =20 - result =3D self.vm.qmp('block-commit', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0') =20 # Quit immediately, thus forcing a simultaneous cancel of the # block job and a bdrv_drain_all() - result =3D self.vm.qmp('quit') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('quit') =20 # Same as above, but this time we add the filter after starting the job @iotests.skip_if_unsupported(['throttle']) def test_commit_plus_filter_and_quit(self): - result =3D self.vm.qmp('object-add', qom_type=3D'throttle-group', = id=3D'tg') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', qom_type=3D'throttle-group', id=3D'tg') =20 - result =3D self.vm.qmp('block-commit', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0') =20 # Add a filter outside of the backing chain - result =3D self.vm.qmp('blockdev-add', driver=3D'throttle', node_n= ame=3D'filter', throttle_group=3D'tg', file=3D'mid') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', driver=3D'throttle', node_name=3D'filt= er', throttle_group=3D'tg', file=3D'mid') =20 # Quit immediately, thus forcing a simultaneous cancel of the # block job and a bdrv_drain_all() - result =3D self.vm.qmp('quit') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('quit') =20 def test_device_not_found(self): result =3D self.vm.qmp('block-commit', device=3D'nonexistent', top= =3D'%s' % mid_img) @@ -226,8 +215,7 @@ class TestSingleDrive(ImageCommitTestCase): def test_top_node_in_wrong_chain(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('blockdev-add', driver=3D'null-co', node_na= me=3D'null') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', driver=3D'null-co', node_name=3D'null') =20 result =3D self.vm.qmp('block-commit', device=3D'drive0', top_node= =3D'null', base_node=3D'base') self.assert_qmp(result, 'error/class', 'GenericError') @@ -240,11 +228,9 @@ class TestSingleDrive(ImageCommitTestCase): return =20 self.assert_no_active_block_jobs() - result =3D self.vm.qmp('block-commit', device=3D'drive0', top=3Dmi= d_img, - base=3Dbacking_img, speed=3D(self.image_len /= / 4)) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('device_del', id=3D'scsi0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', top=3Dmid_img, + base=3Dbacking_img, speed=3D(self.image_len // 4)) + self.vm.cmd('device_del', id=3D'scsi0') =20 cancelled =3D False deleted =3D False @@ -270,9 +256,8 @@ class TestSingleDrive(ImageCommitTestCase): return =20 self.assert_no_active_block_jobs() - result =3D self.vm.qmp('block-commit', device=3D'drive0', top=3Dmi= d_img, - base=3Dbacking_img, speed=3D(self.image_len /= / 4)) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', top=3Dmid_img, + base=3Dbacking_img, speed=3D(self.image_len // 4)) =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/file', test_img) @@ -407,8 +392,7 @@ class TestSetSpeed(ImageCommitTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp('block-commit', device=3D'drive0', top=3Dmi= d_img, speed=3D1024 * 1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0', top=3Dmid_img, spee= d=3D1024 * 1024) =20 # Ensure the speed we set was accepted result =3D self.vm.qmp('query-block-jobs') @@ -481,8 +465,7 @@ class TestErrorHandling(iotests.QMPTestCase): os.remove(backing_img) =20 def blockdev_add(self, **kwargs): - result =3D self.vm.qmp('blockdev-add', **kwargs) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', **kwargs) =20 def add_block_nodes(self, base_debug=3DNone, mid_debug=3DNone, top_deb= ug=3DNone): self.blockdev_add(node_name=3D'base-file', driver=3D'file', @@ -528,11 +511,9 @@ class TestErrorHandling(iotests.QMPTestCase): completed =3D True elif ev['event'] =3D=3D 'BLOCK_JOB_ERROR': if error_pauses_job: - result =3D self.vm.qmp('block-job-resume', device=3D'j= ob0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'job0') elif ev['event'] =3D=3D 'BLOCK_JOB_READY': - result =3D self.vm.qmp('block-job-complete', device=3D'job= 0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3D'job0') else: self.fail("Unexpected event: %s" % ev) log.append(iotests.filter_qmp_event(ev)) @@ -595,11 +576,10 @@ class TestErrorHandling(iotests.QMPTestCase): self.add_block_nodes(top_debug=3Dtop_debug, mid_debug=3Dmid_debug, base_debug=3Dbase_debug) =20 - result =3D self.vm.qmp('block-commit', job_id=3D'job0', device=3D'= top-fmt', - top_node=3D'top-fmt' if active else 'mid-fmt', - base_node=3D'mid-fmt' if active else 'base-fm= t', - on_error=3Don_error) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', job_id=3D'job0', device=3D'top-fmt', + top_node=3D'top-fmt' if active else 'mid-fmt', + base_node=3D'mid-fmt' if active else 'base-fmt', + on_error=3Don_error) =20 def testActiveReadErrorReport(self): self.prepare_and_start_job('report', top_event=3D'read_aio') @@ -771,10 +751,9 @@ class TestCommitWithFilters(iotests.QMPTestCase): self.vm =3D iotests.VM().add_device('virtio-scsi,id=3Dvio-scsi') self.vm.launch() =20 - result =3D self.vm.qmp('object-add', qom_type=3D'throttle-group', = id=3D'tg') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', qom_type=3D'throttle-group', id=3D'tg') =20 - result =3D self.vm.qmp('blockdev-add', { + self.vm.cmd('blockdev-add', { 'node-name': 'top-filter', 'driver': 'throttle', 'throttle-group': 'tg', @@ -816,7 +795,6 @@ class TestCommitWithFilters(iotests.QMPTestCase): } } }) - self.assert_qmp(result, 'return', {}) =20 def tearDown(self): self.vm.shutdown() @@ -833,13 +811,12 @@ class TestCommitWithFilters(iotests.QMPTestCase): return self.vm.node_info(node)['image']['filename'] =20 def test_filterless_commit(self): - result =3D self.vm.qmp('block-commit', - job_id=3D'commit', - device=3D'top-filter', - top_node=3D'cow-2', - base_node=3D'cow-1', - backing_file=3Dself.img1) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', + job_id=3D'commit', + device=3D'top-filter', + top_node=3D'cow-2', + base_node=3D'cow-1', + backing_file=3Dself.img1) self.wait_until_completed(drive=3D'commit') =20 self.assertIsNotNone(self.vm.node_info('cow-3')) @@ -850,13 +827,12 @@ class TestCommitWithFilters(iotests.QMPTestCase): self.pattern_files[2] =3D self.img1 =20 def test_commit_through_filter(self): - result =3D self.vm.qmp('block-commit', - job_id=3D'commit', - device=3D'top-filter', - top_node=3D'cow-1', - base_node=3D'cow-0', - backing_file=3Dself.img0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', + job_id=3D'commit', + device=3D'top-filter', + top_node=3D'cow-1', + base_node=3D'cow-0', + backing_file=3Dself.img0) self.wait_until_completed(drive=3D'commit') =20 self.assertIsNotNone(self.vm.node_info('cow-2')) @@ -871,9 +847,8 @@ class TestCommitWithFilters(iotests.QMPTestCase): # Add a device, so the commit job finds a parent it can change # to point to the base node (so we can test that top-filter is # dropped from the graph) - result =3D self.vm.qmp('device_add', id=3D'drv0', driver=3D'scsi-h= d', - bus=3D'vio-scsi.0', drive=3D'top-filter') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', id=3D'drv0', driver=3D'scsi-hd', + bus=3D'vio-scsi.0', drive=3D'top-filter') =20 # Try to release our reference to top-filter; that should not # work because drv0 uses it @@ -881,16 +856,14 @@ class TestCommitWithFilters(iotests.QMPTestCase): self.assert_qmp(result, 'error/class', 'GenericError') self.assert_qmp(result, 'error/desc', 'Node top-filter is in use') =20 - result =3D self.vm.qmp('block-commit', - job_id=3D'commit', - device=3D'top-filter', - base_node=3D'cow-2') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', + job_id=3D'commit', + device=3D'top-filter', + base_node=3D'cow-2') self.complete_and_wait(drive=3D'commit') =20 # Try to release our reference to top-filter again - result =3D self.vm.qmp('blockdev-del', node_name=3D'top-filter') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'top-filter') =20 self.assertIsNone(self.vm.node_info('top-filter')) self.assertIsNone(self.vm.node_info('cow-3')) @@ -905,12 +878,11 @@ class TestCommitWithFilters(iotests.QMPTestCase): self.pattern_files[3] =3D self.img2 =20 def test_filtered_active_commit_without_filter(self): - result =3D self.vm.qmp('block-commit', - job_id=3D'commit', - device=3D'top-filter', - top_node=3D'cow-3', - base_node=3D'cow-2') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', + job_id=3D'commit', + device=3D'top-filter', + top_node=3D'cow-3', + base_node=3D'cow-2') self.complete_and_wait(drive=3D'commit') =20 self.assertIsNotNone(self.vm.node_info('top-filter')) @@ -935,23 +907,22 @@ class TestCommitWithOverriddenBacking(iotests.QMPTest= Case): self.vm.launch() =20 # Use base_b instead of base_a as the backing of top - result =3D self.vm.qmp('blockdev-add', { - 'node-name': 'top', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'file', - 'filename': self.img_top - }, - 'backing': { - 'node-name': 'base', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'file', - 'filename': self.img_base_b - } - } - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', { + 'node-name': 'top', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'file', + 'filename': self.img_top + }, + 'backing': { + 'node-name': 'base', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'file', + 'filename': self.img_base_b + } + } + }) =20 def tearDown(self): self.vm.shutdown() @@ -971,11 +942,10 @@ class TestCommitWithOverriddenBacking(iotests.QMPTest= Case): def test_commit_to_b(self): # Try committing to base_b (which should work, since that is # actually top's backing image) - result =3D self.vm.qmp('block-commit', - job_id=3D'commit', - device=3D'top', - base=3Dself.img_base_b) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', + job_id=3D'commit', + device=3D'top', + base=3Dself.img_base_b) =20 self.vm.event_wait('BLOCK_JOB_READY') self.vm.qmp('block-job-complete', device=3D'commit') diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041 index 3aef42aec8..98d17b1388 100755 --- a/tests/qemu-iotests/041 +++ b/tests/qemu-iotests/041 @@ -65,9 +65,8 @@ class TestSingleDrive(iotests.QMPTestCase): def test_complete(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + target=3Dself.qmp_target) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -79,9 +78,8 @@ class TestSingleDrive(iotests.QMPTestCase): def test_cancel(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + target=3Dself.qmp_target) =20 self.cancel_and_wait(force=3DTrue) result =3D self.vm.qmp('query-block') @@ -90,9 +88,8 @@ class TestSingleDrive(iotests.QMPTestCase): def test_cancel_after_ready(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + target=3Dself.qmp_target) =20 self.wait_ready_and_cancel() result =3D self.vm.qmp('query-block') @@ -104,9 +101,8 @@ class TestSingleDrive(iotests.QMPTestCase): def test_pause(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + target=3Dself.qmp_target) =20 self.pause_job('drive0') =20 @@ -117,8 +113,7 @@ class TestSingleDrive(iotests.QMPTestCase): result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/offset', offset) =20 - result =3D self.vm.qmp('block-job-resume', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 self.complete_and_wait() self.vm.shutdown() @@ -129,9 +124,8 @@ class TestSingleDrive(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 # A small buffer is rounded up automatically - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - buf_size=3D4096, target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + buf_size=3D4096, target=3Dself.qmp_target) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -145,9 +139,8 @@ class TestSingleDrive(iotests.QMPTestCase): =20 qemu_img('create', '-f', iotests.imgfmt, '-o', 'cluster_size=3D%d,= size=3D%d' % (self.image_len, self.image_len), target_img) - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - buf_size=3D65536, mode=3D'existing', target= =3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + buf_size=3D65536, mode=3D'existing', target=3Dself.qmp= _target) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -162,9 +155,8 @@ class TestSingleDrive(iotests.QMPTestCase): qemu_img('create', '-f', iotests.imgfmt, '-o', 'cluster_size=3D%d,= backing_file=3D%s' % (self.image_len, backing_img), '-F', 'raw', target_img) - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - mode=3D'existing', target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dself.qmp_target) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -178,9 +170,8 @@ class TestSingleDrive(iotests.QMPTestCase): def test_implicit_node(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp(self.qmp_cmd, device=3D'drive0', sync=3D'fu= ll', - target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, device=3D'drive0', sync=3D'full', + target=3Dself.qmp_target) =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/file', test_img) @@ -236,8 +227,7 @@ class TestSingleBlockdev(TestSingleDrive): args =3D {'driver': iotests.imgfmt, 'node-name': self.qmp_target, 'file': { 'filename': target_img, 'driver': 'file' } } - result =3D self.vm.qmp("blockdev-add", args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("blockdev-add", args) =20 def test_mirror_to_self(self): result =3D self.vm.qmp(self.qmp_cmd, job_id=3D'job0', @@ -254,10 +244,9 @@ class TestSingleBlockdev(TestSingleDrive): result =3D self.vm.qmp('block_resize', node_name=3Dnode, size= =3D65536) self.assert_qmp(result, 'error/class', 'GenericError') =20 - result =3D self.vm.qmp(self.qmp_cmd, job_id=3D'job0', device=3D'dr= ive0', - sync=3D'full', target=3Dself.qmp_target, - auto_finalize=3DFalse, auto_dismiss=3DFalse) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, job_id=3D'job0', device=3D'drive0', + sync=3D'full', target=3Dself.qmp_target, + auto_finalize=3DFalse, auto_dismiss=3DFalse) =20 result =3D self.vm.run_job('job0', auto_finalize=3DFalse, pre_finalize=3Dpre_finalize) @@ -270,14 +259,12 @@ class TestSingleBlockdev(TestSingleDrive): self.do_test_resize(None, self.qmp_target) =20 def do_test_target_size(self, size): - result =3D self.vm.qmp('block_resize', node_name=3Dself.qmp_target, - size=3Dsize) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block_resize', node_name=3Dself.qmp_target, + size=3Dsize) =20 - result =3D self.vm.qmp(self.qmp_cmd, job_id=3D'job0', - device=3D'drive0', sync=3D'full', auto_dismis= s=3DFalse, - target=3Dself.qmp_target) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.qmp_cmd, job_id=3D'job0', + device=3D'drive0', sync=3D'full', auto_dismiss=3DFalse, + target=3Dself.qmp_target) =20 result =3D self.vm.run_job('job0') self.assertEqual(result, 'Source and target image have different s= izes') @@ -337,9 +324,8 @@ class TestMirrorNoBacking(iotests.QMPTestCase): =20 qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=3D%s' % backing_img, '-F', 'raw', tar= get_img) - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - mode=3D'existing', target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dtarget_img) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -353,9 +339,8 @@ class TestMirrorNoBacking(iotests.QMPTestCase): =20 qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=3D%s' % backing_img, '-F', 'raw', tar= get_img) - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - mode=3D'existing', target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dtarget_img) =20 self.wait_ready_and_cancel() result =3D self.vm.qmp('query-block') @@ -374,9 +359,8 @@ class TestMirrorNoBacking(iotests.QMPTestCase): % (TestMirrorNoBacking.image_len, target_backing_i= mg), '-F', iotests.imgfmt, target_img) =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - mode=3D'existing', target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dtarget_img) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -409,9 +393,8 @@ class TestMirrorResized(iotests.QMPTestCase): def test_complete_top(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= top', - target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'top', + target=3Dtarget_img) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -423,9 +406,8 @@ class TestMirrorResized(iotests.QMPTestCase): def test_complete_full(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img) =20 self.complete_and_wait() result =3D self.vm.qmp('query-block') @@ -488,9 +470,8 @@ new_state =3D "1" def test_report_read(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img) =20 completed =3D False error =3D False @@ -516,9 +497,8 @@ new_state =3D "1" def test_ignore_read(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img, on_source_error=3D'ignor= e') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img, on_source_error=3D'ignore') =20 event =3D self.vm.get_qmp_event(wait=3DTrue) while event['event'] =3D=3D 'JOB_STATUS_CHANGE': @@ -541,10 +521,9 @@ new_state =3D "1" qemu_img('create', '-f', iotests.imgfmt, '-ocluster_size=3D131072,backing_file=3D%s' %(backing_img= ), '-F', 'raw', target_img) - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= top', - on_source_error=3D'ignore', - mode=3D'existing', target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'top', + on_source_error=3D'ignore', + mode=3D'existing', target=3Dtarget_img) =20 event =3D self.vm.get_qmp_event(wait=3DTrue) while event['event'] =3D=3D 'JOB_STATUS_CHANGE': @@ -568,9 +547,8 @@ new_state =3D "1" def test_stop_read(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img, on_source_error=3D'stop') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img, on_source_error=3D'stop') =20 error =3D False ready =3D False @@ -590,8 +568,7 @@ new_state =3D "1" self.assert_qmp(result, 'return[0]/status', 'paused') self.assert_qmp(result, 'return[0]/io-status', 'failed= ') =20 - result =3D self.vm.qmp('block-job-resume', device=3D'd= rive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') error =3D True elif event['event'] =3D=3D 'BLOCK_JOB_READY': self.assertTrue(error, 'job completed unexpectedly') @@ -656,9 +633,8 @@ new_state =3D "1" def test_report_write(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - mode=3D'existing', target=3Dself.target_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dself.target_img) =20 completed =3D False error =3D False @@ -682,10 +658,9 @@ new_state =3D "1" def test_ignore_write(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - mode=3D'existing', target=3Dself.target_img, - on_target_error=3D'ignore') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dself.target_img, + on_target_error=3D'ignore') =20 event =3D self.vm.event_wait(name=3D'BLOCK_JOB_ERROR') self.assertEqual(event['event'], 'BLOCK_JOB_ERROR') @@ -698,10 +673,9 @@ new_state =3D "1" def test_stop_write(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - mode=3D'existing', target=3Dself.target_img, - on_target_error=3D'stop') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + mode=3D'existing', target=3Dself.target_img, + on_target_error=3D'stop') =20 error =3D False ready =3D False @@ -721,8 +695,7 @@ new_state =3D "1" self.assert_qmp(result, 'return[0]/status', 'paused') self.assert_qmp(result, 'return[0]/io-status', 'failed= ') =20 - result =3D self.vm.qmp('block-job-resume', device=3D'd= rive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 result =3D self.vm.qmp('query-block-jobs') self.assertIn(result['return'][0]['status'], ['running= ', 'ready']) @@ -755,17 +728,15 @@ class TestSetSpeed(iotests.QMPTestCase): def test_set_speed(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img) =20 # Default speed is 0 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') self.assert_qmp(result, 'return[0]/speed', 0) =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D8 * 1024 * 1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D8 * = 1024 * 1024) =20 # Ensure the speed we set was accepted result =3D self.vm.qmp('query-block-jobs') @@ -775,9 +746,8 @@ class TestSetSpeed(iotests.QMPTestCase): self.wait_ready_and_cancel() =20 # Check setting speed in drive-mirror works - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img, speed=3D4*1024*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img, speed=3D4*1024*1024) =20 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') @@ -794,9 +764,8 @@ class TestSetSpeed(iotests.QMPTestCase): =20 self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img) =20 result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D-1) self.assert_qmp(result, 'error/class', 'GenericError') @@ -811,13 +780,12 @@ class TestUnbackedSource(iotests.QMPTestCase): str(TestUnbackedSource.image_len)) self.vm =3D iotests.VM() self.vm.launch() - result =3D self.vm.qmp('blockdev-add', node_name=3D'drive0', - driver=3Diotests.imgfmt, - file=3D{ - 'driver': 'file', - 'filename': test_img, - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', node_name=3D'drive0', + driver=3Diotests.imgfmt, + file=3D{ + 'driver': 'file', + 'filename': test_img, + }) =20 def tearDown(self): self.vm.shutdown() @@ -826,28 +794,25 @@ class TestUnbackedSource(iotests.QMPTestCase): =20 def test_absolute_paths_full(self): self.assert_no_active_block_jobs() - result =3D self.vm.qmp('drive-mirror', job_id=3D'drive0', device= =3D'drive0', - sync=3D'full', target=3Dtarget_img, - mode=3D'absolute-paths') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'drive0', device=3D'drive0', + sync=3D'full', target=3Dtarget_img, + mode=3D'absolute-paths') self.complete_and_wait() self.assert_no_active_block_jobs() =20 def test_absolute_paths_top(self): self.assert_no_active_block_jobs() - result =3D self.vm.qmp('drive-mirror', job_id=3D'drive0', device= =3D'drive0', - sync=3D'top', target=3Dtarget_img, - mode=3D'absolute-paths') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'drive0', device=3D'drive0', + sync=3D'top', target=3Dtarget_img, + mode=3D'absolute-paths') self.complete_and_wait() self.assert_no_active_block_jobs() =20 def test_absolute_paths_none(self): self.assert_no_active_block_jobs() - result =3D self.vm.qmp('drive-mirror', job_id=3D'drive0', device= =3D'drive0', - sync=3D'none', target=3Dtarget_img, - mode=3D'absolute-paths') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'drive0', device=3D'drive0', + sync=3D'none', target=3Dtarget_img, + mode=3D'absolute-paths') self.complete_and_wait() self.assert_no_active_block_jobs() =20 @@ -857,14 +822,12 @@ class TestUnbackedSource(iotests.QMPTestCase): qemu_io('-c', 'write -P 42 0 64k', target_img) =20 self.assert_no_active_block_jobs() - result =3D self.vm.qmp('drive-mirror', job_id=3D'drive0', device= =3D'drive0', - sync=3D'full', target=3Dtarget_img, mode=3D'e= xisting') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'drive0', device=3D'drive0', + sync=3D'full', target=3Dtarget_img, mode=3D'existing') self.complete_and_wait() self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('blockdev-del', node_name=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'drive0') =20 self.assertTrue(iotests.compare_images(test_img, target_img), 'target image does not match source after mirrorin= g') @@ -874,26 +837,22 @@ class TestUnbackedSource(iotests.QMPTestCase): str(self.image_len)) qemu_io('-c', 'write -P 42 0 64k', target_img) =20 - result =3D self.vm.qmp('blockdev-add', node_name=3D'target', - driver=3Diotests.imgfmt, - file=3D{ - 'driver': 'file', - 'filename': target_img, - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', node_name=3D'target', + driver=3Diotests.imgfmt, + file=3D{ + 'driver': 'file', + 'filename': target_img, + }) =20 self.assert_no_active_block_jobs() - result =3D self.vm.qmp('blockdev-mirror', job_id=3D'drive0', devic= e=3D'drive0', - sync=3D'full', target=3D'target') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-mirror', job_id=3D'drive0', device=3D'drive0= ', + sync=3D'full', target=3D'target') self.complete_and_wait() self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('blockdev-del', node_name=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'drive0') =20 - result =3D self.vm.qmp('blockdev-del', node_name=3D'target') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'target') =20 self.assertTrue(iotests.compare_images(test_img, target_img), 'target image does not match source after mirrorin= g') @@ -918,10 +877,9 @@ class TestGranularity(iotests.QMPTestCase): =20 def test_granularity(self): self.assert_no_active_block_jobs() - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', - sync=3D'full', target=3Dtarget_img, - mode=3D'absolute-paths', granularity=3D8192) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', + sync=3D'full', target=3Dtarget_img, + mode=3D'absolute-paths', granularity=3D8192) =20 event =3D self.vm.get_qmp_event(wait=3D60.0) while event['event'] =3D=3D 'JOB_STATUS_CHANGE': @@ -963,8 +921,7 @@ class TestRepairQuorum(iotests.QMPTestCase): #assemble the quorum block device from the individual files args =3D { "driver": "quorum", "node-name": "quorum0", "vote-threshold": 2, "children": [ "img0", "img1", "img2"= ] } - result =3D self.vm.qmp("blockdev-add", args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("blockdev-add", args) =20 =20 def tearDown(self): @@ -978,10 +935,9 @@ class TestRepairQuorum(iotests.QMPTestCase): pass =20 def test_complete(self): - result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', - sync=3D'full', node_name=3D"repair0", replace= s=3D"img1", - target=3Dquorum_repair_img, format=3Diotests.= imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'job0', device=3D'quorum0', + sync=3D'full', node_name=3D"repair0", replaces=3D"img1= ", + target=3Dquorum_repair_img, format=3Diotests.imgfmt) =20 self.complete_and_wait(drive=3D"job0") self.assert_has_block_node("repair0", quorum_repair_img) @@ -991,10 +947,9 @@ class TestRepairQuorum(iotests.QMPTestCase): 'target image does not match source after mirrorin= g') =20 def test_cancel(self): - result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', - sync=3D'full', node_name=3D"repair0", replace= s=3D"img1", - target=3Dquorum_repair_img, format=3Diotests.= imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'job0', device=3D'quorum0', + sync=3D'full', node_name=3D"repair0", replaces=3D"img1= ", + target=3Dquorum_repair_img, format=3Diotests.imgfmt) =20 self.cancel_and_wait(drive=3D"job0", force=3DTrue) # here we check that the last registered quorum file has not been @@ -1002,10 +957,9 @@ class TestRepairQuorum(iotests.QMPTestCase): self.assert_has_block_node(None, quorum_img3) =20 def test_cancel_after_ready(self): - result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', - sync=3D'full', node_name=3D"repair0", replace= s=3D"img1", - target=3Dquorum_repair_img, format=3Diotests.= imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'job0', device=3D'quorum0', + sync=3D'full', node_name=3D"repair0", replaces=3D"img1= ", + target=3Dquorum_repair_img, format=3Diotests.imgfmt) =20 self.wait_ready_and_cancel(drive=3D"job0") # here we check that the last registered quorum file has not been @@ -1016,10 +970,9 @@ class TestRepairQuorum(iotests.QMPTestCase): 'target image does not match source after mirrorin= g') =20 def test_pause(self): - result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', - sync=3D'full', node_name=3D"repair0", replace= s=3D"img1", - target=3Dquorum_repair_img, format=3Diotests.= imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'job0', device=3D'quorum0', + sync=3D'full', node_name=3D"repair0", replaces=3D"img1= ", + target=3Dquorum_repair_img, format=3Diotests.imgfmt) =20 self.pause_job('job0') =20 @@ -1030,8 +983,7 @@ class TestRepairQuorum(iotests.QMPTestCase): result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/offset', offset) =20 - result =3D self.vm.qmp('block-job-resume', device=3D'job0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'job0') =20 self.complete_and_wait(drive=3D"job0") self.vm.shutdown() @@ -1084,20 +1036,18 @@ class TestRepairQuorum(iotests.QMPTestCase): self.assert_qmp(result, 'error/class', 'GenericError') =20 def test_after_a_quorum_snapshot(self): - result =3D self.vm.qmp('blockdev-snapshot-sync', node_name=3D'img1= ', - snapshot_file=3Dquorum_snapshot_file, - snapshot_node_name=3D"snap1") - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-snapshot-sync', node_name=3D'img1', + snapshot_file=3Dquorum_snapshot_file, + snapshot_node_name=3D"snap1") =20 result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', sync=3D'full', node_name=3D'repair0', replace= s=3D"img1", target=3Dquorum_repair_img, format=3Diotests.= imgfmt) self.assert_qmp(result, 'error/class', 'GenericError') =20 - result =3D self.vm.qmp('drive-mirror', job_id=3D'job0', device=3D'= quorum0', - sync=3D'full', node_name=3D'repair0', replace= s=3D"snap1", - target=3Dquorum_repair_img, format=3Diotests.= imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'job0', device=3D'quorum0', + sync=3D'full', node_name=3D'repair0', replaces=3D"snap= 1", + target=3Dquorum_repair_img, format=3Diotests.imgfmt) =20 self.complete_and_wait('job0') self.assert_has_block_node("repair0", quorum_repair_img) @@ -1108,15 +1058,13 @@ class TestRepairQuorum(iotests.QMPTestCase): Check that we cannot replace a Quorum child when it has other parents. """ - result =3D self.vm.qmp('nbd-server-start', - addr=3D{ - 'type': 'unix', - 'data': {'path': nbd_sock_path} - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-start', + addr=3D{ + 'type': 'unix', + 'data': {'path': nbd_sock_path} + }) =20 - result =3D self.vm.qmp('nbd-server-add', device=3D'img1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-add', device=3D'img1') =20 result =3D self.vm.qmp('drive-mirror', job_id=3D'mirror', device= =3D'quorum0', sync=3D'full', node_name=3D'repair0', replace= s=3D'img1', @@ -1131,20 +1079,17 @@ class TestRepairQuorum(iotests.QMPTestCase): The same as test_with_other_parent(), but add the NBD server only when the mirror job is already running. """ - result =3D self.vm.qmp('nbd-server-start', - addr=3D{ - 'type': 'unix', - 'data': {'path': nbd_sock_path} - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-start', + addr=3D{ + 'type': 'unix', + 'data': {'path': nbd_sock_path} + }) =20 - result =3D self.vm.qmp('drive-mirror', job_id=3D'mirror', device= =3D'quorum0', - sync=3D'full', node_name=3D'repair0', replace= s=3D'img1', - target=3Dquorum_repair_img, format=3Diotests.= imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', job_id=3D'mirror', device=3D'quorum0', + sync=3D'full', node_name=3D'repair0', replaces=3D'img1= ', + target=3Dquorum_repair_img, format=3Diotests.imgfmt) =20 - result =3D self.vm.qmp('nbd-server-add', device=3D'img1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-add', device=3D'img1') =20 # The full error message goes to stderr, we will check it later self.complete_and_wait('mirror', @@ -1200,9 +1145,8 @@ class TestOrphanedSource(iotests.QMPTestCase): def test_success(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('blockdev-mirror', job_id=3D'job', device= =3D'src', - sync=3D'full', target=3D'dest') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-mirror', job_id=3D'job', device=3D'src', + sync=3D'full', target=3D'dest') =20 self.complete_and_wait('job') =20 @@ -1218,27 +1162,24 @@ class TestOrphanedSource(iotests.QMPTestCase): =20 # Unshare consistent-read on the target # (The mirror job does not care) - result =3D self.vm.qmp('blockdev-add', - driver=3D'blkdebug', - node_name=3D'dest-perm', - image=3D'dest', - unshare_child_perms=3D['consistent-read']) - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-mirror', job_id=3D'job', device= =3D'src', - sync=3D'full', target=3D'dest', - filter_node_name=3D'mirror-filter') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + driver=3D'blkdebug', + node_name=3D'dest-perm', + image=3D'dest', + unshare_child_perms=3D['consistent-read']) + + self.vm.cmd('blockdev-mirror', job_id=3D'job', device=3D'src', + sync=3D'full', target=3D'dest', + filter_node_name=3D'mirror-filter') =20 # Require consistent-read on the source # (We can only add this node once the job has started, or it # will complain that it does not want to run on non-root nodes) - result =3D self.vm.qmp('blockdev-add', - driver=3D'blkdebug', - node_name=3D'src-perm', - image=3D'src', - take_child_perms=3D['consistent-read']) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + driver=3D'blkdebug', + node_name=3D'src-perm', + image=3D'src', + take_child_perms=3D['consistent-read']) =20 # While completing, mirror will attempt to replace src by # dest, which must fail because src-perm requires @@ -1278,26 +1219,23 @@ class TestReplaces(iotests.QMPTestCase): """ Check that we can replace filter nodes. """ - result =3D self.vm.qmp('blockdev-add', { - 'driver': 'copy-on-read', - 'node-name': 'filter0', - 'file': { - 'driver': 'copy-on-read', - 'node-name': 'filter1', - 'file': { - 'driver': 'null-co' - } - } - }) - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-add', - node_name=3D'target', driver=3D'null-co') - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-mirror', job_id=3D'mirror', devic= e=3D'filter0', - target=3D'target', sync=3D'full', replaces=3D= 'filter1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', { + 'driver': 'copy-on-read', + 'node-name': 'filter0', + 'file': { + 'driver': 'copy-on-read', + 'node-name': 'filter1', + 'file': { + 'driver': 'null-co' + } + } + }) + + self.vm.cmd('blockdev-add', + node_name=3D'target', driver=3D'null-co') + + self.vm.cmd('blockdev-mirror', job_id=3D'mirror', device=3D'filter= 0', + target=3D'target', sync=3D'full', replaces=3D'filter1') =20 self.complete_and_wait('mirror') =20 @@ -1319,16 +1257,15 @@ class TestFilters(iotests.QMPTestCase): self.vm =3D iotests.VM().add_device('virtio-scsi,id=3Dvio-scsi') self.vm.launch() =20 - result =3D self.vm.qmp('blockdev-add', { - 'node-name': 'target', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'file', - 'filename': target_img - }, - 'backing': None - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', { + 'node-name': 'target', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'file', + 'filename': target_img + }, + 'backing': None + }) =20 self.filterless_chain =3D { 'node-name': 'source', @@ -1355,19 +1292,17 @@ class TestFilters(iotests.QMPTestCase): os.remove(backing_img) =20 def test_cor(self): - result =3D self.vm.qmp('blockdev-add', { - 'node-name': 'filter', - 'driver': 'copy-on-read', - 'file': self.filterless_chain - }) - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'filter', - target=3D'target', - sync=3D'top') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', { + 'node-name': 'filter', + 'driver': 'copy-on-read', + 'file': self.filterless_chain + }) + + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'filter', + target=3D'target', + sync=3D'top') =20 self.complete_and_wait('mirror') =20 @@ -1384,23 +1319,20 @@ class TestFilters(iotests.QMPTestCase): assert target_map[1]['depth'] =3D=3D 0 =20 def test_implicit_mirror_filter(self): - result =3D self.vm.qmp('blockdev-add', self.filterless_chain) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', self.filterless_chain) =20 # We need this so we can query from above the mirror node - result =3D self.vm.qmp('device_add', - driver=3D'scsi-hd', - id=3D'virtio', - bus=3D'vio-scsi.0', - drive=3D'source') - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'source', - target=3D'target', - sync=3D'top') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', + driver=3D'scsi-hd', + id=3D'virtio', + bus=3D'vio-scsi.0', + drive=3D'source') + + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'source', + target=3D'target', + sync=3D'top') =20 # The mirror filter is now an implicit node, so it should be # invisible when querying the backing chain @@ -1418,24 +1350,21 @@ class TestFilters(iotests.QMPTestCase): def test_explicit_mirror_filter(self): # Same test as above, but this time we give the mirror filter # a node-name so it will not be invisible - result =3D self.vm.qmp('blockdev-add', self.filterless_chain) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', self.filterless_chain) =20 # We need this so we can query from above the mirror node - result =3D self.vm.qmp('device_add', - driver=3D'scsi-hd', - id=3D'virtio', - bus=3D'vio-scsi.0', - drive=3D'source') - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'source', - target=3D'target', - sync=3D'top', - filter_node_name=3D'mirror-filter') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', + driver=3D'scsi-hd', + id=3D'virtio', + bus=3D'vio-scsi.0', + drive=3D'source') + + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'source', + target=3D'target', + sync=3D'top', + filter_node_name=3D'mirror-filter') =20 # With a node-name given to it, the mirror filter should now # be visible diff --git a/tests/qemu-iotests/045 b/tests/qemu-iotests/045 index 45eb239baa..a341f21cd7 100755 --- a/tests/qemu-iotests/045 +++ b/tests/qemu-iotests/045 @@ -77,8 +77,7 @@ class TestFdSets(iotests.QMPTestCase): self.vm.shutdown() =20 def test_remove_fdset(self): - result =3D self.vm.qmp('remove-fd', fdset_id=3D2) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('remove-fd', fdset_id=3D2) result =3D self.vm.qmp('query-fdsets') self.assert_qmp(result, 'return[0]/fdset-id', 1) self.assert_qmp(result, 'return[1]/fdset-id', 0) @@ -90,8 +89,7 @@ class TestFdSets(iotests.QMPTestCase): def test_remove_fd(self): result =3D self.vm.qmp('query-fdsets') fd_image3 =3D result['return'][0]['fds'][0]['fd'] - result =3D self.vm.qmp('remove-fd', fdset_id=3D2, fd=3Dfd_image3) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('remove-fd', fdset_id=3D2, fd=3Dfd_image3) result =3D self.vm.qmp('query-fdsets') self.assert_qmp(result, 'return[0]/fdset-id', 2) self.assert_qmp(result, 'return[1]/fdset-id', 1) @@ -151,8 +149,7 @@ class TestSCMFd(iotests.QMPTestCase): =20 def test_getfd(self): self._send_fd_by_SCM() - result =3D self.vm.qmp('getfd', fdname=3D'image0:r') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('getfd', fdname=3D'image0:r') =20 def test_getfd_invalid_fdname(self): self._send_fd_by_SCM() @@ -163,10 +160,8 @@ class TestSCMFd(iotests.QMPTestCase): =20 def test_closefd(self): self._send_fd_by_SCM() - result =3D self.vm.qmp('getfd', fdname=3D'image0:r') - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('closefd', fdname=3D'image0:r') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('getfd', fdname=3D'image0:r') + self.vm.cmd('closefd', fdname=3D'image0:r') =20 def test_closefd_fd_not_found(self): fdname =3D 'image0:r' diff --git a/tests/qemu-iotests/055 b/tests/qemu-iotests/055 index 5d6b607051..d8372b5598 100755 --- a/tests/qemu-iotests/055 +++ b/tests/qemu-iotests/055 @@ -69,8 +69,7 @@ class TestSingleDrive(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', target=3Dtarget, sy= nc=3D'full') - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', target=3Dtarget, sync=3D'full') =20 event =3D self.cancel_and_wait(resume=3DTrue) self.assert_qmp(event, 'data/type', 'backup') @@ -85,9 +84,8 @@ class TestSingleDrive(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', - target=3Dtarget, sync=3D'full') - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', + target=3Dtarget, sync=3D'full') =20 self.pause_job('drive0', wait=3DFalse) self.vm.resume_drive('drive0') @@ -100,8 +98,7 @@ class TestSingleDrive(iotests.QMPTestCase): result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/offset', offset) =20 - result =3D self.vm.qmp('block-job-resume', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 self.wait_until_completed() =20 @@ -123,10 +120,9 @@ class TestSingleDrive(iotests.QMPTestCase): result =3D self.vm.qmp('block_resize', node_name=3Dnode, size= =3D65536) self.assert_qmp(result, 'error/class', 'GenericError') =20 - result =3D self.vm.qmp('blockdev-backup', job_id=3D'job0', device= =3D'drive0', - target=3D'drive1', sync=3D'full', auto_finali= ze=3DFalse, - auto_dismiss=3DFalse) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-backup', job_id=3D'job0', device=3D'drive0', + target=3D'drive1', sync=3D'full', auto_finalize=3DFals= e, + auto_dismiss=3DFalse) =20 self.vm.run_job('job0', auto_finalize=3DFalse, pre_finalize=3Dpre_= finalize) =20 @@ -137,8 +133,7 @@ class TestSingleDrive(iotests.QMPTestCase): self.do_test_resize_blockdev_backup('drive1', 'target') =20 def do_test_target_size(self, size): - result =3D self.vm.qmp('block_resize', device=3D'drive1', size=3Ds= ize) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block_resize', device=3D'drive1', size=3Dsize) =20 result =3D self.vm.qmp('blockdev-backup', job_id=3D'job0', device= =3D'drive0', target=3D'drive1', sync=3D'full') @@ -219,16 +214,14 @@ class TestSetSpeed(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', target=3Dtarget, sy= nc=3D'full') - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', target=3Dtarget, sync=3D'full') =20 # Default speed is 0 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') self.assert_qmp(result, 'return[0]/speed', 0) =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D8 * 1024 * 1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D8 * = 1024 * 1024) =20 # Ensure the speed we set was accepted result =3D self.vm.qmp('query-block-jobs') @@ -240,9 +233,8 @@ class TestSetSpeed(iotests.QMPTestCase): =20 # Check setting speed option works self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', - target=3Dtarget, sync=3D'full', speed=3D4*102= 4*1024) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', + target=3Dtarget, sync=3D'full', speed=3D4*1024*1024) =20 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') @@ -267,9 +259,8 @@ class TestSetSpeed(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', - target=3Dtarget, sync=3D'full') - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', + target=3Dtarget, sync=3D'full') =20 result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D-1) self.assert_qmp(result, 'error/class', 'GenericError') @@ -306,7 +297,7 @@ class TestSingleTransaction(iotests.QMPTestCase): def do_test_cancel(self, cmd, target): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('transaction', actions=3D[{ + self.vm.cmd('transaction', actions=3D[{ 'type': cmd, 'data': { 'device': 'drive0', 'target': target, @@ -315,8 +306,6 @@ class TestSingleTransaction(iotests.QMPTestCase): } ]) =20 - self.assert_qmp(result, 'return', {}) - event =3D self.cancel_and_wait() self.assert_qmp(event, 'data/type', 'backup') =20 @@ -329,7 +318,7 @@ class TestSingleTransaction(iotests.QMPTestCase): def do_test_pause(self, cmd, target, image): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('transaction', actions=3D[{ + self.vm.cmd('transaction', actions=3D[{ 'type': cmd, 'data': { 'device': 'drive0', 'target': target, @@ -337,12 +326,10 @@ class TestSingleTransaction(iotests.QMPTestCase): 'speed': 64 * 1024 }, } ]) - self.assert_qmp(result, 'return', {}) =20 self.pause_job('drive0', wait=3DFalse) =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D0) =20 self.pause_wait('drive0') =20 @@ -353,8 +340,7 @@ class TestSingleTransaction(iotests.QMPTestCase): result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/offset', offset) =20 - result =3D self.vm.qmp('block-job-resume', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 self.wait_until_completed() =20 @@ -519,8 +505,7 @@ class TestCompressedToQcow2(iotests.QMPTestCase): =20 self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp(cmd, device=3D'drive0', sync=3D'full', comp= ress=3DTrue, **args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', sync=3D'full', compress=3DTrue= , **args) =20 self.wait_until_completed() =20 @@ -545,8 +530,7 @@ class TestCompressedToQcow2(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', sync=3D'full', comp= ress=3DTrue, **args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', sync=3D'full', compress=3DTrue= , **args) =20 event =3D self.cancel_and_wait(resume=3DTrue) self.assert_qmp(event, 'data/type', 'backup') @@ -568,8 +552,7 @@ class TestCompressedToQcow2(iotests.QMPTestCase): self.assert_no_active_block_jobs() =20 self.vm.pause_drive('drive0') - result =3D self.vm.qmp(cmd, device=3D'drive0', sync=3D'full', comp= ress=3DTrue, **args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, device=3D'drive0', sync=3D'full', compress=3DTrue= , **args) =20 self.pause_job('drive0', wait=3DFalse) self.vm.resume_drive('drive0') @@ -582,8 +565,7 @@ class TestCompressedToQcow2(iotests.QMPTestCase): result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/offset', offset) =20 - result =3D self.vm.qmp('block-job-resume', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') =20 self.wait_until_completed() =20 diff --git a/tests/qemu-iotests/056 b/tests/qemu-iotests/056 index bef865eec4..808ea6b48a 100755 --- a/tests/qemu-iotests/056 +++ b/tests/qemu-iotests/056 @@ -75,9 +75,8 @@ class TestSyncModesNoneAndTop(iotests.QMPTestCase): =20 def test_complete_top(self): self.assert_no_active_block_jobs() - result =3D self.vm.qmp('drive-backup', device=3D'drive0', sync=3D'= top', - format=3Diotests.imgfmt, target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-backup', device=3D'drive0', sync=3D'top', + format=3Diotests.imgfmt, target=3Dtarget_img) =20 self.wait_until_completed(check_offset=3DFalse) =20 @@ -89,9 +88,8 @@ class TestSyncModesNoneAndTop(iotests.QMPTestCase): def test_cancel_sync_none(self): self.assert_no_active_block_jobs() =20 - result =3D self.vm.qmp('drive-backup', device=3D'drive0', - sync=3D'none', target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-backup', device=3D'drive0', + sync=3D'none', target=3Dtarget_img) time.sleep(1) self.vm.hmp_qemu_io('drive0', 'write -P0x5e 0 512') self.vm.hmp_qemu_io('drive0', 'aio_flush') @@ -115,18 +113,15 @@ class TestBeforeWriteNotifier(iotests.QMPTestCase): =20 def test_before_write_notifier(self): self.vm.pause_drive("drive0") - result =3D self.vm.qmp('drive-backup', device=3D'drive0', - sync=3D'full', target=3Dtarget_img, - format=3D"file", speed=3D1) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('block-job-pause', device=3D"drive0") - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-backup', device=3D'drive0', + sync=3D'full', target=3Dtarget_img, + format=3D"file", speed=3D1) + self.vm.cmd('block-job-pause', device=3D"drive0") # Speed is low enough that this must be an uncopied range, which w= ill # trigger the before write notifier self.vm.hmp_qemu_io('drive0', 'aio_write -P 1 512512 512') self.vm.resume_drive("drive0") - result =3D self.vm.qmp('block-job-resume', device=3D"drive0") - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-resume', device=3D"drive0") event =3D self.cancel_and_wait() self.assert_qmp(event, 'data/type', 'backup') =20 @@ -191,8 +186,7 @@ class BackupTest(iotests.QMPTestCase): self.qmp_backup_and_wait(device=3D'drive0', format=3Diotests.imgfm= t, sync=3D'full', target=3Dself.ref_img, auto_dismiss=3DFalse) - res =3D self.vm.qmp('block-job-dismiss', id=3D'drive0') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-dismiss', id=3D'drive0') =20 # Now to the test backup: We simulate the following guest # writes: @@ -211,11 +205,9 @@ class BackupTest(iotests.QMPTestCase): ('66', '1M', '1M')]) =20 # Let the job complete - res =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', spee= d=3D0) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D0) self.qmp_backup_wait('drive0') - res =3D self.vm.qmp('block-job-dismiss', id=3D'drive0') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-dismiss', id=3D'drive0') =20 self.assertTrue(iotests.compare_images(self.ref_img, self.dest_img= ), 'target image does not match reference image') @@ -237,8 +229,7 @@ class BackupTest(iotests.QMPTestCase): auto_dismiss=3DFalse) res =3D self.vm.qmp('query-block-jobs') self.assert_qmp(res, 'return[0]/status', 'concluded') - res =3D self.vm.qmp('block-job-dismiss', id=3D'drive0') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-dismiss', id=3D'drive0') res =3D self.vm.qmp('query-block-jobs') self.assert_qmp(res, 'return', []) =20 @@ -263,8 +254,7 @@ class BackupTest(iotests.QMPTestCase): auto_dismiss=3DFalse) self.assertEqual(res, False) # OK, dismiss the zombie. - res =3D self.vm.qmp('block-job-dismiss', id=3D'drive0') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-dismiss', id=3D'drive0') res =3D self.vm.qmp('query-block-jobs') self.assert_qmp(res, 'return', []) # Ensure it's really gone. @@ -281,23 +271,22 @@ class BackupTest(iotests.QMPTestCase): ('0x55', '8M', '352k'), ('0x78', '15872k', '1M'))) # Add destination node via blkdebug - res =3D self.vm.qmp('blockdev-add', - node_name=3D'target0', - driver=3Diotests.imgfmt, - file=3D{ - 'driver': 'blkdebug', - 'image': { - 'driver': 'file', - 'filename': self.dest_img - }, - 'inject-error': [{ - 'event': 'write_aio', - 'errno': 5, - 'immediately': False, - 'once': True - }], - }) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'target0', + driver=3Diotests.imgfmt, + file=3D{ + 'driver': 'blkdebug', + 'image': { + 'driver': 'file', + 'filename': self.dest_img + }, + 'inject-error': [{ + 'event': 'write_aio', + 'errno': 5, + 'immediately': False, + 'once': True + }], + }) =20 res =3D self.qmp_backup(cmd=3D'blockdev-backup', device=3D'drive0', target=3D'target0', @@ -323,8 +312,7 @@ class BackupTest(iotests.QMPTestCase): res =3D self.vm.qmp('query-block-jobs') self.assert_qmp(res, 'return[0]/status', 'paused') # OK, unstick job and move forward. - res =3D self.vm.qmp('block-job-resume', device=3D'drive0') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-resume', device=3D'drive0') # And now we need to wait for it to conclude; res =3D self.qmp_backup_wait(device=3D'drive0') self.assertTrue(res) @@ -332,8 +320,7 @@ class BackupTest(iotests.QMPTestCase): # Job should now be languishing: res =3D self.vm.qmp('query-block-jobs') self.assert_qmp(res, 'return[0]/status', 'concluded') - res =3D self.vm.qmp('block-job-dismiss', id=3D'drive0') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-dismiss', id=3D'drive0') res =3D self.vm.qmp('query-block-jobs') self.assert_qmp(res, 'return', []) =20 diff --git a/tests/qemu-iotests/093 b/tests/qemu-iotests/093 index 93274dc8cb..4f9e224e8a 100755 --- a/tests/qemu-iotests/093 +++ b/tests/qemu-iotests/093 @@ -55,8 +55,7 @@ class ThrottleTestCase(iotests.QMPTestCase): # Set the I/O throttling parameters to all drives for i in range(0, ndrives): params['device'] =3D 'drive%d' % i - result =3D self.vm.qmp("block_set_io_throttle", conv_keys=3DFa= lse, **params) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("block_set_io_throttle", conv_keys=3DFalse, **para= ms) =20 def do_test_throttle(self, ndrives, seconds, params, first_drive =3D 0= ): def check_limit(limit, num): @@ -253,8 +252,7 @@ class ThrottleTestCase(iotests.QMPTestCase): # drive1 remains in the group with a throttled request. params['bps_rd'] =3D 0 params['device'] =3D 'drive0' - result =3D self.vm.qmp("block_set_io_throttle", conv_keys=3DFalse,= **params) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("block_set_io_throttle", conv_keys=3DFalse, **params) =20 # Removing the I/O limits from drive0 drains its two pending reque= sts. # The read request in drive1 is still throttled. @@ -286,8 +284,7 @@ class ThrottleTestGroupNames(iotests.QMPTestCase): =20 def set_io_throttle(self, device, params): params["device"] =3D device - result =3D self.vm.qmp("block_set_io_throttle", conv_keys=3DFalse,= **params) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("block_set_io_throttle", conv_keys=3DFalse, **params) =20 def verify_name(self, device, name): result =3D self.vm.qmp("query-block") @@ -379,23 +376,19 @@ class ThrottleTestRemovableMedia(iotests.QMPTestCase): =20 def test_removable_media(self): # Add a couple of dummy nodes named cd0 and cd1 - result =3D self.vm.qmp("blockdev-add", driver=3D"null-co", - read_zeroes=3DTrue, node_name=3D"cd0") - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp("blockdev-add", driver=3D"null-co", - read_zeroes=3DTrue, node_name=3D"cd1") - self.assert_qmp(result, 'return', {}) + self.vm.cmd("blockdev-add", driver=3D"null-co", + read_zeroes=3DTrue, node_name=3D"cd0") + self.vm.cmd("blockdev-add", driver=3D"null-co", + read_zeroes=3DTrue, node_name=3D"cd1") =20 # Attach a CD drive with cd0 inserted - result =3D self.vm.qmp("device_add", driver=3D"scsi-cd", - id=3D"dev0", drive=3D"cd0") - self.assert_qmp(result, 'return', {}) + self.vm.cmd("device_add", driver=3D"scsi-cd", + id=3D"dev0", drive=3D"cd0") =20 # Set I/O limits args =3D { "id": "dev0", "iops": 100, "iops_rd": 0, "iops_wr": 0, "bps": 50, "bps_rd": 0, "bps_wr": 0 } - result =3D self.vm.qmp("block_set_io_throttle", conv_keys=3DFalse,= **args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("block_set_io_throttle", conv_keys=3DFalse, **args) =20 # Check that the I/O limits have been set result =3D self.vm.qmp("query-block") @@ -403,12 +396,9 @@ class ThrottleTestRemovableMedia(iotests.QMPTestCase): self.assert_qmp(result, 'return[0]/inserted/bps', 50) =20 # Now eject cd0 and insert cd1 - result =3D self.vm.qmp("blockdev-open-tray", id=3D'dev0') - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp("blockdev-remove-medium", id=3D'dev0') - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp("blockdev-insert-medium", id=3D'dev0', node= _name=3D'cd1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd("blockdev-open-tray", id=3D'dev0') + self.vm.cmd("blockdev-remove-medium", id=3D'dev0') + self.vm.cmd("blockdev-insert-medium", id=3D'dev0', node_name=3D'cd= 1') =20 # Check that the I/O limits are still the same result =3D self.vm.qmp("query-block") @@ -416,16 +406,14 @@ class ThrottleTestRemovableMedia(iotests.QMPTestCase): self.assert_qmp(result, 'return[0]/inserted/bps', 50) =20 # Eject cd1 - result =3D self.vm.qmp("blockdev-remove-medium", id=3D'dev0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd("blockdev-remove-medium", id=3D'dev0') =20 # Check that we can't set limits if the device has no medium result =3D self.vm.qmp("block_set_io_throttle", conv_keys=3DFalse,= **args) self.assert_qmp(result, 'error/class', 'GenericError') =20 # Remove the CD drive - result =3D self.vm.qmp("device_del", id=3D'dev0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd("device_del", id=3D'dev0') =20 =20 if __name__ =3D=3D '__main__': diff --git a/tests/qemu-iotests/118 b/tests/qemu-iotests/118 index cae52ffa5e..10dc47459f 100755 --- a/tests/qemu-iotests/118 +++ b/tests/qemu-iotests/118 @@ -74,11 +74,9 @@ class ChangeBaseClass(iotests.QMPTestCase): class GeneralChangeTestsBaseClass(ChangeBaseClass): =20 def test_blockdev_change_medium(self): - result =3D self.vm.qmp('blockdev-change-medium', - id=3Dself.device_name, filename=3Dnew_img, - format=3Diotests.imgfmt) - - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', + id=3Dself.device_name, filename=3Dnew_img, + format=3Diotests.imgfmt) =20 self.wait_for_open() self.wait_for_close() @@ -89,8 +87,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_eject(self): - result =3D self.vm.qmp('eject', id=3Dself.device_name, force=3DTru= e) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('eject', id=3Dself.device_name, force=3DTrue) =20 self.wait_for_open() =20 @@ -100,8 +97,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp_absent(result, 'return[0]/inserted') =20 def test_tray_eject_change(self): - result =3D self.vm.qmp('eject', id=3Dself.device_name, force=3DTru= e) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('eject', id=3Dself.device_name, force=3DTrue) =20 self.wait_for_open() =20 @@ -110,9 +106,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp_absent(result, 'return[0]/inserted') =20 - result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, - filename=3Dnew_img, format=3Diotests.imgfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', id=3Dself.device_name, + filename=3Dnew_img, format=3Diotests.imgfmt) =20 self.wait_for_close() =20 @@ -122,9 +117,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_tray_open_close(self): - result =3D self.vm.qmp('blockdev-open-tray', - id=3Dself.device_name, force=3DTrue) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-open-tray', + id=3Dself.device_name, force=3DTrue) =20 self.wait_for_open() =20 @@ -136,8 +130,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): else: self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-close-tray', id=3Dself.device_name) =20 if self.has_real_tray or not self.was_empty: self.wait_for_close() @@ -151,8 +144,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 def test_tray_eject_close(self): - result =3D self.vm.qmp('eject', id=3Dself.device_name, force=3DTru= e) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('eject', id=3Dself.device_name, force=3DTrue) =20 self.wait_for_open() =20 @@ -161,8 +153,7 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp_absent(result, 'return[0]/inserted') =20 - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-close-tray', id=3Dself.device_name) =20 self.wait_for_close() =20 @@ -172,9 +163,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp_absent(result, 'return[0]/inserted') =20 def test_tray_open_change(self): - result =3D self.vm.qmp('blockdev-open-tray', id=3Dself.device_name, - force=3DTrue) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-open-tray', id=3Dself.device_name, + force=3DTrue) =20 self.wait_for_open() =20 @@ -186,10 +176,9 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): else: self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 - result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, - filename=3Dnew_img, - format=3Diotests.im= gfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt) =20 self.wait_for_close() =20 @@ -199,17 +188,15 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 def test_cycle(self, read_only_node=3DFalse): - result =3D self.vm.qmp('blockdev-add', - node_name=3D'new', - driver=3Diotests.imgfmt, - read_only=3Dread_only_node, - file=3D{'filename': new_img, - 'driver': 'file'}) - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('blockdev-open-tray', - id=3Dself.device_name, force=3DTrue) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'new', + driver=3Diotests.imgfmt, + read_only=3Dread_only_node, + file=3D{'filename': new_img, + 'driver': 'file'}) + + self.vm.cmd('blockdev-open-tray', + id=3Dself.device_name, force=3DTrue) =20 self.wait_for_open() =20 @@ -221,26 +208,23 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): else: self.assert_qmp(result, 'return[0]/inserted/image/filename', o= ld_img) =20 - result =3D self.vm.qmp('blockdev-remove-medium', - id=3Dself.device_name) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-remove-medium', + id=3Dself.device_name) =20 result =3D self.vm.qmp('query-block') if self.has_real_tray: self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp_absent(result, 'return[0]/inserted') =20 - result =3D self.vm.qmp('blockdev-insert-medium', - id=3Dself.device_name, node_name=3D'new') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-insert-medium', + id=3Dself.device_name, node_name=3D'new') =20 result =3D self.vm.qmp('query-block') if self.has_real_tray: self.assert_qmp(result, 'return[0]/tray_open', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) =20 - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-close-tray', id=3Dself.device_name) =20 self.wait_for_close() =20 @@ -253,9 +237,8 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): self.test_cycle(True) =20 def test_close_on_closed(self): - result =3D self.vm.qmp('blockdev-close-tray', id=3Dself.device_nam= e) # Should be a no-op - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-close-tray', id=3Dself.device_name) self.assertEqual(self.vm.get_qmp_events(wait=3DFalse), []) =20 def test_remove_on_closed(self): @@ -269,12 +252,11 @@ class GeneralChangeTestsBaseClass(ChangeBaseClass): if not self.has_real_tray: return =20 - result =3D self.vm.qmp('blockdev-add', - node_name=3D'new', - driver=3Diotests.imgfmt, - file=3D{'filename': new_img, - 'driver': 'file'}) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'new', + driver=3Diotests.imgfmt, + file=3D{'filename': new_img, + 'driver': 'file'}) =20 result =3D self.vm.qmp('blockdev-insert-medium', id=3Dself.device_= name, node_name=3D'new') @@ -307,15 +289,13 @@ class TestInitiallyFilled(GeneralChangeTestsBaseClass= ): os.remove(new_img) =20 def test_insert_on_filled(self): - result =3D self.vm.qmp('blockdev-add', - node_name=3D'new', - driver=3Diotests.imgfmt, - file=3D{'filename': new_img, - 'driver': 'file'}) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'new', + driver=3Diotests.imgfmt, + file=3D{'filename': new_img, + 'driver': 'file'}) =20 - result =3D self.vm.qmp('blockdev-open-tray', id=3Dself.device_name) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-open-tray', id=3Dself.device_name) =20 self.wait_for_open() =20 @@ -344,14 +324,12 @@ class TestInitiallyEmpty(GeneralChangeTestsBaseClass): os.remove(new_img) =20 def test_remove_on_empty(self): - result =3D self.vm.qmp('blockdev-open-tray', id=3Dself.device_name) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-open-tray', id=3Dself.device_name) =20 self.wait_for_open() =20 - result =3D self.vm.qmp('blockdev-remove-medium', id=3Dself.device_= name) # Should be a no-op - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-remove-medium', id=3Dself.device_name) =20 # Do this in a function to avoid leaking variables like case into the glob= al # name space (otherwise tests would be run for the abstract base classes) @@ -399,11 +377,10 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, - filename=3Dnew_img, - format=3Diotests.im= gfmt, - read_only_mode=3D'r= etain') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt, + read_only_mode=3D'retain') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) @@ -419,11 +396,10 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, - filename=3Dnew_img, - format=3Diotests.im= gfmt, - read_only_mode=3D'r= etain') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt, + read_only_mode=3D'retain') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) @@ -462,12 +438,11 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', - id=3Dself.device_name, - filename=3Dnew_img, - format=3Diotests.imgfmt, - read_only_mode=3D'read-write') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', + id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt, + read_only_mode=3D'read-write') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', False) @@ -483,12 +458,11 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', - id=3Dself.device_name, - filename=3Dnew_img, - format=3Diotests.imgfmt, - read_only_mode=3D'read-only') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', + id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt, + read_only_mode=3D'read-only') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) @@ -503,12 +477,11 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', - id=3Dself.device_name, - filename=3Dnew_img, - format=3Diotests.imgfmt, - read_only_mode=3D'read-only') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', + id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt, + read_only_mode=3D'read-only') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) @@ -546,11 +519,10 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', True) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-change-medium', id=3Dself.device_= name, - filename=3Dnew_img, - format=3Diotests.im= gfmt, - read_only_mode=3D'r= etain') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-change-medium', id=3Dself.device_name, + filename=3Dnew_img, + format=3Diotests.imgfmt, + read_only_mode=3D'retain') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) @@ -587,27 +559,24 @@ class TestChangeReadOnly(ChangeBaseClass): self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-add', - node_name=3D'new', - driver=3Diotests.imgfmt, - read_only=3DTrue, - file=3D{'filename': new_img, - 'driver': 'file'}) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'new', + driver=3Diotests.imgfmt, + read_only=3DTrue, + file=3D{'filename': new_img, + 'driver': 'file'}) =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', False) self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) =20 - result =3D self.vm.qmp('blockdev-remove-medium', id=3Dself.device_= name) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-remove-medium', id=3Dself.device_name) =20 result =3D self.vm.qmp('query-block') self.assert_qmp_absent(result, 'return[0]/inserted') =20 - result =3D self.vm.qmp('blockdev-insert-medium', id=3Dself.device_= name, - node_name=3D'new') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-insert-medium', id=3Dself.device_name, + node_name=3D'new') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/ro', True) @@ -638,22 +607,19 @@ class TestBlockJobsAfterCycle(ChangeBaseClass): =20 # For device-less BBs, calling blockdev-open-tray or blockdev-clos= e-tray # is not necessary - result =3D self.vm.qmp('blockdev-remove-medium', id=3Dself.device_= name) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-remove-medium', id=3Dself.device_name) =20 result =3D self.vm.qmp('query-block') self.assert_qmp_absent(result, 'return[0]/inserted') =20 - result =3D self.vm.qmp('blockdev-add', - node_name=3D'node0', - driver=3Diotests.imgfmt, - file=3D{'filename': old_img, - 'driver': 'file'}) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3D'node0', + driver=3Diotests.imgfmt, + file=3D{'filename': old_img, + 'driver': 'file'}) =20 - result =3D self.vm.qmp('blockdev-insert-medium', id=3Dself.device_= name, - node_name=3D'node0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-insert-medium', id=3Dself.device_name, + node_name=3D'node0') =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/image/filename', old_i= mg) @@ -670,10 +636,9 @@ class TestBlockJobsAfterCycle(ChangeBaseClass): @iotests.skip_for_formats(('vpc', 'parallels', 'qcow', 'vdi', 'vmdk', = 'raw', 'vhdx')) def test_snapshot_and_commit(self): - result =3D self.vm.qmp('blockdev-snapshot-sync', device=3D'drive0', - snapshot_file=3Dnew= _img, - format=3Diotests.im= gfmt) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-snapshot-sync', device=3D'drive0', + snapshot_file=3Dnew_img, + format=3Diotests.imgfmt) =20 result =3D self.vm.qmp('query-block') self.assert_qmp(result, 'return[0]/inserted/image/filename', new_i= mg) @@ -681,16 +646,14 @@ class TestBlockJobsAfterCycle(ChangeBaseClass): 'return[0]/inserted/image/backing-image/filename', old_img) =20 - result =3D self.vm.qmp('block-commit', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'drive0') =20 self.vm.event_wait(name=3D'BLOCK_JOB_READY') =20 result =3D self.vm.qmp('query-block-jobs') self.assert_qmp(result, 'return[0]/device', 'drive0') =20 - result =3D self.vm.qmp('block-job-complete', device=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3D'drive0') =20 self.vm.event_wait(name=3D'BLOCK_JOB_COMPLETED') =20 diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124 index 845ab5303c..b2f4328e34 100755 --- a/tests/qemu-iotests/124 +++ b/tests/qemu-iotests/124 @@ -24,6 +24,7 @@ import os import iotests from iotests import try_remove +from qemu.qmp.qmp_client import ExecuteError =20 =20 def io_write_patterns(img, patterns): @@ -141,8 +142,7 @@ class TestIncrementalBackupBase(iotests.QMPTestCase): =20 =20 def do_qmp_backup(self, error=3D'Input/output error', **kwargs): - res =3D self.vm.qmp('drive-backup', **kwargs) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('drive-backup', **kwargs) return self.wait_qmp_backup(kwargs['device'], error) =20 =20 @@ -201,9 +201,8 @@ class TestIncrementalBackupBase(iotests.QMPTestCase): def add_bitmap(self, name, drive, **kwargs): bitmap =3D Bitmap(name, drive) self.bitmaps.append(bitmap) - result =3D self.vm.qmp('block-dirty-bitmap-add', node=3Ddrive['id'= ], - name=3Dbitmap.name, **kwargs) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-dirty-bitmap-add', node=3Ddrive['id'], + name=3Dbitmap.name, **kwargs) return bitmap =20 =20 @@ -388,13 +387,12 @@ class TestIncrementalBackup(TestIncrementalBackupBase= ): ('0x64', '32736k', '64k'))) bitmap1 =3D self.add_bitmap('bitmap1', drive0) =20 - result =3D self.vm.qmp('transaction', actions=3D[ + self.vm.cmd('transaction', actions=3D[ transaction_bitmap_clear(bitmap0.drive['id'], bitmap0.name), transaction_bitmap_clear(bitmap1.drive['id'], bitmap1.name), transaction_drive_backup(drive0['id'], drive0['backup'], sync=3D'full', format=3Ddrive0['fmt']) ]) - self.assert_qmp(result, 'return', {}) self.wait_until_completed(drive0['id']) self.files.append(drive0['backup']) =20 @@ -417,7 +415,7 @@ class TestIncrementalBackup(TestIncrementalBackupBase): ('0xcd', '32M', '124k'))) =20 # Create a blkdebug interface to this img as 'drive1' - result =3D self.vm.qmp('blockdev-add', + self.vm.cmd('blockdev-add', node_name=3Ddrive1['id'], driver=3Ddrive1['fmt'], file=3D{ @@ -440,7 +438,6 @@ class TestIncrementalBackup(TestIncrementalBackupBase): }], } ) - self.assert_qmp(result, 'return', {}) =20 # Create bitmaps and full backups for both drives drive0 =3D self.drives[0] @@ -475,9 +472,8 @@ class TestIncrementalBackup(TestIncrementalBackupBase): format=3Ddrive1['fmt'], mode=3D'exist= ing', bitmap=3Ddr1bm0.name) ] - result =3D self.vm.qmp('transaction', actions=3Dtransaction, - properties=3D{'completion-mode': 'grouped'} ) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('transaction', actions=3Dtransaction, + properties=3D{'completion-mode': 'grouped'} ) =20 # Observe that drive0's backup is cancelled and drive1 completes w= ith # an error. @@ -504,9 +500,8 @@ class TestIncrementalBackup(TestIncrementalBackupBase): target1 =3D self.prepare_backup(dr1bm0) =20 # Re-run the exact same transaction. - result =3D self.vm.qmp('transaction', actions=3Dtransaction, - properties=3D{'completion-mode':'grouped'}) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('transaction', actions=3Dtransaction, + properties=3D{'completion-mode':'grouped'}) =20 # Both should complete successfully this time. self.assertTrue(self.wait_qmp_backup(drive0['id'])) @@ -567,7 +562,7 @@ class TestIncrementalBackup(TestIncrementalBackupBase): The granularity must always be a power of 2. ''' self.assert_no_active_block_jobs() - self.assertRaises(AssertionError, self.add_bitmap, + self.assertRaises(ExecuteError, self.add_bitmap, 'bitmap0', self.drives[0], granularity=3D64000) =20 @@ -585,9 +580,8 @@ class TestIncrementalBackup(TestIncrementalBackupBase): =20 self.add_bitmap('bitmap0', self.drives[0]) =20 - res =3D self.vm.qmp('block_resize', device=3Dself.drives[0]['id'], - size=3D(65 * 1048576)) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block_resize', device=3Dself.drives[0]['id'], + size=3D(65 * 1048576)) =20 # Dirty the image past the old end self.vm.hmp_qemu_io(self.drives[0]['id'], 'write 64M 64k') @@ -617,7 +611,7 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBack= upBase): ''' =20 drive0 =3D self.drives[0] - result =3D self.vm.qmp('blockdev-add', + self.vm.cmd('blockdev-add', node_name=3Ddrive0['id'], driver=3Ddrive0['fmt'], file=3D{ @@ -640,7 +634,6 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBack= upBase): }], } ) - self.assert_qmp(result, 'return', {}) =20 self.create_anchor_backup(drive0) self.add_bitmap('bitmap0', drive0) @@ -668,29 +661,28 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBa= ckupBase): drive0 =3D self.drives[0] # NB: The blkdebug script here looks for a "flush, read" pattern. # The flush occurs in hmp_io_writes, and the read during the block= job. - result =3D self.vm.qmp('blockdev-add', - node_name=3Ddrive0['id'], - driver=3Ddrive0['fmt'], - file=3D{ - 'driver': 'blkdebug', - 'image': { - 'driver': 'file', - 'filename': drive0['file'] - }, - 'set-state': [{ - 'event': 'flush_to_disk', - 'state': 1, - 'new_state': 2 - }], - 'inject-error': [{ - 'event': 'read_aio', - 'errno': 5, - 'state': 2, - 'immediately': False, - 'once': True - }], - }) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + node_name=3Ddrive0['id'], + driver=3Ddrive0['fmt'], + file=3D{ + 'driver': 'blkdebug', + 'image': { + 'driver': 'file', + 'filename': drive0['file'] + }, + 'set-state': [{ + 'event': 'flush_to_disk', + 'state': 1, + 'new_state': 2 + }], + 'inject-error': [{ + 'event': 'read_aio', + 'errno': 5, + 'state': 2, + 'immediately': False, + 'once': True + }], + }) self.create_anchor_backup(drive0) bitmap =3D self.add_bitmap('bitmap0', drive0) =20 @@ -711,16 +703,15 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBa= ckupBase): # Start backup parent, _ =3D bitmap.last_target() target =3D self.prepare_backup(bitmap, parent) - res =3D self.vm.qmp('drive-backup', - job_id=3Dbitmap.drive['id'], - device=3Dbitmap.drive['id'], - sync=3D'incremental', - bitmap=3Dbitmap.name, - format=3Dbitmap.drive['fmt'], - target=3Dtarget, - mode=3D'existing', - on_source_error=3D'stop') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('drive-backup', + job_id=3Dbitmap.drive['id'], + device=3Dbitmap.drive['id'], + sync=3D'incremental', + bitmap=3Dbitmap.name, + format=3Dbitmap.drive['fmt'], + target=3Dtarget, + mode=3D'existing', + on_source_error=3D'stop') =20 # Wait for the error event =3D self.vm.event_wait(name=3D"BLOCK_JOB_ERROR", @@ -739,8 +730,7 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBack= upBase): })) =20 # Resume and check incremental backup for consistency - res =3D self.vm.qmp('block-job-resume', device=3Dbitmap.drive['id'= ]) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-resume', device=3Dbitmap.drive['id']) self.wait_qmp_backup(bitmap.drive['id']) =20 # Bitmap Status Check diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129 index e1536ee3c3..97773cd96d 100755 --- a/tests/qemu-iotests/129 +++ b/tests/qemu-iotests/129 @@ -55,11 +55,9 @@ class TestStopWithBlockJob(iotests.QMPTestCase): def do_test_stop(self, cmd, **args): """Test 'stop' while block job is running on a throttled drive. The 'stop' command shouldn't drain the job""" - result =3D self.vm.qmp(cmd, **args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(cmd, **args) =20 - result =3D self.vm.qmp("stop") - self.assert_qmp(result, 'return', {}) + self.vm.cmd("stop") result =3D self.vm.qmp("query-block-jobs") =20 self.assert_qmp(result, 'return[0]/status', 'running') @@ -87,7 +85,7 @@ class TestStopWithBlockJob(iotests.QMPTestCase): iotests.qemu_img('create', '-f', iotests.imgfmt, self.overlay_img, '1G') =20 - result =3D self.vm.qmp('blockdev-add', { + self.vm.cmd('blockdev-add', { 'node-name': 'overlay', 'driver': iotests.imgfmt, 'file': { @@ -95,11 +93,9 @@ class TestStopWithBlockJob(iotests.QMPTestCase): 'filename': self.overlay_img } }) - self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm.qmp('blockdev-snapshot', - node=3D'source', overlay=3D'overlay') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-snapshot', + node=3D'source', overlay=3D'overlay') =20 self.do_test_stop('block-commit', device=3D'drive0', top_node=3D's= ource') =20 diff --git a/tests/qemu-iotests/132 b/tests/qemu-iotests/132 index 367ea08036..12a64b3d95 100755 --- a/tests/qemu-iotests/132 +++ b/tests/qemu-iotests/132 @@ -47,9 +47,8 @@ class TestSingleDrive(iotests.QMPTestCase): pass =20 def test_mirror_discard(self): - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + target=3Dtarget_img) self.vm.hmp_qemu_io('drive0', 'discard 0 64k') self.complete_and_wait('drive0') self.vm.shutdown() diff --git a/tests/qemu-iotests/139 b/tests/qemu-iotests/139 index 178b1ee230..ebb4cd62b6 100755 --- a/tests/qemu-iotests/139 +++ b/tests/qemu-iotests/139 @@ -58,8 +58,7 @@ class TestBlockdevDel(iotests.QMPTestCase): 'file': {'driver': 'file', 'node-name': file_node, 'filename': base_img}} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) self.checkBlockDriverState(node) self.checkBlockDriverState(file_node) =20 @@ -73,8 +72,7 @@ class TestBlockdevDel(iotests.QMPTestCase): 'backing': None, 'file': {'driver': 'file', 'filename': new_img}} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) self.checkBlockDriverState(node) =20 # Delete a BlockDriverState @@ -89,17 +87,14 @@ class TestBlockdevDel(iotests.QMPTestCase): =20 # Add a device model def addDeviceModel(self, device, backend, driver =3D 'virtio-blk'): - result =3D self.vm.qmp('device_add', id =3D device, - driver =3D driver, drive =3D backend) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', id =3D device, + driver =3D driver, drive =3D backend) =20 # Delete a device model def delDeviceModel(self, device, is_virtio_blk =3D True): - result =3D self.vm.qmp('device_del', id =3D device) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_del', id =3D device) =20 - result =3D self.vm.qmp('system_reset') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('system_reset') =20 if is_virtio_blk: device_path =3D '/machine/peripheral/%s/virtio-backend' % devi= ce @@ -126,9 +121,8 @@ class TestBlockdevDel(iotests.QMPTestCase): # Insert a BlockDriverState def insertDrive(self, device, node): self.checkBlockDriverState(node) - result =3D self.vm.qmp('blockdev-insert-medium', - id =3D device, node_name =3D node) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-insert-medium', + id =3D device, node_name =3D node) self.checkBlockDriverState(node) =20 # Create a snapshot using 'blockdev-snapshot-sync' @@ -139,8 +133,7 @@ class TestBlockdevDel(iotests.QMPTestCase): 'snapshot-file': new_img, 'snapshot-node-name': overlay, 'format': iotests.imgfmt} - result =3D self.vm.qmp('blockdev-snapshot-sync', conv_keys=3DFalse= , **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-snapshot-sync', conv_keys=3DFalse, **opts) self.checkBlockDriverState(node) self.checkBlockDriverState(overlay) =20 @@ -148,9 +141,8 @@ class TestBlockdevDel(iotests.QMPTestCase): def createSnapshot(self, node, overlay): self.checkBlockDriverState(node) self.checkBlockDriverState(overlay) - result =3D self.vm.qmp('blockdev-snapshot', - node =3D node, overlay =3D overlay) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-snapshot', + node =3D node, overlay =3D overlay) self.checkBlockDriverState(node) self.checkBlockDriverState(overlay) =20 @@ -163,14 +155,12 @@ class TestBlockdevDel(iotests.QMPTestCase): 'node-name': new_node, 'sync': 'top', 'format': iotests.imgfmt} - result =3D self.vm.qmp('drive-mirror', conv_keys=3DFalse, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', conv_keys=3DFalse, **opts) self.checkBlockDriverState(new_node) =20 # Complete an existing block job def completeBlockJob(self, id, node_before, node_after): - result =3D self.vm.qmp('block-job-complete', device=3Did) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3Did) self.wait_until_completed(id) =20 # Add a BlkDebug node @@ -186,8 +176,7 @@ class TestBlockdevDel(iotests.QMPTestCase): opts =3D {'driver': 'blkdebug', 'node-name': debug, 'image': image} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) self.checkBlockDriverState(node) self.checkBlockDriverState(debug) =20 @@ -211,8 +200,7 @@ class TestBlockdevDel(iotests.QMPTestCase): 'node-name': blkverify, 'test': node_0, 'raw': node_1} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) self.checkBlockDriverState(test) self.checkBlockDriverState(raw) self.checkBlockDriverState(blkverify) @@ -235,8 +223,7 @@ class TestBlockdevDel(iotests.QMPTestCase): 'node-name': quorum, 'vote-threshold': 1, 'children': [ child_0, child_1 ]} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) self.checkBlockDriverState(child0) self.checkBlockDriverState(child1) self.checkBlockDriverState(quorum) diff --git a/tests/qemu-iotests/147 b/tests/qemu-iotests/147 index 08111c5108..6d6f077a14 100755 --- a/tests/qemu-iotests/147 +++ b/tests/qemu-iotests/147 @@ -58,8 +58,7 @@ class NBDBlockdevAddBase(iotests.QMPTestCase): def client_test(self, filename, address, export=3DNone, node_name=3D'nbd-blockdev', delete=3DTrue): bao =3D self.blockdev_add_options(address, export, node_name) - result =3D self.vm.qmp('blockdev-add', bao) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', bao) =20 found =3D False result =3D self.vm.qmp('query-named-block-nodes') @@ -75,8 +74,7 @@ class NBDBlockdevAddBase(iotests.QMPTestCase): self.assertTrue(found) =20 if delete: - result =3D self.vm.qmp('blockdev-del', node_name=3Dnode_name) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3Dnode_name) =20 =20 class QemuNBD(NBDBlockdevAddBase): @@ -158,17 +156,14 @@ class BuiltinNBD(NBDBlockdevAddBase): self.assert_qmp(result, 'return', {}) =20 if export_name is None: - result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort') - self.assert_qmp(result, 'return', {}) + self.server.cmd('nbd-server-add', device=3D'nbd-export') else: - result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort', - name=3Dexport_name) - self.assert_qmp(result, 'return', {}) + self.server.cmd('nbd-server-add', device=3D'nbd-export', + name=3Dexport_name) =20 if export_name2 is not None: - result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort', - name=3Dexport_name2) - self.assert_qmp(result, 'return', {}) + self.server.cmd('nbd-server-add', device=3D'nbd-export', + name=3Dexport_name2) =20 return True =20 @@ -176,8 +171,7 @@ class BuiltinNBD(NBDBlockdevAddBase): self.assertTrue(self._try_server_up(address, export_name, export_n= ame2)) =20 def _server_down(self): - result =3D self.server.qmp('nbd-server-stop') - self.assert_qmp(result, 'return', {}) + self.server.cmd('nbd-server-stop') =20 def do_test_inet(self, export_name=3DNone): while True: @@ -219,10 +213,8 @@ class BuiltinNBD(NBDBlockdevAddBase): flatten_sock_addr(address), 'exp1', 'node1', Fals= e) self.client_test('nbd://localhost:%i/%s' % (nbd_port, 'exp2'), flatten_sock_addr(address), 'exp2', 'node2', Fals= e) - result =3D self.vm.qmp('blockdev-del', node_name=3D'node1') - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('blockdev-del', node_name=3D'node2') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'node1') + self.vm.cmd('blockdev-del', node_name=3D'node2') self._server_down() =20 def test_inet6(self): @@ -273,8 +265,7 @@ class BuiltinNBD(NBDBlockdevAddBase): result =3D self.vm.send_fd_scm(fd=3Dsockfd.fileno()) self.assertEqual(result, 0, 'Failed to send socket FD') =20 - result =3D self.vm.qmp('getfd', fdname=3D'nbd-fifo') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('getfd', fdname=3D'nbd-fifo') =20 address =3D { 'type': 'fd', 'data': { 'str': 'nbd-fifo' } } diff --git a/tests/qemu-iotests/151 b/tests/qemu-iotests/151 index 668d0c1e9c..d8c444ef35 100755 --- a/tests/qemu-iotests/151 +++ b/tests/qemu-iotests/151 @@ -79,14 +79,13 @@ class TestActiveMirror(iotests.QMPTestCase): self.vm.hmp_qemu_io('source', 'aio_write -z %i 1M' % offset) =20 # Start the block job - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - filter_node_name=3D'mirror-node', - device=3D'source-node', - target=3D'target-node', - sync=3D'full', - copy_mode=3D'write-blocking') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + filter_node_name=3D'mirror-node', + device=3D'source-node', + target=3D'target-node', + sync=3D'full', + copy_mode=3D'write-blocking') =20 # Start some more requests for offset in range(3 * self.image_len // 8, 5 * self.image_len //= 8, 1024 * 1024): @@ -125,23 +124,21 @@ class TestActiveMirror(iotests.QMPTestCase): result =3D self.vm.hmp_qemu_io('source', 'write -P 1 0 2M') =20 # Start the block job (very slowly) - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - filter_node_name=3D'mirror-node', - device=3D'source-node', - target=3D'target-node', - sync=3D'full', - copy_mode=3D'write-blocking', - buf_size=3D(1048576 // 4), - speed=3D1) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + filter_node_name=3D'mirror-node', + device=3D'source-node', + target=3D'target-node', + sync=3D'full', + copy_mode=3D'write-blocking', + buf_size=3D(1048576 // 4), + speed=3D1) =20 # Start an unaligned request to a dirty area result =3D self.vm.hmp_qemu_io('source', 'write -P 2 %i 1' % (1048= 576 + 42)) =20 # Let the job finish - result =3D self.vm.qmp('block-job-set-speed', device=3D'mirror', s= peed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'mirror', speed=3D0) self.complete_and_wait(drive=3D'mirror') =20 self.potential_writes_in_flight =3D False @@ -151,15 +148,14 @@ class TestActiveMirror(iotests.QMPTestCase): result =3D self.vm.hmp_qemu_io('source', 'write -P 1 0 2M') =20 # Start the block job (very slowly) - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - filter_node_name=3D'mirror-node', - device=3D'source-node', - target=3D'target-node', - sync=3D'full', - copy_mode=3D'write-blocking', - speed=3D1) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + filter_node_name=3D'mirror-node', + device=3D'source-node', + target=3D'target-node', + sync=3D'full', + copy_mode=3D'write-blocking', + speed=3D1) =20 self.vm.hmp_qemu_io('source', 'break write_aio A') self.vm.hmp_qemu_io('source', 'aio_write 0 1M') # 1 @@ -190,8 +186,7 @@ class TestActiveMirror(iotests.QMPTestCase): # After resuming 4, one of 2 and 3 goes first and set in_flight_bi= tmap, # so the other will wait for it. =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'mirror', s= peed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'mirror', speed=3D0) self.complete_and_wait(drive=3D'mirror') =20 self.potential_writes_in_flight =3D False diff --git a/tests/qemu-iotests/152 b/tests/qemu-iotests/152 index b73a0d08a2..197bea9e77 100755 --- a/tests/qemu-iotests/152 +++ b/tests/qemu-iotests/152 @@ -41,18 +41,16 @@ class TestUnaligned(iotests.QMPTestCase): pass =20 def test_unaligned(self): - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - granularity=3D65536, target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + granularity=3D65536, target=3Dtarget_img) self.complete_and_wait() self.vm.shutdown() self.assertEqual(iotests.image_size(test_img), iotests.image_size(= target_img), "Target size doesn't match source when granularit= y when unaligend") =20 def test_unaligned_with_update(self): - result =3D self.vm.qmp('drive-mirror', device=3D'drive0', sync=3D'= full', - granularity=3D65536, target=3Dtarget_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('drive-mirror', device=3D'drive0', sync=3D'full', + granularity=3D65536, target=3Dtarget_img) self.wait_ready() self.vm.hmp_qemu_io('drive0', 'write 0 512') self.complete_and_wait(wait_ready=3DFalse) diff --git a/tests/qemu-iotests/155 b/tests/qemu-iotests/155 index 0c073fd61b..38eacb4127 100755 --- a/tests/qemu-iotests/155 +++ b/tests/qemu-iotests/155 @@ -110,8 +110,7 @@ class BaseClass(iotests.QMPTestCase): elif self.target_blockdev_backing: options['backing'] =3D self.target_blockdev_backing =20 - result =3D self.vm.qmp('blockdev-add', options) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', options) =20 def tearDown(self): self.vm.shutdown() @@ -178,20 +177,18 @@ class MirrorBaseClass(BaseClass): =20 def runMirror(self, sync): if self.cmd =3D=3D 'blockdev-mirror': - result =3D self.vm.qmp(self.cmd, job_id=3D'mirror-job', device= =3D'source', - sync=3Dsync, target=3D'target', - auto_finalize=3DFalse) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.cmd, job_id=3D'mirror-job', device=3D'source', + sync=3Dsync, target=3D'target', + auto_finalize=3DFalse) else: if self.existing: mode =3D 'existing' else: mode =3D 'absolute-paths' - result =3D self.vm.qmp(self.cmd, job_id=3D'mirror-job', device= =3D'source', - sync=3Dsync, target=3Dtarget_img, - format=3Diotests.imgfmt, mode=3Dmode, - node_name=3D'target', auto_finalize=3DFal= se) - self.assert_qmp(result, 'return', {}) + self.vm.cmd(self.cmd, job_id=3D'mirror-job', device=3D'source', + sync=3Dsync, target=3Dtarget_img, + format=3Diotests.imgfmt, mode=3Dmode, + node_name=3D'target', auto_finalize=3DFalse) =20 self.vm.run_job('mirror-job', auto_finalize=3DFalse, pre_finalize=3Dself.openBacking, auto_dismiss=3DTr= ue) @@ -258,16 +255,14 @@ class TestBlockdevMirrorReopen(MirrorBaseClass): =20 def openBacking(self): if not self.target_open_with_backing: - result =3D self.vm.qmp('blockdev-add', node_name=3D"backing", - driver=3D"null-co") - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('blockdev-reopen', options=3D[{ - 'node-name': "target", - 'driver': iotests.imgfmt, - 'file': "target-file", - 'backing': "backing" - }]) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', node_name=3D"backing", + driver=3D"null-co") + self.vm.cmd('blockdev-reopen', options=3D[{ + 'node-name': "target", + 'driver': iotests.imgfmt, + 'file': "target-file", + 'backing': "backing" + }]) =20 class TestBlockdevMirrorReopenIothread(TestBlockdevMirrorReopen): use_iothread =3D True @@ -281,12 +276,10 @@ class TestBlockdevMirrorSnapshot(MirrorBaseClass): =20 def openBacking(self): if not self.target_open_with_backing: - result =3D self.vm.qmp('blockdev-add', node_name=3D"backing", - driver=3D"null-co") - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('blockdev-snapshot', node=3D"backing", - overlay=3D"target") - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', node_name=3D"backing", + driver=3D"null-co") + self.vm.cmd('blockdev-snapshot', node=3D"backing", + overlay=3D"target") =20 class TestBlockdevMirrorSnapshotIothread(TestBlockdevMirrorSnapshot): use_iothread =3D True @@ -295,14 +288,12 @@ class TestCommit(BaseClass): existing =3D False =20 def testCommit(self): - result =3D self.vm.qmp('block-commit', job_id=3D'commit-job', - device=3D'source', base=3Dback1_img) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', job_id=3D'commit-job', + device=3D'source', base=3Dback1_img) =20 self.vm.event_wait('BLOCK_JOB_READY') =20 - result =3D self.vm.qmp('block-job-complete', device=3D'commit-job') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3D'commit-job') =20 self.vm.event_wait('BLOCK_JOB_COMPLETED') =20 diff --git a/tests/qemu-iotests/165 b/tests/qemu-iotests/165 index e3ef28e2ee..b24907a62f 100755 --- a/tests/qemu-iotests/165 +++ b/tests/qemu-iotests/165 @@ -116,9 +116,8 @@ class TestPersistentDirtyBitmap(iotests.QMPTestCase): sha256_2 =3D self.getSha256() assert sha256_1 !=3D sha256_2 # Otherwise, it's not very interesti= ng. =20 - result =3D self.vm.qmp('block-dirty-bitmap-clear', node=3D'drive0', - name=3D'bitmap0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-dirty-bitmap-clear', node=3D'drive0', + name=3D'bitmap0') =20 # Start with regions1 =20 @@ -137,7 +136,7 @@ class TestPersistentDirtyBitmap(iotests.QMPTestCase): assert sha256_1 =3D=3D self.getSha256() =20 # Reopen to RW - result =3D self.vm.qmp('blockdev-reopen', options=3D[{ + self.vm.cmd('blockdev-reopen', options=3D[{ 'node-name': 'node0', 'driver': iotests.imgfmt, 'file': { @@ -146,7 +145,6 @@ class TestPersistentDirtyBitmap(iotests.QMPTestCase): }, 'read-only': False }]) - self.assert_qmp(result, 'return', {}) =20 # Check that bitmap is reopened to RW and we can write to it. self.writeRegions(regions2) diff --git a/tests/qemu-iotests/196 b/tests/qemu-iotests/196 index 27c1629be3..e5105b1354 100755 --- a/tests/qemu-iotests/196 +++ b/tests/qemu-iotests/196 @@ -45,8 +45,7 @@ class TestInvalidateAutoclear(iotests.QMPTestCase): self.vm_b.add_incoming("exec: cat '" + migfile + "'") =20 def test_migration(self): - result =3D self.vm_a.qmp('migrate', uri=3D'exec:cat>' + migfile) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate', uri=3D'exec:cat>' + migfile) self.assertNotEqual(self.vm_a.event_wait("STOP"), None) =20 with open(disk, 'r+b') as f: diff --git a/tests/qemu-iotests/205 b/tests/qemu-iotests/205 index 15f798288a..2370e1a138 100755 --- a/tests/qemu-iotests/205 +++ b/tests/qemu-iotests/205 @@ -44,10 +44,8 @@ class TestNbdServerRemove(iotests.QMPTestCase): } } =20 - result =3D self.vm.qmp('nbd-server-start', addr=3Daddress) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('nbd-server-add', device=3D'drive0', name= =3D'exp') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-start', addr=3Daddress) + self.vm.cmd('nbd-server-add', device=3D'drive0', name=3D'exp') =20 def tearDown(self): self.vm.shutdown() diff --git a/tests/qemu-iotests/218 b/tests/qemu-iotests/218 index 5e74c55b6a..81aa68806f 100755 --- a/tests/qemu-iotests/218 +++ b/tests/qemu-iotests/218 @@ -41,34 +41,30 @@ iotests.script_initialize(supported_fmts=3D['qcow2', 'r= aw']) def start_mirror(vm, speed=3DNone, buf_size=3DNone): vm.launch() =20 - ret =3D vm.qmp('blockdev-add', - node_name=3D'source', - driver=3D'null-co', - size=3D1048576) - assert ret['return'] =3D=3D {} - - ret =3D vm.qmp('blockdev-add', - node_name=3D'target', - driver=3D'null-co', - size=3D1048576) - assert ret['return'] =3D=3D {} + vm.cmd('blockdev-add', + node_name=3D'source', + driver=3D'null-co', + size=3D1048576) + + vm.cmd('blockdev-add', + node_name=3D'target', + driver=3D'null-co', + size=3D1048576) =20 if speed is not None: - ret =3D vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'source', - target=3D'target', - sync=3D'full', - speed=3Dspeed, - buf_size=3Dbuf_size) - assert ret['return'] =3D=3D {} + vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'source', + target=3D'target', + sync=3D'full', + speed=3Dspeed, + buf_size=3Dbuf_size) else: - ret =3D vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'source', - target=3D'target', - sync=3D'full') - assert ret['return'] =3D=3D {} + vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'source', + target=3D'target', + sync=3D'full') =20 =20 log('') @@ -150,38 +146,33 @@ with iotests.VM() as vm, \ =20 vm.launch() =20 - ret =3D vm.qmp('object-add', qom_type=3D'throttle-group', id=3D'tg', - limits=3D{'bps-read': 4096}) - assert ret['return'] =3D=3D {} - - ret =3D vm.qmp('blockdev-add', - node_name=3D'source', - driver=3Diotests.imgfmt, - file=3D{ - 'driver': 'file', - 'filename': src_img_path - }) - assert ret['return'] =3D=3D {} - - ret =3D vm.qmp('blockdev-add', - node_name=3D'throttled-source', - driver=3D'throttle', - throttle_group=3D'tg', - file=3D'source') - assert ret['return'] =3D=3D {} - - ret =3D vm.qmp('blockdev-add', - node_name=3D'target', - driver=3D'null-co', - size=3D(64 * 1048576)) - assert ret['return'] =3D=3D {} - - ret =3D vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'throttled-source', - target=3D'target', - sync=3D'full') - assert ret['return'] =3D=3D {} + vm.cmd('object-add', qom_type=3D'throttle-group', id=3D'tg', + limits=3D{'bps-read': 4096}) + + vm.cmd('blockdev-add', + node_name=3D'source', + driver=3Diotests.imgfmt, + file=3D{ + 'driver': 'file', + 'filename': src_img_path + }) + + vm.cmd('blockdev-add', + node_name=3D'throttled-source', + driver=3D'throttle', + throttle_group=3D'tg', + file=3D'source') + + vm.cmd('blockdev-add', + node_name=3D'target', + driver=3D'null-co', + size=3D(64 * 1048576)) + + vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'throttled-source', + target=3D'target', + sync=3D'full') =20 log(vm.qmp('quit')) =20 diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245 index edaf29094b..3993fee9a2 100755 --- a/tests/qemu-iotests/245 +++ b/tests/qemu-iotests/245 @@ -136,8 +136,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): def test_incorrect_parameters_single_file(self): # Open 'hd0' only (no backing files) opts =3D hd_opts(0) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) original_graph =3D self.vm.qmp('query-named-block-nodes') =20 # We can reopen the image passing the same options @@ -171,8 +170,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.check_node_graph(original_graph) =20 # Remove the node - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 # This test opens an image with a backing file and tries to reopen # it with illegal / incorrect parameters. @@ -180,8 +178,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # Open hd1 omitting the backing options (hd0 will be opened # with the default options) opts =3D hd_opts(1) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) original_graph =3D self.vm.qmp('query-named-block-nodes') =20 # We can't reopen the image passing the same options, 'backing' is= mandatory @@ -213,8 +210,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.check_node_graph(original_graph) =20 # Remove the node - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd1= ') =20 # Reopen an image several times changing some of its options def test_reopen(self): @@ -230,8 +226,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # Open the hd1 image passing all backing options opts =3D hd_opts(1) opts['backing'] =3D hd_opts(0) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) original_graph =3D self.vm.qmp('query-named-block-nodes') =20 # We can reopen the image passing the same options @@ -306,8 +301,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.assert_qmp_absent(self.get_node('hd1'), 'image/backing-image') =20 # Open the 'hd0' image - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **hd_o= pts(0)) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **hd_opts(0)) =20 # Reopen the hd1 image setting 'hd0' as its backing image self.reopen(opts, {'backing': 'hd0'}) @@ -326,10 +320,8 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.assert_qmp(result, 'error/desc', "Node 'hd0' is busy: node is= used as backing hd of 'hd1'") =20 # But we can remove both nodes if done in the proper order - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd1') - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd1= ') + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 # Reopen a raw image and see the effect of changing the 'offset' option def test_reopen_raw(self): @@ -345,8 +337,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): qemu_io('-f', 'raw', '-c', 'write -P 0xa1 1M 1M', hd_path[0]) =20 # Open the raw file with QEMU - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Read 1MB from offset 0 self.run_qemu_io("hd0", "read -P 0xa0 0 1M") @@ -362,8 +353,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.run_qemu_io("hd0", "read -P 0xa0 0 1M") =20 # Remove the block device - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 # Omitting an option should reset it to the default value, but if # an option cannot be changed it shouldn't be possible to reset it @@ -377,8 +367,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): 'node-name': 'hd0-file' } } =20 # Open the file with QEMU - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # file.x-check-cache-dropped can be changed... self.reopen(opts, { 'file.x-check-cache-dropped': False }) @@ -394,8 +383,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.reopen(opts, { 'file.locking': 'off' }) =20 # Remove the block device - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 # This test modifies the node graph a few times by changing the # 'backing' option on reopen and verifies that the guest data that @@ -407,8 +395,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): for i in range(3): opts.append(hd_opts(i)) opts[i]['backing'] =3D None - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **= opts[i]) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts[i]) =20 # hd0 self.run_qemu_io("hd0", "read -P 0xa0 0 1M") @@ -499,8 +486,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): for i in range(3): opts.append(hd_opts(i)) opts[i]['backing'] =3D None - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **= opts[i]) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts[i]) =20 # hd1 <- hd0, hd1 <- hd2 self.reopen(opts[0], {'backing': 'hd1'}) @@ -532,8 +518,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): 'node-name': 'bv', 'test': 'hd0', 'raw': 'hd1'} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **bvop= ts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **bvopts) =20 # blkverify doesn't currently allow reopening. TODO: implement this self.reopen(bvopts, {}, "Block format 'blkverify' used by node 'bv= '" + @@ -544,8 +529,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): "Making 'bv' a backing child of 'hd0' would create a c= ycle") =20 # Delete the blkverify node - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'bv') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'bv') =20 # Replace the protocol layer ('file' parameter) of a disk image def test_replace_file(self): @@ -556,16 +540,13 @@ class TestBlockdevReopen(iotests.QMPTestCase): hd0_opts =3D {'driver': 'file', 'node-name': 'hd0-file', 'filename= ': hd_path[0] } hd1_opts =3D {'driver': 'file', 'node-name': 'hd1-file', 'filename= ': hd_path[1] } =20 - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **hd0_= opts) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **hd1_= opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **hd0_opts) + self.vm.cmd('blockdev-add', conv_keys =3D False, **hd1_opts) =20 # Add a raw format layer that uses hd0-file as its protocol layer opts =3D {'driver': 'raw', 'node-name': 'hd', 'file': 'hd0-file'} =20 - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Fill the image with data self.run_qemu_io("hd", "read -P 0 0 10k") @@ -588,21 +569,18 @@ class TestBlockdevReopen(iotests.QMPTestCase): def test_insert_throttle_filter(self): # Add an image to the VM hd0_opts =3D hd_opts(0) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **hd0_= opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **hd0_opts) =20 # Create a throttle-group object opts =3D { 'qom-type': 'throttle-group', 'id': 'group0', 'limits': { 'iops-total': 1000 } } - result =3D self.vm.qmp('object-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', conv_keys =3D False, **opts) =20 # Add a throttle filter with the group that we just created. # The filter is not used by anyone yet opts =3D { 'driver': 'throttle', 'node-name': 'throttle0', 'throttle-group': 'group0', 'file': 'hd0-file' } - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Insert the throttle filter between hd0 and hd0-file self.reopen(hd0_opts, {'file': 'throttle0'}) @@ -614,15 +592,13 @@ class TestBlockdevReopen(iotests.QMPTestCase): def test_insert_compress_filter(self): # Add an image to the VM: hd (raw) -> hd0 (qcow2) -> hd0-file (fil= e) opts =3D {'driver': 'raw', 'node-name': 'hd', 'file': hd_opts(0)} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Add a 'compress' filter filter_opts =3D {'driver': 'compress', 'node-name': 'compress0', 'file': 'hd0'} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **filt= er_opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **filter_opts) =20 # Unmap the beginning of the image (we cannot write compressed # data to an allocated cluster) @@ -658,12 +634,10 @@ class TestBlockdevReopen(iotests.QMPTestCase): def test_swap_files(self): # Add hd0 and hd2 (none of them with backing files) opts0 =3D hd_opts(0) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts= 0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts0) =20 opts2 =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts= 2) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts2) =20 # Write different data to both block devices self.run_qemu_io("hd0", "write -P 0xa0 0 1k") @@ -711,15 +685,13 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(i) # Open all three images without backing file opts['backing'] =3D None - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **= opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 opts =3D {'driver': 'quorum', 'node-name': 'quorum0', 'children': ['hd0', 'hd1', 'hd2'], 'vote-threshold': 2} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Quorum doesn't currently allow reopening. TODO: implement this self.reopen(opts, {}, "Block format 'quorum' used by node 'quorum0= '" + @@ -731,14 +703,12 @@ class TestBlockdevReopen(iotests.QMPTestCase): "Making 'quorum0' a backing child of 'hd0' would creat= e a cycle") =20 # Delete quorum0 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'quorum0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'quo= rum0') =20 # Delete hd0, hd1 and hd2 for i in range(3): - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, - node_name =3D 'hd%d' % i) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, + node_name =3D 'hd%d' % i) =20 ###################### ###### blkdebug ###### @@ -747,8 +717,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): 'node-name': 'bd', 'config': '/dev/null', 'image': hd_opts(0)} - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # blkdebug allows reopening if we keep the same options self.reopen(opts) @@ -761,16 +730,14 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.reopen(opts, {}, "Option 'config' cannot be reset to its defa= ult value") =20 # Delete the blkdebug node - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'bd') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'bd') =20 ################## ###### null ###### ################## opts =3D {'driver': 'null-co', 'node-name': 'root', 'size': 1024} =20 - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # 1 << 30 is the default value, but we cannot change it explicitly self.reopen(opts, {'size': (1 << 30)}, "Cannot change the option '= size'") @@ -779,16 +746,14 @@ class TestBlockdevReopen(iotests.QMPTestCase): del opts['size'] self.reopen(opts, {}, "Option 'size' cannot be reset to its defaul= t value") =20 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'root') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'roo= t') =20 ################## ###### file ###### ################## opts =3D hd_opts(0) opts['file']['locking'] =3D 'on' - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # 'locking' cannot be changed del opts['file']['locking'] @@ -802,27 +767,23 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.reopen(opts, {'locking': 'off'}, "Cannot change the option 'l= ocking'") self.reopen(opts, {}, "Option 'locking' cannot be reset to its def= ault value") =20 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 ###################### ###### throttle ###### ###################### opts =3D { 'qom-type': 'throttle-group', 'id': 'group0', 'limits': { 'iops-total': 1000 } } - result =3D self.vm.qmp('object-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', conv_keys =3D False, **opts) =20 opts =3D { 'qom-type': 'throttle-group', 'id': 'group1', 'limits': { 'iops-total': 2000 } } - result =3D self.vm.qmp('object-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', conv_keys =3D False, **opts) =20 # Add a throttle filter with group =3D group0 opts =3D { 'driver': 'throttle', 'node-name': 'throttle0', 'throttle-group': 'group0', 'file': hd_opts(0) } - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # We can reopen it if we keep the same options self.reopen(opts) @@ -850,16 +811,13 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.assert_qmp(result, 'error/desc', "object 'group0' is in use, = can not be deleted") =20 # But group1 is free this time, and it can be deleted - result =3D self.vm.qmp('object-del', id =3D 'group1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-del', id =3D 'group1') =20 # Let's delete the filter node - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'throttle0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'thr= ottle0') =20 # And we can finally get rid of group0 - result =3D self.vm.qmp('object-del', id =3D 'group0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-del', id =3D 'group0') =20 # If an image has a backing file then the 'backing' option must be # passed on reopen. We don't allow leaving the option out in this @@ -867,13 +825,11 @@ class TestBlockdevReopen(iotests.QMPTestCase): def test_missing_backing_options_1(self): # hd2 opts =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # hd0 opts =3D hd_opts(0) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # hd0 has no backing file: we can omit the 'backing' option self.reopen(opts) @@ -896,11 +852,9 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.reopen(opts) =20 # Remove both hd0 and hd2 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd2') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd2= ') =20 # If an image has default backing file (as part of its metadata) # then the 'backing' option must be passed on reopen. We don't @@ -910,8 +864,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # hd0 <- hd1 # (hd0 is hd1's default backing file) opts =3D hd_opts(1) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # hd1 has a backing file: we can't omit the 'backing' option self.reopen(opts, {}, "backing is missing for 'hd1'") @@ -922,8 +875,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # No backing file attached to hd1 now, but we still can't omit the= 'backing' option self.reopen(opts, {}, "backing is missing for 'hd1'") =20 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd1= ') =20 # Test that making 'backing' a reference to an existing child # keeps its current options @@ -936,8 +888,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts['detect-zeroes'] =3D 'on' opts['backing']['detect-zeroes'] =3D 'on' opts['backing']['backing']['detect-zeroes'] =3D 'on' - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Reopen the chain passing the minimum amount of required options. # By making 'backing' a reference to hd1 (instead of a sub-dict) @@ -960,12 +911,10 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) opts['backing']['backing'] =3D None - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Stream hd1 into hd0 and wait until it's done - result =3D self.vm.qmp('block-stream', conv_keys =3D True, job_id = =3D 'stream0', device =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', conv_keys =3D True, job_id =3D 'stream= 0', device =3D 'hd0') self.wait_until_completed(drive =3D 'stream0') =20 # Now we have only hd0 @@ -981,8 +930,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # We can also reopen hd0 if we set 'backing' to null self.reopen(opts, {'backing': None}) =20 - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') =20 # Another block_stream test def test_block_stream_2(self): @@ -990,13 +938,11 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) opts['backing']['backing'] =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # Stream hd1 into hd0 and wait until it's done - result =3D self.vm.qmp('block-stream', conv_keys =3D True, job_id = =3D 'stream0', - device =3D 'hd0', base_node =3D 'hd2') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', conv_keys =3D True, job_id =3D 'stream= 0', + device =3D 'hd0', base_node =3D 'hd2') self.wait_until_completed(drive =3D 'stream0') =20 # The chain is hd2 <- hd0 now. hd1 is missing @@ -1018,8 +964,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.reopen(opts, {}, "backing is missing for 'hd0'") =20 # Now we can delete hd0 (and hd2) - result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', conv_keys =3D True, node_name =3D 'hd0= ') self.assertEqual(self.get_node('hd2'), None) =20 # Reopen the chain during a block-stream job (from hd1 to hd0) @@ -1028,14 +973,12 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) opts['backing']['backing'] =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # hd2 <- hd0 - result =3D self.vm.qmp('block-stream', conv_keys =3D True, job_id = =3D 'stream0', - device =3D 'hd0', base_node =3D 'hd2', - auto_finalize =3D False) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', conv_keys =3D True, job_id =3D 'stream= 0', + device =3D 'hd0', base_node =3D 'hd2', + auto_finalize =3D False) =20 # We can remove hd2 while the stream job is ongoing opts['backing']['backing'] =3D None @@ -1053,14 +996,12 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) opts['backing']['backing'] =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 # hd1 <- hd0 - result =3D self.vm.qmp('block-stream', conv_keys =3D True, job_id = =3D 'stream0', - device =3D 'hd1', filter_node_name=3D'cor', - auto_finalize =3D False) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-stream', conv_keys =3D True, job_id =3D 'stream= 0', + device =3D 'hd1', filter_node_name=3D'cor', + auto_finalize =3D False) =20 # We can't reopen with the original options because there is a fil= ter # inserted by stream job above hd1. @@ -1089,12 +1030,10 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) opts['backing']['backing'] =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 - result =3D self.vm.qmp('block-commit', conv_keys =3D True, job_id = =3D 'commit0', - device =3D 'hd0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', conv_keys =3D True, job_id =3D 'commit= 0', + device =3D 'hd0') =20 # We can't remove hd2 while the commit job is ongoing opts['backing']['backing'] =3D None @@ -1109,8 +1048,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.assert_qmp(event, 'data/type', 'commit') self.assert_qmp_absent(event, 'data/error') =20 - result =3D self.vm.qmp('block-job-complete', device=3D'commit0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3D'commit0') =20 self.wait_until_completed(drive =3D 'commit0') =20 @@ -1120,13 +1058,11 @@ class TestBlockdevReopen(iotests.QMPTestCase): opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) opts['backing']['backing'] =3D hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 - result =3D self.vm.qmp('block-commit', conv_keys =3D True, job_id = =3D 'commit0', - device =3D 'hd0', top_node =3D 'hd1', - auto_finalize =3D False) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', conv_keys =3D True, job_id =3D 'commit= 0', + device =3D 'hd0', top_node =3D 'hd1', + auto_finalize =3D False) =20 # We can't remove hd2 while the commit job is ongoing opts['backing']['backing'] =3D None @@ -1146,36 +1082,28 @@ class TestBlockdevReopen(iotests.QMPTestCase): def run_test_iothreads(self, iothread_a, iothread_b, errmsg =3D None, opts_a =3D None, opts_b =3D None): opts =3D opts_a or hd_opts(0) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts) =20 opts2 =3D opts_b or hd_opts(2) - result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **opts= 2) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', conv_keys =3D False, **opts2) =20 - result =3D self.vm.qmp('object-add', qom_type=3D'iothread', id=3D'= iothread0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', qom_type=3D'iothread', id=3D'iothread0') =20 - result =3D self.vm.qmp('object-add', qom_type=3D'iothread', id=3D'= iothread1') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', qom_type=3D'iothread', id=3D'iothread1') =20 - result =3D self.vm.qmp('device_add', driver=3D'virtio-scsi', id=3D= 'scsi0', - iothread=3Diothread_a) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', driver=3D'virtio-scsi', id=3D'scsi0', + iothread=3Diothread_a) =20 - result =3D self.vm.qmp('device_add', driver=3D'virtio-scsi', id=3D= 'scsi1', - iothread=3Diothread_b) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', driver=3D'virtio-scsi', id=3D'scsi1', + iothread=3Diothread_b) =20 if iothread_a: - result =3D self.vm.qmp('device_add', driver=3D'scsi-hd', drive= =3D'hd0', - share_rw=3DTrue, bus=3D"scsi0.0") - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', driver=3D'scsi-hd', drive=3D'hd0', + share_rw=3DTrue, bus=3D"scsi0.0") =20 if iothread_b: - result =3D self.vm.qmp('device_add', driver=3D'scsi-hd', drive= =3D'hd2', - share_rw=3DTrue, bus=3D"scsi1.0") - self.assert_qmp(result, 'return', {}) + self.vm.cmd('device_add', driver=3D'scsi-hd', drive=3D'hd2', + share_rw=3DTrue, bus=3D"scsi1.0") =20 # Attaching the backing file may or may not work self.reopen(opts, {'backing': 'hd2'}, errmsg) @@ -1204,8 +1132,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # Create a throttle-group object opts =3D { 'qom-type': 'throttle-group', 'id': 'group0', 'limits': { 'iops-total': 1000 } } - result =3D self.vm.qmp('object-add', conv_keys =3D False, **opts) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('object-add', conv_keys =3D False, **opts) =20 # Options with a throttle filter between format and protocol opts =3D [ diff --git a/tests/qemu-iotests/264 b/tests/qemu-iotests/264 index d44deb673a..c532ccd809 100755 --- a/tests/qemu-iotests/264 +++ b/tests/qemu-iotests/264 @@ -48,18 +48,16 @@ class TestNbdReconnect(iotests.QMPTestCase): """Stat job with nbd target and kill the server""" assert job in ('blockdev-backup', 'blockdev-mirror') with qemu_nbd_popen('-k', nbd_sock, '-f', iotests.imgfmt, disk_b): - result =3D self.vm.qmp('blockdev-add', - {'node-name': 'backup0', - 'driver': 'raw', - 'file': {'driver': 'nbd', - 'server': {'type': 'unix', - 'path': nbd_sock}, - 'reconnect-delay': 10}}) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp(job, device=3D'drive0', - sync=3D'full', target=3D'backup0', - speed=3D(1 * 1024 * 1024)) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', + {'node-name': 'backup0', + 'driver': 'raw', + 'file': {'driver': 'nbd', + 'server': {'type': 'unix', + 'path': nbd_sock}, + 'reconnect-delay': 10}}) + self.vm.cmd(job, device=3D'drive0', + sync=3D'full', target=3D'backup0', + speed=3D(1 * 1024 * 1024)) =20 # Wait for some progress t =3D 0.0 @@ -77,8 +75,7 @@ class TestNbdReconnect(iotests.QMPTestCase): self.assertTrue(jobs) self.assertTrue(jobs[0]['offset'] < jobs[0]['len']) =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', s= peed=3D0) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', speed=3D0) =20 # Emulate server down time for 1 second time.sleep(1) @@ -91,12 +88,10 @@ class TestNbdReconnect(iotests.QMPTestCase): with qemu_nbd_popen('-k', nbd_sock, '-f', iotests.imgfmt, disk_b): e =3D self.vm.event_wait('BLOCK_JOB_COMPLETED') self.assertEqual(e['data']['offset'], size) - result =3D self.vm.qmp('blockdev-del', node_name=3D'backup0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'backup0') =20 def cancel_job(self): - result =3D self.vm.qmp('block-job-cancel', device=3D'drive0', forc= e=3DTrue) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-cancel', device=3D'drive0', force=3DTrue) =20 start_t =3D time.time() self.vm.event_wait('BLOCK_JOB_CANCELLED') diff --git a/tests/qemu-iotests/281 b/tests/qemu-iotests/281 index 5e1339bd75..f6746a12e8 100755 --- a/tests/qemu-iotests/281 +++ b/tests/qemu-iotests/281 @@ -56,15 +56,13 @@ class TestDirtyBitmapIOThread(iotests.QMPTestCase): os.remove(self.images[name]) =20 def test_add_dirty_bitmap(self): - result =3D self.vm.qmp( + self.vm.cmd( 'block-dirty-bitmap-add', node=3D'drive0', name=3D'bitmap1', persistent=3DTrue, ) =20 - self.assert_qmp(result, 'return', {}) - =20 # Test for RHBZ#1746217 & RHBZ#1773517 class TestNBDMirrorIOThread(iotests.QMPTestCase): @@ -105,23 +103,21 @@ class TestNBDMirrorIOThread(iotests.QMPTestCase): os.remove(self.images[name]) =20 def test_nbd_mirror(self): - result =3D self.vm_tgt.qmp( + self.vm_tgt.cmd( 'nbd-server-start', addr=3D{ 'type': 'unix', 'data': { 'path': self.nbd_sock } } ) - self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm_tgt.qmp( + self.vm_tgt.cmd( 'nbd-server-add', device=3D'drive0', writable=3DTrue ) - self.assert_qmp(result, 'return', {}) =20 - result =3D self.vm_src.qmp( + self.vm_src.cmd( 'drive-mirror', device=3D'drive0', target=3D'nbd+unix:///drive0?socket=3D' + self.nbd_sock, @@ -130,7 +126,6 @@ class TestNBDMirrorIOThread(iotests.QMPTestCase): speed=3D64*1024*1024, job_id=3D'j1' ) - self.assert_qmp(result, 'return', {}) =20 self.vm_src.event_wait(name=3D"BLOCK_JOB_READY") =20 @@ -290,8 +285,7 @@ class TestYieldingAndTimers(iotests.QMPTestCase): # they will remain active, fire later, and then access freed data. # (Or, with "block/nbd: Assert there are no timers when closed" # applied, the assertions added in that patch will fail.) - result =3D self.vm.qmp('blockdev-del', node_name=3D'nbd') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', node_name=3D'nbd') =20 # Give the timers some time to fire (both have a timeout of 1 s). # (Sleeping in an iotest may ring some alarm bells, but note that = if @@ -303,9 +297,8 @@ class TestYieldingAndTimers(iotests.QMPTestCase): def test_yield_in_iothread(self): # Move the NBD node to the I/O thread; the NBD block driver should # attach the connection's QIOChannel to that thread's AioContext, = too - result =3D self.vm.qmp('x-blockdev-set-iothread', - node_name=3D'nbd', iothread=3D'iothr') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('x-blockdev-set-iothread', + node_name=3D'nbd', iothread=3D'iothr') =20 # Do some I/O that will be throttled by the QSD, so that the netwo= rk # connection hopefully will yield here. When it is resumed, it mu= st diff --git a/tests/qemu-iotests/295 b/tests/qemu-iotests/295 index 8ebe31054c..04818af264 100755 --- a/tests/qemu-iotests/295 +++ b/tests/qemu-iotests/295 @@ -57,8 +57,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): # create the secrets and load 'em into the VM self.secrets =3D [ Secret(i) for i in range(0, 6) ] for secret in self.secrets: - result =3D self.vm.qmp("object-add", **secret.to_qmp_object()) - self.assert_qmp(result, 'return', {}) + self.vm.cmd("object-add", **secret.to_qmp_object()) =20 if iotests.imgfmt =3D=3D "qcow2": self.pfx =3D "encrypt." @@ -102,7 +101,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): } } =20 - result =3D self.vm.qmp('blockdev-add', { + self.vm.cmd('blockdev-add', { 'driver': iotests.imgfmt, 'node-name': id, 'read-only': read_only, @@ -115,12 +114,10 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): } } ) - self.assert_qmp(result, 'return', {}) =20 # close the encrypted block device def closeImageQmp(self, id): - result =3D self.vm.qmp('blockdev-del', {'node-name': id}) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-del', {'node-name': id}) =20 ######################################################################= ##### # add a key to an encrypted block device @@ -159,8 +156,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): args['force'] =3D True =20 #TODO: check what jobs return - result =3D self.vm.qmp('x-blockdev-amend', **args) - assert result['return'] =3D=3D {} + self.vm.cmd('x-blockdev-amend', **args) self.vm.run_job('job_add_key') =20 # erase a key from an encrypted block device @@ -193,8 +189,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): if force =3D=3D True: args['force'] =3D True =20 - result =3D self.vm.qmp('x-blockdev-amend', **args) - assert result['return'] =3D=3D {} + self.vm.cmd('x-blockdev-amend', **args) self.vm.run_job('job_erase_key') =20 ######################################################################= ##### diff --git a/tests/qemu-iotests/296 b/tests/qemu-iotests/296 index 47d2526b72..2b63cefff0 100755 --- a/tests/qemu-iotests/296 +++ b/tests/qemu-iotests/296 @@ -61,10 +61,8 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): # create the secrets and load 'em into the VMs self.secrets =3D [ Secret(i) for i in range(0, 4) ] for secret in self.secrets: - result =3D self.vm1.qmp("object-add", secret.to_qmp_object()) - self.assert_qmp(result, 'return', {}) - result =3D self.vm2.qmp("object-add", secret.to_qmp_object()) - self.assert_qmp(result, 'return', {}) + self.vm1.cmd("object-add", secret.to_qmp_object()) + self.vm2.cmd("object-add", secret.to_qmp_object()) =20 # test case shutdown def tearDown(self): @@ -132,11 +130,9 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): } =20 if reOpen: - result =3D vm.qmp(command, options=3D[opts]) - self.assert_qmp(result, 'return', {}) + vm.cmd(command, options=3D[opts]) else: - result =3D vm.qmp(command, opts) - self.assert_qmp(result, 'return', {}) + vm.cmd(command, opts) =20 =20 ######################################################################= ##### @@ -154,8 +150,7 @@ class EncryptionSetupTestCase(iotests.QMPTestCase): =20 # close the encrypted block device def closeImageQmp(self, vm, id): - result =3D vm.qmp('blockdev-del', {'node-name': id}) - self.assert_qmp(result, 'return', {}) + vm.cmd('blockdev-del', {'node-name': id}) =20 ######################################################################= ##### =20 diff --git a/tests/qemu-iotests/298 b/tests/qemu-iotests/298 index ad560e2941..4c5348a93b 100755 --- a/tests/qemu-iotests/298 +++ b/tests/qemu-iotests/298 @@ -80,25 +80,23 @@ class TestPreallocateFilter(TestPreallocateBase): def test_external_snapshot(self): self.test_prealloc() =20 - result =3D self.vm.qmp('blockdev-snapshot-sync', node_name=3D'disk= ', - snapshot_file=3Doverlay, - snapshot_node_name=3D'overlay') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-snapshot-sync', node_name=3D'disk', + snapshot_file=3Doverlay, + snapshot_node_name=3D'overlay') =20 # on reopen to r-o base preallocation should be dropped self.check_small() =20 self.vm.hmp_qemu_io('drive0', 'write 1M 1M') =20 - result =3D self.vm.qmp('block-commit', device=3D'overlay') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-commit', device=3D'overlay') self.complete_and_wait() =20 # commit of new megabyte should trigger preallocation self.check_big() =20 def test_reopen_opts(self): - result =3D self.vm.qmp('blockdev-reopen', options=3D[{ + self.vm.cmd('blockdev-reopen', options=3D[{ 'node-name': 'disk', 'driver': iotests.imgfmt, 'file': { @@ -113,7 +111,6 @@ class TestPreallocateFilter(TestPreallocateBase): } } }]) - self.assert_qmp(result, 'return', {}) =20 self.vm.hmp_qemu_io('drive0', 'write 0 1M') self.assertTrue(os.path.getsize(disk) =3D=3D 25 * MiB) diff --git a/tests/qemu-iotests/300 b/tests/qemu-iotests/300 index dbd28384ec..e46616d7b1 100755 --- a/tests/qemu-iotests/300 +++ b/tests/qemu-iotests/300 @@ -50,10 +50,9 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): self.vm_b.add_incoming(f'unix:{mig_sock}') self.vm_b.launch() =20 - result =3D self.vm_a.qmp('block-dirty-bitmap-add', - node=3Dself.src_node_name, - name=3Dself.src_bmap_name) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-add', + node=3Dself.src_node_name, + name=3Dself.src_bmap_name) =20 # Dirty some random megabytes for _ in range(9): @@ -69,8 +68,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): for name in ('dirty-bitmaps', 'events')] =20 for vm in (self.vm_a, self.vm_b): - result =3D vm.qmp('migrate-set-capabilities', capabilities=3Dc= aps) - self.assert_qmp(result, 'return', {}) + vm.cmd('migrate-set-capabilities', capabilities=3Dcaps) =20 def tearDown(self) -> None: self.vm_a.shutdown() @@ -93,8 +91,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): =20 def migrate(self, bitmap_name_valid: bool =3D True, migration_success: bool =3D True) -> None: - result =3D self.vm_a.qmp('migrate', uri=3Df'unix:{mig_sock}') - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate', uri=3Df'unix:{mig_sock}') =20 with iotests.Timeout(5, 'Timeout waiting for migration to complete= '): self.assertEqual(self.vm_a.wait_migration('postmigrate'), @@ -442,10 +439,9 @@ class TestBlockBitmapMappingErrors(TestDirtyBitmapMigr= ation): def test_bitmap_name_too_long(self) -> None: name =3D 'a' * 256 =20 - result =3D self.vm_a.qmp('block-dirty-bitmap-add', - node=3Dself.src_node_name, - name=3Dname) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-add', + node=3Dself.src_node_name, + name=3Dname) =20 self.migrate(False, False) =20 @@ -517,22 +513,19 @@ class TestCrossAliasMigration(TestDirtyBitmapMigratio= n): TestDirtyBitmapMigration.setUp(self) =20 # Now create another block device and let both have two bitmaps ea= ch - result =3D self.vm_a.qmp('blockdev-add', - node_name=3D'node-b', driver=3D'null-co') - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('blockdev-add', + node_name=3D'node-b', driver=3D'null-co') =20 - result =3D self.vm_b.qmp('blockdev-add', - node_name=3D'node-a', driver=3D'null-co') - self.assert_qmp(result, 'return', {}) + self.vm_b.cmd('blockdev-add', + node_name=3D'node-a', driver=3D'null-co') =20 bmaps_to_add =3D (('node-a', 'bmap-b'), ('node-b', 'bmap-a'), ('node-b', 'bmap-b')) =20 for (node, bmap) in bmaps_to_add: - result =3D self.vm_a.qmp('block-dirty-bitmap-add', - node=3Dnode, name=3Dbmap) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-add', + node=3Dnode, name=3Dbmap) =20 @staticmethod def cross_mapping() -> BlockBitmapMapping: @@ -611,24 +604,21 @@ class TestAliasTransformMigration(TestDirtyBitmapMigr= ation): TestDirtyBitmapMigration.setUp(self) =20 # Now create another block device and let both have two bitmaps ea= ch - result =3D self.vm_a.qmp('blockdev-add', - node_name=3D'node-b', driver=3D'null-co', - read_zeroes=3DFalse) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('blockdev-add', + node_name=3D'node-b', driver=3D'null-co', + read_zeroes=3DFalse) =20 - result =3D self.vm_b.qmp('blockdev-add', - node_name=3D'node-a', driver=3D'null-co', - read_zeroes=3DFalse) - self.assert_qmp(result, 'return', {}) + self.vm_b.cmd('blockdev-add', + node_name=3D'node-a', driver=3D'null-co', + read_zeroes=3DFalse) =20 bmaps_to_add =3D (('node-a', 'bmap-b'), ('node-b', 'bmap-a'), ('node-b', 'bmap-b')) =20 for (node, bmap) in bmaps_to_add: - result =3D self.vm_a.qmp('block-dirty-bitmap-add', - node=3Dnode, name=3Dbmap) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-add', + node=3Dnode, name=3Dbmap) =20 @staticmethod def transform_mapping() -> BlockBitmapMapping: diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 0add93bc47..7e33522873 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -1248,8 +1248,7 @@ def assert_json_filename_equal(self, json_filename, r= eference): def cancel_and_wait(self, drive=3D'drive0', force=3DFalse, resume=3DFalse, wait=3D60.0): '''Cancel a block job and wait for it to finish, returning the eve= nt''' - result =3D self.vm.qmp('block-job-cancel', device=3Ddrive, force= =3Dforce) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-cancel', device=3Ddrive, force=3Dforce) =20 if resume: self.vm.resume_drive(drive) @@ -1311,8 +1310,7 @@ def complete_and_wait(self, drive=3D'drive0', wait_re= ady=3DTrue, if wait_ready: self.wait_ready(drive=3Ddrive) =20 - result =3D self.vm.qmp('block-job-complete', device=3Ddrive) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-complete', device=3Ddrive) =20 event =3D self.wait_until_completed(drive=3Ddrive, error=3Dcomplet= ion_error) self.assertTrue(event['data']['type'] in ['mirror', 'commit']) @@ -1331,8 +1329,7 @@ def pause_wait(self, job_id=3D'job0'): assert found =20 def pause_job(self, job_id=3D'job0', wait=3DTrue): - result =3D self.vm.qmp('block-job-pause', device=3Djob_id) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-pause', device=3Djob_id) if wait: self.pause_wait(job_id) =20 diff --git a/tests/qemu-iotests/tests/export-incoming-iothread b/tests/qemu= -iotests/tests/export-incoming-iothread index 7679e49103..d36d6194e0 100755 --- a/tests/qemu-iotests/tests/export-incoming-iothread +++ b/tests/qemu-iotests/tests/export-incoming-iothread @@ -55,7 +55,7 @@ class TestExportIncomingIothread(iotests.QMPTestCase): os.remove(test_img) =20 def test_export_add(self): - result =3D self.vm.qmp('nbd-server-start', { + self.vm.cmd('nbd-server-start', { 'addr': { 'type': 'unix', 'data': { @@ -63,16 +63,14 @@ class TestExportIncomingIothread(iotests.QMPTestCase): } } }) - self.assert_qmp(result, 'return', {}) =20 # Regression test for issue 945: This should not fail an assertion - result =3D self.vm.qmp('block-export-add', { + self.vm.cmd('block-export-add', { 'type': 'nbd', 'id': 'exp0', 'node-name': node_name, 'iothread': iothread_id }) - self.assert_qmp(result, 'return', {}) =20 =20 if __name__ =3D=3D '__main__': diff --git a/tests/qemu-iotests/tests/graph-changes-while-io b/tests/qemu-i= otests/tests/graph-changes-while-io index 7664f33689..b35b8aac4b 100755 --- a/tests/qemu-iotests/tests/graph-changes-while-io +++ b/tests/qemu-iotests/tests/graph-changes-while-io @@ -66,7 +66,7 @@ class TestGraphChangesWhileIO(QMPTestCase): # While qemu-img bench is running, repeatedly add and remove an # overlay to/from node0 while bench_thr.is_alive(): - result =3D self.qsd.qmp('blockdev-add', { + self.qsd.cmd('blockdev-add', { 'driver': imgfmt, 'node-name': 'overlay', 'backing': 'node0', @@ -75,12 +75,10 @@ class TestGraphChangesWhileIO(QMPTestCase): 'filename': top } }) - self.assert_qmp(result, 'return', {}) =20 - result =3D self.qsd.qmp('blockdev-del', { + self.qsd.cmd('blockdev-del', { 'node-name': 'overlay' }) - self.assert_qmp(result, 'return', {}) =20 bench_thr.join() =20 diff --git a/tests/qemu-iotests/tests/image-fleecing b/tests/qemu-iotests/t= ests/image-fleecing index f6e449d071..5e3b2c7e46 100755 --- a/tests/qemu-iotests/tests/image-fleecing +++ b/tests/qemu-iotests/tests/image-fleecing @@ -213,8 +213,7 @@ def do_test(vm, use_cbw, use_snapshot_access_filter, ba= se_img_path, result =3D vm.qmp('query-block-jobs') assert len(result['return']) =3D=3D 1 =20 - result =3D vm.qmp('block-job-set-speed', device=3D'push-backup', s= peed=3D0) - assert result =3D=3D {'return': {}} + vm.cmd('block-job-set-speed', device=3D'push-backup', speed=3D0) =20 log(vm.event_wait(name=3D'BLOCK_JOB_COMPLETED', match=3D{'data': {'device': 'push-backup'}}), diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test b/tests= /qemu-iotests/tests/migrate-bitmaps-postcopy-test index dda55fad28..c519e6db8c 100755 --- a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test +++ b/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test @@ -118,11 +118,10 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTes= tCase): def start_postcopy(self): """ Run migration until RESUME event on target. Return this event.= """ for i in range(nb_bitmaps): - result =3D self.vm_a.qmp('block-dirty-bitmap-add', node=3D'dri= ve0', - name=3D'bitmap{}'.format(i), - granularity=3Dgranularity, - persistent=3DTrue) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-add', node=3D'drive0', + name=3D'bitmap{}'.format(i), + granularity=3Dgranularity, + persistent=3DTrue) =20 result =3D self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256', node=3D'drive0', name=3D'bitmap0') @@ -140,9 +139,8 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestC= ase): # We want to calculate resulting sha256. Do it in bitmap0, so, dis= able # other bitmaps for i in range(1, nb_bitmaps): - result =3D self.vm_a.qmp('block-dirty-bitmap-disable', node=3D= 'drive0', - name=3D'bitmap{}'.format(i)) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-disable', node=3D'drive0', + name=3D'bitmap{}'.format(i)) =20 apply_discards(self.vm_a, discards2) =20 @@ -152,24 +150,19 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTes= tCase): =20 # Now, enable some bitmaps, to be updated during migration for i in range(2, nb_bitmaps, 2): - result =3D self.vm_a.qmp('block-dirty-bitmap-enable', node=3D'= drive0', - name=3D'bitmap{}'.format(i)) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('block-dirty-bitmap-enable', node=3D'drive0', + name=3D'bitmap{}'.format(i)) =20 caps =3D [{'capability': 'dirty-bitmaps', 'state': True}, {'capability': 'events', 'state': True}] =20 - result =3D self.vm_a.qmp('migrate-set-capabilities', capabilities= =3Dcaps) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate-set-capabilities', capabilities=3Dcaps) =20 - result =3D self.vm_b.qmp('migrate-set-capabilities', capabilities= =3Dcaps) - self.assert_qmp(result, 'return', {}) + self.vm_b.cmd('migrate-set-capabilities', capabilities=3Dcaps) =20 - result =3D self.vm_a.qmp('migrate', uri=3D'exec:cat>' + fifo) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate', uri=3D'exec:cat>' + fifo) =20 - result =3D self.vm_a.qmp('migrate-start-postcopy') - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate-start-postcopy') =20 event_resume =3D self.vm_b.event_wait('RESUME') self.vm_b_events.append(event_resume) diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-test b/tests/qemu-iot= ests/tests/migrate-bitmaps-test index eebb256485..f98e721e97 100755 --- a/tests/qemu-iotests/tests/migrate-bitmaps-test +++ b/tests/qemu-iotests/tests/migrate-bitmaps-test @@ -67,8 +67,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): if persistent: params['persistent'] =3D True =20 - result =3D vm.qmp('block-dirty-bitmap-add', params) - self.assert_qmp(result, 'return', {}) + vm.cmd('block-dirty-bitmap-add', params) =20 def check_bitmap(self, vm, sha256): result =3D vm.qmp('x-debug-block-dirty-bitmap-sha256', @@ -91,17 +90,15 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): if migrate_bitmaps: mig_caps.append({'capability': 'dirty-bitmaps', 'state': True}) =20 - result =3D self.vm_a.qmp('migrate-set-capabilities', - capabilities=3Dmig_caps) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate-set-capabilities', + capabilities=3Dmig_caps) =20 self.add_bitmap(self.vm_a, granularity, persistent) for r in regions: self.vm_a.hmp_qemu_io('drive0', 'write %d %d' % r) sha256 =3D get_bitmap_hash(self.vm_a) =20 - result =3D self.vm_a.qmp('migrate', uri=3Dmig_cmd) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate', uri=3Dmig_cmd) while True: event =3D self.vm_a.event_wait('MIGRATION') if event['data']['status'] =3D=3D 'completed': @@ -115,8 +112,7 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): removed =3D (not migrate_bitmaps) and persistent self.check_bitmap(self.vm_a, False if removed else sha256) =20 - result =3D self.vm_a.qmp('cont') - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('cont') =20 # test that bitmap is still here after invalidation self.check_bitmap(self.vm_a, sha256) @@ -159,9 +155,8 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): if online: os.mkfifo(mig_file) self.vm_b.launch() - result =3D self.vm_b.qmp('migrate-set-capabilities', - capabilities=3Dmig_caps) - self.assert_qmp(result, 'return', {}) + self.vm_b.cmd('migrate-set-capabilities', + capabilities=3Dmig_caps) =20 self.add_bitmap(self.vm_a, granularity, persistent) for r in regions: @@ -172,12 +167,10 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): self.vm_a.shutdown() self.vm_a.launch() =20 - result =3D self.vm_a.qmp('migrate-set-capabilities', - capabilities=3Dmig_caps) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate-set-capabilities', + capabilities=3Dmig_caps) =20 - result =3D self.vm_a.qmp('migrate', uri=3Dmig_cmd) - self.assert_qmp(result, 'return', {}) + self.vm_a.cmd('migrate', uri=3Dmig_cmd) while True: event =3D self.vm_a.event_wait('MIGRATION') if event['data']['status'] =3D=3D 'completed': @@ -186,11 +179,9 @@ class TestDirtyBitmapMigration(iotests.QMPTestCase): if not online: self.vm_a.shutdown() self.vm_b.launch() - result =3D self.vm_b.qmp('migrate-set-capabilities', - capabilities=3Dmig_caps) - self.assert_qmp(result, 'return', {}) - result =3D self.vm_b.qmp('migrate-incoming', uri=3Dincoming_cm= d) - self.assert_qmp(result, 'return', {}) + self.vm_b.cmd('migrate-set-capabilities', + capabilities=3Dmig_caps) + self.vm_b.cmd('migrate-incoming', uri=3Dincoming_cmd) =20 while True: event =3D self.vm_b.event_wait('MIGRATION') @@ -256,8 +247,7 @@ class TestDirtyBitmapBackingMigration(iotests.QMPTestCa= se): self.vm =3D iotests.VM() self.vm.launch() =20 - result =3D self.vm.qmp('blockdev-add', blockdev) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-add', blockdev) =20 # Check that the bitmaps are there nodes =3D self.vm.qmp('query-named-block-nodes', flat=3DTrue)['ret= urn'] @@ -266,8 +256,7 @@ class TestDirtyBitmapBackingMigration(iotests.QMPTestCa= se): self.assert_qmp(node, 'dirty-bitmaps[0]/name', 'bmap0') =20 caps =3D [{'capability': 'events', 'state': True}] - result =3D self.vm.qmp('migrate-set-capabilities', capabilities=3D= caps) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('migrate-set-capabilities', capabilities=3Dcaps) =20 def tearDown(self): self.vm.shutdown() @@ -278,14 +267,12 @@ class TestDirtyBitmapBackingMigration(iotests.QMPTest= Case): """ Continue the source after migration. """ - result =3D self.vm.qmp('migrate', uri=3D'exec: cat > /dev/null') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('migrate', uri=3D'exec: cat > /dev/null') =20 with Timeout(10, 'Migration timeout'): self.vm.wait_migration('postmigrate') =20 - result =3D self.vm.qmp('cont') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('cont') =20 =20 def main() -> None: diff --git a/tests/qemu-iotests/tests/migrate-during-backup b/tests/qemu-io= tests/tests/migrate-during-backup index 34103229ee..afb2277896 100755 --- a/tests/qemu-iotests/tests/migrate-during-backup +++ b/tests/qemu-iotests/tests/migrate-during-backup @@ -43,7 +43,7 @@ class TestMigrateDuringBackup(iotests.QMPTestCase): =20 self.vm =3D iotests.VM().add_drive(disk_a) self.vm.launch() - result =3D self.vm.qmp('blockdev-add', { + self.vm.cmd('blockdev-add', { 'node-name': 'target', 'driver': iotests.imgfmt, 'file': { @@ -51,26 +51,21 @@ class TestMigrateDuringBackup(iotests.QMPTestCase): 'filename': disk_b } }) - self.assert_qmp(result, 'return', {}) =20 def test_migrate(self): - result =3D self.vm.qmp('blockdev-backup', device=3D'drive0', - target=3D'target', sync=3D'full', - speed=3D1, x_perf=3D{ - 'max-workers': 1, - 'max-chunk': 64 * 1024 - }) - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('job-pause', id=3D'drive0') - self.assert_qmp(result, 'return', {}) - - result =3D self.vm.qmp('migrate-set-capabilities', - capabilities=3D[{'capability': 'events', - 'state': True}]) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('migrate', uri=3Dmig_cmd) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-backup', device=3D'drive0', + target=3D'target', sync=3D'full', + speed=3D1, x_perf=3D{ + 'max-workers': 1, + 'max-chunk': 64 * 1024 + }) + + self.vm.cmd('job-pause', id=3D'drive0') + + self.vm.cmd('migrate-set-capabilities', + capabilities=3D[{'capability': 'events', + 'state': True}]) + self.vm.cmd('migrate', uri=3Dmig_cmd) =20 e =3D self.vm.events_wait((('MIGRATION', {'data': {'status': 'completed'}}), @@ -80,11 +75,9 @@ class TestMigrateDuringBackup(iotests.QMPTestCase): # Don't assert that e is 'failed' now: this way we'll miss # possible crash when backup continues :) =20 - result =3D self.vm.qmp('block-job-set-speed', device=3D'drive0', - speed=3D0) - self.assert_qmp(result, 'return', {}) - result =3D self.vm.qmp('job-resume', id=3D'drive0') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-set-speed', device=3D'drive0', + speed=3D0) + self.vm.cmd('job-resume', id=3D'drive0') =20 # For future: if something changes so that both migration # and backup pass, let's not miss that moment, as it may diff --git a/tests/qemu-iotests/tests/migration-permissions b/tests/qemu-io= tests/tests/migration-permissions index 4e1da369c9..0deaad2d3a 100755 --- a/tests/qemu-iotests/tests/migration-permissions +++ b/tests/qemu-iotests/tests/migration-permissions @@ -47,11 +47,10 @@ class TestMigrationPermissions(iotests.QMPTestCase): =20 vms[i].launch() =20 - result =3D vms[i].qmp('migrate-set-capabilities', - capabilities=3D[ - {'capability': 'events', 'state': True} - ]) - self.assert_qmp(result, 'return', {}) + vms[i].cmd('migrate-set-capabilities', + capabilities=3D[ + {'capability': 'events', 'state': True} + ]) =20 self.vm_s =3D vms[0] self.vm_d =3D vms[1] diff --git a/tests/qemu-iotests/tests/mirror-ready-cancel-error b/tests/qem= u-iotests/tests/mirror-ready-cancel-error index a59e245659..ed2e46447e 100755 --- a/tests/qemu-iotests/tests/mirror-ready-cancel-error +++ b/tests/qemu-iotests/tests/mirror-ready-cancel-error @@ -48,51 +48,48 @@ class TestMirrorReadyCancelError(iotests.QMPTestCase): os.remove(target) =20 def add_blockdevs(self, once: bool) -> None: - res =3D self.vm.qmp('blockdev-add', - {'node-name': 'source', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'file', - 'filename': source - }}) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('blockdev-add', + {'node-name': 'source', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'file', + 'filename': source + }}) =20 # blkdebug notes: # Enter state 2 on the first flush, which happens before the # job enters the READY state. The second flush will happen # when the job is about to complete, and we want that one to # fail. - res =3D self.vm.qmp('blockdev-add', - {'node-name': 'target', - 'driver': iotests.imgfmt, - 'file': { - 'driver': 'blkdebug', - 'image': { - 'driver': 'file', - 'filename': target - }, - 'set-state': [{ - 'event': 'flush_to_disk', - 'state': 1, - 'new_state': 2 - }], - 'inject-error': [{ - 'event': 'flush_to_disk', - 'once': once, - 'immediately': True, - 'state': 2 - }]}}) - self.assert_qmp(res, 'return', {}) + self.vm.cmd('blockdev-add', + {'node-name': 'target', + 'driver': iotests.imgfmt, + 'file': { + 'driver': 'blkdebug', + 'image': { + 'driver': 'file', + 'filename': target + }, + 'set-state': [{ + 'event': 'flush_to_disk', + 'state': 1, + 'new_state': 2 + }], + 'inject-error': [{ + 'event': 'flush_to_disk', + 'once': once, + 'immediately': True, + 'state': 2 + }]}}) =20 def start_mirror(self) -> None: - res =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'source', - target=3D'target', - filter_node_name=3D'mirror-top', - sync=3D'full', - on_target_error=3D'stop') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'source', + target=3D'target', + filter_node_name=3D'mirror-top', + sync=3D'full', + on_target_error=3D'stop') =20 def cancel_mirror_with_error(self) -> None: self.vm.event_wait('BLOCK_JOB_READY') @@ -107,8 +104,7 @@ class TestMirrorReadyCancelError(iotests.QMPTestCase): while self.vm.event_wait('JOB_STATUS_CHANGE', timeout=3D0.0) is no= t None: pass =20 - res =3D self.vm.qmp('block-job-cancel', device=3D'mirror') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-job-cancel', device=3D'mirror') =20 self.vm.event_wait('BLOCK_JOB_ERROR') =20 diff --git a/tests/qemu-iotests/tests/mirror-top-perms b/tests/qemu-iotests= /tests/mirror-top-perms index 8bca592708..fab9907e92 100755 --- a/tests/qemu-iotests/tests/mirror-top-perms +++ b/tests/qemu-iotests/tests/mirror-top-perms @@ -78,12 +78,11 @@ class TestMirrorTopPerms(iotests.QMPTestCase): difficult to let some other qemu process open the image.) """ =20 - result =3D self.vm.qmp('blockdev-mirror', - job_id=3D'mirror', - device=3D'drive0', - target=3D'null', - sync=3D'full') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('blockdev-mirror', + job_id=3D'mirror', + device=3D'drive0', + target=3D'null', + sync=3D'full') =20 self.vm.event_wait('BLOCK_JOB_READY') =20 @@ -105,9 +104,8 @@ class TestMirrorTopPerms(iotests.QMPTestCase): except machine.VMLaunchFailure as exc: assert 'Is another process using the image' in exc.output =20 - result =3D self.vm.qmp('block-job-cancel', - device=3D'mirror') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-job-cancel', + device=3D'mirror') =20 self.vm.event_wait('BLOCK_JOB_COMPLETED') =20 diff --git a/tests/qemu-iotests/tests/nbd-multiconn b/tests/qemu-iotests/te= sts/nbd-multiconn index b121f2e363..82b5fd79dd 100755 --- a/tests/qemu-iotests/tests/nbd-multiconn +++ b/tests/qemu-iotests/tests/nbd-multiconn @@ -46,12 +46,11 @@ class TestNbdMulticonn(iotests.QMPTestCase): =20 self.vm =3D iotests.VM() self.vm.launch() - result =3D self.vm.qmp('blockdev-add', { + self.vm.cmd('blockdev-add', { 'driver': 'qcow2', 'node-name': 'n', 'file': {'driver': 'file', 'filename': disk} }) - self.assert_qmp(result, 'return', {}) =20 def tearDown(self): self.vm.shutdown() @@ -72,12 +71,10 @@ class TestNbdMulticonn(iotests.QMPTestCase): if max_connections is not None: args['max-connections'] =3D max_connections =20 - result =3D self.vm.qmp('nbd-server-start', args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-start', args) yield =20 - result =3D self.vm.qmp('nbd-server-stop') - self.assert_qmp(result, 'return', {}) + self.vm.cmd('nbd-server-stop') =20 def add_export(self, name, writable=3DNone): args =3D { @@ -89,8 +86,7 @@ class TestNbdMulticonn(iotests.QMPTestCase): if writable is not None: args['writable'] =3D writable =20 - result =3D self.vm.qmp('block-export-add', args) - self.assert_qmp(result, 'return', {}) + self.vm.cmd('block-export-add', args) =20 def test_default_settings(self): with self.run_server(): diff --git a/tests/qemu-iotests/tests/reopen-file b/tests/qemu-iotests/test= s/reopen-file index 8590a94d53..5a50794ffc 100755 --- a/tests/qemu-iotests/tests/reopen-file +++ b/tests/qemu-iotests/tests/reopen-file @@ -64,12 +64,11 @@ class TestReopenFile(QMPTestCase): self.fail('qemu-io pattern verification failed') =20 def test_reopen_file(self) -> None: - result =3D self.vm.qmp('blockdev-reopen', options=3D[{ + self.vm.cmd('blockdev-reopen', options=3D[{ 'driver': imgfmt, 'node-name': 'format', 'file': 'raw' }]) - self.assert_qmp(result, 'return', {}) =20 # Do some I/O to the image to see whether it still works # (Pattern verification will be checked by tearDown()) diff --git a/tests/qemu-iotests/tests/stream-error-on-reset b/tests/qemu-io= tests/tests/stream-error-on-reset index 5a8c3a9e8d..b60aabb68e 100755 --- a/tests/qemu-iotests/tests/stream-error-on-reset +++ b/tests/qemu-iotests/tests/stream-error-on-reset @@ -115,8 +115,7 @@ class TestStreamErrorOnReset(QMPTestCase): # Launch a stream job, which will take at least a second to # complete, because the base image is throttled (so we can # get in between it having started and it having completed) - res =3D self.vm.qmp('block-stream', job_id=3D'stream', device=3D't= op') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('block-stream', job_id=3D'stream', device=3D'top') =20 while True: ev =3D self.vm.event_wait('JOB_STATUS_CHANGE') @@ -125,8 +124,7 @@ class TestStreamErrorOnReset(QMPTestCase): # forces the virtio-scsi device to be reset, thus draining # the stream job, and making it complete. Completing # inside of that drain should not result in a segfault. - res =3D self.vm.qmp('system_reset') - self.assert_qmp(res, 'return', {}) + self.vm.cmd('system_reset') elif ev['data']['status'] =3D=3D 'null': # The test is done once the job is gone break --=20 2.34.1