- 18 12月, 2009 1 次提交
-
-
由 Jiri Denemark 提交于
* include/libvirt/virterror.h src/util/virterror.c: add new domain VIR_FROM_CPU for errors * src/conf/cpu_conf.c src/conf/cpu_conf.h: new parsing module * src/Makefile.am proxy/Makefile.am: include new files * src/conf/capabilities.[ch] src/conf/domain_conf.[ch]: reference new code * src/libvirt_private.syms: private export of new entry points
-
- 14 12月, 2009 2 次提交
-
-
由 Cole Robinson 提交于
Provides the CDROM label for current media. Only implemented for the udev backend.
-
由 Dave Allan 提交于
exposes the relationships between physical and virtual functions on SR IOV capable devices.
-
- 10 12月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
Replace free(virBufferContentAndReset()) with virBufferFreeAndReset(). Update documentation and replace all remaining calls to free() with calls to VIR_FREE(). Also add missing calls to virBufferFreeAndReset() and virReportOOMError() in OOM error cases.
-
- 09 12月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
Since the monitor I/O is processed out of band from the main thread(s) invoking monitor commands, the virDomainObj may be deleted by the I/O thread. The qemuDomainObjBeginJob takes an extra reference to protect against final deletion, but this reference is released by the corresponding EndJob call. THus after the EndJob call it may not be valid to reference the virDomainObj any more. To allow callers to detect this, the EndJob call is changed to return the remaining reference count. * src/conf/domain_conf.c: Make virDomainObjUnref return the remaining reference count * src/qemu/qemu_driver.c: Avoid referencing virDomainObjPtr after qemuDomainObjEndJob if it has been deleted.
-
- 08 12月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
Now that drivers are using a private domain object state blob, the virDomainObjFormat/Parse methods are no longer able to directly serialize all neccessary state to/from XML. It is thus neccessary to introduce a pair of callbacks fo serializing private state. The code for serializing vCPU PIDs and the monitor device config can now move out of domain_conf.c and into the qemu_driver.c where they belong. * src/conf/capabilities.h: Add callbacks for serializing private state to/from XML * src/conf/domain_conf.c, src/conf/domain_conf.h: Remove the monitor, monitor_chr, monitorWatch, nvcpupids and vcpupids fields from virDomainObjPtr. Remove code that serialized those fields * src/libvirt_private.syms: Export virXPathBoolean * src/qemu/qemu_driver.c: Add callbacks for serializing monitor and vcpupid data to/from XML * src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c: Pass monitor char device config into qemuMonitorOpen directly.
-
- 04 12月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
* src/conf/domain_conf.c: don't call virDomainObjUnlock twice * src/qemu/qemu_driver.c: relock driver lock if an error occurs in qemuDomainObjBeginJobWithDriver, enter/exit monitor with driver in qemudDomainSave
-
- 23 11月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
Introduce a new type="dir" mode for <disks> that allows use of QEMU's virtual FAT block device driver. eg <disk type='dir' device='floppy'> <source dir='/tmp/test'/> <target dev='fda' bus='fdc'/> <readonly/> </disk> gets turned into -drive file=fat:floppy:/tmp/test,if=floppy,index=0 Only read-only disks are supported with virtual FAT mode * src/conf/domain_conf.c, src/conf/domain_conf.h: Add type="dir" * docs/schemas/domain.rng: Document new disk type * src/xen/xend_internal.c, src/xen/xm_internal.c: Raise error for unsupported disk types * tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.args: Fix empty disk file handling * tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.args, tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml, tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.args, tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml tests/qemuxml2argvtest.c: Test QEMU vitual FAT driver * src/qemu/qemu_conf.c: Support generating fat:/some/dir type disk args * src/security/security_selinux.c: Temporarily skip labelling of directory based disks
-
- 19 11月, 2009 2 次提交
-
-
由 Dave Allan 提交于
Erroneously included the sysfs_path and parent_sysfs_path elements in the node device xml, they were not supposed to show up there * src/conf/node_device_conf.c: remove the output of the 2 fields
-
由 Dave Allan 提交于
I realized that I inadvertently added a member to the def struct to contain each device's sysfs path when there was an existing member in the dev struct for "OS specific path to device metadat, eg sysfs" Since the udev backend needs to record the sysfs path while it's in the process of creating the device, before the dev struct gets allocated, I chose to remove the member from the dev struct. * src/conf/node_device_conf.c src/conf/node_device_conf.h src/node_device/node_device_driver.c src/node_device/node_device_hal.c src/node_device/node_device_udev.c: remove devicePath from the structure and use def->sysfs_path instead
-
- 13 11月, 2009 4 次提交
-
-
由 Daniel P. Berrange 提交于
If the virDomainDefPtr object has an 'id' of -1, then forcably set the VIR_DOMAIN_XML_INACTIVE flag to ensure generated XML does not include any cruft from the previously running guest such as console PTY path, or VNC port. * src/conf/domain_conf.c: Set VIR_DOMAIN_XML_INACTIVE if def->id is -1. Replace checks for def->id == -1 with check against flags & VIR_DOMAIN_XML_INACTIVE.
-
由 David Allan 提交于
* src/conf/node_device_conf.h src/conf/node_device_conf.c: add specific support for SCSI target in node device capabilities * src/node_device/node_device_udev.c: add some extra detection code when handling udev output
-
由 David Allan 提交于
* configure.in: add new --with-udev, disabled by default, and requiring libudev > 145 * src/node_device/node_device_udev.c src/node_device/node_device_udev.h: the new node device backend * src/node_device/node_device_linux_sysfs.c: moved node_device_hal_linux.c to a better file name * src/conf/node_device_conf.c src/conf/node_device_conf.h: add a couple of fields in node device definitions, and an API to look them up, remove a couple of unused fields from previous patch. * src/node_device/node_device_driver.c src/node_device/node_device_driver.h: plug the new driver * po/POTFILES.in src/Makefile.am src/libvirt_private.syms: add the new files and symbols * src/util/util.h src/util/util.c: add a new convenience macro virBuildPath and virBuildPathInternal() function
-
由 David Allan 提交于
* src/conf/node_device_conf.h src/conf/node_device_conf.c: add the new fields in the structure as well as parsing and serialization
-
- 12 11月, 2009 1 次提交
-
-
由 pritesh 提交于
* src/conf/domain_conf.h src/conf/domain_conf.c: add the new entry in the enum and lists of virDomainDiskBus * src/qemu/qemu_conf.c: same for virDomainDiskQEMUBus
-
- 10 11月, 2009 3 次提交
-
-
由 Daniel P. Berrange 提交于
Change the QEMU monitor file handle watch to poll for both read & write events, as well as EOF. All I/O to/from the QEMU monitor FD is now done in the event callback thread. When the QEMU driver needs to send a command, it puts the data to be sent into a qemuMonitorMessagePtr object instance, queues it for dispatch, and then goes to sleep on a condition variable. The event thread sends all the data, and then waits for the reply to arrive, putting the response / error data back into the qemuMonitorMessagePtr and notifying the condition variable. There is a temporary hack in the disk passphrase callback to avoid acquiring the domain lock. This avoids a deadlock in the command processing, since the domain lock is still held when running monitor commands. The next commit will remove the locking when running commands & thus allow re-introduction of locking the disk passphrase callback * src/qemu/qemu_driver.c: Temporarily don't acquire lock in disk passphrase callback. To be reverted in next commit * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Remove raw I/O functions, and a generic qemuMonitorSend() for invoking a command * src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h: Remove all low level I/O, and use the new qemuMonitorSend() API. Provide a qemuMonitorTextIOProcess() method for detecting command/reply/prompt boundaries in the monitor data stream
-
由 Daniel P. Berrange 提交于
Add reference counting on the virDomainObjPtr objects. With the forthcoming asynchronous QEMU monitor, it will be neccessary to release the lock on virDomainObjPtr while waiting for a monitor command response. It is neccessary to ensure one thread can't delete a virDomainObjPtr while another is waiting. By introducing reference counting threads can make sure objects they are using are not accidentally deleted while unlocked. * src/conf/domain_conf.h, src/conf/domain_conf.c: Add virDomainObjRef/Unref APIs, remove virDomainObjFree * src/openvz/openvz_conf.c: replace call to virDomainObjFree with virDomainObjUnref
-
由 Matthias Bolte 提交于
-
- 07 11月, 2009 1 次提交
-
-
由 Daniel Veillard 提交于
* src/conf/network_conf.h: extend the structure to store the range * src/conf/network_conf.c: before adding a range parse the IP addresses do some checking and keep the size
-
- 06 11月, 2009 1 次提交
-
-
由 Cole Robinson 提交于
Use this function in the qemu, uml, lxc, and test drivers.
-
- 05 11月, 2009 3 次提交
-
-
由 Matthew Booth 提交于
* include/libvirt/virterror.h src/util/virterror.c: add a new error VIR_ERR_CONFIG_UNSUPPORTED for valid but unsupported configuration options * src/conf/domain_conf.c: Throw an error if guestfwd address isn't IPv4 and cleanup a number of parsing return error values.
-
由 Matthew Booth 提交于
allows the following to be specified in a domain: <channel type='pipe'> <source path='/tmp/guestfwd'/> <target type='guestfwd' address='10.0.2.1' port='4600'/> </channel> * proxy/Makefile.am: add network.c as dep of domain_conf.c * docs/schemas/domain.rng src/conf/domain_conf.[ch]: extend the domain schemas and the parsing/serialization side for the new construct QEmu support will add the following on the qemu command line: -chardev pipe,id=channel0,path=/tmp/guestfwd -net user,guestfwd=tcp:10.0.2.1:4600-chardev:channel0 * src/qemu/qemu_conf.c: Add argument output for channel * tests/qemuxml2(argv|xml)test.c: Add test for <channel> domain syntax
-
由 Matthew Booth 提交于
A character device's target (it's interface in the guest) had only a single property: port. This patch is in preparation for adding targets which require other properties. Since this changes the conf type for character devices this affects a number of drivers: * src/conf/domain_conf.[ch] src/esx/esx_vmx.c src/qemu/qemu_conf.c src/qemu/qemu_driver.c src/uml/uml_conf.c src/uml/uml_driver.c src/vbox/vbox_tmpl.c src/xen/xend_internal.c src/xen/xm_internal.c: target properties are moved into a union in virDomainChrDef, and a targetType field is added to identify which union member should be used. All current code which touches a virDomainChrDef is updated both to use the new union field, and to populate targetType if necessary.
-
- 04 11月, 2009 8 次提交
-
-
由 Cole Robinson 提交于
-
由 Cole Robinson 提交于
- Don't duplicate SystemError - Use proper error code in domain_conf - Fix a broken error call in qemu_conf - Don't use VIR_ERR_ERROR in security driver (isn't a valid code in this case)
-
由 Laine Stump 提交于
* src/conf/interface_conf.c: the code was erronously returning -1 in the two functions if <dhcp> is not provided
-
由 Laine Stump 提交于
* src/conf/interface_conf.c: lack of one of these in the live xml output was causing the parse in virInterfaceDefParseBond() to fail
-
由 Laine Stump 提交于
* src/conf/interface_conf.c: forgot to free the structure itself
-
由 Laine Stump 提交于
This patch updates the xml parsing and formatting, and the associated virInterfaceDef data structure to support IPv6, along the way adding support for multiple protocols per interface, and multiple IP addresses per protocol. * src/conf/interface_conf.[ch]: update the structures, code for parsing and serialization
-
由 Laine Stump 提交于
This patch adds the flag VIR_INTERFACE_XML_INACTIVE to virInterfaceGetXMLDesc's flags. When it is*not* set (the default), the live interface info will be returned in the XML (in particular, the IP address(es) and netmask(s) will be retrieved by querying the interface directly, rather than reporting what's in the config file). The backend of this is in netcf's ncf_if_xml_state() function. * configure.in libvirt.spec.in: requires netcf >= 0.1.3 * include/libvirt/libvirt.h.in: adds flag VIR_INTERFACE_XML_INACTIVE * src/conf/interface_conf.c src/interface/netcf_driver.c src/libvirt.c: update the parsing and backend routines accordingly * tools/virsh.c: change interface edit to inactive definition and adds the inactive flag for interface dump
-
由 Laine Stump 提交于
The minimal XML returned from ncf_if_xml_state() doesn't contain this attribute (which makes no sense in the case of reporting current status of the interface), and it was preventing it from passing through the parse/format step. * src/conf/interface_conf.[ch]: add a new virInterfaceStartMode value and modify loading/saving accordingly
-
- 03 11月, 2009 4 次提交
-
-
由 Chris Lalancette 提交于
When building with --disable-nls, I got a few messages like this: storage/storage_backend.c: In function 'virStorageBackendCreateQemuImg': storage/storage_backend.c:571: warning: format not a string literal and no format arguments Fix these up. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Daniel P. Berrange 提交于
Rename virDomainIsActive to virDomainObjIsActive, and virInterfaceIsActive to virInterfaceObjIsActive and finally virNetworkIsActive to virNetworkObjIsActive. * src/conf/domain_conf.c, src/conf/domain_conf.h, src/conf/interface_conf.h, src/conf/network_conf.c, src/conf/network_conf.h, src/lxc/lxc_driver.c, src/network/bridge_driver.c, src/opennebula/one_driver.c, src/openvz/openvz_driver.c, src/qemu/qemu_driver.c, src/test/test_driver.c, src/uml/uml_driver.c: Update for renamed APIs.
-
由 Daniel P. Berrange 提交于
Nearly all of the methods in src/util/util.h have error codes that must be checked by the caller to correct detect & report failure. Add ATTRIBUTE_RETURN_CHECK to ensure compile time validation of this * daemon/libvirtd.c: Add explicit check on return value of virAsprintf * src/conf/domain_conf.c: Add missing check on virParseMacAddr return value status & report error * src/network/bridge_driver.c: Add missing OOM check on virAsprintf and report error * src/qemu/qemu_conf.c: Add missing check on virParseMacAddr return value status & report error * src/security/security_selinux.c: Remove call to virRandomInitialize that's done in libvirt.c already * src/storage/storage_backend_logical.c: Add check & log on virRun return status * src/util/util.c: Add missing checks on virAsprintf/Run status * src/util/util.h: Annotate all methods with ATTRIBUTE_RETURN_CHECK if they return an error status code * src/vbox/vbox_tmpl.c: Add missing check on virParseMacAddr * src/xen/xm_internal.c: Add missing checks on virAsprintf * tests/qemuargv2xmltest.c: Remove bogus call to virRandomInitialize()
-
由 Daniel P. Berrange 提交于
The virDomainObjPtr object stores state about a running domain. This object is shared across all drivers so it is not appropriate to include driver specific state here. This patch adds the ability to request a blob of private data per domain object instance. The driver must provide a allocator & deallocator for this purpose THis patch abuses the virCapabilitiesPtr structure for storing the allocator/deallocator callbacks, since it is already being abused for other internal things relating to parsing. This should be moved out into a separate object at some point. * src/conf/capabilities.h: Add privateDataAllocFunc and privateDataFreeFunc fields * src/conf/domain_conf.c: Invoke the driver allocators / deallocators when creating/freeing virDomainObjPtr instances. * src/conf/domain_conf.h: Pass virCapsPtr into virDomainAssignDef to allow access to the driver specific allocator function * src/lxc/lxc_driver.c, src/opennebula/one_driver.c, src/openvz/openvz_driver.c, src/qemu/qemu_driver.c, src/test/test_driver.c, src/uml/uml_driver.c: Update for change in virDomainAssignDef contract
-
- 29 10月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
The current virDomainObjListPtr object stores domain objects in an array. This means that to find a particular objects requires O(n) time, and more critically acquiring O(n) mutex locks. The new impl replaces the array with a virHashTable, keyed off UUID. Finding a object based on UUID is now O(1) time, and only requires a single mutex lock. Finding by name/id is unchanged in complexity. In changing this, all code which iterates over the array had to be updated to use a hash table iterator function callback. Several of the functions which were identically duplicating across all drivers were pulled into domain_conf.c * src/conf/domain_conf.h, src/conf/domain_conf.c: Change virDomainObjListPtr to use virHashTable. Add a initializer method virDomainObjListInit, and rename virDomainObjListFree to virDomainObjListDeinit, since its not actually freeing the container, only its contents. Also add some convenient methods virDomainObjListGetInactiveNames, virDomainObjListGetActiveIDs and virDomainObjListNumOfDomains which can be used to implement the correspondingly named public API entry points in drivers * src/libvirt_private.syms: Export new methods from domain_conf.h * src/lxc/lxc_driver.c, src/opennebula/one_driver.c, src/openvz/openvz_conf.c, src/openvz/openvz_driver.c, src/qemu/qemu_driver.c, src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c: Update all code to deal with hash tables instead of arrays for domains
-
- 28 10月, 2009 4 次提交
-
-
由 Cole Robinson 提交于
This will simplify adding FindPoolSources support to more pool backends in the future (as well as the test driver).
-
由 Cole Robinson 提交于
Similar in theory to *AssignDef type functions, this duplicate functionality will be used by an future FindPoolSources implementations.
-
由 Cole Robinson 提交于
We need to parse a source XML block for FindPoolSources, so this is a step in sharing the parsing. The new storage pool XML 2 XML tests cover this area pretty well to ensure we aren't causing regressions.
-
由 Paolo Bonzini 提交于
This patch adds an optional attribute to the <bootp> tag, that allows to specify a TFTP server address other than the address of the DHCP server itself. This can be used to forward the BOOTP settings of the host down to the guest. This is something that configurations such as Xen's default network achieve naturally, but must be done manually for NAT. * docs/formatnetwork.html.in: Document new attribute. * docs/schemas/network.rng: Add it to schema. * src/conf/network_conf.h: Add it to struct. * src/conf/network_conf.c: Add it to parser and pretty printer. * src/network/bridge_driver.c: Put it in the dnsmasq command line. * tests/networkxml2xmlin/netboot-proxy-network.xml tests/networkxml2xmlout/netboot-proxy-network.xml tests/networkxml2xmltest.c: add new tests
-