iotests.py: add and use qemu_io_wrap_args()
For qemu_io* functions support --image-opts argument, which conflicts with -f argument from qemu_io_args. For QemuIoInteractive use new wrapper as well, which allows relying on default format. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Nikita Lapshin <nikita.lapshin@virtuozzo.com>
This commit is contained in:
parent
c34ec5137d
commit
94a781f220
|
@ -241,10 +241,15 @@ def img_info_log(filename, filter_path=None, imgopts=False, extra_args=()):
|
||||||
filter_path = filename
|
filter_path = filename
|
||||||
log(filter_img_info(output, filter_path))
|
log(filter_img_info(output, filter_path))
|
||||||
|
|
||||||
|
def qemu_io_wrap_args(args: Sequence[str]) -> List[str]:
|
||||||
|
if '-f' in args or '--image-opts' in args:
|
||||||
|
return qemu_io_args_no_fmt + list(args)
|
||||||
|
else:
|
||||||
|
return qemu_io_args + list(args)
|
||||||
|
|
||||||
def qemu_io(*args):
|
def qemu_io(*args):
|
||||||
'''Run qemu-io and return the stdout data'''
|
'''Run qemu-io and return the stdout data'''
|
||||||
args = qemu_io_args + list(args)
|
return qemu_tool_pipe_and_status('qemu-io', qemu_io_wrap_args(args))[0]
|
||||||
return qemu_tool_pipe_and_status('qemu-io', args)[0]
|
|
||||||
|
|
||||||
def qemu_io_log(*args):
|
def qemu_io_log(*args):
|
||||||
result = qemu_io(*args)
|
result = qemu_io(*args)
|
||||||
|
@ -253,12 +258,7 @@ def qemu_io_log(*args):
|
||||||
|
|
||||||
def qemu_io_silent(*args):
|
def qemu_io_silent(*args):
|
||||||
'''Run qemu-io and return the exit code, suppressing stdout'''
|
'''Run qemu-io and return the exit code, suppressing stdout'''
|
||||||
if '-f' in args or '--image-opts' in args:
|
args = qemu_io_wrap_args(args)
|
||||||
default_args = qemu_io_args_no_fmt
|
|
||||||
else:
|
|
||||||
default_args = qemu_io_args
|
|
||||||
|
|
||||||
args = default_args + list(args)
|
|
||||||
result = subprocess.run(args, stdout=subprocess.DEVNULL, check=False)
|
result = subprocess.run(args, stdout=subprocess.DEVNULL, check=False)
|
||||||
if result.returncode < 0:
|
if result.returncode < 0:
|
||||||
sys.stderr.write('qemu-io received signal %i: %s\n' %
|
sys.stderr.write('qemu-io received signal %i: %s\n' %
|
||||||
|
@ -267,14 +267,14 @@ def qemu_io_silent(*args):
|
||||||
|
|
||||||
def qemu_io_silent_check(*args):
|
def qemu_io_silent_check(*args):
|
||||||
'''Run qemu-io and return the true if subprocess returned 0'''
|
'''Run qemu-io and return the true if subprocess returned 0'''
|
||||||
args = qemu_io_args + list(args)
|
args = qemu_io_wrap_args(args)
|
||||||
result = subprocess.run(args, stdout=subprocess.DEVNULL,
|
result = subprocess.run(args, stdout=subprocess.DEVNULL,
|
||||||
stderr=subprocess.STDOUT, check=False)
|
stderr=subprocess.STDOUT, check=False)
|
||||||
return result.returncode == 0
|
return result.returncode == 0
|
||||||
|
|
||||||
class QemuIoInteractive:
|
class QemuIoInteractive:
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
self.args = qemu_io_args_no_fmt + list(args)
|
self.args = qemu_io_wrap_args(args)
|
||||||
# We need to keep the Popen objext around, and not
|
# We need to keep the Popen objext around, and not
|
||||||
# close it immediately. Therefore, disable the pylint check:
|
# close it immediately. Therefore, disable the pylint check:
|
||||||
# pylint: disable=consider-using-with
|
# pylint: disable=consider-using-with
|
||||||
|
|
Loading…
Reference in a new issue