libvirt/docs
Eric Blake b9dd878ff8 util: make it easier to grab only regular command exit
Auditing all callers of virCommandRun and virCommandWait that
passed a non-NULL pointer for exit status turned up some
interesting observations.  Many callers were merely passing
a pointer to avoid the overall command dying, but without
caring what the exit status was - but these callers would
be better off treating a child death by signal as an abnormal
exit.  Other callers were actually acting on the status, but
not all of them remembered to filter by WIFEXITED and convert
with WEXITSTATUS; depending on the platform, this can result
in a status being reported as 256 times too big.  And among
those that correctly parse the output, it gets rather verbose.
Finally, there were the callers that explicitly checked that
the status was 0, and gave their own message, but with fewer
details than what virCommand gives for free.

So the best idea is to move the complexity out of callers and
into virCommand - by default, we return the actual exit status
already cleaned through WEXITSTATUS and treat signals as a
failed command; but the few callers that care can ask for raw
status and act on it themselves.

* src/util/vircommand.h (virCommandRawStatus): New prototype.
* src/libvirt_private.syms (util/command.h): Export it.
* docs/internals/command.html.in: Document it.
* src/util/vircommand.c (virCommandRawStatus): New function.
(virCommandWait): Adjust semantics.
* tests/commandtest.c (test1): Test it.
* daemon/remote.c (remoteDispatchAuthPolkit): Adjust callers.
* src/access/viraccessdriverpolkit.c (virAccessDriverPolkitCheck):
Likewise.
* src/fdstream.c (virFDStreamCloseInt): Likewise.
* src/lxc/lxc_process.c (virLXCProcessStart): Likewise.
* src/qemu/qemu_command.c (qemuCreateInBridgePortWithHelper):
Likewise.
* src/xen/xen_driver.c (xenUnifiedXendProbe): Simplify.
* tests/reconnect.c (mymain): Likewise.
* tests/statstest.c (mymain): Likewise.
* src/bhyve/bhyve_process.c (virBhyveProcessStart)
(virBhyveProcessStop): Don't overwrite virCommand error.
* src/libvirt.c (virConnectAuthGainPolkit): Likewise.
* src/openvz/openvz_driver.c (openvzDomainGetBarrierLimit)
(openvzDomainSetBarrierLimit): Likewise.
* src/util/virebtables.c (virEbTablesOnceInit): Likewise.
* src/util/viriptables.c (virIpTablesOnceInit): Likewise.
* src/util/virnetdevveth.c (virNetDevVethCreate): Fix debug
message.
* src/qemu/qemu_capabilities.c (virQEMUCapsInitQMP): Add comment.
* src/storage/storage_backend_iscsi.c
(virStorageBackendISCSINodeUpdate): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-03-03 12:40:32 -07:00
..
api_extension
devhelp
html
internals util: make it easier to grab only regular command exit 2014-03-03 12:40:32 -07:00
schemas conf: Add keyboard input device type 2014-02-19 09:16:31 +01:00
32favicon.png
404.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
acl.html.in Add documentation for access control system 2013-08-09 17:13:02 +01:00
aclpolkit.html.in docs: aclpolkit: Fix a heading typo 2013-10-04 13:38:57 -04:00
api_extension.html.in maint: improve VIR_ERR_INVALID_CONN usage 2014-01-06 21:41:02 -07:00
api.html.in Fix typos in various docs 2013-12-02 10:21:26 +08:00
apibuild.py Test for object identity when checking for None in Python 2013-08-23 08:12:26 +02:00
apps.html.in Link libvirt-sandbox from apps page 2013-12-02 10:46:40 +08:00
archdomain.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
architecture.fig
architecture.gif
architecture.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
archnetwork.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
archnode.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
archstorage.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
auditlog.html.in docs: fix some typos 2013-12-02 11:59:18 -07:00
auth.html.in Add documentation for access control system 2013-08-09 17:13:02 +01:00
bindings.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
bugs.html.in Fix typos in various docs 2013-12-02 10:21:26 +08:00
cgroups.html.in Improve cgroups docs to cover systemd integration 2013-11-12 11:23:00 +00:00
compiling.html.in build: honor autogen.sh --no-git 2013-07-09 16:15:29 -06:00
contact.html.in Document security reporting & handling process 2013-07-01 11:08:58 +08:00
csharp.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
deployment.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
devguide.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
docs.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
downloads.html.in docs: mention maintenance branches 2014-01-15 09:12:25 -07:00
drivers.html.in bhyve: add basic documentation 2014-03-01 23:44:58 +04:00
drvbhyve.html.in bhyve: add basic documentation 2014-03-01 23:44:58 +04:00
drvesx.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvhyperv.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvlxc.html.in LXC: added some doc on domxml-from-native with mention of limitations 2014-02-12 17:52:47 +00:00
drvopenvz.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvparallels.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvphyp.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvqemu.html.in Fix docs generator regression in previous commit 2013-05-03 16:58:46 +01:00
drvremote.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvtest.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
drvuml.html.in docs: typo fix 2014-03-03 17:41:26 +04:00
drvvbox.html.in Move VirtualBox driver into libvirtd 2013-05-16 16:28:53 +01:00
drvvmware.html.in VMware: Initial VMware Fusion support 2013-09-29 18:40:36 +08:00
drvxen.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
errors.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
et.png
firewall.html.in Fix typos in various docs 2013-12-02 10:21:26 +08:00
footer_corner.png
footer_pattern.png
format.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
formatcaps.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
formatdomain.html.in Document the keyboard as a valid input type 2014-02-24 18:55:00 +01:00
formatnetwork.html.in bandwidth: Adjust documentation 2014-02-20 14:53:36 -05:00
formatnode.html.in docs: fix usb node device sub-element names 2013-08-15 11:40:50 +02:00
formatnwfilter.html.in docs: fix a typo in formatnwfilter.html.in 2013-11-15 06:00:49 -07:00
formatsecret.html.in docs: remove <auth> from secret XML format 2014-02-14 16:47:14 +01:00
formatsnapshot.html.in qemu: snapshot: Add support for external active snapshots on gluster 2014-02-14 11:07:29 +01:00
formatstorage.html.in storage: add network-dir as new storage volume type 2013-11-25 12:29:49 -07:00
formatstorageencryption.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
genaclperms.pl Add documentation for access control system 2013-08-09 17:13:02 +01:00
generic.css docs: Add some style and color to the HTML documentation 2013-01-18 15:36:38 +01:00
goals.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
governance.html.in Fix minor typo in governance doc 2014-02-04 10:43:15 -07:00
hacking1.xsl maint: tweak use of <a> in HACKING 2013-07-09 11:49:20 -06:00
hacking2.xsl maint: tweak use of <a> in HACKING 2013-07-09 11:49:20 -06:00
hacking.html.in maint: enforce comma style usage 2013-11-20 09:24:18 -07:00
hooks.html.in network: Introduce network hooks 2014-02-18 14:46:49 +01:00
hvsupport.pl New internal migration APIs with extensible parameters 2013-06-25 01:13:16 +02:00
index.html.in bhyve: add basic documentation 2014-03-01 23:44:58 +04:00
index.py Test for object identity when checking for None in Python 2013-08-23 08:12:26 +02:00
internals.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
intro.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
java.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
library.xen
libvirt-daemon-arch.fig
libvirt-daemon-arch.png
libvirt-driver-arch.fig
libvirt-driver-arch.png
libvirt-header-bg.png
libvirt-header-logo.png
libvirt-net-logical.fig
libvirt-net-logical.png
libvirt-net-physical.fig
libvirt-net-physical.png
libvirt-object-model.fig
libvirt-object-model.png
libvirt-virConnect-example.fig internals: Update to include RPC and Lock links and add new data 2013-03-04 17:36:03 -05:00
libvirt-virConnect-example.png internals: Update to include RPC and Lock links and add new data 2013-03-04 17:36:03 -05:00
libvirt.css docs: add a permalink to html headers 2014-01-27 08:42:09 +01:00
libvirtLogo404.png
libvirtLogo.png
locking.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
logging.html.in Generate a unique journald log for QEMU capabilities failure 2014-03-03 11:42:37 +00:00
madeWith.png
main.css
Makefile.am docs: Load libvirt_access*.xml from build dir 2013-09-23 14:16:45 +02:00
migration-managed-direct.fig
migration-managed-direct.png
migration-managed-p2p.fig
migration-managed-p2p.png
migration-native.fig
migration-native.png
migration-tunnel.fig
migration-tunnel.png
migration-unmanaged-direct.fig
migration-unmanaged-direct.png
migration.html.in Fix minor typos in messages and docs 2013-07-30 07:07:33 -06:00
newapi.xsl docs: generate links from plain text documentation 2013-10-30 17:30:12 +01:00
news.html.in Release of libvirt-1.2.2 2014-03-02 23:09:45 +08:00
news.xsl
node.fig
node.gif
page.xsl docs/page.xls: remove unnecessary namespace attribute 2014-01-30 15:37:38 +01:00
pending.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
php.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
python.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
relatedlinks.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
remote.html.in Fix typos in various docs 2013-12-02 10:21:26 +08:00
search.php.code.in
search.php.in Repair the search on libvirt.org 2013-09-12 17:18:32 +08:00
secureusage.html.in Add some notes about secure usage of libvirt 2013-10-15 11:33:01 +01:00
securityprocess.html.in Fix three minor typos 2013-11-26 18:37:09 +08:00
site.xsl Fix docs generator regression in previous commit 2013-05-03 16:58:46 +01:00
sitemap.html.in bhyve: add basic documentation 2014-03-01 23:44:58 +04:00
storage.html.in Fix typos in various docs 2013-12-02 10:21:26 +08:00
structures.fig
subsite.xsl
testapi.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
testsuites.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
testtck.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
todo.cfg-example
todo.pl Fix namespace bugs in API docs, todo page & hv support page 2013-05-07 11:19:04 +01:00
uri.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
virshcmdref.html.in Fix multiple formatting problems in HTML docs 2013-05-03 15:56:15 +01:00
windows.html.in Point users to Virt-Viewer MSI installers for Windows builds 2013-05-07 15:29:37 +01:00
wrapstring.xsl