qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 0/7] RFC: Asynchronous QMP Draft
@ 2021-04-13 15:55 John Snow
  2021-04-13 15:55 ` [PATCH RFC 1/7] util: asyncio-related helpers John Snow
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: John Snow @ 2021-04-13 15:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: crosa, John Snow, ehabkost, stefanha, armbru

(Does not apply to the QEMU tree; this is against a blank repository.)

Hi! This is a Draft RFC for an asyncio-based Python library that
implements a QMP client. The intent is to eventually publish this
library directly to PyPI, so the design focus of this library is to be
"useful" instead of providing as low-level an interface as possible.

I am sending this to solicit general, high-level design feedback on the
overal layout and approach. Many minor details are still left to be
implemented, and a lot of the docstrings and documentation need to be
audited to make sure they still apply as I've shuffled things around a
lot in the course of development.

There are some pretty notable things missing still; in particular I need
to develop an Event API (there is a tiny stub added as a hack, but it's
very simplistic), and I also need to develop a sync bridge so that this
library could be used in existing iotests if we eventually expect to
replace the old QMP library with this one.

Scattered throughout these files are "RFC" comments and other "FIXME"
and "TODO" items where I've tried to stub out some of the things I am
still unsure of.

Thanks!

John Snow (7):
  util: asyncio-related helpers
  error: Error classes and so on.
  protocol: generic async message-based protocol loop
  message: add QMP Message type
  models: Add well-known QMP objects
  qmp_protocol: add QMP client implementation
  linter config

 .flake8         |   2 +
 error.py        | 163 +++++++++++
 message.py      | 196 ++++++++++++++
 models.py       | 177 ++++++++++++
 protocol.py     | 704 ++++++++++++++++++++++++++++++++++++++++++++++++
 pylintrc        |  53 ++++
 qmp_protocol.py | 420 +++++++++++++++++++++++++++++
 util.py         |  87 ++++++
 8 files changed, 1802 insertions(+)
 create mode 100644 .flake8
 create mode 100644 error.py
 create mode 100644 message.py
 create mode 100644 models.py
 create mode 100644 protocol.py
 create mode 100644 pylintrc
 create mode 100644 qmp_protocol.py
 create mode 100644 util.py

-- 
2.30.2




^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2021-04-20  2:48 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-13 15:55 [PATCH RFC 0/7] RFC: Asynchronous QMP Draft John Snow
2021-04-13 15:55 ` [PATCH RFC 1/7] util: asyncio-related helpers John Snow
2021-04-13 15:55 ` [PATCH RFC 2/7] error: Error classes and so on John Snow
2021-04-13 15:55 ` [PATCH RFC 3/7] protocol: generic async message-based protocol loop John Snow
2021-04-13 20:00   ` Stefan Hajnoczi
2021-04-14 17:29     ` John Snow
2021-04-15  9:14       ` Stefan Hajnoczi
2021-04-13 15:55 ` [PATCH RFC 4/7] message: add QMP Message type John Snow
2021-04-13 20:07   ` Stefan Hajnoczi
2021-04-14 17:39     ` John Snow
2021-04-13 15:55 ` [PATCH RFC 5/7] models: Add well-known QMP objects John Snow
2021-04-13 15:55 ` [PATCH RFC 6/7] qmp_protocol: add QMP client implementation John Snow
2021-04-14  5:44   ` Stefan Hajnoczi
2021-04-14 17:50     ` John Snow
2021-04-15  9:23       ` Stefan Hajnoczi
2021-04-13 15:55 ` [PATCH RFC 7/7] linter config John Snow
2021-04-14  6:38 ` [PATCH RFC 0/7] RFC: Asynchronous QMP Draft Stefan Hajnoczi
2021-04-14 19:17   ` John Snow
2021-04-15  9:52     ` Stefan Hajnoczi
2021-04-20  2:26       ` John Snow
2021-04-20  2:47         ` John Snow

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).