docs: Correct outdated information on QAPI

* Fix guidance on error classes

* Point to generated documentation

* Drop plea for documentation, because the QAPI code generator
  enforces it since commit 3313b6124b

* Minor tweaks here and there

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20180211093607.27351-27-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Markus Armbruster 2018-02-11 10:36:04 +01:00 committed by Eric Blake
parent bfe873e988
commit bb46af41b9
2 changed files with 11 additions and 17 deletions

View File

@ -36,9 +36,9 @@ very simple and get more complex as we progress.
For all the examples in the next sections, the test setup is the same and is
shown here.
First, QEMU should be started as:
First, QEMU should be started like this:
# /path/to/your/source/qemu [...] \
# qemu-system-TARGET [...] \
-chardev socket,id=qmp,port=4444,host=localhost,server \
-mon chardev=qmp,mode=control,pretty=on
@ -179,7 +179,7 @@ described in the "Testing" section and then send two commands:
}
}
You should see "Hello, world" and "we love qemu" in the terminal running qemu,
You should see "Hello, world" and "We love qemu" in the terminal running qemu,
if you don't see these strings, then something went wrong.
=== Errors ===
@ -221,30 +221,23 @@ The QMP server's response should be:
}
}
As a general rule, all QMP errors should use ERROR_CLASS_GENERIC_ERROR
(done by default when using error_setg()). There are two exceptions to
this rule:
Note that error_setg() produces a "GenericError" class. In general,
all QMP errors should have that error class. There are two exceptions
to this rule:
1. A non-generic ErrorClass value exists* for the failure you want to report
(eg. DeviceNotFound)
1. To support a management application's need to recognize a specific
error for special handling
2. Management applications have to take special action on the failure you
want to report, hence you have to add a new ErrorClass value so that they
can check for it
2. Backward compatibility
If the failure you want to report falls into one of the two cases above,
use error_set() with a second argument of an ErrorClass value.
* All existing ErrorClass values are defined in the qapi-schema.json file
=== Command Documentation ===
There's only one step missing to make "hello-world"'s implementation complete,
and that's its documentation in the schema file.
This is very important. No QMP command will be accepted in QEMU without proper
documentation.
There are many examples of such documentation in the schema file already, but
here goes "hello-world"'s new entry for qapi/misc.json:

View File

@ -78,7 +78,8 @@ Escape character is '^]'.
}
}
Please, refer to the qapi-schema.json file for a complete command reference.
Please refer to docs/interop/qemu-qmp-ref.* for a complete command
reference, generated from qapi-schema.json.
QMP wiki page
-------------