python: create qemu packages
move python/qemu/*.py to python/qemu/[machine, qmp, utils]/*.py and
update import directives across the tree.
This is done to create a PEP420 namespace package, in which we may
create subpackages. To do this, the namespace directory ("qemu") should
not have any modules in it. Those files will go into new 'machine',
'qmp' and 'utils' subpackages instead.
Implement machine/__init__.py making the top-level classes and functions
from its various modules available directly inside the package. Change
qmp.py to qmp/__init__.py similarly, such that all of the useful QMP
library classes are available directly from "qemu.qmp" instead of
"qemu.qmp.qmp".
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Message-id: 20210527211715.394144-10-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
7f0a143b0c
commit
beb6b57b3b
17 changed files with 83 additions and 32 deletions
45
python/qemu/utils/__init__.py
Normal file
45
python/qemu/utils/__init__.py
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
"""
|
||||
QEMU development and testing utilities
|
||||
|
||||
This package provides a small handful of utilities for performing
|
||||
various tasks not directly related to the launching of a VM.
|
||||
"""
|
||||
|
||||
# Copyright (C) 2021 Red Hat Inc.
|
||||
#
|
||||
# Authors:
|
||||
# John Snow <jsnow@redhat.com>
|
||||
# Cleber Rosa <crosa@redhat.com>
|
||||
#
|
||||
# This work is licensed under the terms of the GNU GPL, version 2. See
|
||||
# the COPYING file in the top-level directory.
|
||||
#
|
||||
|
||||
import re
|
||||
from typing import Optional
|
||||
|
||||
# pylint: disable=import-error
|
||||
from .accel import kvm_available, list_accel, tcg_available
|
||||
|
||||
|
||||
__all__ = (
|
||||
'get_info_usernet_hostfwd_port',
|
||||
'kvm_available',
|
||||
'list_accel',
|
||||
'tcg_available',
|
||||
)
|
||||
|
||||
|
||||
def get_info_usernet_hostfwd_port(info_usernet_output: str) -> Optional[int]:
|
||||
"""
|
||||
Returns the port given to the hostfwd parameter via info usernet
|
||||
|
||||
:param info_usernet_output: output generated by hmp command "info usernet"
|
||||
:return: the port number allocated by the hostfwd option
|
||||
"""
|
||||
for line in info_usernet_output.split('\r\n'):
|
||||
regex = r'TCP.HOST_FORWARD.*127\.0\.0\.1\s+(\d+)\s+10\.'
|
||||
match = re.search(regex, line)
|
||||
if match is not None:
|
||||
return int(match[1])
|
||||
return None
|
||||
Loading…
Add table
Add a link
Reference in a new issue