Commit Graph
100 Commits
Author SHA1 Message Date
Cole Robinson a11010c07d Refresh /etc/xen if inotify wasn't
* src/xm_internal.c: in case of multiple connections to the xen driver
  and some clients were not using domain events, the whole /etc/xen
  monitoring would break leading to disapearing domains.
2009-08-05 11:46:33 +02:00
Cole Robinson 8ddfb40e2d Don't loose id on xen domain redefine
* src/xm_internal.c: bug when redefining a domain, if it was running
  we would loose its id
2009-08-05 11:39:31 +02:00
Cole Robinson 5388607f3d Commit newly generated docs, after changes from commit 2348cf. 2009-07-26 17:56:25 -04:00
Cole Robinson 115c02e871 Add phyp files to POTFILES, to make syntax-check happy. 2009-07-26 17:56:00 -04:00
Cole Robinson b4ad955d9e test: Implement BlockStats and InterfaceStats
We fake stats values based on the current time, similar to how it's done
for cpu time.
2009-07-26 17:26:15 -04:00
Cole Robinson 3b4a542c06 test: Generate net interface names when assigning XML.
We need interface names to implement InterfaceStats.
2009-07-26 17:25:46 -04:00
Cole Robinson 13f3d40cbf Don't allow NULL paths for BlockStats and InterfaceStats
Do the check in libvirt.c, to save drivers from the burden. This changes
behavior slightly in the qemu driver: we no longer explictly error if
passed an empty string. An error will still be thrown when the device
lookup fails.
2009-07-26 17:25:20 -04:00
Cole Robinson 3c2051f86a python: Raise exceptions if virDomain*Stats fail.
The generator couldn't tell that the stats return values were pointers.
Stick a white list in the function which tries to make this distinction.
2009-07-26 17:25:06 -04:00
Cole Robinson 632ed550c7 Fix gitweb link on download page. 2009-07-16 12:52:53 -04:00
Cole Robinson 3b5417687d qemu: Try multiple times to open unix monitor socket
Unlike the pty monitor (which we know exists since we scrape its path from
stdout), we have no way of knowing that the unix monitor socket should exist/
be initialized. As a result, some of my KVM guests randomly fail to start on
F10 host.

Try to open the unix socket in a 3 second timeout loop. Ignore EACCES (path
does not exist if a first time run) and ECONNREFUSED (leftover socket from
a previous run hasn't been removed yet). Fixes things for me.
2009-07-16 12:52:53 -04:00
Cole Robinson fd06fd1442 storage: Implement CreateVolFrom for logical and disk backend.
With the previous refactoring, this is a simple process, since the global
'CreateBlockFrom' in storage_backend does all the work.
2009-07-16 12:52:52 -04:00
Cole Robinson f23814e0cd storage: Don't try sparse detection if writing to block device.
We don't gain any space savings, so skip the detection to speed up
the cloning operation.
2009-07-16 12:52:52 -04:00
Cole Robinson 7471357081 storage: Implement 'CreateBlockFrom' helper.
Add a 'CreateBlockFrom' in the global storage_backend, which sets up the
destination block device: CopyFromFD does the rest of the cloning.
2009-07-16 12:52:52 -04:00
Cole Robinson a256fccfe1 storage: Break out actual raw cloning to separate function.
The CreateRaw function has some 'file' only assumptions, so break the agnostic
cloning bits to a separate function.
2009-07-16 12:52:52 -04:00
Cole Robinson 16e4833492 storage: cleanup: do away with 'createFile'
Have storage building functions be definitions of
virStorageBackendBuildVolFrom: we will need to do this in the future anyways
if we ever support the flags attribute.
2009-07-16 12:52:52 -04:00
Cole Robinson 6d7d465a04 storage: Move most of the FS creation functions to common backend.
These will be used by other pool cloning implementations.
2009-07-16 12:52:52 -04:00
Cole Robinson 1b16bf4ec7 storage: Refactor FS backend 'create' function choosing.
Break out separate functions for

- Determining the supported '*-img' tool,
- The tool's associated create function,
- Desired function for cloning (CreateXMLFrom).

This will be eventually used to unify cloning across all backends.
2009-07-16 12:52:52 -04:00
Cole Robinson 045176bf35 storage: Fix deadlock when cloning across pools.
We need to unlock the first pool before looking up the second, since the
search locks every pool it checks.
2009-07-16 12:52:52 -04:00
Cole Robinson a500d73ac0 storage: disk: Use capacity, not allocation, when creating volume.
There isn't any way to dictate allocation when creating disk volumes, so
capacity is the only relevant value.
2009-07-16 12:52:52 -04:00
Cole Robinson bd70595c9d storage: disk: Default to 'ext2' for new volumes.
Currently, if no format is specified for a new disk volume, we pass the
invalid value "none" as the FS type to 'parted mkpart'.

There doesn't seem to be a way to have parted not format the drive, so
just default to using 'ext2' in this case: this shouldn't cause any harm,
since we are creating a new partition in the first place.
2009-07-16 12:52:52 -04:00
Cole Robinson 12a6278135 storage: disk: Fix segfault creating volume without target path
Remove unneeded target path duplication, which could carelessly dereference
NULL. Make it clear where 'key' is actually filled in.
2009-07-16 12:52:51 -04:00
Cole Robinson a3711708f7 storage: disk: Fix parthelper '-g' option handling.
Typo was breaking 'parthelper -g', preventing disk pool definition.
2009-07-16 12:52:51 -04:00
Cole Robinson ad664f54ff Fix docs and code disagreements for character devices.
The 'pipe' character type wasn't documented.
TCP uses a <protocol> element, not <wire>
We weren't doing strict validation for protocol and source mode values.
2009-07-10 19:29:31 -04:00
Cole Robinson fe7cb869a8 qemu: Check driver is initialized up front, to avoid segfault.
If the qemu_driver was not initialized (possibly due to an error on driver
startup), we can segfault if attempting to connect to the URI.
2009-07-10 19:29:31 -04:00
Cole Robinson 2fa4a8b991 Fix storage handling for custom test driver.
If using a custom test driver, storage pool file parsing was broken, and
storage volume parsing was never implemented. Fix these issues, and add
some examples in docs/
2009-06-22 17:19:30 +00:00
Cole Robinson 3f305eb1e9 Refactor storage XML parsing to be consistent with domain/network conf.
The storage driver arranges its parsing routines in a way that make them
difficult to use in the test driver for non-default file parsing. This
refactoring moves things to be consistent with the way domain_conf and
network_conf do things.
2009-06-22 16:41:34 +00:00
Cole Robinson 5de555cae2 Activate virtual networks initialized in custom test driver.
If specifying a custom test driver, virtual networks were not 'activated'
on driver init. This differs from the behavior of domains and storage pools,
so fix it. Also improve a couple error messages in that area.
2009-06-22 16:39:23 +00:00
Cole Robinson f7f52b1592 Fix segfault if storage pool has no type attribute (possibly others)
virEnumFromString doesn't check for a NULL string, and will segfault if
passed one. Lots of calling code protects against this, but at least
/pool/@type parsing does not.
2009-06-22 16:37:52 +00:00
Cole Robinson 387935345c Fix memory reporting for inactive domains in the qemu driver.
Currently, 'info' will always report that mem = max mem. Make sure we
actually return the correct mem value.
2009-06-22 16:35:03 +00:00
Cole Robinson 5ea25b7801 Fix raw storage volume creation for allocation < capacity.
CreateXMLFrom changes accidentally caused all raw volume creation to be
fully allocated (as though allocation == capacity). Fix this.

Also force CreateXMLFrom to maintain the previous behavior: sparseness
should still be maintained since we search for holes when copying, and the
clone behavior hasn't been tested with anything but the broken behavior.
2009-06-22 16:33:24 +00:00
Cole Robinson c1b2aea80c test driver: Fix domain ID after redefining a running VM
The ID of the existing VM was being unconditionally set to -1, which was
upsetting virt-manager.
2009-06-22 16:29:40 +00:00
Cole Robinson 502278d5b2 Allow USB hostdev product to be 0x0000
Product = 0 is a valid value based on this bug report:

https://www.redhat.com/archives/libvir-list/2009-May/msg00368.html

Also, throw a less ambiguous error if vendor = 0.
2009-06-16 18:46:06 +00:00
Cole Robinson ac75bd1b1e Fix FS volume creation with backing stores.
This regressed when CreateXMLFrom was added: we should only perform the
backing store comparison if an input volume was passed.
2009-06-16 15:47:53 +00:00
Cole Robinson 53603043c7 Set default emulator in domain_conf.*, rather than the driver.
Rather than numerous instances of:

emulator = vm->def->emulator;
if (!emulator)
    emulator = virDomainDefDefaultEmulator(conn, vm->def, driver->caps);
if (!emulator)
    return -1;

Set this value at XML parse time in the domain config, so we can depend on
it for all future emulator accesses. There were unchecked accesses in the
qemu driver that were tripping up on this if no emulator was specified in
the XML, see:

http://www.redhat.com/archives/libvir-list/2008-October/msg00602.html
2009-06-16 15:42:46 +00:00
Cole Robinson 3f63c44d12 Add virCapabilities*EmulatorRequired.
Certain drivers always need an 'emulator' specified in the XML (qemu and lxc
at least). Store this info in capabilities.

We will eventually use this to move default emulator handling out of
drivers and into domain_conf.*
2009-06-16 15:27:33 +00:00
Cole Robinson 659bd66529 Check that '-drive format=' is supported before adding to qemu cmdline.
Qemu < 0.10.0 did not support it, and virt-* tools now try to add this by
default, so it's extra important we ensure the option exists.
2009-06-16 15:17:10 +00:00
Cole Robinson c9d9eddaa4 Add qemuhelptest to .*ignore files 2009-06-16 14:06:48 +00:00
Cole Robinson bfb59c172b Fix qemu command flags fetching
New function qemudParseHelpStr was being called with arguments in the
wrong order, so command flags == kvm_version :/
2009-06-16 14:01:43 +00:00
Cole Robinson b121c7871f network driver: Fix regression defining colliding networks at daemon startup.
If two virtual networks have the same hardcoded bridge device (which
prevents them from being active simultaneously) we still want to define
them at daemon startup, so the user has a fighting chance of correcting
the XML error.

Add an extra flag to SetBridge to avoid reporting an error if there is
a bridge collision, and use this when loading network configs at startup.

This regressed via commit 4c3f3b4d.
2009-05-29 14:18:57 +00:00
Cole Robinson 545c815c4c networkDestroy: Report error if network is inactive
This follows the same convention as domain drivers.
2009-05-29 14:14:32 +00:00
Cole Robinson 34497fdb37 qemu_driver: Fix another domain startup error reporting race.
Parse the command line output a bit earlier so we have a better chance
of reporting the full error output on failure.

I hit this when QEMU would try to boot an invalid kernel (virtinst bug).
2009-05-29 14:12:50 +00:00
Cole Robinson 4ff19ced3a qemuDomainLookupByUUID: print correct UUID string on failed lookup.
Currently we print the raw UUID which isn't very useful in ascii format.
2009-05-29 14:01:55 +00:00
Cole Robinson 58c73c1789 virsh: Use consistent spacing for net-list
There is different spacing when listing active vs. inactive networks. Ex:

Name                 State      Autostart
-----------------------------------------
default              active     yes
xxxxxx               inactive no
2009-05-29 14:00:41 +00:00
Cole Robinson 2d1de285b3 VolumeCreateXMLFrom FS storage backend implementation.
Add an extra 'inputvol' parameter to the file volume building routines. This
allows us to easily reuse the duplicate functionality.
2009-05-19 13:43:48 +00:00
Cole Robinson 4aa0959d60 Storage driver implementation for CreateXMLFrom
There is some funkiness here, since we are either dealing with 2 different
pools (which means validation x 2) or the same pool, where we have to be
careful not to deadlock.
2009-05-19 13:37:51 +00:00
Cole Robinson 5f99a7fd23 Fix node device media insert/eject detection.
We were correctly registering a callback , but weren't telling hal to
actually notify us of any property changes.
2009-05-19 13:35:57 +00:00
Cole Robinson 6244c173ba Fix a possible deadlock in HAL nodedev driver.
The cap_lost and prop_modified callbacks could deadlock if an existing
device needed to be refreshed, since dev_create expects the driver to
be unlocked.
2009-05-19 13:26:14 +00:00
Cole Robinson b8893d0277 Fix rpm build: add 'mylibtool' to EXTRADIST. 2009-05-19 13:23:07 +00:00
Cole Robinson f7ea2b5d7f Generate some config files at build time, not install time.
Generating at install time breaks 'make && sudo make install' if root
can't access the users home directory (NFS w/o no_root_squash for example).
2009-05-19 13:22:00 +00:00
Cole Robinson b509716b33 Add documentation for <sound> device XML format. 2009-05-19 13:18:00 +00:00
Cole Robinson adf4384501 Use virAsprintf, rather than VIR_ALLOC + strcpy + strcat 2009-05-19 13:15:50 +00:00
Cole Robinson bb175dfc53 Don't validate disk type in virsh attach-disk
Let the underlying driver tell us what it supports. At the moment
we are at least erroneously denying floppy eject/insert.
2009-05-19 13:04:46 +00:00
Cole Robinson 5b13f4375d Better error reporting if 'import libvirtmod' fails
Don't squash a possibly legitimate libvirtmod error (e.g. some from
clashing libvirt.so versions) with 'Cannot import cygvirtmod'
2009-05-19 13:03:03 +00:00
Cole Robinson ee0d7552e2 Fix a few 'used uninitialized' warnings. 2009-05-13 17:43:47 +00:00
Cole Robinson af8600678d Update POTFILES, and s/write/safewrite/ to appease 'make syntax-check' 2009-05-12 20:44:29 +00:00
Cole Robinson be9e5185b4 Break out FS volume build routines to their own functions.
Improves readability, particularly wrt the pending CreateFromXML changes.
This will also help implementing File->Block volume creation in the future,
since some of this code will need to be moved to a backend agnostic file.
2009-05-12 20:27:17 +00:00
Cole Robinson 6852c88fc7 Virsh commands vol-clone and vol-create-from
vol-clone is a convenience function, requiring only a volume to clone and a
new name.

vol-create-from is a direct mapping to the public API, which allows cloning
across pools, converting between formats, etc, but requires an xml file to be
passed
2009-05-12 20:17:21 +00:00
Cole Robinson 3804161eb6 Test driver implementation of virStorageVolCreateXMLFrom 2009-05-12 20:15:56 +00:00
Cole Robinson 885de7f8cf Remote driver plumbing for virStorageVolCreateXMLFrom 2009-05-12 20:13:52 +00:00
Cole Robinson 5b31c7d08a Add public API stubs for virStorageVolCreateXMLFrom
Also checkin regenerated docs due to API change.
2009-05-12 20:10:50 +00:00
Cole Robinson 52c5f7adc8 Fix error squashing when refreshing file volumes 2009-05-12 19:59:46 +00:00
Cole Robinson 0c8a9d2d51 Check that QEMU is still alive while reading startup output.
By checking the pid every retry period, we can quickly determine if
the process crashed at startup, rather than make the user wait for
the entire timeout (3 seconds).
2009-05-11 13:52:31 +00:00
Cole Robinson a331653dad Add pidfile argument to __virExec
virExec will write out the pid of the daemonized process only. Use this
in the QEMU driver, rather than QEMU's pidfile, so we can catch errors we
might miss if the emulator bails early.
2009-05-11 13:50:38 +00:00
Cole Robinson 27d72bd517 Report qemu log data if we fail to daemonize the process.
This ensures the user will actually see 'hook' function error output.
2009-05-11 13:37:19 +00:00
Cole Robinson 79d9d2432f Add helper function virExecDaemonize
Wraps __virExec with the VIR_EXEC_DAEMON flag. Waits on the intermediate
process to ensure we don't end up with any zombies, and differentiates between
original process errors and intermediate process errors.
2009-05-11 13:34:37 +00:00
Cole Robinson 4f10759024 Refresh QEMU driver capabilities for each getCapabilities call.
Also fix up a couple issues where caps are accessed without locking
the driver structure.
2009-05-06 14:20:34 +00:00
Cole Robinson 840955ff7c Don't throw away StartVM errors when migrating/restoring in qemu driver. 2009-05-05 14:26:02 +00:00
Cole Robinson 03f3736511 Small cleanups in test driver VolCreateXML 2009-05-05 14:19:59 +00:00
Cole Robinson 2a9ca74164 Remove some debug code from storage_driver.c 2009-05-05 14:18:51 +00:00
Cole Robinson 48e9d6862a Use proper error code in virStorageVolCreateXML 2009-05-05 14:17:50 +00:00
Cole Robinson 3f24e6c21c Fix a comment typo in storage_backend_fs.c 2009-05-04 15:44:44 +00:00
Cole Robinson 5314dffc85 virExec: Delay daemonizing as long as possible.
This way the caller can catch more errors (e.g. from a hook callback) from
the intermediate process.
2009-05-04 15:43:25 +00:00
Cole Robinson a4d0a3fd50 Add some documentation to __virExec and virExec 2009-05-04 15:41:46 +00:00
Cole Robinson 6d910c9fd4 Don't lose file format info on volume refresh. 2009-04-03 14:17:57 +00:00
Cole Robinson 766b2250e1 Refresh volume alloc/capacity when dumping XML. 2009-04-03 14:15:30 +00:00
Cole Robinson a843f44c51 Fix test driver domain restore return value. 2009-04-03 14:14:05 +00:00
Cole Robinson e807e4d9e9 Fix sparse volume allocation reporting. 2009-04-03 14:13:02 +00:00
Cole Robinson b68a19be0f Don't allow readonly connections to dump secure xml. 2009-03-16 17:21:12 +00:00
Cole Robinson 2068f2f5a3 Initialize security driver after config parsing 2009-03-16 17:16:04 +00:00
Cole Robinson d2c77e06c7 Fix test driver 'save' deadlock 2009-03-16 17:14:34 +00:00
Cole Robinson aedf57db70 Fix bridge generation loop counter (spotted by Jim Meyering) 2009-03-02 17:56:50 +00:00
Cole Robinson f9cbf065ad Recognize ejectable media in hostdev hal driver. 2009-03-02 17:41:13 +00:00
Cole Robinson 4837725f37 Better error reporting from qemu AttachDevice 2009-03-02 17:39:43 +00:00
Cole Robinson 1f11e3bb61 Generate network bridge names if none passed at define/create time. 2009-03-02 17:37:03 +00:00
Cole Robinson adecc8fc9e Remove redundant monitor watch variable (s/monitor_watch/monitorWatch/) 2009-03-02 17:33:39 +00:00
Cole Robinson 895247b76b Mark 'defined' networks as persistent. 2009-03-02 17:29:44 +00:00
Cole Robinson 7e8ad2036a Remove the _actually_ incorrect ATTRIBUTE_UNUSED (Patch by Maximilian Wilhelm) 2009-02-18 01:37:47 +00:00
Cole Robinson 125980cb76 Fix daemon TCP listen cleanup 2009-02-17 14:40:24 +00:00
Cole Robinson cf47347312 Remove incorrect ATTRIBUTE_UNUSED usage. 2009-02-17 14:38:22 +00:00
Cole Robinson 3a53ab7913 Unbreak virsh *-edit commands: Don't pass unexpected flags to DumpXML 2009-02-16 22:51:31 +00:00
Cole Robinson c482439232 Remove erroneous lvm volume format check for backing store. 2009-02-16 22:47:19 +00:00
Cole Robinson a3d1fb9cf3 Fix building python bindings: Skip bindings for virSaveLastError and
virFreeError
2009-02-16 22:44:49 +00:00
Cole Robinson 46d4a5e047 Fix segfault with console device back compat. 2009-01-16 16:50:11 +00:00
Cole Robinson 922f5e6845 Fix storage driver null dereference. 2008-12-22 16:30:57 +00:00
Cole Robinson bd24695a23 Merge xml building for virsh pool-*-as 2008-12-22 16:23:36 +00:00
Cole Robinson 0e459cbdfb Sanitize qemu monitor reads. 2008-12-16 22:34:13 +00:00
Cole Robinson 63efdb85c1 Fix locking issue in test driver VolLookupByPath 2008-12-11 15:04:09 +00:00
Cole Robinson bae8899a46 Fix rpm build by installing logrotate config. 2008-12-11 15:02:39 +00:00
Cole Robinson 3130848a10 Fix a locking issue in PoolGetAutostart. 2008-12-11 15:00:12 +00:00
Cole Robinson 52037657dc Fix segfault if virtual network does not have a bridge name 2008-12-11 14:57:45 +00:00