- 19 6月, 2012 11 次提交
-
-
由 Eric Blake 提交于
This idea was first suggested by Daniel Veillard here: https://www.redhat.com/archives/libvir-list/2011-October/msg00353.html Now that I am about to add more complexity to snapshot listing, it makes sense to avoid code duplication and special casing for domain listing (all snapshots) vs. snapshot listing (descendants); adding a metaroot reduces the number of code lines by having the domain listing turn into a descendant listing of the metaroot. Note that this has one minor pessimization - if we are going to list ALL snapshots without filtering, then virHashForeach is more efficient than recursing through the child relationships; restoring that minor optimization will occur in the next patch. * src/conf/domain_conf.h (_virDomainSnapshotObj) (_virDomainSnapshotObjList): Repurpose some fields. (virDomainSnapshotDropParent): Drop unused parameter. * src/conf/domain_conf.c (virDomainSnapshotObjListGetNames) (virDomainSnapshotObjListCount): Simplify. (virDomainSnapshotFindByName, virDomainSnapshotSetRelations) (virDomainSnapshotDropParent): Match new field semantics. * src/qemu/qemu_driver.c (qemuDomainSnapshotCreateXML) (qemuDomainSnapshotReparentChildren, qemuDomainSnapshotDelete): Adjust clients.
-
由 Guido Günther 提交于
The word size there is 64 bit not 8.
-
由 Peter Krempa 提交于
This patch adds common code to list domains in fashion used by virListAllDomains with all currently supported flags. The header file also contains macros that group filters together that are used to shorten filter conditions.
-
由 Peter Krempa 提交于
This patch stores existence of the image in the object. At start of the daemon the state is checked and then updated in key moments in domain lifecycle.
-
由 Peter Krempa 提交于
This patch wires up the RPC protocol handlers for virConnectListAllDomains(). The RPC generator has no support for the way how virConnectListAllDomains() returns the results so the handler code had to be done manually. The new api is handled by REMOTE_PROC_CONNECT_LIST_ALL_DOMAINS, with number 273 and marked with high priority.
-
由 Peter Krempa 提交于
This patch adds export of the new API function virConnectListAllDomains() to the libvirt-python bindings. The virConnect object now has method "listAllDomains" that takes only the flags parameter and returns a python list of virDomain object corresponding to virDomainPtrs returned by the underlying api. The implementation is done manually as the generator does not support wrapping list of virDomainPtrs into virDomain objects.
-
由 Peter Krempa 提交于
This patch adds a new public api that lists domains. The new approach is different from those used before. There are key points to this: 1) The list is acquired atomically and contains both active and inactive domains (guests). This eliminates the need to call two different list APIs, where the state might change in between the calls. 2) The returned list consists of virDomainPtrs instead of names or ID's that have to be converted to virDomainPtrs anyways using separate calls for each one of them. This is more convenient and saves hypervisor calls. 3) The returned list is auto-allocated. This saves a lot of hassle for the users. 4) Built in support for filtering. The API call supports various filtering flags that modify the output list according to user needs. Available filter groups: Domain status: VIR_CONNECT_LIST_DOMAINS_ACTIVE, VIR_CONNECT_LIST_DOMAINS_INACTIVE Domain persistence: VIR_CONNECT_LIST_DOMAINS_PERSISTENT, VIR_CONNECT_LIST_DOMAINS_TRANSIENT Domain state: VIR_CONNECT_LIST_DOMAINS_RUNNING, VIR_CONNECT_LIST_DOMAINS_PAUSED, VIR_CONNECT_LIST_DOMAINS_SHUTOFF, VIR_CONNECT_LIST_DOMAINS_OTHER Existence of managed save image: VIR_CONNECT_LIST_DOMAINS_MANAGEDSAVE, VIR_CONNECT_LIST_DOMAINS_NO_MANAGEDSAVE Auto-start option: VIR_CONNECT_LIST_DOMAINS_AUTOSTART, VIR_CONNECT_LIST_DOMAINS_NO_AUTOSTART Existence of snapshot: VIR_CONNECT_LIST_DOMAINS_HAS_SNAPSHOT, VIR_CONNECT_LIST_DOMAINS_NO_SNAPSHOT 5) The python binding returns a list of domain objects that is very neat to work with. The only problem with this approach is no support from code generators so both RPC code and python bindings had to be written manually. *include/libvirt/libvirt.h.in: - add API prototype - clean up whitespace mistakes nearby *python/generator.py: - inhibit generation of the bindings for the new api *src/driver.h: - add driver prototype - clean up some whitespace mistakes nearby *src/libvirt.c: - add public implementation *src/libvirt_public.syms: - export the new symbol
-
由 Daniel P. Berrange 提交于
-
由 Gao feng 提交于
print debug info "container support is enabled" when host support the user or net namespace. Signed-off-by: NGao feng <gaofeng@cn.fujitsu.com>
-
由 Gao feng 提交于
kill the "return 0;" code, it will cause memory leak. Signed-off-by: NGao feng <gaofeng@cn.fujitsu.com>
-
由 Eric Blake 提交于
Introduced in commit 1f8c33b6. * src/lxc/lxc_container.c (lxcContainerGetSubtree): Avoid TAB.
-
- 18 6月, 2012 4 次提交
-
-
由 Gao feng 提交于
when libvirt_lxc trigger oom error in lxcContainerGetSubtree we should free the alloced memory for mounts. so when lxcContainerGetSubtree failed,we should do some memory cleanup in lxcContainerUnmountSubtree. Signed-off-by: NGao feng <gaofeng@cn.fujitsu.com>
-
由 Gao feng 提交于
we alloc the memory for format in lxcContainerMountDetectFilesystem but without free it in lxcContainerMountFSBlockHelper. this patch just call VIR_FREE to free it. Signed-off-by: NGao feng <gaofeng@cn.fujitsu.com>
-
由 Michal Privoznik 提交于
as we support qed format as well.
-
由 Michal Privoznik 提交于
as we are missing: attach-disk: --type can accept 'lun' too, not just cdrom or floppy. attach-disk: --target specify logical device name, not path attach-interface: --target silently drops strings with vnet* prefix
-
- 16 6月, 2012 7 次提交
-
-
由 Michal Privoznik 提交于
With latest changes to qemu-ga success on some commands is not reported anymore, e.g. guest-shutdown or guest-suspend-*. However, errors are still being reported. Therefore, we need to find different source of indication if operation was successful. Events.
-
由 Michal Privoznik 提交于
for agent ref count and qemuProcessHandleAgentDestroy
-
由 Eric Blake 提交于
Operating on a list of snapshot objects looks so much simpler. In particular, since the helper function already trimmed out irrelevant entries, we no longer have quite so many special cases on finding the first snapshot to operate on. Also, vshTreePrint no longer has a generic callback struct; both clients now pass something different according to their own needs. * tools/virsh.c (cmdSnapshotList): Use previous patches. (vshTreeArrayLookup): Rename... (vshNodeListLookup): ...now that it only has one client. (cmdNodeListDevices): Adjust caller.
-
由 Eric Blake 提交于
This patch is based on the fallback code out of cmdSnapshotList, with tweaks to keep the snapshot objects around rather than just their name, and to remove unwanted elements before returning. It looks forward to a future patch when we add a way to list all snapshot objects at once, and the next patch will simplify cmdSnapshotList to take advantage of this factorization. * tools/virsh.c (vshSnapshotList, vshSnapshotListFree): New functions.
-
由 Eric Blake 提交于
Commit 6e769eba made it a runtime error if libvirt was compiled without yajl support but targets a new enough qemu. But enough users are hitting this on self-compiled libvirt that it is worth erroring out at compilation time, rather than an obscure failure when trying to use the built executable. * configure.ac: If qemu is requested and -version works, require yajl when qemu version is new enough. * src/qemu/qemu_capabilities.c (qemuCapsComputeCmdFlags): Add comment.
-
由 Cole Robinson 提交于
If we do ./autogen.sh && ./configure, then later try ./autogen.sh --system, configure isn't invoked with the requested params. Instead config.status --recheck is run.
-
由 Jim Fehlig 提交于
The return status of virInterfaceDefParseBridge() was not being checked, potentially resulting in the creation of a broken interface.
-
- 15 6月, 2012 11 次提交
-
-
由 Daniel P. Berrange 提交于
When libpcap is not available, the NWFilter driver provides a no-op stub for the DHCP snooping initialization. This was mistakenly returning '-1' instead of '0', so the entire driver initialization failed
-
由 Daniel P. Berrange 提交于
To facilitate future troubleshooting add a bunch more debugging statements into important startup parts of libvirt
-
由 Osier Yang 提交于
'boot' tag shouldn't be exclusive with 'kernel', 'initrd', and 'cmdline', though the boot sequence doesn't make sense when the guest boots from kernel directly. But it's useful if booting from kernel is to install a newguest, even if it's not to install a guest, there is no hurt. And on the other hand, we allow 'boot' and the kernel tags when parsing.
-
由 Wen Congyang 提交于
Add a new parameter --memory-only for 'virsh dump' command. So the user can decide the vmcore's format.
-
由 Wen Congyang 提交于
This patch updates qemu driver to allow the client to choose the vmcore's format: memory only or including device state.
-
由 Wen Congyang 提交于
dump-guest-memory is a new dump mechanism, and it can work when the guest uses host devices. This patch adds a API to use this new monitor command. We will always use json mode if qemu's version is >= 0.15, so I don't implement the API for text mode.
-
由 Wen Congyang 提交于
If we lock the qemu_driver, we should call qemuDomainObjBeginJobWithDriver() not qemuDomainObjBeginJob().
-
由 Osier Yang 提交于
Detected by valgrind: ==16217== 1 errors in context 1 of 12: ==16217== Invalid read of size 1 ==16217== at 0x4A07804: __GI_strlen (mc_replace_strmem.c:284) ==16217== by 0x3019F167F6: xdr_string (in /lib64/libc-2.12.so) ==16217== by 0x3033709E8D: xdr_remote_nonnull_string (remote_protocol.c:31) ==16217== by 0x303370E5CB: xdr_remote_domain_update_device_flags_args (remote_protocol.c:2028) ==16217== by 0x30337197D1: virNetMessageEncodePayload (virnetmessage.c:341) ==16217== by 0x30337135E1: virNetClientProgramCall (virnetclientprogram.c:327) ==16217== by 0x30336F1EFD: callWithFD (remote_driver.c:4586) ==16217== by 0x30336F1F7B: call (remote_driver.c:4607) ==16217== by 0x30336F42F2: remoteDomainUpdateDeviceFlags (remote_client_bodies.h:2865) ==16217== by 0x30336D46E5: virDomainUpdateDeviceFlags (libvirt.c:9457) ==16217== by 0x41AEE8: cmdChangeMedia (virsh.c:15249) ==16217== by 0x413CB4: vshCommandRun (virsh.c:18669) ==16217== Address 0x4ec5e25 is 0 bytes after a block of size 293 alloc'd ==16217== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==16217== by 0x303364F1DB: virAllocN (memory.c:129) ==16217== by 0x41A844: vshPrepareDiskXML (virsh.c:15043) ==16217== by 0x41AECC: cmdChangeMedia (virsh.c:15246) ==16217== by 0x413CB4: vshCommandRun (virsh.c:18669) ==16217== by 0x423973: main (virsh.c:20261)
-
由 Laine Stump 提交于
-
由 Daniel P. Berrange 提交于
This reverts commit c16b4c43 Author: Daniel P. Berrange <berrange@redhat.com> Date: Fri May 11 15:09:27 2012 +0100 Avoid LXC pivot root in the root source is still / This commit broke setup of /dev, because the code which deals with setting up a private /dev and /dev/pts only works if you do a pivotroot. The original intent of avoiding the pivot root was to try and ensure the new root has a minimumal mount tree. The better way todo this is to just unmount the bits we don't want (ie old /proc & /sys subtrees. So apply the logic from commit c529b47a Author: Daniel P. Berrange <berrange@redhat.com> Date: Fri May 11 11:35:28 2012 +0100 Trim /proc & /sys subtrees before mounting new instances to the pivot_root codepath as well
-
由 Daniel P. Berrange 提交于
Tell the user what CPU mode value is wrong
-
- 14 6月, 2012 7 次提交
-
-
由 Peter Krempa 提交于
Libvirt updates the configuration of SPICE server only when something changes. This is unfortunate when the user wants to disconnect a existing spice session when the connected attribute is already "disconnect". This patch modifies the conditions for calling the password updater to be called when nothing changes, but the connected attribute is already "disconnect".
-
由 Michal Privoznik 提交于
There is a little easter egg in virsh: one can easily clone an object (domain, network, ...). Just 'virsh edit' change the name and remove <uuid>. And then, in the end when reporting success the new name was printed out. However, with recent edit rewrite we lost the final part and are still printing the original name out.
-
由 Michal Privoznik 提交于
When printing reedit options we make stdin raw. However, this results in stdout being raw as well. Therefore we need to return carriage when doing new line. Unfortunately, '\r' cannot be part of internationalized messages hence we must move them to formatting string which then in turn become huge and disarranged. To solve this, a new function is introduced which takes variable string arguments and prepend each with "\r\n" just before printing.
-
由 Peter Krempa 提交于
While unescaping the commands the commands passed through to the monitor function qemuMonitorUnescapeArg() initialized lenght of the input string to strlen()+1 which is fine for alloc but not for iteration of the string. This patch fixes the off-by-one error and drops the pointless check for a single trailing slash that is automaticaly handled by the default branch of switch.
-
由 Peter Krempa 提交于
The attach-disk command used with parameter --cache created an invalid XML snippet as the beginning of the <driver> element was not printed when used solely with --cache and no other attribute to driver.
-
由 Laine Stump 提交于
commit 52d064f4 added VIR_NETWORK_XML_INACTIVE in order to allow suppressing the auto-generated list of VFs in network definitions, and a --inactive flag to virsh net-dumpxml to take advantage of the flag. However, it missed out on two opportunities: 1) Use INACTIVE to get the current config of the network as it exists on disk, rather than the currently active config. 2) Add INACTIVE to the flags used for the virsh net-edit command, so that it won't include the forward-pool interfaces that were autogenerated, and so that a re-edit of the network prior to restarting it will show any other edits made since the last restart of the network. (prior to this patch, if you edited a network a 2nd time without restarting, all of the previous edits would magically disappear). In order to fit with the new #define-based generic edit function in virsh.c, a new function vshNetworkGetXMLDesc() was added. This function first tries to call virNetworkGetXMLDesc with the INACTIVE flag added, then retries without if the first attempt fails (in the manner expected when the server doesn't support it).
-
由 Daniel P. Berrange 提交于
A core use case of the hook scripts is to be able to do things to a guest's network configuration. It is possible to hook into the 'start' operation for a QEMU guest which runs just before the guest is started. The TAP devices will exist at this point, but the QEMU process will not. It can be desirable to have a 'started' hook too, which runs once QEMU has started. If libvirtd is restarted it will re-populate firewall rules, but there is no QEMU hook to trigger for existing domains. This is solved with a 'reconnect' hook. Finally, if attaching to an external QEMU process there needs to be an 'attach' hook script. This all also applies to the LXC driver * docs/hooks.html.in: Document new operations * src/util/hooks.c, src/util/hooks.c: Add 'started', 'reconnect' and 'attach' operations for QEMU. Add 'prepare', 'started', 'release' and 'reconnect' operations for LXC * src/lxc/lxc_driver.c: Add hooks for 'prepare', 'started', 'release' and 'reconnect' operations * src/qemu/qemu_process.c: Add hooks for 'started', 'reconnect' and 'reconnect' operations
-