Add qmp_qemu_io() method as a QMP counterpart to hmp_qemu_io(), using the x-qemu-io QMP command instead of human-monitor-command. The x-qemu-io command takes separate 'device' (or 'qdev') and 'command' arguments, and returns the error string.
Reviewed-by: Daniel P. Berrangé <[email protected]> Signed-off-by: Marc-Andre Lureau <[email protected]> --- tests/qemu-iotests/iotests.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 072be80e0792..c24f1e3767c4 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -953,6 +953,20 @@ def hmp_qemu_io(self, drive: str, cmd: str, d = '-d ' if qdev else '' return self.hmp(f'qemu-io {d}{drive} "{cmd}"', use_log=use_log) + def qmp_qemu_io(self, drive: str, cmd: str, + use_log: bool = False, qdev: bool = False) -> str: + """Write to a given drive using the x-qemu-io QMP command""" + kwargs: Dict[str, Any] = {'command': cmd} + if qdev: + kwargs['qdev'] = drive + else: + kwargs['device'] = drive + if use_log: + res = self.qmp_log('x-qemu-io', **kwargs) + else: + res = self.qmp('x-qemu-io', **kwargs) + return res.get('error', {}).get('desc', '') + def flatten_qmp_object(self, obj, output=None, basestr=''): if output is None: output = {} -- 2.55.0.543.g5ebe2ebe4ea8
