[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] a093a6: python/aqmp: add asynchronous QMP (AQ
From: |
Peter Maydell |
Subject: |
[Qemu-commits] [qemu/qemu] a093a6: python/aqmp: add asynchronous QMP (AQMP) subpackage |
Date: |
Tue, 28 Sep 2021 07:38:50 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: a093a65567c797ab0a53e8a6962043679e3ed2f2
https://github.com/qemu/qemu/commit/a093a65567c797ab0a53e8a6962043679e3ed2f2
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
A python/qemu/aqmp/__init__.py
A python/qemu/aqmp/py.typed
M python/setup.cfg
Log Message:
-----------
python/aqmp: add asynchronous QMP (AQMP) subpackage
For now, it's empty! Soon, it won't be.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-2-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: fbfb6a37a34fc08f4ff0e5e1e5aab63650af5ed4
https://github.com/qemu/qemu/commit/fbfb6a37a34fc08f4ff0e5e1e5aab63650af5ed4
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
A python/qemu/aqmp/error.py
Log Message:
-----------
python/aqmp: add error classes
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-3-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 35b9a85adea9f771ca2279ebf7666b243e92f968
https://github.com/qemu/qemu/commit/35b9a85adea9f771ca2279ebf7666b243e92f968
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/setup.cfg
Log Message:
-----------
python/pylint: Add exception for TypeVar names ('T')
'T' is a common TypeVar name, allow its use.
See also https://github.com/PyCQA/pylint/issues/3401 -- In the future,
we might be able to have a separate list of acceptable names for
TypeVars exclusively.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-4-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: a07616d612bebc6324b29d7ab0c9b84d4e9d7c42
https://github.com/qemu/qemu/commit/a07616d612bebc6324b29d7ab0c9b84d4e9d7c42
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
A python/qemu/aqmp/util.py
Log Message:
-----------
python/aqmp: add asyncio compatibility wrappers
Python 3.6 does not have all of the goodies that Python 3.7 does, and we
need to support both. Add some compatibility wrappers needed for this
purpose.
(Note: Python 3.6 is EOL December 2021.)
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-5-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 4ccaab0377dec88b5cf1a55064b4953f6ab59d9f
https://github.com/qemu/qemu/commit/4ccaab0377dec88b5cf1a55064b4953f6ab59d9f
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
A python/qemu/aqmp/protocol.py
M python/qemu/aqmp/util.py
Log Message:
-----------
python/aqmp: add generic async message-based protocol support
This is the bare minimum that you need to establish a full-duplex async
message-based protocol with Python's asyncio.
The features to be added in forthcoming commits are:
- Runstate tracking
- Logging
- Support for incoming connections via accept()
- _cb_outbound, _cb_inbound message hooks
- _readline() method
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-6-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: c58b42e095aed868b5d08b9deab61436ab45b7cf
https://github.com/qemu/qemu/commit/c58b42e095aed868b5d08b9deab61436ab45b7cf
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
M python/qemu/aqmp/protocol.py
Log Message:
-----------
python/aqmp: add runstate state machine to AsyncProtocol
This serves a few purposes:
1. Protect interfaces when it's not safe to call them (via @require)
2. Add an interface by which an async client can determine if the state
has changed, for the purposes of connection management.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-7-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: c1408345af0fd5b2e7a286743b4678bc70fe5051
https://github.com/qemu/qemu/commit/c1408345af0fd5b2e7a286743b4678bc70fe5051
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/util.py
Log Message:
-----------
python/aqmp: Add logging utility helpers
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-8-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 50e533061f30e69d618643c9513b6797019023d1
https://github.com/qemu/qemu/commit/50e533061f30e69d618643c9513b6797019023d1
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/protocol.py
Log Message:
-----------
python/aqmp: add logging to AsyncProtocol
Give the connection and the reader/writer tasks nicknames, and add
logging statements throughout.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-9-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 774c64a58d45da54a344947e7ed26814db04cc68
https://github.com/qemu/qemu/commit/774c64a58d45da54a344947e7ed26814db04cc68
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/protocol.py
Log Message:
-----------
python/aqmp: add AsyncProtocol.accept() method
It's a little messier than connect, because it wasn't designed to accept
*precisely one* connection. Such is life.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-10-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 2686ac131634365899570bd8b8df99ae50354e79
https://github.com/qemu/qemu/commit/2686ac131634365899570bd8b8df99ae50354e79
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/protocol.py
Log Message:
-----------
python/aqmp: add configurable read buffer limit
QMP can transmit some pretty big messages, and the default limit of 64KB
isn't sufficient. Make sure that we can configure it.
Reported-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-11-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 12c7a57f5be577b6bb28c8526122cc51ad40a12b
https://github.com/qemu/qemu/commit/12c7a57f5be577b6bb28c8526122cc51ad40a12b
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/protocol.py
Log Message:
-----------
python/aqmp: add _cb_inbound and _cb_outbound logging hooks
Add hooks designed to log/filter incoming/outgoing messages. The primary
intent for these is to be able to support iotests which may want to log
messages with specific filters for reproducible output.
Another use is for plugging into Urwid frameworks; all messages in/out
can be automatically added to a rendering list for the purposes of a
qmp-shell like tool.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-12-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 762bd4d7a745b3b19c4ffd3eaf4714a6961c4a11
https://github.com/qemu/qemu/commit/762bd4d7a745b3b19c4ffd3eaf4714a6961c4a11
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/protocol.py
Log Message:
-----------
python/aqmp: add AsyncProtocol._readline() method
This is added as a courtesy: many protocols are line-based, including
QMP. Putting it in AsyncProtocol lets us keep the QMP class
implementation just a pinch more abstract.
(And, if we decide to add a QTEST implementation later, it will need
this, too. (Yes, I have a QTEST implementation.))
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-13-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 08f98a22313f20a3851c9ae67dc0e8f2b931e3b3
https://github.com/qemu/qemu/commit/08f98a22313f20a3851c9ae67dc0e8f2b931e3b3
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
A python/qemu/aqmp/message.py
Log Message:
-----------
python/aqmp: add QMP Message format
The Message class is here primarily to serve as a solid type to use for
mypy static typing for unambiguous annotation and documentation.
We can also stuff JSON serialization and deserialization into this class
itself so it can be re-used even outside this infrastructure.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-14-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: ad0729994136fb479674dccd3e74ec9c49de8a1c
https://github.com/qemu/qemu/commit/ad0729994136fb479674dccd3e74ec9c49de8a1c
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
A python/qemu/aqmp/models.py
Log Message:
-----------
python/aqmp: add well-known QMP object models
The QMP spec doesn't define very many objects that are iron-clad in
their format, but there are a few. This module makes it trivial to
validate them without relying on an external third-party library.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-15-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: b3cda213a739e4e28ef7fe69a1a7e0f483e5c60c
https://github.com/qemu/qemu/commit/b3cda213a739e4e28ef7fe69a1a7e0f483e5c60c
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
A python/qemu/aqmp/events.py
Log Message:
-----------
python/aqmp: add QMP event support
This class was designed as a "mix-in" primarily so that the feature
could be given its own treatment in its own python module.
It gets quite a bit too long otherwise.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-16-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 29a8ea9ba2e5b514e969d9f7660755eb98d9922b
https://github.com/qemu/qemu/commit/29a8ea9ba2e5b514e969d9f7660755eb98d9922b
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/setup.cfg
Log Message:
-----------
python/pylint: disable too-many-function-args
too-many-function-args seems prone to failure when considering
things like Method Resolution Order, which mypy gets correct. When
dealing with multiple inheritance, pylint doesn't seem to understand
which method will actually get called, while mypy does.
Remove the less powerful, redundant check.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-17-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: c67d696b8592a85ba32dfdc1fc7449fa9b327e29
https://github.com/qemu/qemu/commit/c67d696b8592a85ba32dfdc1fc7449fa9b327e29
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
A python/qemu/aqmp/qmp_client.py
Log Message:
-----------
python/aqmp: add QMP protocol support
The star of our show!
Add most of the QMP protocol, sans support for actually executing
commands. No problem, that happens in the next several commits.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-18-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 4cd17f375daaa73f0f6fd214e08e2290d86c24be
https://github.com/qemu/qemu/commit/4cd17f375daaa73f0f6fd214e08e2290d86c24be
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/setup.cfg
Log Message:
-----------
python/pylint: disable no-member check
mypy handles this better -- but we only need the workaround because
pylint under Python 3.6 does not understand that a MutableMapping really
does have a .get() method attached.
We could remove this again once 3.7 is our minimum.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-19-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 577737be55a3e9e5d592ad31d4b7c71ebccf3dc8
https://github.com/qemu/qemu/commit/577737be55a3e9e5d592ad31d4b7c71ebccf3dc8
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/qmp_client.py
Log Message:
-----------
python/aqmp: Add message routing to QMP protocol
Add the ability to handle and route messages in qmp_protocol.py. The
interface for actually sending anything still isn't added until next
commit.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-20-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: e0fea0b3ac85aefacbecf732d18f6d7ba438fa69
https://github.com/qemu/qemu/commit/e0fea0b3ac85aefacbecf732d18f6d7ba438fa69
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
M python/qemu/aqmp/qmp_client.py
Log Message:
-----------
python/aqmp: add execute() interfaces
Add execute() and execute_msg().
_execute() is split into _issue() and _reply() halves so that
hypothetical subclasses of QMP that want to support different execution
paradigms can do so.
I anticipate a synchronous interface may have need of separating the
send/reply phases. However, I do not wish to expose that interface here
and want to actively discourage it, so they remain private interfaces.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-21-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 41f4f92260da1c45f6b68f5965a30e503f394269
https://github.com/qemu/qemu/commit/41f4f92260da1c45f6b68f5965a30e503f394269
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/qmp_client.py
Log Message:
-----------
python/aqmp: add _raw() execution interface
This is added in anticipation of wanting it for a synchronous wrapper
for the iotest interface. Normally, execute() and execute_msg() both
raise QMP errors in the form of Python exceptions.
Many iotests expect the entire reply as-is. To reduce churn there, add a
private execution interface that will ease transition churn. However, I
do not wish to encourage its use, so it will remain a private interface.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-22-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: debbabd77f340758099212985dac75b3c1bedd47
https://github.com/qemu/qemu/commit/debbabd77f340758099212985dac75b3c1bedd47
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/util.py
Log Message:
-----------
python/aqmp: add asyncio_run compatibility wrapper
As a convenience. It isn't used by the library itself, but it is used by
the test suite. It will also come in handy for users of the library
still on Python 3.6.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-23-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: ed6d4d7a95c2d508b7e6609f573042e3dabc52da
https://github.com/qemu/qemu/commit/ed6d4d7a95c2d508b7e6609f573042e3dabc52da
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/__init__.py
Log Message:
-----------
python/aqmp: add scary message
Add a warning whenever AQMP is used to steer people gently away from
using it for the time-being.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-24-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 4320f7172f66d573e31cb7ab697bca3bd3030f16
https://github.com/qemu/qemu/commit/4320f7172f66d573e31cb7ab697bca3bd3030f16
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/Pipfile.lock
M python/setup.cfg
Log Message:
-----------
python: bump avocado to v90.0
Avocado v90 includes improved support for running async unit tests. The
workaround that existed prior to v90 causes the unit tests to fail
afterwards, however, so upgrade our minimum version pin to the very
latest and greatest.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-25-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: a1f71b61ea763b5ac7429940018c1bb697889e56
https://github.com/qemu/qemu/commit/a1f71b61ea763b5ac7429940018c1bb697889e56
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
A python/tests/protocol.py
Log Message:
-----------
python/aqmp: add AsyncProtocol unit tests
This tests most of protocol.py -- From a hacked up Coverage.py run, it's
at about 86%. There's a few error cases that aren't very well tested
yet, they're hard to induce artificially so far. I'm working on it.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-26-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 8193b9d148e0d42794b78ab040c804db15b5f524
https://github.com/qemu/qemu/commit/8193b9d148e0d42794b78ab040c804db15b5f524
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/tests/protocol.py
Log Message:
-----------
python/aqmp: add LineProtocol tests
Tests a real connect, a real accept, and really sending and receiving a
message over a UNIX socket.
Brings coverage of protocol.py up to ~93%.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-27-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: a4ffaecd5726433f01b0ff857054acad9dc9df12
https://github.com/qemu/qemu/commit/a4ffaecd5726433f01b0ff857054acad9dc9df12
Author: John Snow <jsnow@redhat.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/.gitignore
M python/Makefile
M python/avocado.cfg
M python/setup.cfg
Log Message:
-----------
python/aqmp: Add Coverage.py support
I'm not exposing this via the Makefile help, it's not likely to be
useful to passersby. Switch the avocado runner to the 'legacy' runner
for now, as the new runner seems to obscure coverage reports, again.
Usage is to enter your venv of choice and then:
`make check-coverage && xdg-open htmlcov/index.html`.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-28-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 974e2f4722d719618502c43271f54cc10aec1dc7
https://github.com/qemu/qemu/commit/974e2f4722d719618502c43271f54cc10aec1dc7
Author: G S Niteesh Babu <niteesh.gs@gmail.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/Pipfile.lock
M python/setup.cfg
Log Message:
-----------
python: Add dependencies for AQMP TUI
Added dependencies for the upcoming AQMP TUI under the optional
'tui' group.
The same dependencies have also been added under the devel group
since no work around has been found for optional groups to imply
other optional groups.
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-2-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: aeb6b48a4714895a202e97a35c789ef7edf71665
https://github.com/qemu/qemu/commit/aeb6b48a4714895a202e97a35c789ef7edf71665
Author: G S Niteesh Babu <niteesh.gs@gmail.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
A python/qemu/aqmp/aqmp_tui.py
M python/setup.cfg
Log Message:
-----------
python/aqmp-tui: Add AQMP TUI
Added AQMP TUI.
Implements the follwing basic features:
1) Command transmission/reception.
2) Shows events asynchronously.
3) Shows server status in the bottom status bar.
4) Automatic retries on disconnects and error conditions.
Also added type annotations and necessary pylint/mypy configurations.
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-3-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 35755f7d4f8d5f012cd9ee9fbb303e4cce8cc0b8
https://github.com/qemu/qemu/commit/35755f7d4f8d5f012cd9ee9fbb303e4cce8cc0b8
Author: G S Niteesh Babu <niteesh.gs@gmail.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/setup.cfg
Log Message:
-----------
python: Add entry point for aqmp-tui
Add an entry point for aqmp-tui. This will allow it to be run from
the command line using "aqmp-tui localhost:1234"
More options available in the TUI can be found using "aqmp-tui -h"
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-4-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: f37c34d601b7786cf98aa8c9639b9ab6660a9af7
https://github.com/qemu/qemu/commit/f37c34d601b7786cf98aa8c9639b9ab6660a9af7
Author: G S Niteesh Babu <niteesh.gs@gmail.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/Pipfile.lock
M python/setup.cfg
Log Message:
-----------
python: add optional pygments dependency
Added pygments as optional dependency for AQMP TUI.
This is required for the upcoming syntax highlighting feature
in AQMP TUI.
The dependency has also been added in the devel optional group.
Added mypy 'ignore_missing_imports' for pygments since it does
not have any type stubs.
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-5-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 99e45a6131a7fef19ffe0190f9c479fae4850d53
https://github.com/qemu/qemu/commit/99e45a6131a7fef19ffe0190f9c479fae4850d53
Author: G S Niteesh Babu <niteesh.gs@gmail.com>
Date: 2021-09-27 (Mon, 27 Sep 2021)
Changed paths:
M python/qemu/aqmp/aqmp_tui.py
Log Message:
-----------
python/aqmp-tui: Add syntax highlighting
Add syntax highlighting for the incoming and outgoing QMP messages.
This is achieved using the pygments module which was added in a
previous commit.
The current implementation is a really simple one which doesn't
allow for any configuration. In future this has to be improved
to allow for easier theme config using an external config of
some sort.
Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-6-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Commit: 6b54a31bf7b403672a798b6443b1930ae6c74dea
https://github.com/qemu/qemu/commit/6b54a31bf7b403672a798b6443b1930ae6c74dea
Author: Peter Maydell <peter.maydell@linaro.org>
Date: 2021-09-28 (Tue, 28 Sep 2021)
Changed paths:
M python/.gitignore
M python/Makefile
M python/Pipfile.lock
M python/avocado.cfg
A python/qemu/aqmp/__init__.py
A python/qemu/aqmp/aqmp_tui.py
A python/qemu/aqmp/error.py
A python/qemu/aqmp/events.py
A python/qemu/aqmp/message.py
A python/qemu/aqmp/models.py
A python/qemu/aqmp/protocol.py
A python/qemu/aqmp/py.typed
A python/qemu/aqmp/qmp_client.py
A python/qemu/aqmp/util.py
M python/setup.cfg
A python/tests/protocol.py
Log Message:
-----------
Merge remote-tracking branch 'remotes/jsnow-gitlab/tags/python-pull-request'
into staging
Python Pull request
# gpg: Signature made Mon 27 Sep 2021 20:24:39 BST
# gpg: using RSA key F9B7ABDBBCACDF95BE76CBD07DEF8106AAFC390E
# gpg: Good signature from "John Snow (John Huston) <jsnow@redhat.com>" [full]
# Primary key fingerprint: FAEB 9711 A12C F475 812F 18F2 88A9 064D 1835 61EB
# Subkey fingerprint: F9B7 ABDB BCAC DF95 BE76 CBD0 7DEF 8106 AAFC 390E
* remotes/jsnow-gitlab/tags/python-pull-request: (32 commits)
python/aqmp-tui: Add syntax highlighting
python: add optional pygments dependency
python: Add entry point for aqmp-tui
python/aqmp-tui: Add AQMP TUI
python: Add dependencies for AQMP TUI
python/aqmp: Add Coverage.py support
python/aqmp: add LineProtocol tests
python/aqmp: add AsyncProtocol unit tests
python: bump avocado to v90.0
python/aqmp: add scary message
python/aqmp: add asyncio_run compatibility wrapper
python/aqmp: add _raw() execution interface
python/aqmp: add execute() interfaces
python/aqmp: Add message routing to QMP protocol
python/pylint: disable no-member check
python/aqmp: add QMP protocol support
python/pylint: disable too-many-function-args
python/aqmp: add QMP event support
python/aqmp: add well-known QMP object models
python/aqmp: add QMP Message format
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Compare: https://github.com/qemu/qemu/compare/14f02d8a9ec1...6b54a31bf7b4