]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
13 years agodoc: Add documentation for new cputune elements period and quota
Wen Congyang [Thu, 21 Jul 2011 08:36:39 +0000 (16:36 +0800)]
doc: Add documentation for new cputune elements period and quota

We have added element period and quota. Document them in formatdomain.html.in.

13 years agoqemu: Implement cfs_period and cfs_quota's modification
Wen Congyang [Thu, 21 Jul 2011 08:04:25 +0000 (16:04 +0800)]
qemu: Implement cfs_period and cfs_quota's modification

This patch implements cfs_period and cfs_quota's modification.
We can use the command 'virsh schedinfo' to query or modify cfs_period and
cfs_quota.
If you query period or quota from config file, the value 0 means it does not set
in the config file.
If you set period or quota to config file, the value 0 means that delete current
setting from config file.
If you modify period or quota while vm is running, the value 0 means that use
current value.

13 years agoqemu: Implement period and quota tunable XML configuration and parsing
Wen Congyang [Thu, 21 Jul 2011 02:10:31 +0000 (10:10 +0800)]
qemu: Implement period and quota tunable XML configuration and parsing

This patch implements period and quota tunable XML configuration and parsing.
A quota or period of zero will be simply ignored.

13 years agoUpdate XML Schema for new entries
Wen Congyang [Thu, 21 Jul 2011 02:09:46 +0000 (10:09 +0800)]
Update XML Schema for new entries

Define the element cputune's child elements 'period' and 'quota':
<cputune>
  <period>100000</period>
  <quota>50000</quota>
</cputune>

13 years agocgroup: Implement cpu.cfs_period_us and cpu.cfs_quota_us tuning API
Wen Congyang [Thu, 21 Jul 2011 07:21:05 +0000 (15:21 +0800)]
cgroup: Implement cpu.cfs_period_us and cpu.cfs_quota_us tuning API

This patch provides 4 APIs to get and set cpu.cfs_period_us and cpu.cfs_quota_us.

13 years agoIntroduce the function virCgroupForVcpu
Wen Congyang [Thu, 21 Jul 2011 07:12:55 +0000 (15:12 +0800)]
Introduce the function virCgroupForVcpu

Introduce the function virCgroupForVcpu() to create sub directory for each vcpu.

13 years agoqemu: send-key: Implement the driver methods
Lai Jiangshan [Thu, 21 Jul 2011 07:55:56 +0000 (15:55 +0800)]
qemu: send-key: Implement the driver methods

qemu driver just accept xt_kbd codeset's keycode, so the lib virtkey
is used for translating keycodes from other codesets

13 years agosend-key: Expose the new API in virsh
Lai Jiangshan [Thu, 21 Jul 2011 07:49:10 +0000 (15:49 +0800)]
send-key: Expose the new API in virsh

Also support string names for the linux keycode(auto detect)
* tools/virsh.c: add new command "send-key"
* tools/virsh.pod: documents the new command

13 years agoutil: add virtkeycode module
Lai Jiangshan [Thu, 21 Jul 2011 07:32:34 +0000 (15:32 +0800)]
util: add virtkeycode module

Add virtkey lib for usage-improvment and keycode translating.
Add 4 internal API for the aim

const char *virKeycodeSetTypeToString(int codeset);
int virKeycodeSetTypeFromString(const char *name);
int virKeycodeValueFromString(virKeycodeSet codeset, const char *keyname);
int virKeycodeValueTranslate(virKeycodeSet from_codeset,
                             virKeycodeSet to_offset,
                             int key_value);

* include/libvirt/libvirt.h.in: extend virKeycodeSet enum
* src/Makefile.am: add new virtkeycode module and rule to generate
  virkeymaps.h
* src/util/virkeycode.c src/util/virkeycode.h: new module
* src/util/virkeycode-mapgen.py: python generator for virkeymaps.h
  out of keymaps.csv
* src/libvirt_private.syms: extend private symbols for new module
* .gitignore: add generated virkeymaps.h

13 years agoutil: Add keymaps.csv
Lai Jiangshan [Thu, 21 Jul 2011 07:02:52 +0000 (15:02 +0800)]
util: Add keymaps.csv

Should keep it as the same as:
http://git.gnome.org/browse/gtk-vnc/commit/src/keymaps.csv

All master  keymaps are defined in a CSV file. THis covers
Linux keycodes, OSX keycodes, AT set1, 2 & 3, XT keycodes,
the XT encoding used by the Linux KBD driver, USB keycodes,
Win32 keycodes, the XT encoding used by Xorg on Cygwin,
the XT encoding used by Xorg on Linux with kbd driver.

* src/Makefile.am: added to EXTRA_DIST
* src/util/keymaps.csv: new file

13 years agomaint: fix typos on guaranteed
Eric Blake [Wed, 20 Jul 2011 22:53:31 +0000 (16:53 -0600)]
maint: fix typos on guaranteed

* src/conf/domain_event.c (virDomainEventDispatch): Fix typo.
* src/internal.h (ATTRIBUTE_FMT_PRINTF): Likewise.
* src/libvirt.c (virStreamEventUpdateCallback): Likewise.
* src/remote/remote_driver.c (doRemoteOpen): Likewise.
* src/storage/storage_backend_fs.c (virStorageBackendProbeTarget):
Likewise.
* src/util/virterror.c (virConnCopyLastError, virCopyLastError):
Likewise.
* src/xen/xend_internal.h (xend_wait_for_devices): Likewise.

13 years agorpc: Pass through DISPLAY so ssh can launch askpass
Cole Robinson [Wed, 20 Jul 2011 18:11:43 +0000 (14:11 -0400)]
rpc: Pass through DISPLAY so ssh can launch askpass

Though we prefer users to have SSH keys setup, virt-manager users still
depend on remote SSH connections to launch a password dialog. This fixes
launch ssh-askpass

Fix suggested by danpb

13 years agosysinfo: Don't try to run dmidecode on archs missing it
Michal Privoznik [Wed, 20 Jul 2011 15:03:17 +0000 (17:03 +0200)]
sysinfo: Don't try to run dmidecode on archs missing it

DMI table is Intel & Intel-compatible specific. Therefore other
architectures miss dmidecode command. So we always fail in searching
for that command on non-Intel architectures.

13 years agoDon't try to close a NULL virNetClientPtr
Guannan Ren [Wed, 20 Jul 2011 14:20:18 +0000 (15:20 +0100)]
Don't try to close a NULL virNetClientPtr

* src/rpc/virnetclient.c: Skip close attempt if virNetClientPtr
  is NULL

13 years agoHonour key usage/purpose criticality flag
Daniel P. Berrange [Wed, 20 Jul 2011 13:08:39 +0000 (14:08 +0100)]
Honour key usage/purpose criticality flag

If a key purpose or usage field is marked as non-critical in the
certificate, then a data mismatch is not (ordinarily) a cause for
rejecting the connection

* src/rpc/virnettlscontext.c: Honour key usage/purpose criticality

13 years agoFix checking of key usage/purpose data
Daniel P. Berrange [Wed, 20 Jul 2011 12:54:32 +0000 (13:54 +0100)]
Fix checking of key usage/purpose data

If key usage or purpose data is not present in the cert, the
RFC recommends that access be allowed. Also fix checking of
key usage to include requirements for client/server certs,
and fix key purpose checking to treat data as a list of bits

13 years agoFix mixed up error messages when reporting TLS certificate problems
Daniel P. Berrange [Wed, 20 Jul 2011 12:46:08 +0000 (13:46 +0100)]
Fix mixed up error messages when reporting TLS certificate problems

* src/rpc/virnettlscontext.c: Fix mixed up error messages

13 years agoudev: Don't try to dump DMI on non-intel archs
Michal Privoznik [Tue, 19 Jul 2011 14:48:49 +0000 (16:48 +0200)]
udev: Don't try to dump DMI on non-intel archs

DMI is Intel & Intel-compatible specific. Don't try to dump information
on non-compatible architectures, which results only in error message in
logs.

13 years agobuild: fix broken build
Eric Blake [Wed, 20 Jul 2011 03:33:51 +0000 (21:33 -0600)]
build: fix broken build

* src/libxl/libxl_driver.c (libxlDomainUndefineFlags): Use correct
enum value.
* src/remote_protocol-structs (remote_procedure): Likewise.

13 years agoundefine: Extend virsh undefine to support the new flag
Osier Yang [Wed, 20 Jul 2011 03:12:46 +0000 (11:12 +0800)]
undefine: Extend virsh undefine to support the new flag

If the domain has managed save image, and --managed-save is
not specified, then it fails with an error telling the user
that a managed save image still exists.

If the domain has managed save image, and --managed-save is
specified, it invokes virDomainUndefineFlags. If
virDomainUndefineFlags fails, then it tries to remove the managed
save image using virDomainManagedSaveRemove first, with
invoking virDomainUndefine following. (For compatibility between
new virsh with this patch and older libvirt without this patch).

Similarly if the domain has no managed save image. See the codes for
detail.

NOTE: Have not removing the codes checking if the domain is running
in function "cmdUndefine", it will go along with qemu driver's fix
(allow to undefine a running domain).

13 years agoundefine: Implement undefineFlags for all other drivers
Osier Yang [Wed, 20 Jul 2011 03:08:21 +0000 (11:08 +0800)]
undefine: Implement undefineFlags for all other drivers

13 years agoundefine: Implement internal API for libxl driver
Osier Yang [Wed, 20 Jul 2011 03:05:20 +0000 (11:05 +0800)]
undefine: Implement internal API for libxl driver

* src/libxl/libxl_driver.c: New callback for libxl_driver,
new function libxlDomainUndefineFlags, and changes libxlDomainUndefine
as a wrapper of libxlDomainUndefineFlags.

13 years agoundefine: Implement internal API for qemu driver
Osier Yang [Wed, 20 Jul 2011 03:04:15 +0000 (11:04 +0800)]
undefine: Implement internal API for qemu driver

* src/qemu/qemu_driver.c: New call back for qemu_driver,
New function qemudDomainUndefineFlags, and changes on
qemudDomainUndefine.

13 years agoundefine: Wire up the remote protocol
Osier Yang [Wed, 20 Jul 2011 03:01:45 +0000 (11:01 +0800)]
undefine: Wire up the remote protocol

13 years agoundefine: Define the new API
Osier Yang [Wed, 20 Jul 2011 02:59:54 +0000 (10:59 +0800)]
undefine: Define the new API

This introduces a new API virDomainUndefineFlags to control the
domain undefine process, as the existing API virDomainUndefine
doesn't support flags.

Currently only flag VIR_DOMAIN_UNDEFINE_MANAGED_SAVE is supported.
If the domain has a managed save image, including
VIR_DOMAIN_UNDEFINE_MANAGED_SAVE in @flags will also remove that
file, and omitting the flag will cause undefine process to fail.

This patch also changes the behavior of virDomainUndefine, if the
domain has a managed save image, the undefine will be refused.

13 years agomaint: fix spelling of Red Hat
Eric Blake [Tue, 19 Jul 2011 18:17:22 +0000 (12:17 -0600)]
maint: fix spelling of Red Hat

* cfg.mk (sc_copyright_format): Add to rule.
* src/util/files.h: Fix offenders.
* src/util/files.c: Likewise.

13 years agoAdd sanity checking of basic constraints, key purpose & key usage
Daniel P. Berrange [Fri, 15 Jul 2011 11:55:23 +0000 (12:55 +0100)]
Add sanity checking of basic constraints, key purpose & key usage

Gnutls requires that certificates have basic constraints present
to be used as a CA certificate. OpenSSL doesn't add this data
by default, so add a sanity check to catch this situation. Also
validate that the key usage and key purpose constraints contain
correct data

* src/rpc/virnettlscontext.c: Add sanity checking of certificate
  constraints

13 years agoAdd some basic sanity checking of certificates before use
Daniel P. Berrange [Thu, 14 Jul 2011 16:52:03 +0000 (17:52 +0100)]
Add some basic sanity checking of certificates before use

If the libvirt daemon or libvirt client is configured with bogus
certificates, it is very unhelpful to only find out about this
when a TLS connection is actually attempted. Not least because
the error messages you get back for failures are incredibly
obscure.

This adds some basic sanity checking of certificates at the
time the virNetTLSContext object is created. This is at libvirt
startup, or when creating a virNetClient instance.

This checks that the certificate expiry/start dates are valid
and that the certificate is actually signed by the CA that is
loaded.

* src/rpc/virnettlscontext.c: Add certificate sanity checks

13 years agoFix reporting of errors for p2p migration
Daniel P. Berrange [Tue, 19 Jul 2011 14:51:08 +0000 (10:51 -0400)]
Fix reporting of errors for p2p migration

Starting/ending jobs when closing the connection may reset any
error which was reported earlier in p2p migration. We must
save the original error before doing so. This means we can also
just call virConnectClose as normal, instead of virUnrefConnect

* src/qemu/qemu_migration.c: Preserve errors in p2p migration

13 years agoAdd an explicit virNetClientClose method
Daniel P. Berrange [Tue, 19 Jul 2011 13:13:32 +0000 (14:13 +0100)]
Add an explicit virNetClientClose method

Since the I/O callback registered against virNetSocket will
hold a reference on the virNetClient, we can't rely on the
virNetClientFree to be able to close the network connection.
The last reference will only go away when the event callback
fires (likely due to EOF from the server).

This is sub-optimal and can potentially cause a leak of the
virNetClient object if the server were to not explicitly
close the socket itself

* src/remote/remote_driver.c: Explicitly close the client
  object when disconnecting
* src/rpc/virnetclient.c, src/rpc/virnetclient.h: Add a
  virNetClientClose method

13 years agoUse a virFreeCallback on virNetSocket to ensure safe release
Daniel P. Berrange [Tue, 19 Jul 2011 13:11:33 +0000 (14:11 +0100)]
Use a virFreeCallback on virNetSocket to ensure safe release

When unregistering an I/O callback from a virNetSocket object,
there is still a chance that an event may come in on the callback.
In this case it is possible that the virNetSocket might have been
freed already. Make use of a virFreeCallback when registering
the I/O callbacks and hold a reference for the entire time the
callback is set.

* src/rpc/virnetsocket.c: Register a free function for the
  file handle watch
* src/rpc/virnetsocket.h, src/rpc/virnetserverservice.c,
  src/rpc/virnetserverclient.c, src/rpc/virnetclient.c: Add
  a free function for the socket I/O watches

13 years agoAdd mutex locking and reference counting to virNetSocket
Daniel P. Berrange [Tue, 19 Jul 2011 13:00:24 +0000 (14:00 +0100)]
Add mutex locking and reference counting to virNetSocket

Remove the need for a virNetSocket object to be protected by
locks from the object using it, by introducing its own native
locking and reference counting

* src/rpc/virnetsocket.c: Add locking & reference counting

13 years agoAdd some debugging for virNetClient reference counting
Daniel P. Berrange [Tue, 19 Jul 2011 13:14:59 +0000 (14:14 +0100)]
Add some debugging for virNetClient reference counting

* src/rpc/virnetclient.c: Add debugging of ref counts

13 years agobuild: detect doc generation failure
Eric Blake [Tue, 19 Jul 2011 13:34:34 +0000 (07:34 -0600)]
build: detect doc generation failure

Commit 8665f85 introduced a slight regression in doc generation,
since make only quits a rule on the first failed command ending
with a newline rather than a semicolon.

* docs/Makefile.am (html/index.html): Don't use xmllint unless
xsltproc succeeded.
* .gitignore: Ignore recently updated stamp file name.

13 years agoutil: avoid fds leak when virEventPollAddHandle fail
Alex Jia [Tue, 19 Jul 2011 11:15:18 +0000 (19:15 +0800)]
util: avoid fds leak when virEventPollAddHandle fail

* src/util/event_poll.c: avoid file descriptors leak when
  virEventPollAddHandle fail on virEventPollInit function.

13 years agoRevert "virsh: make migrate --tunnelled imply --p2p"
Eric Blake [Tue, 19 Jul 2011 13:14:43 +0000 (07:14 -0600)]
Revert "virsh: make migrate --tunnelled imply --p2p"

This reverts commit 40143fb697c3cb042197632c0286e7dadf40afd4.

The patch prevents future compatibility if migration ever learns
how to do tunnelled without p2p.

13 years agoUnregister event callback if a fatal error occurs during dispatch
Daniel P. Berrange [Fri, 15 Jul 2011 10:19:40 +0000 (11:19 +0100)]
Unregister event callback if a fatal error occurs during dispatch

If we get an I/O error in the async event callback for an RPC
client, we might not have consumed all pending data off the
wire. This could result in the callback being immediately
invoked again. At which point the same I/O might occur. And
we're invoked again. And again...And again...

Unregistering the async event callback if an error occurs is
a good safety net. The real error will be seen when the next
RPC method is invoked

* src/rpc/virnetclient.c: Unregister event callback on error

13 years agoQuieten build & ensure API build scripts exit with non-zero status
Daniel P. Berrange [Thu, 12 May 2011 10:19:42 +0000 (11:19 +0100)]
Quieten build & ensure API build scripts exit with non-zero status

The current API build scripts will continue and exit with a zero
status even if they find problems. This has been the cause of many
build problems, or hidden build errors, in the past. Change the
scripts so they always exit with a non-zero status for any problems
they do not understand. Also turn off all debug output by default
so they respect $(AM_V_GEN)

* docs/Makefile.am: Use $(AM_V_GEN) for API/HTML scripts
* docs/apibuild.py, python/generator.py: Exit with non-zero status
  if problems are found. Also be silent, not outputting any debug
  messages.
* src/Makefile.am: Use $(AM_V_GEN) for ESX generator
* python/Makefile.am: Tweak rule

13 years agotests: Fix virshtest failure after dominfo changed
Osier Yang [Tue, 19 Jul 2011 12:48:15 +0000 (20:48 +0800)]
tests: Fix virshtest failure after dominfo changed

Caused by the new changed "dominfo" command.

13 years agovirsh: Extend virsh dominfo to display if managed save image exists
Osier Yang [Tue, 19 Jul 2011 06:24:57 +0000 (14:24 +0800)]
virsh: Extend virsh dominfo to display if managed save image exists

* tools/virsh.c: new column "Managed save" for "cmdDominfo".
* tools/virsh.pod: Update document of "managedsave" to tell one can
  use "dominfo" to query whether a domain has any managed save image.

13 years agodoc: Correct documents for iface commands
Osier Yang [Tue, 19 Jul 2011 03:19:25 +0000 (11:19 +0800)]
doc: Correct documents for iface commands

The problems:
    * Duplicate documents for "iface-name"
    * Lacks of document for "iface-mac"
    * Inconsistent option names with virsh help strings.

13 years agovirsh: make migrate --tunnelled imply --p2p
Eric Blake [Mon, 18 Jul 2011 19:10:29 +0000 (13:10 -0600)]
virsh: make migrate --tunnelled imply --p2p

We can make the virsh migrate UI friendlier by supplying the
missing bit automatically instead of erroring out when requesting
--tunnelled without --p2p.

* tools/virsh.c (doMigrate): Make --p2p optional when using
--tunnelled.
* tools/virsh.pod (migrate): Tweak wording accordingly.

13 years agolibvirt: do not mix internal flags into public API
Eric Blake [Wed, 13 Jul 2011 21:31:56 +0000 (15:31 -0600)]
libvirt: do not mix internal flags into public API

There were two API in driver.c that were silently masking flags
bits prior to calling out to the drivers, and several others
that were explicitly masking flags bits.  This is not
forward-compatible - if we ever have that many flags in the
future, then talking to an old server that masks out the
flags would be indistinguishable from talking to a new server
that can honor the flag.  In general, libvirt.c should forward
_all_ flags on to drivers, and only the drivers should reject
unknown flags.

In the case of virDrvSecretGetValue, the solution is to separate
the internal driver callback function to have two parameters
instead of one, with only one parameter affected by the public
API.  In the case of virDomainGetXMLDesc, it turns out that
no one was ever mixing VIR_DOMAIN_XML_INTERNAL_STATUS with
the dumpxml path in the first place; that internal flag was
only used in saving and restoring state files, which happened
to be in functions internal to a single file, so there is no
mixing of the internal flag with a public flags argument.
Additionally, virDomainMemoryStats passed a flags argument
over RPC, but not to the driver.

* src/driver.h (VIR_DOMAIN_XML_FLAGS_MASK)
(VIR_SECRET_GET_VALUE_FLAGS_MASK): Delete.
(virDrvSecretGetValue): Separate out internal flags.
(virDrvDomainMemoryStats): Provide missing flags argument.
* src/driver.c (verify): Drop unused check.
* src/conf/domain_conf.h (virDomainObjParseFile): Delete
declaration.
(virDomainXMLInternalFlags): Move...
* src/conf/domain_conf.c: ...here.  Delete redundant include.
(virDomainObjParseFile): Make static.
* src/libvirt.c (virDomainGetXMLDesc, virSecretGetValue): Update
clients.
(virDomainMemoryPeek, virInterfaceGetXMLDesc)
(virDomainMemoryStats, virDomainBlockPeek, virNetworkGetXMLDesc)
(virStoragePoolGetXMLDesc, virStorageVolGetXMLDesc)
(virNodeNumOfDevices, virNodeListDevices, virNWFilterGetXMLDesc):
Don't mask unknown flags.
* src/interface/netcf_driver.c (interfaceGetXMLDesc): Reject
unknown flags.
* src/secret/secret_driver.c (secretGetValue): Update clients.
* src/remote/remote_driver.c (remoteSecretGetValue)
(remoteDomainMemoryStats): Likewise.
* src/qemu/qemu_process.c (qemuProcessGetVolumeQcowPassphrase):
Likewise.
* src/qemu/qemu_driver.c (qemudDomainMemoryStats): Likewise.
* daemon/remote.c (remoteDispatchDomainMemoryStats): Likewise.

13 years agovirsh: avoid double free of domain
Alex Jia [Sun, 17 Jul 2011 15:29:07 +0000 (23:29 +0800)]
virsh: avoid double free of domain

* tools/virsh.c: avoid double free of domain, when weight value of blkiotune
  less than 0, codes will free domain and jump to cleanup section, however,
  cleanup will free domain again.

Detected in valgrind run:

==21297== ERROR SUMMARY: 20 errors from 20 contexts (suppressed: 69 from 8)
==21297==
==21297== 1 errors in context 1 of 20:
==21297== Invalid read of size 4
==21297==    at 0x40E209B: virDomainFree (libvirt.c:2096)
==21297==    by 0x8065274: cmdBlkiotune (virsh.c:3695)
==21297==    by 0x8054CC1: vshCommandRun (virsh.c:13135)
==21297==    by 0x806B967: main (virsh.c:14487)
==21297==  Address 0x446ad48 is 0 bytes inside a block of size 36 free'd
==21297==    at 0x4005B0A: free (vg_replace_malloc.c:325)
==21297==    by 0x406814D: virFree (memory.c:310)
==21297==    by 0x40D6635: virReleaseDomain (datatypes.c:243)
==21297==    by 0x40D6C5E: virUnrefDomain (datatypes.c:280)
==21297==    by 0x40E20B9: virDomainFree (libvirt.c:2101)
==21297==    by 0x8065297: cmdBlkiotune (virsh.c:3613)
==21297==    by 0x8054CC1: vshCommandRun (virsh.c:13135)
==21297==    by 0x806B967: main (virsh.c:14487)
==21297==
==21297==
==21297== 1 errors in context 2 of 20:
==21297== Invalid read of size 4
==21297==    at 0x40E1FE6: virDomainFree (libvirt.c:2092)
==21297==    by 0x8065274: cmdBlkiotune (virsh.c:3695)
==21297==    by 0x8054CC1: vshCommandRun (virsh.c:13135)
==21297==    by 0x806B967: main (virsh.c:14487)
==21297==  Address 0x446ad48 is 0 bytes inside a block of size 36 free'd
==21297==    at 0x4005B0A: free (vg_replace_malloc.c:325)
==21297==    by 0x406814D: virFree (memory.c:310)
==21297==    by 0x40D6635: virReleaseDomain (datatypes.c:243)
==21297==    by 0x40D6C5E: virUnrefDomain (datatypes.c:280)
==21297==    by 0x40E20B9: virDomainFree (libvirt.c:2101)
==21297==    by 0x8065297: cmdBlkiotune (virsh.c:3613)
==21297==    by 0x8054CC1: vshCommandRun (virsh.c:13135)
==21297==    by 0x806B967: main (virsh.c:14487)

* how to reproduce?
  % valgrind -v --leak-check=full virsh blkiotune guestname --weight -1

13 years agodocs: improve virsh man page synopses
Eric Blake [Thu, 14 Jul 2011 17:36:21 +0000 (11:36 -0600)]
docs: improve virsh man page synopses

"optional" is not a very good meta-syntactic construct in our man
page.  I scrubbed this, and additionally improved some documentation
on mutually exclusive options.  For example,

[[--live] [--config] | [--current]]

implies a set of optional flags, where within the set you can have
either --current or a choice of 0, 1, or both --live and --config.

* tools/virsh.pod: Use "[name]" rather than "optional name" for
optional arguments.

13 years agobuild: Fix protocol-structs check in VPATH build
Jiri Denemark [Mon, 18 Jul 2011 08:25:02 +0000 (10:25 +0200)]
build: Fix protocol-structs check in VPATH build

$@ already included $(srcdir)

13 years agoFix now dead cleanup of VMs on libvirtd restart
Daniel P. Berrange [Fri, 15 Jul 2011 14:33:15 +0000 (15:33 +0100)]
Fix now dead cleanup of VMs on libvirtd restart

When libvirtd restarts it will attempt to reconnect to existing
LXC containers. If it loads a XML state file for the container
the container will appear running. If we fail to read the PID
file, or fail to connect to the LXC monitor, we should be killing
off the guest, but if the VMs cgroup does not exist any more,
cleanup will get skipped. Reading the PID file is also pointless
since the PID is in the XML statefile

In lxcReconnectVM we do not need to read the PID file. If part
of the reconnect process fails we need to run the VM terminate
code as a safety net.

In lxcVMTerminate, if we can't obtain the VM cgroup, we know
the process has died, but we must still run lxcVMCleanup to
clear out the virDomainObjPtr live state

* src/lxc/lxc_driver.c: Fix cleanup of dead VMs on restart

13 years agodocs: Fix spice documentation typo
Michal Privoznik [Mon, 18 Jul 2011 09:28:54 +0000 (11:28 +0200)]
docs: Fix spice documentation typo

We missed ending tag for paragraph element

13 years agorpc: Fix typos in rpc generator scripts
Osier Yang [Sun, 17 Jul 2011 04:41:39 +0000 (12:41 +0800)]
rpc: Fix typos in rpc generator scripts

These typos are introduced by file renaming in commit b17b4afaf.

src/remote/qemu_protocol.x \
src/remote/remote_protocol.x \
src/rpc/gendispatch.pl:
    s/remote_generator/gendispatch/

src/rpc/genprotocol.pl:
    s/remote\/remote_protocol/remote_protocol/

13 years agoqemu: Fix a regression of attaching device
Osier Yang [Sat, 16 Jul 2011 03:24:49 +0000 (11:24 +0800)]
qemu: Fix a regression of attaching device

The regression is introduced by Commit da1eba6b, the new
codes with this commit doesn't reset "ret" to "-1" when
it fails on parsing the device XML (live device attachment)

This patch changes the codes to reset the "ret" and "-1",
and also changes the codes so that it don't modify "ret"
for condition checking.

How to reproduce:

% cat test.xml
<disk type='oops' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/var/lib/libvirt/images/test.img'/>
  <target dev='vda' bus='virtio'/>
</disk>

% virsh attach-device $domain test.xml
Device attached successfully

The device attachment failed actually with error "unknown disk type 'oops'",
however, it reports success.

13 years agobuild: also track RPC on-wire enum values
Eric Blake [Thu, 14 Jul 2011 16:18:40 +0000 (10:18 -0600)]
build: also track RPC on-wire enum values

As long as we guarantee RPC struct layout stability, we might as
well also guarantee RPC enum value constancy.

* src/Makefile.am (r1, r2, PDWTAGS): Adjust rule to pick up named
and anonymous enums.
* src/remote_protocol-structs: Add enum values.
* src/qemu_protocol-structs: Likewise.
* src/virnetprotocol-structs: Likewise.

13 years agodocs: document dxml argument to migrate2
Eric Blake [Thu, 14 Jul 2011 17:09:03 +0000 (11:09 -0600)]
docs: document dxml argument to migrate2

Commit 135554166 introduced a nice feature without documenting it.

* src/libvirt.c (virDomainMigrate2): Add paragraph.

13 years agobuild: add syntax check for proper flags use
Eric Blake [Thu, 7 Jul 2011 17:57:43 +0000 (11:57 -0600)]
build: add syntax check for proper flags use

Enforce the recent flags cleanups - we want to use 'unsigned int flags'
in any of our APIs (except where backwards compatibility is important,
in the public migration APIs), and that all flags are checked for
validity (except when there are stub functions that completely
ignore the flags argument).

There are a few minor tweaks done here to avoid false positives:
signed arguments passed to open() are renamed oflags, and flags
arguments that are legitimately ignored are renamed flags_unused.

* cfg.mk (sc_flags_usage): New rule.
(exclude_file_name_regexp--sc_flags_usage): And a few exemptions.
(sc_flags_debug): Tweak wording.
* src/util/iohelper.c (runIO, main): Rename variable.
* src/util/util.c (virSetInherit): Likewise.
* src/fdstream.h (virFDStreamOpenFile, virFDStreamCreateFile):
Likewise.
* src/fdstream.c (virFDStreamOpenFileInternal)
(virFDStreamOpenFile, virFDStreamCreateFile): Likewise.
* src/util/command.c (virExecWithHook) [WIN32]: Likewise.
* src/util/util.c (virFileOpenAs, virDirCreate) [WIN32]: Likewise.
* src/locking/lock_manager.c (virLockManagerPluginNew)
[!HAVE_DLFCN_H]: Likewise.
* src/locking/lock_driver_nop.c (virLockManagerNopNew)
(virLockManagerNopAddResource, virLockManagerNopAcquire)
(virLockManagerNopRelease, virLockManagerNopInquire): Likewise.

13 years agoxen: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:15:33 +0000 (17:15 -0600)]
xen: reject unknown flags

Also fix a logic bug in xenXMDomain{Attach,Detach}DeviceFlags,
where (flags & VIR_DOMAIN_DEVICE_MODIFY_CURRENT) is always false.

* src/xen/xen_driver.c (xenUnifiedDomainXMLFromNative)
(xenUnifiedDomainXMLToNative, xenUnifiedDomainBlockPeek): Reject
unknown flags.
* src/xen/xen_hypervisor.c (xenHypervisorOpen)
(xenHypervisorGetDomainState): Likewise.
* src/xen/xen_inotify.c (xenInotifyOpen): Likewise.
* src/xen/xs_internal.c (xenStoreOpen, xenStoreDomainGetState)
(xenStoreDomainReboot): Likewise.
* src/xen/xend_internal.c (xenDaemonOpen, xenDaemonDomainReboot)
(xenDaemonDomainCoreDump, xenDaemonDomainGetState)
(xenDaemonDomainMigratePrepare, xenDaemonDomainSetVcpusFlags,
xenDaemonDomainGetVcpusFlags, xenDaemonAttachDeviceFlags,
xenDaemonDetachDeviceFlags): Likewise.
(xenDaemonDomainGetXMLDesc): Prefer unsigned flags.
* src/xen/xend_internal.h (xenDaemonDomainGetXMLDesc): Likewise.
* src/xen/xm_internal.h (xenXMDomainGetXMLDesc): Likewise.
* src/xen/xm_internal.c (xenXMDomainGetXMLDesc): Likewise.
(xenXMOpen, xenXMDomainGetState, xenXMDomainSetVcpusFlags)
(xenXMDomainGetVcpusFlags): Reject unknown flags.
(xenXMDomainAttachDeviceFlags, xenXMDomainDetachDeviceFlags):
Likewise, and avoid always-false conditional.
* src/xen/xen_driver.h (XEN_MIGRATION_FLAGS): New define.

13 years agoesx: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:14:33 +0000 (16:14 -0600)]
esx: reject unknown flags

Silently ignored flags get in the way of new features that
use those flags.

Regarding ESX migration flags - right now, ESX silently enforces
VIR_MIGRATE_PERSIST_DEST, VIR_MIGRATE_UNDEFINE_SOURCE, and
VIR_MIGRATE_LIVE, even if those flags were not supplied; it ignored
other flags.  This patch does not change the implied bits (it permits
but does not require them), but enforces only the supported bits.
If further cleanup is needed to be more particular about migration
flags, that should be a separate patch.

* src/esx/esx_device_monitor.c (esxDeviceOpen): Reject unknown
flags.
* src/esx/esx_driver.c (esxOpen, esxDomainReboot)
(esxDomainXMLFromNative, esxDomainXMLToNative)
(esxDomainMigratePrepare, esxDomainMigratePerform)
(esxDomainMigrateFinish): Likewise.
* src/esx/esx_interface_driver.c (esxInterfaceOpen): Likewise.
* src/esx/esx_network_driver.c (esxNetworkOpen): Likewise.
* src/esx/esx_nwfilter_driver.c (esxNWFilterOpen): Likewise.
* src/esx/esx_secret_driver.c (esxSecretOpen): Likewise.
* src/esx/esx_storage_driver.c (esxStorageOpen): Likewise.

13 years agovirsh: improve option handling
Eric Blake [Fri, 15 Jul 2011 17:23:17 +0000 (11:23 -0600)]
virsh: improve option handling

The documentation for vshCommandOptString claims that it returns
-1 on a missing required argument, but in reality, that error
message was unreachable (it was buried inside an if clause that
is true only if the argument was present).  The code was so hairy
that I decided a rewrite would make it easier to understand,
and actually return the error values we want.

Meanwhile, our construction guarantees that all vshCmdOpt have
a non-null def member, so there are some redundant checks that
can be trimmed.

* tools/virsh.c (vshCommandOpt): Alter signature.
(vshCommandOptInt, vshCommandOptUInt, vshCommandOptUL)
(vshCommandOptString, vshCommandOptLongLong)
(vshCommandOptULongLong, vshCommandOptBool): Adjust all callers.
(vshCommandOptArgv): Remove dead condition.

13 years agoflags: fix domain_conf migration regression
Eric Blake [Fri, 15 Jul 2011 19:03:20 +0000 (13:03 -0600)]
flags: fix domain_conf migration regression

Commit 461e0f1a broke migration, because there was a code path
that tried to enable an internal flag while still going through
the public function.  Split the internal flag into a separate
callback, and validate that flags do not overlap.

* src/conf/domain_conf.c (virDomainDefFormat): Split...
(virDomainDefFormatInternal): ...to separate the flag check.
(virDomainObjFormat): Adjust caller.

13 years agowebsite: Point main page links to libvirt driver pages
Dave Allan [Fri, 15 Jul 2011 18:33:17 +0000 (14:33 -0400)]
website: Point main page links to libvirt driver pages

The "libvirt supports:" section on the main page of libvirt.org
contains a list of hypervisors with links that point to the sites of
the underlying virt technologies.  The entry for KVM points to
http://www.linux-kvm.org/, for example.  People coming to libvirt.org
for the first time are likely to know about those sites, and they're
probably interested in how libvirt manages those technologies.  This
patch points those links to the libvirt driver pages instead.  It also
consolidates KVM and QEMU as there is only one libvirt driver page for
them.  Finally, it adds a line about networking support.

v2: incorporate Eric's feedback adding project links to driver pages.

website: Add project links to KVM/QEMU driver page
website: Add project links to Xen driver page
website: Add project links to LXC driver page
website: Add project links to OpenVZ driver page
website: Add project links to UML driver page
website: Add project links to Virtualbox driver page
website: Add project links to ESX driver page
website: Add project links to VMware driver page

13 years agoflags: fix qemu migration regression
Eric Blake [Thu, 14 Jul 2011 21:46:49 +0000 (15:46 -0600)]
flags: fix qemu migration regression

Commit f548480b broke migration v3 on qemu, because the driver
passed flags on through to qemu_migration even though
qemu_migration wasn't using those flags.

* src/qemu/qemu_migration.h (QEMU_MIGRATION_FLAGS): New define.
* src/qemu/qemu_driver.c: Simplify all migration callbacks.
* src/qemu/qemu_migration.c (qemuMigrationConfirm): Fix regression.

13 years agoflags: use common dumpxml flags check
Eric Blake [Wed, 13 Jul 2011 22:24:38 +0000 (16:24 -0600)]
flags: use common dumpxml flags check

The previous patches only cleaned up ATTRIBUTE_UNUSED flags cases;
auditing the drivers found other places where flags was being used
but not validated.  In particular, domainGetXMLDesc had issues with
clients accepting a different set of flags than the common
virDomainDefFormat helper function.

* src/conf/domain_conf.c (virDomainDefFormat): Add common flag check.
* src/uml/uml_driver.c (umlDomainAttachDeviceFlags)
(umlDomainDetachDeviceFlags): Reject unknown
flags.
* src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc)
(vboxDomainAttachDeviceFlags)
(vboxDomainDetachDeviceFlags): Likewise.
* src/qemu/qemu_driver.c (qemudDomainMemoryPeek): Likewise.
(qemuDomainGetXMLDesc): Document common flag handling.
* src/libxl/libxl_driver.c (libxlDomainGetXMLDesc): Likewise.
* src/lxc/lxc_driver.c (lxcDomainGetXMLDesc): Likewise.
* src/openvz/openvz_driver.c (openvzDomainGetXMLDesc): Likewise.
* src/phyp/phyp_driver.c (phypDomainGetXMLDesc): Likewise.
* src/test/test_driver.c (testDomainGetXMLDesc): Likewise.
* src/vmware/vmware_driver.c (vmwareDomainGetXMLDesc): Likewise.
* src/xenapi/xenapi_driver.c (xenapiDomainGetXMLDesc): Likewise.

13 years agomaint: fix typos
Eric Blake [Fri, 15 Jul 2011 18:08:59 +0000 (12:08 -0600)]
maint: fix typos

Our XML prefers "shareable" over "sharable".

* docs/internals/locking.html.in: s/sharable/shareable/
* src/locking/lock_driver_sanlock.c
(virLockManagerSanlockAddResource): Likewise.

13 years agoadd --cache, --serial, --shareable and --address to attach-disk
Hu Tao [Fri, 15 Jul 2011 07:06:53 +0000 (15:06 +0800)]
add --cache, --serial, --shareable and --address to attach-disk

This adds four options for virsh command attach-disk.

--cache option allows user to specify cache mode of disk device
from virsh command line when attaching a disk device.

--serial option allows user to specify serial string of disk device
from virsh command line when attaching a disk device.

--shareable option allows user to specify whether the disk device is
shareable between domains when attaching a disk device from virsh
command line.

--address option allows user to specify address of disk device when
attaching a disk device.

13 years agoFix error message for missing TLS write function
Daniel P. Berrange [Fri, 15 Jul 2011 10:42:51 +0000 (11:42 +0100)]
Fix error message for missing TLS write function

* src/rpc/virnettlscontext.c: s/read/write/

13 years agoFix reporting of cert validation failures
Daniel P. Berrange [Fri, 15 Jul 2011 10:40:35 +0000 (11:40 +0100)]
Fix reporting of cert validation failures

If the server succesfully validates the client cert, it will send
back a single byte, under TLS. If it fails, it will close the
connection. In this case, we were just reporting the standard
I/O error. The original RPC code had a special case hack for the
GNUTLS_E_UNEXPECTED_PACKET_LENGTH error code to make us report
a more useful error message

* src/rpc/virnetclient.c: Return ENOMSG if we get
  GNUTLS_E_UNEXPECTED_PACKET_LENGTH
* src/rpc/virnettlscontext.c: Report cert failure if we
  see ENOMSG

13 years agoFix error code for storage operations
Dave Allan [Fri, 15 Jul 2011 13:47:12 +0000 (09:47 -0400)]
Fix error code for storage operations

Many volume operations will fail if the volume in question is being
allocated.  These operations were returning VIR_ERR_INTERNAL_ERROR
when they should be returning VIR_ERR_OPERATION_INVALID.

13 years agosetvcpus: add "--current" option to "virsh setvcpus"
Taku Izumi [Fri, 15 Jul 2011 07:02:00 +0000 (16:02 +0900)]
setvcpus: add "--current" option to "virsh setvcpus"

This patch adds the --current option to "virsh setvcpus"
command. Currently "virsh setvcpus" command supports
"--live" and "--config" , but "--current" option.
From view of consistency, it's reasonable to support
"--current" option too.

When --current is specified, it affects a "current"
domain.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
13 years agosetvcpus: extend qemuDomainSetVcpusFlags() to support current flag
Taku Izumi [Fri, 15 Jul 2011 07:01:19 +0000 (16:01 +0900)]
setvcpus: extend qemuDomainSetVcpusFlags() to support current flag

This patch extends qemudDomainSetVcpusFlags() function to support
VIR_DOMAIN_AFFECT_CURRENT flag.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
13 years agosetvcpus: extend virDomainSetVcpusFlags API to support current flag
Taku Izumi [Fri, 15 Jul 2011 07:00:37 +0000 (16:00 +0900)]
setvcpus: extend virDomainSetVcpusFlags API to support current flag

This patch extends virDomainSetVcpusFlags API to support
VIR_DOMAIN_AFFECT_CURRENT flag.

Now because most APIs accept VIR_DOMAIN_AFFECT_CURRENT flags,
virDomainSetVcpusFlags API should also do.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
13 years agoAdd domain events support to UML driver
Daniel P. Berrange [Mon, 6 Jul 2009 15:06:11 +0000 (16:06 +0100)]
Add domain events support to UML driver

* src/uml_conf.h: Add queue for dispatch of domain events
* src/uml_driver.c: Trigger domain events upon important lifecycle transitions

13 years agodocs: mention EMOTIVE as a libvirt-using app
Eric Blake [Thu, 14 Jul 2011 20:23:13 +0000 (14:23 -0600)]
docs: mention EMOTIVE as a libvirt-using app

* docs/apps.html.in: Add EMOTIVE.
Reported by Alex VaquĆ© Brull <memfis@gmail.com>.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agovirnetsocket: use new API for uniform child cleanup
Eric Blake [Tue, 12 Jul 2011 18:09:43 +0000 (12:09 -0600)]
virnetsocket: use new API for uniform child cleanup

Rather than trying to clean up the ssh child ourselves, and risk
subtle differences from the socket creation error path, we can
just use the new APIs.

* src/rpc/virnetsocket.c (virNetSocketFree): Use new function.

13 years agofdstream: avoid child process leak on error
Eric Blake [Tue, 12 Jul 2011 18:07:01 +0000 (12:07 -0600)]
fdstream: avoid child process leak on error

By requesting the pid in virCommandRunAsync, fdstream was claiming
that it would manually wait for the process.  But on the failure
path, the child process was being leaked.

* src/fdstream.c (virFDStreamOpenFileInternal): Auto-reap child.

13 years agocommand: introduce virPidWait, virPidAbort
Eric Blake [Tue, 12 Jul 2011 16:42:41 +0000 (10:42 -0600)]
command: introduce virPidWait, virPidAbort

When using virCommandRunAsync and saving the pid for later, it
is useful to be able to reap that pid in the same way that it
would have been auto-reaped by virCommand if we had passed
NULL for the pid argument in the first place.

* src/util/command.c (virPidWait, virPidAbort): New functions,
created from...
(virCommandWait, virCommandAbort): ...bodies of these.
(includes): Drop duplicate <stdlib.h>.  Ensure that our pid_t
assumptions hold.
(virCommandRunAsync): Improve documentation.
* src/util/command.h (virPidWait, virPidAbort): New prototypes.
* src/libvirt_private.syms: Export them.
* docs/internals/command.html.in: Document them.

13 years agoupdate apparmor security driver for new udev paths
Jamie Strandboge [Thu, 14 Jul 2011 17:06:20 +0000 (12:06 -0500)]
update apparmor security driver for new udev paths

In the Ubuntu development release we recently got a new udev that
moves /var/run to /run, /var/lock to /run/lock and /dev/shm to /run/shm.
This change in udev requires updating the apparmor security driver in
libvirt[1].

Attached is a patch that:
 * adjusts src/security/virt-aa-helper.c to allow both
LOCALSTATEDIR/run/libvirt/**/%s.pid and /run/libvirt/**/%s.pid. While
the profile is not as precise, LOCALSTATEDIR/run/ is typically a symlink
to /run/ anyway, so there is no additional access (remember that
apparmor resolves symlinks, which is why this is still required even
if /var/run points to /run).
 * adjusts example/apparmor/libvirt-qemu paths for /dev/shm

[1]https://launchpad.net/bugs/810270

--
Jamie Strandboge             | http://www.canonical.com

13 years agoxenapi: Improve error reporting in xenapiOpen
Matthias Bolte [Thu, 14 Jul 2011 14:58:43 +0000 (16:58 +0200)]
xenapi: Improve error reporting in xenapiOpen

Use better suited error code and avoid NULL in error messsage
as *privP->session->error_description can be NULL.

13 years agobuild: fix VPATH build of todo
Eric Blake [Thu, 14 Jul 2011 15:41:38 +0000 (09:41 -0600)]
build: fix VPATH build of todo

Without this patch, the make rule in a VPATH build was trying to
invoke ../../docs/../../docs/todo.pl, which didn't exist.

* docs/Makefile.am (todo.html.in): Using $< already implies
$(srcdir) in GNU make VPATH situations.

13 years agobuild: check for virnetprotocol on-the-wire stability
Eric Blake [Wed, 13 Jul 2011 15:35:03 +0000 (09:35 -0600)]
build: check for virnetprotocol on-the-wire stability

Similar to the recent qemu_protocol-structs addition.

* src/virnetprotocol-structs: New file.
* src/Makefile.am (%_protocol-structs): Factor body...
(PDWTAGS): ...into new helper macro.
(virnetprotocol-structs): New rule.
(PROTOCOL_STRUCTS): Add virnetprotocol-structs.

13 years agobuild: disable some drivers when building without libvirt daemon
Wen Congyang [Thu, 14 Jul 2011 05:20:19 +0000 (13:20 +0800)]
build: disable some drivers when building without libvirt daemon

We disable some drivers when building without libvirtd in configure,
but we do not do the same thing in libvirt.spec. It may break rpm
building without libvirtd.

13 years agostorage: Avoid memory leak on metadata fetching
Michal Privoznik [Thu, 14 Jul 2011 10:53:45 +0000 (12:53 +0200)]
storage: Avoid memory leak on metadata fetching

Getting metadata on storage allocates a memory (path) which need to
be freed after use otherwise it gets leaked. This means after use of
virStorageFileGetMetadataFromFD or virStorageFileGetMetadata one
must call virStorageFileFreeMetadata to free it. This function frees
structure internals and structure itself.

13 years agoqemu: Don't overwrite errors by closefd in error paths
Jiri Denemark [Wed, 13 Jul 2011 09:16:20 +0000 (11:16 +0200)]
qemu: Don't overwrite errors by closefd in error paths

When qemuMonitorCloseFileHandle is called in error path, we need to
preserve the original error since a possible further error when running
closefd monitor command is not very useful to users.

13 years agoqemu: Save domain status ASAP after creating qemu process
Jiri Denemark [Tue, 12 Jul 2011 09:45:16 +0000 (11:45 +0200)]
qemu: Save domain status ASAP after creating qemu process

When creating new qemu process we saved domain status XML only after the
process was fully setup and running. In case libvirtd was killed before
the whole process finished, once libvirtd started again it didn't know
anything about the new process and we end up with an orphaned qemu
process. Let's save the domain status XML as soon as we know the PID so
that libvirtd can kill the process on restart.

13 years agobuild: avoid ATTRIBUTE_UNUSED in headers
Eric Blake [Fri, 8 Jul 2011 21:58:28 +0000 (15:58 -0600)]
build: avoid ATTRIBUTE_UNUSED in headers

The compiler might optimize based on our declaration that something
is unused.  Putting that declaration in the header risks getting
out of sync with the actual implementation, so it belongs better
only in the .c files.  We were mostly compliant, and a new syntax
check will help us in the future.

* cfg.mk (sc_avoid_attribute_unused_in_header): New syntax check.
* src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Delete
attribute already present in .c file.
* src/qemu/qemu_domain.h (qemuDomainEventFlush): Likewise.
* src/util/virterror_internal.h (virReportErrorHelper): Parameters
are actually used by .c file.
* src/xenxs/xen_sxpr.h (xenFormatSxprDisk): Adjust prototype.
* src/xenxs/xen_sxpr.c (xenFormatSxprDisk): Delete unused argument.
(xenFormatSxpr): Adjust caller.
* src/xen/xend_internal.c (xenDaemonAttachDeviceFlags)
(xenDaemonUpdateDeviceFlags): Likewise.
Suggested by Daniel Veillard.

13 years agoremote: prefer unsigned flags
Eric Blake [Fri, 8 Jul 2011 18:57:08 +0000 (12:57 -0600)]
remote: prefer unsigned flags

* src/remote/remote_driver.c (call, remoteOpenSecondaryDriver):
Prefer unsigned flags.

13 years agoconf: delete unused flags arguments
Eric Blake [Fri, 8 Jul 2011 14:30:25 +0000 (08:30 -0600)]
conf: delete unused flags arguments

For static functions not used as callbacks, there's no need to
keep an unused parameter.

* src/conf/domain_conf.c (virDomainChrDefParseTargetXML)
(virDomainTimerDefParseXML, virDomainHostdevSubsysUsbDefParseXML)
(virDomainVcpuPinDefParseXML): Drop unused parameter.
(virDomainChrDefParseXML, virDomainDefParseXML)
(virDomainHostdevDefParseXML): Update callers.
(virDomainNetDefParseXML): Mark flags used.

13 years agovirsh: Update virsh man page
Supriya Kannery [Thu, 30 Jun 2011 08:22:45 +0000 (13:52 +0530)]
virsh: Update virsh man page

Valid loglevel range for virsh  is 0-4. Update virsh man page
accordingly. Also explain virsh ENV variables and values.

Signed-off-by: Supriya Kannery <supriyak@in.ibm.com>
13 years agovirsh: fix previous patch
Jiri Denemark [Thu, 14 Jul 2011 11:58:02 +0000 (13:58 +0200)]
virsh: fix previous patch

The last patch breaks make check for two reasons. First, it reverses the
condition but leaves default level unchanged, so instead of not printing
anything but errors before the patch it now prints all debug messages by
default. Second, you forgot to change -d5 option passed to virsh in
tests/virsh-optparse to -d0; the script wants to see all debug messages.

13 years agovirsh: Make "DEBUG" loglevel the superset
Supriya Kannery [Thu, 30 Jun 2011 08:22:32 +0000 (13:52 +0530)]
virsh: Make "DEBUG" loglevel the superset

Aligning loglevel values of virsh to that of libvirt.
"DEBUG"=0 loglevel, when specified through commandline or
env variable, should log all the messages. "ERROR=4"
should log only error messages.

Signed-off-by: Supriya Kannery <supriyak@in.ibm.com>
13 years agovirsh: Avoid using magic numbers for logging
Supriya Kannery [Thu, 30 Jun 2011 08:22:20 +0000 (13:52 +0530)]
virsh: Avoid using magic numbers for logging

Replace magic numbers with loglevel variables.

Signed-off-by: Supriya Kannery <supriyak@in.ibm.com>
13 years agoutil: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs
Jiri Denemark [Thu, 14 Jul 2011 03:04:16 +0000 (11:04 +0800)]
util: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs

In 2f4d2496a88055a8343b3efca618522da8715d92 I didn't notice that one
part of virFileOpenAs doesn't actually call to virFileOpenAsNoFork but
rather includes a copy of the code from there.

13 years agobuild: don't hand-roll cloexec code
Eric Blake [Thu, 7 Jul 2011 23:42:05 +0000 (17:42 -0600)]
build: don't hand-roll cloexec code

No need to repeat common code.

* bootstrap.conf (gnulib_modules): Import calloc-posix.
* src/util/bridge.c (brInit): Use virSetCloseExec.
(brSetInterfaceUp): Adjust flags name.
* src/uml/uml_driver.c (umlSetCloseExec): Delete.
(umlStartVMDaemon): Use util version instead.

13 years agoconf: prefer unsigned flags
Eric Blake [Thu, 7 Jul 2011 23:29:42 +0000 (17:29 -0600)]
conf: prefer unsigned flags

* src/conf/cpu_conf.h (virCPUDefFormat, virCPUDefFormatBuf):
Change flags type.
* src/conf/cpu_conf.c (virCPUDefFormat, virCPUDefFormatBuf):
Likewise.
* src/conf/storage_conf.c (_virStoragePoolOptions): Likewise.
* src/datatypes.h (_virConnect, _virStream): Likewise.

13 years agopython: prefer unsigned flags
Eric Blake [Thu, 7 Jul 2011 18:13:45 +0000 (12:13 -0600)]
python: prefer unsigned flags

* python/libvirt-override.c (libvirt_virConnectOpenAuth)
(libvirt_virDomainSnapshotListNames)
(libvirt_virDomainRevertToSnapshot): Change flags type.

13 years agonode_device: avoid implicit int
Eric Blake [Thu, 7 Jul 2011 18:04:41 +0000 (12:04 -0600)]
node_device: avoid implicit int

'unsigned a' and 'unsigned int a' are synonyms, but we generally
always spell out the 'int' in that case.  Fixing this will avoid
a false positive in the next syntax-check commit.

* src/conf/node_device_conf.h (pci_config_address)
(_virNodeDevCapsDef): Prefer 'unsigned int' over 'unsigned'.

13 years agovirsh, daemon: prefer unsigned flags
Eric Blake [Thu, 7 Jul 2011 17:53:04 +0000 (11:53 -0600)]
virsh, daemon: prefer unsigned flags

* tools/virsh.c (vshCmdDef): Change flags type.
* daemon/remote.c (remoteDispatchOpen): Likewise.

13 years agoxenapi: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:09:40 +0000 (17:09 -0600)]
xenapi: reject unknown flags

* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot):
Reject unknown flags.
(xenapiDomainGetXMLDesc): Likewise, and pass known flags through
to XML generation.

13 years agovmware: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:08:28 +0000 (17:08 -0600)]
vmware: reject unknown flags

* src/vmware/vmware_driver.c (vmwareOpen, vmwareDomainReboot)
(vmwareDomainCreateXML, vmwareDomainCreateWithFlags): Reject
unknown flags.

13 years agovbox: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:06:11 +0000 (17:06 -0600)]
vbox: reject unknown flags

* src/vbox/vbox_driver.c (vboxOpenDummy): Reject unknown flags.
* src/vbox/vbox_tmpl.c (vboxOpen, vboxDomainReboot)
(vboxNetworkOpen, vboxNetworkGetXMLDesc, vboxStorageOpen)
(vboxStorageVolCreateXML, vboxStorageVolDelete)
(vboxStorageVolGetXMLDesc, vboxDomainScreenshot): Likewise.

13 years agouml: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:02:14 +0000 (17:02 -0600)]
uml: reject unknown flags

* src/uml/uml_driver.c (umlOpen, umlDomainGetXMLDesc)
(umlDomainBlockPeek): Reject unknown flags.

13 years agotest: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:00:08 +0000 (17:00 -0600)]
test: reject unknown flags

* src/test/test_driver.c (testOpen, testDomainCoreDump)
(testOpenNetwork, testNetworkGetXMLDesc, testOpenInterface)
(testInterfaceChangeBegin, testInterfaceChangeCommit)
(testInterfaceChangeRollback, testInterfaceGetXMLDesc)
(testInterfaceDefineXML, testInterfaceCreate)
(testInterfaceDestroy, testStorageOpen, testStoragePoolStart)
(testStorageFindPoolSources, testStoragePoolCreate)
(testStoragePoolDefine, testStoragePoolBuild)
(testStoragePoolDelete, testStoragePoolRefresh)
(testStoragePoolGetXMLDesc, testStorageVolumeCreateXML)
(testStorageVolumeCreateXMLFrom, testStorageVolumeDelete)
(testStorageVolumeGetXMLDesc, testDevMonOpen)
(testNodeNumOfDevices, testNodeListDevices)
(testNodeDeviceGetXMLDesc, testNodeDeviceCreateXML)
(testSecretOpen, testNWFilterOpen): Reject unknown flags.

13 years agoqemu: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:42:06 +0000 (16:42 -0600)]
qemu: reject unknown flags

* src/qemu/qemu_driver.c (qemudOpen, qemuDomainScreenshot)
(qemuDomainXMLFromNative, qemuDomainXMLToNative)
(qemudDomainBlockPeek, qemuCPUCompare, qemuCPUBaseline): Reject
unknown flags.
* src/qemu/qemu_migration.c (qemuMigrationConfirm): Likewise.
(_qemuMigrationCookie, qemuMigrationCookieXMLParse)
(qemuMigrationCookieXMLParseStr, qemuMigrationBakeCookie)
(qemuMigrationEatCookie): Make flags unsigned.
* src/qemu/qemu_domain.h: (qemuDomainDefFormatXML)
(qemuDomainFormatXML): Prefer unsigned flags.
* src/qemu/qemu_domain.c (qemuDomainDefFormatXML)
(qemuDomainFormatXML): Likewise.
(qemuDomainOpenLogHelper, qemuDomainCreateLog): Rename variable.