From: Eduardo Habkost <ehabkost@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <ehabkost@redhat.com>,
qemu-block@nongnu.org, "Fam Zheng" <famz@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>, "Max Reitz" <mreitz@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Cleber Rosa" <crosa@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: [Qemu-devel] [PULL 15/15] scripts/qemu.py: use a more consistent docstring style
Date: Tue, 30 Oct 2018 21:31:20 -0300 [thread overview]
Message-ID: <20181031003120.26771-16-ehabkost@redhat.com> (raw)
In-Reply-To: <20181031003120.26771-1-ehabkost@redhat.com>
From: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20181004161852.11673-10-crosa@redhat.com>
[ehabkost: reverted unintentional submodule update]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
scripts/qemu.py | 65 +++++++++++++++++++++++++++++++------------------
1 file changed, 41 insertions(+), 24 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index 768611f1de..6e3b0e6771 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -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:"
--
2.18.0.rc1.1.g3f1ff2140
next prev parent reply other threads:[~2018-10-31 0:32 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-31 0:31 [Qemu-devel] [PULL 00/15] Python queue, 2018-10-30 Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 01/15] scripts/device-crash-test: Remove devices that are not user_creatable anymore Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 02/15] iotests: Make nbd-fault-injector flush Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 03/15] iotests: Flush in iotests.py's QemuIoInteractive Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 04/15] iotests: Use Python byte strings where appropriate Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 05/15] iotests: Use // for Python integer division Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 06/15] iotests: Different iterator behavior in Python 3 Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 07/15] iotests: Explicitly bequeath FDs in Python Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 08/15] iotests: 'new' module replacement in 169 Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 09/15] iotests: Modify imports for Python 3 Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 10/15] iotests: Unify log outputs between Python 2 and 3 Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 11/15] Bootstrap Python venv for tests Eduardo Habkost
2018-11-06 13:10 ` Peter Maydell
2018-11-06 13:34 ` Philippe Mathieu-Daudé
2018-11-06 14:13 ` [Qemu-devel] [PATCH] tests: Fix Python 3 detection on older GNU make versions Eduardo Habkost
2018-11-06 14:27 ` Philippe Mathieu-Daudé
2018-11-06 14:38 ` Philippe Mathieu-Daudé
2018-11-06 15:40 ` Peter Maydell
2018-11-07 6:05 ` [Qemu-devel] [Qemu-block] " Markus Armbruster
2018-11-07 11:25 ` Peter Maydell
2018-11-07 12:49 ` Eduardo Habkost
2018-11-07 13:45 ` Peter Maydell
2018-11-07 15:34 ` Eduardo Habkost
2018-11-07 16:22 ` Markus Armbruster
2018-11-08 1:13 ` Cleber Rosa
2018-11-08 8:45 ` Markus Armbruster
2018-11-08 9:11 ` Philippe Mathieu-Daudé
2018-11-08 12:43 ` Markus Armbruster
2018-11-09 17:58 ` Max Reitz
2018-11-12 9:07 ` Markus Armbruster
2018-11-08 16:06 ` Cleber Rosa
2018-11-08 16:51 ` Eduardo Habkost
2018-11-08 17:36 ` Cleber Rosa
2018-11-08 18:26 ` Eduardo Habkost
2018-11-09 0:31 ` Cleber Rosa
2018-10-31 0:31 ` [Qemu-devel] [PULL 12/15] Acceptance tests: add make rule for running them Eduardo Habkost
2018-11-06 23:24 ` Paolo Bonzini
2018-11-28 17:25 ` Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 13/15] Travis support for the acceptance tests Eduardo Habkost
2018-10-31 0:31 ` [Qemu-devel] [PULL 14/15] scripts/decodetree.py: fix reference to attributes Eduardo Habkost
2018-10-31 0:31 ` Eduardo Habkost [this message]
2018-11-01 5:02 ` [Qemu-devel] [PULL 00/15] Python queue, 2018-10-30 no-reply
2018-11-01 13:54 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181031003120.26771-16-ehabkost@redhat.com \
--to=ehabkost@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=crosa@redhat.com \
--cc=f4bug@amsat.org \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).