- 10 4月, 2012 2 次提交
-
-
由 Peter Krempa 提交于
This patch cleans up variables used to store boolean command flags that are inquired by vshCommandOptBool to use the bool data type instead of an integer. Additionally this patch cleans up flag variables that are inferred from existing flags.
-
由 Peter Krempa 提交于
The documentation for the flag doesn't clearly state that the flag only enhances the output and the user needs to specify other flags to list inactive domains, that are enhanced by this flag.
-
- 03 4月, 2012 1 次提交
-
-
由 Michal Privoznik 提交于
Currently, we put no strains on escape sequence possibly leaving users with console that cannot be terminated. However, not all ASCII characters can be used as escape sequence. Only those falling in @ - _ can be; implement and document this constraint.
-
- 02 4月, 2012 1 次提交
-
-
由 Yuri Chornoivan 提交于
-
- 30 3月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
The code is splattered with a mix of sizeof foo sizeof (foo) sizeof(foo) Standardize on sizeof(foo) and add a syntax check rule to enforce it Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 28 3月, 2012 1 次提交
-
-
由 Alex Jia 提交于
Leaks are introduced in commit 1cf0e3db and fe383bb5. Fixing memory leaks, in addition, the patch also fixes a potential missing return value issue in 'if (from)' statement, without the fixing, although the programming met a error, the subsequent codes will be executed continually. * tools/virsh.c (cmdSnapshotList): fix memory leaks and missing return value. * How to reproduce? % virsh snapshot-list <domain> --parent --roots % virsh snapshot-list <domain> --parent --tree % virsh snapshot-list <domain> --roots --tree actual result: error: --parent and --roots are mutually exclusive error: Failed to disconnect from the hypervisor, 1 leaked reference(s) error: --parent and --tree are mutually exclusive error: Failed to disconnect from the hypervisor, 1 leaked reference(s) error: --roots and --tree are mutually exclusive error: Failed to disconnect from the hypervisor, 1 leaked reference(s) % virsh snapshot-create-as <domain> --name "hello" % virsh snapshot-create-as <domain> --name "libvirt" % virsh snapshot-list <domain> --roots --from "hello" actual result: error: --roots and --from are mutually exclusive Name Creation Time State ------------------------------------------------------------ libvirt 2012-03-28 13:46:51 +0800 running Signed-off-by: NAlex Jia <ajia@redhat.com>
-
- 27 3月, 2012 2 次提交
-
-
由 Laine Stump 提交于
Found when attempting to build on Fedora 17 alpha with: ./autogen.sh --system --enable-compile-warnings=error (this same build command works without problem on Fedora 16). All other struct initializers for this struct have the extra field filled in (almost always to 0), so the two errant ones were fixed by adding in the extra 0 field.
-
由 Martin Kletzander 提交于
Return statements with parameter enclosed in parentheses were modified and parentheses were removed. The whole change was scripted, here is how: List of files was obtained using this command: git grep -l -e '\<return\s*([^()]*\(([^()]*)[^()]*\)*)\s*;' | \ grep -e '\.[ch]$' -e '\.py$' Found files were modified with this command: sed -i -e \ 's_^\(.*\<return\)\s*(\(\([^()]*([^()]*)[^()]*\)*\))\s*\(;.*$\)_\1 \2\4_' \ -e 's_^\(.*\<return\)\s*(\([^()]*\))\s*\(;.*$\)_\1 \2\3_' Then checked for nonsense. The whole command looks like this: git grep -l -e '\<return\s*([^()]*\(([^()]*)[^()]*\)*)\s*;' | \ grep -e '\.[ch]$' -e '\.py$' | xargs sed -i -e \ 's_^\(.*\<return\)\s*(\(\([^()]*([^()]*)[^()]*\)*\))\s*\(;.*$\)_\1 \2\4_' \ -e 's_^\(.*\<return\)\s*(\([^()]*\))\s*\(;.*$\)_\1 \2\3_'
-
- 24 3月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Right now, it is appallingly easy to cause qemu disk snapshots to alter a domain then fail; for example, by requesting a two-disk snapshot where the second disk name resides on read-only storage. In this failure scenario, libvirt reports failure, but modifies the live domain XML in-place to record that the first disk snapshot was taken; and places a difficult burden on the management app to grab the XML and reparse it to see which disks, if any, were altered by the partial snapshot. This patch adds a new flag where implementations can request that the hypervisor make snapshots atomically; either no changes to XML occur, or all disks were altered as a group. If you request the flag, you either get outright failure up front, or you take advantage of hypervisor abilities to make an atomic snapshot. Of course, drivers should prefer the atomic means even without the flag explicitly requested. There's no way to make snapshots 100% bulletproof - even if the hypervisor does it perfectly atomic, we could run out of memory during the followup tasks of updating our in-memory XML, and report a failure. However, these sorts of catastrophic failures are rare and unlikely, and it is still nicer to know that either all snapshots happened or none of them, as that is an easier state to recover from. * include/libvirt/libvirt.h.in (VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC): New flag. * src/libvirt.c (virDomainSnapshotCreateXML): Document it. * tools/virsh.c (cmdSnapshotCreate, cmdSnapshotCreateAs): Expose it. * tools/virsh.pod (snapshot-create, snapshot-create-as): Document it.
-
- 23 3月, 2012 2 次提交
-
-
由 Osier Yang 提交于
This introduces a new running reason VIR_DOMAIN_RUNNING_WAKEUP, and new suspend event type VIR_DOMAIN_EVENT_STARTED_WAKEUP. While a wakeup event is emitted, the domain which entered into VIR_DOMAIN_PMSUSPENDED will be transferred to "running" with reason VIR_DOMAIN_RUNNING_WAKEUP, and a new domain lifecycle event emitted with type VIR_DOMAIN_EVENT_STARTED_WAKEUP.
-
由 Osier Yang 提交于
This introduces a new domain state pmsuspended to represent the domain which has been suspended by guest power management, e.g. (entered itno s3 state). Because a "running" state could be confused in this case, one will see the guest is paused actually while playing. And state "paused" is for the domain which was paused by virDomainSuspend.
-
- 17 3月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Commit af3f9aab taught 'virsh help' to ignore command aliases, but forgot 'virsh -h'. * tools/virsh.c (vshUsage): Handle aliases.
-
- 15 3月, 2012 2 次提交
-
-
由 Osier Yang 提交于
Detects the file type of source path if no "--sourcetype" and "driver" is specified, instead of always set the disk type as "block".
-
由 Alex Jia 提交于
* tools/virsh.c (cmdDetachDisk): fix invalid free due to using uninitialised value. * How to reproduce? # virsh detach-disk a b error: failed to get domain 'a' *** glibc detected *** virsh: double free or corruption (out): 0x00007fff410ed1a0 *** ======= Backtrace: ========= /lib64/libc.so.6[0x39cf0750c6] /usr/lib/libvirt.so.0(virFree+0x39)[0x7f045938a239] virsh[0x41c768] virsh[0x415075] virsh[0x425d64] /lib64/libc.so.6(__libc_start_main+0xfd)[0x39cf01ecdd] virsh[0x40a419] ======= Memory map: ======== 00400000-0044e000 r-xp 00000000 08:0e 760441 /usr/bin/virsh 0064e000-00650000 rw-p 0004e000 08:0e 760441 /usr/bin/virsh ...... 39d7229000-39d722b000 r--p 00029000 08:0e 2183477 /lib64/libk5crypto.so.3.1 39d722b000-39d722c000 rw-p 0002b000 08:0e 2183477 /lib64/lAborted (core dumped) Signed-off-by: NAlex Jia <ajia@redhat.com>
-
- 12 3月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Thanks to cgroups, providing user vs. system time of the overall guest is easy to add to our existing API. * include/libvirt/libvirt.h.in (VIR_DOMAIN_CPU_STATS_USERTIME) (VIR_DOMAIN_CPU_STATS_SYSTEMTIME): New constants. * src/util/virtypedparam.h (virTypedParameterArrayValidate) (virTypedParameterAssign): Enforce checking the result. * src/qemu/qemu_driver.c (qemuDomainGetPercpuStats): Fix offender. (qemuDomainGetTotalcpuStats): Implement new parameters. * tools/virsh.c (cmdCPUStats): Tweak output accordingly.
-
- 09 3月, 2012 1 次提交
-
-
由 Osier Yang 提交于
Since VIR_DOMAIN_AFFECT_{LIVE,CONFIG,CURRENT} was created, all new virsh commands use "--config" to represents the persistent changing. This patch add "--config" option for the old commands which still use "--persistent", and "--persistent" is now alias of "--config". tools/virsh.c: (use "--config", and "--persistent" is alias of "--config" now). cmdDomIfSetLink, cmdDomIfGetLink, cmdAttachDevice, cmdDetachDevice, cmdUpdateDevice, cmdAttachInterface, cmdDetachInterface, cmdAttachDisk, cmdDetachDisk toos/virsh.pod: Update docs of the changed commands, and add some missed docs for "--config" (detach-interface, detach-disk, and detach-device).
-
- 08 3月, 2012 5 次提交
-
-
由 Eric Blake 提交于
The last vestige of the inaccurate 'kilobytes' when we meant 1024 is now gone. And virsh is now useful for setting memory in units other than KiB. * tools/virsh.c (cmdSetmem, cmdSetmaxmem): Use new helper routine, allow passing bogus arguments on to hypervisor to test driver sanity checking, and fix leak on parse error. (vshMemtuneGetSize): New helper. (cmdMemtune): Use it. * tools/virsh.pod (setmem, setmaxmem, memtune): Document this.
-
由 Eric Blake 提交于
Now can now do: virsh vol-resize $vol 10M virsh blockresize $dom $vol 10M to get both interfaces to resize to 10MiB. The remaining wart is that vol-resize defaults to bytes, but blockresize defaults to KiB, but we can't break existing scripts; oh well, it's no worse than the same wart of the underlying virDomainBlockResize. The API for virStorageVolResize states that capacity must always be positive, and that the presence of shrink and delta flags is what implies a negative change. * tools/virsh.c (vshCommandOptScaledInt): New function. (cmdVolResize): Don't pass negative size. (cmdVolSize): Rename... (vshVolSize): ...and use new helper routine. (cmdBlockResize): Use new helper routine, and support new bytes flag. * tools/virsh.pod (NOTES): Document suffixes. (blockresize, vol-create-as, vol-resize): Point to notes.
-
由 Eric Blake 提交于
Just because our public API has a typo doesn't mean that virsh has to keep the typo. * tools/virsh.c (VSH_CMD_FLAG_ALIAS): New flag. (nodedevCmds): Use it. (cmdHelp): Omit alias commands. (cmdNodeDeviceDettach): Rename... (cmdNodeDeviceDetach): ...to this. * tools/virsh.pod (nodedev-detach): Document it.
-
由 Eric Blake 提交于
Command line interfaces should use dash, not underscore, as many keyboard layouts allow that to be typed with fewer shift key presses. Also, the US spelling of --tunneled gets more google hits than the UK spelling of --tunnelled. * tools/virsh.c (opts_migrate): Allow US variant. (opts_blkdeviotune): Prefer - over _. * tools/virsh.pod (blkdeviotune): Fix spelling.
-
由 Eric Blake 提交于
In the past, we have created some virsh options with less-than-stellar names. For back-compat reasons, those names must continue to parse, but we don't want to document them in help output. This introduces a new option type, an alias, which points to a canonical option name later in the option list. I'm actually quite impressed that our code has already been factored to do all option parsing through common entry points, such that I got this added in relatively few lines of code! * tools/virsh.c (VSH_OT_ALIAS): New option type. (opts_echo): Hook up an alias, for easy testing. (vshCmddefOptParse, vshCmddefHelp, vshCmddefGetOption): Allow for aliases. * tools/virsh.pod (NOTES): Document promise of back-compat. * tests/virshtest.c (mymain): Test new feature.
-
- 07 3月, 2012 1 次提交
-
-
由 KAMEZAWA Hiroyuki 提交于
CPU0: cpu_time 88.231593093 seconds CPU1: cpu_time 123.613341883 seconds Total: cpu_time 211.844934976 seconds Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: NEric Blake <eblake@redhat.com>
-
- 02 3月, 2012 1 次提交
-
-
由 Eric Blake 提交于
No thanks to 64-bit windows, with 64-bit pid_t, we have to avoid constructs like 'int pid'. Our API in libvirt-qemu cannot be changed without breaking ABI; but then again, libvirt-qemu can only be used on systems that support UNIX sockets, which rules out Windows (even if qemu could be compiled there) - so for all points on the call chain that interact with this API decision, we require a different variable name to make it clear that we audited the use for safety. Adding a syntax-check rule only solves half the battle; anywhere that uses printf on a pid_t still needs to be converted, but that will be a separate patch. * cfg.mk (sc_correct_id_types): New syntax check. * src/libvirt-qemu.c (virDomainQemuAttach): Document why we didn't use pid_t for pid, and validate for overflow. * include/libvirt/libvirt-qemu.h (virDomainQemuAttach): Tweak name for syntax check. * src/vmware/vmware_conf.c (vmwareExtractPid): Likewise. * src/driver.h (virDrvDomainQemuAttach): Likewise. * tools/virsh.c (cmdQemuAttach): Likewise. * src/remote/qemu_protocol.x (qemu_domain_attach_args): Likewise. * src/qemu_protocol-structs (qemu_domain_attach_args): Likewise. * src/util/cgroup.c (virCgroupPidCode, virCgroupKillInternal): Likewise. * src/qemu/qemu_command.c(qemuParseProcFileStrings): Likewise. (qemuParseCommandLinePid): Use pid_t for pid. * daemon/libvirtd.c (daemonForkIntoBackground): Likewise. * src/conf/domain_conf.h (_virDomainObj): Likewise. * src/probes.d (rpc_socket_new): Likewise. * src/qemu/qemu_command.h (qemuParseCommandLinePid): Likewise. * src/qemu/qemu_driver.c (qemudGetProcessInfo, qemuDomainAttach): Likewise. * src/qemu/qemu_process.c (qemuProcessAttach): Likewise. * src/qemu/qemu_process.h (qemuProcessAttach): Likewise. * src/uml/uml_driver.c (umlGetProcessInfo): Likewise. * src/util/virnetdev.h (virNetDevSetNamespace): Likewise. * src/util/virnetdev.c (virNetDevSetNamespace): Likewise. * tests/testutils.c (virtTestCaptureProgramOutput): Likewise. * src/conf/storage_conf.h (_virStoragePerms): Use mode_t, uid_t, and gid_t rather than int. * src/security/security_dac.c (virSecurityDACSetOwnership): Likewise. * src/conf/storage_conf.c (virStorageDefParsePerms): Avoid compiler warning.
-
- 01 3月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Now virsh can call virDomainBlockRebase. * tools/virsh.c (cmdBlockPull): Add --base parameter. (blockJobImpl): Use it to expose BlockRebase API. * tools/virsh.pod (blockpull): Document it.
-
- 28 2月, 2012 3 次提交
-
-
由 Osier Yang 提交于
One could use it to eject, insert, or update media of the CDROM or floppy drive. See the documentation for more details.
-
由 Osier Yang 提交于
The first use of the two new helper functions.
-
由 Osier Yang 提交于
vshFindDisk is to find the disk node in xml doc with given source path or target of disk device, and type (indicates disk type, normal disk or changeable disk). vshPrepareDiskXML is to make changes on the disk node (e.g. create and insert the new <source> node for inserting media of CDROM drive). They are marked as unused temporarily.
-
- 27 2月, 2012 2 次提交
-
-
由 Peter Krempa 提交于
This patch adds support for the newly introduced VIR_DOMAIN_CONSOLE_FORCE and VIR_DOMAIN_CONSOLE_SAFE flags. The console command now has an optional parameter --force that specifies that the user wants to forcibly interrupt an ongoing console session and create a new one. Flag --safe requests that the console should be opened only if the hypervisor driver supports safe console handling. The behaviour to this point was that the daemon opened two streams to the console, that competed for data from the pipe, and the result was that both of the consoles ended up scrambled. This patch doesn't modify operation of other commands dealing with console connections (start, create) as those open connections to newly started domains making it virtually impossible for another client to race for the console and steal it. * tools/console.c: - add support for flag passthrough * tools/console.h: - modify function prototypes to match impl. * tools/virsh.c: - add flag --force for the console command
-
由 Michal Privoznik 提交于
-
- 25 2月, 2012 2 次提交
-
-
由 Laine Stump 提交于
See: https://bugzilla.redhat.com/show_bug.cgi?id=797066 The position of the bridge name and ethernet device name were accidentally swapped in the message informing of success creating the bridge.
-
由 Daniel P. Berrange 提交于
If attempting to run ssh root@somehost virsh console someguest You'll get an error 2012-02-15 13:11:47.683+0000: 4765: info : libvirt version: 0.9.10, package: 1.fc18 (Unknown, 2012-02-15-11:48:57, lettuce.camlab.fab.redhat.com) 2012-02-15 13:11:47.683+0000: 4765: error : vshRunConsole:320 : unable to get tty attributes: Invalid argument Connected to domain f16x86_64 Escape character is ^] There are several problems here - The actual error message is bad for users - We shouldn't rely on VIR_ERROR for this case - The prompt makes it look like we still connected because we didn't flush stdout. * virsh.c: Flush stdout before starting console and check for a valid tty
-
- 23 2月, 2012 1 次提交
-
-
由 Jiri Denemark 提交于
-
- 22 2月, 2012 1 次提交
-
-
由 Peter Krempa 提交于
This patch adds new options to the "virsh list" command enabling filtering of persistent and transient domains along with the option to print only UUIDs or names of domains instead of printing the table. Option --name prints domain names (one per line) instead of the default table. Similarly --uuid prints domain's UUID. The option --table is an alias for the default behavior. Aditionally --persistent and/or --transient may be specified to filter the output of domains.
-
- 08 2月, 2012 3 次提交
-
-
由 Peter Krempa 提交于
This patch fixes the domain modification impact flags for tie virsh desc command to match the new semantics and fix the docs to match actual behavior.
-
由 Alex Jia 提交于
-
由 Osier Yang 提交于
Any device XML doesn't use the same order as libvirt generates, or uses decimal for attributes like "slot" of "<address>" will cause device detaching to fail, as virsh compares the XML simply earlier in strict manner before internal parsing. This is regression introduced by ea7182c2.
-
- 06 2月, 2012 2 次提交
-
-
由 Peter Krempa 提交于
Commit fad5cd21 introduces a new flag that allows to show domain's title with domains. This commit introduced resource leak while listing inactive domains with titles.
-
由 Alex Jia 提交于
Detected by valgrind. the codes are allocating 0 bytes memory to variable cpumap by vshCalloc function, and then the function VIR_USE_CPU will access it later, a invalid read error will be hit. * tools/virsh.c(cmdVcpuPin): fix invalid read error. * How to reproduce? % valgrind -v --read-var-info=yes virsh vcpupin <domain> 0 0 * Actual result: ==27271== ERROR SUMMARY: 5 errors from 2 contexts (suppressed: 8 from 6) ==27271== ==27271== 1 errors in context 1 of 2: ==27271== Invalid read of size 1 ==27271== at 0x39CF087E2E: __GI_memcpy (in /lib64/libc-2.12.so) ==27271== by 0x39CF114FDC: xdrmem_putbytes (in /lib64/libc-2.12.so) ==27271== by 0x39CF114707: xdr_opaque (in /lib64/libc-2.12.so) ==27271== by 0x4D56194: xdr_remote_domain_pin_vcpu_args (remote_protocol.c:1844) ==27271== by 0x4D6CCE1: virNetMessageEncodePayload (virnetmessage.c:341) ==27271== by 0x4D5A44B: virNetClientProgramCall (virnetclientprogram.c:327) ==27271== by 0x4D36EDB: callWithFD (remote_driver.c:4546) ==27271== by 0x4D36F7B: call (remote_driver.c:4567) ==27271== by 0x4D3B2C1: remoteDomainPinVcpu (remote_client_bodies.h:1566) ==27271== by 0x4D199D3: virDomainPinVcpu (libvirt.c:8585) ==27271== by 0x4241F4: cmdVcpuPin (virsh.c:5262) ==27271== by 0x4150A6: vshCommandRun (virsh.c:17712) ==27271== Address 0x5602b80 is 0 bytes after a block of size 0 alloc'd ==27271== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==27271== by 0x4C89BDF: virAllocN (memory.c:129) ==27271== by 0x423868: _vshCalloc.clone.2 (virsh.c:454) ==27271== by 0x423EF9: cmdVcpuPin (virsh.c:5190) ==27271== by 0x4150A6: vshCommandRun (virsh.c:17712) ==27271== by 0x426583: main (virsh.c:19289) ==27271== ==27271== ==27271== 4 errors in context 2 of 2: ==27271== Invalid read of size 1 ==27271== at 0x424133: cmdVcpuPin (virsh.c:5245) ==27271== by 0x4150A6: vshCommandRun (virsh.c:17712) ==27271== by 0x426583: main (virsh.c:19289) ==27271== Address 0x5602b80 is 0 bytes after a block of size 0 alloc'd ==27271== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==27271== by 0x4C89BDF: virAllocN (memory.c:129) ==27271== by 0x423868: _vshCalloc.clone.2 (virsh.c:454) ==27271== by 0x423EF9: cmdVcpuPin (virsh.c:5190) ==27271== by 0x4150A6: vshCommandRun (virsh.c:17712) ==27271== by 0x426583: main (virsh.c:19289) Signed-off-by: NAlex Jia <ajia@redhat.com>
-
- 04 2月, 2012 2 次提交
-
-
由 Laine Stump 提交于
This allows virsh to use the new VIR_DOMAIN_DESTROY_GRACEUL flag for virDomainDestroyFlags.
-
由 Eric Blake 提交于
Our HACKING discourages use of malloc and free, for at least a couple of years now. But we weren't enforcing it, until now :) For now, I've exempted python and tests, and will clean those up in subsequent patches. Examples should be permanently exempt, since anyone copying our examples won't have use of our internal-only memory.h via libvirt_util.la. * cfg.mk (sc_prohibit_raw_allocation): New rule. (exclude_file_name_regexp--sc_prohibit_raw_allocation): and exemptions. * src/cpu/cpu.c (cpuDataFree): Avoid false positive. * src/conf/network_conf.c (virNetworkDNSSrvDefParseXML): Fix offenders. * src/libxl/libxl_conf.c (libxlMakeDomBuildInfo, libxlMakeVfb) (libxlMakeDeviceModelInfo): Likewise. * src/rpc/virnetmessage.c (virNetMessageSaveError): Likewise. * tools/virsh.c (_vshMalloc, _vshCalloc): Likewise.
-