提交 e301e65c 编写于 作者: C Cleber Rosa 提交者: Eduardo Habkost

scripts/qemu.py: use a more consistent docstring style

Signed-off-by: NCleber Rosa <crosa@redhat.com>
Message-Id: <20181004161852.11673-10-crosa@redhat.com>
[ehabkost: reverted unintentional submodule update]
Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
上级 cbcdf1a9
......@@ -59,9 +59,9 @@ class QEMUMachineAddDeviceError(QEMUMachineError):
"""
class MonitorResponseError(qmp.qmp.QMPError):
'''
"""
Represents erroneous QMP monitor reply
'''
"""
def __init__(self, reply):
try:
desc = reply["error"]["desc"]
......@@ -72,14 +72,15 @@ class MonitorResponseError(qmp.qmp.QMPError):
class QEMUMachine(object):
'''A QEMU VM
"""
A QEMU VM
Use this object as a context manager to ensure the QEMU process terminates::
with VM(binary) as vm:
...
# vm is guaranteed to be shut down here
'''
"""
def __init__(self, binary, args=None, wrapper=None, name=None,
test_dir="/var/tmp", monitor_address=None,
......@@ -141,7 +142,9 @@ class QEMUMachine(object):
self._args.append(args)
def add_fd(self, fd, fdset, opaque, opts=''):
'''Pass a file descriptor to the VM'''
"""
Pass a file descriptor to the VM
"""
options = ['fd=%d' % fd,
'set=%d' % fdset,
'opaque=%s' % opaque]
......@@ -197,7 +200,9 @@ class QEMUMachine(object):
@staticmethod
def _remove_if_exists(path):
'''Remove file object at path if it exists'''
"""
Remove file object at path if it exists
"""
try:
os.remove(path)
except OSError as exception:
......@@ -300,7 +305,9 @@ class QEMUMachine(object):
raise
def _launch(self):
'''Launch the VM and establish a QMP connection'''
"""
Launch the VM and establish a QMP connection
"""
devnull = open(os.path.devnull, 'rb')
self._pre_launch()
self._qemu_full_args = (self._wrapper + [self._binary] +
......@@ -314,14 +321,18 @@ class QEMUMachine(object):
self._post_launch()
def wait(self):
'''Wait for the VM to power off'''
"""
Wait for the VM to power off
"""
self._popen.wait()
self._qmp.close()
self._load_io_log()
self._post_shutdown()
def shutdown(self):
'''Terminate the VM and clean up'''
"""
Terminate the VM and clean up
"""
if self.is_running():
try:
self._qmp.cmd('quit')
......@@ -345,7 +356,9 @@ class QEMUMachine(object):
self._launched = False
def qmp(self, cmd, conv_keys=True, **args):
'''Invoke a QMP command and return the response dict'''
"""
Invoke a QMP command and return the response dict
"""
qmp_args = dict()
for key, value in args.items():
if conv_keys:
......@@ -356,11 +369,11 @@ class QEMUMachine(object):
return self._qmp.cmd(cmd, args=qmp_args)
def command(self, cmd, conv_keys=True, **args):
'''
"""
Invoke a QMP command.
On success return the response dict.
On failure raise an exception.
'''
"""
reply = self.qmp(cmd, conv_keys, **args)
if reply is None:
raise qmp.qmp.QMPError("Monitor is closed")
......@@ -369,13 +382,17 @@ class QEMUMachine(object):
return reply["return"]
def get_qmp_event(self, wait=False):
'''Poll for one queued QMP events and return it'''
"""
Poll for one queued QMP events and return it
"""
if len(self._events) > 0:
return self._events.pop(0)
return self._qmp.pull_event(wait=wait)
def get_qmp_events(self, wait=False):
'''Poll for queued QMP events and return a list of dicts'''
"""
Poll for queued QMP events and return a list of dicts
"""
events = self._qmp.get_events(wait=wait)
events.extend(self._events)
del self._events[:]
......@@ -383,7 +400,7 @@ class QEMUMachine(object):
return events
def event_wait(self, name, timeout=60.0, match=None):
'''
"""
Wait for specified timeout on named event in QMP; optionally filter
results by match.
......@@ -391,7 +408,7 @@ class QEMUMachine(object):
branch processing on match's value None
{"foo": {"bar": 1}} matches {"foo": None}
{"foo": {"bar": 1}} does not matches {"foo": {"baz": None}}
'''
"""
def event_match(event, match=None):
if match is None:
return True
......@@ -424,29 +441,29 @@ class QEMUMachine(object):
return None
def get_log(self):
'''
"""
After self.shutdown or failed qemu execution, this returns the output
of the qemu process.
'''
"""
return self._iolog
def add_args(self, *args):
'''
"""
Adds to the list of extra arguments to be given to the QEMU binary
'''
"""
self._args.extend(args)
def set_machine(self, machine_type):
'''
"""
Sets the machine type
If set, the machine type will be added to the base arguments
of the resulting QEMU command line.
'''
"""
self._machine = machine_type
def set_console(self, device_type=None):
'''
"""
Sets the device type for a console device
If set, the console device and a backing character device will
......@@ -464,7 +481,7 @@ class QEMUMachine(object):
@param device_type: the device type, such as "isa-serial"
@raises: QEMUMachineAddDeviceError if the device type is not given
and can not be determined.
'''
"""
if device_type is None:
if self._machine is None:
raise QEMUMachineAddDeviceError("Can not add a console device:"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册