Commit Graph

445 Commits

Author SHA1 Message Date
Cole Robinson
316b2bd73b virt-install: Add some examples in --cpu help 2014-01-22 10:43:57 -05:00
Cole Robinson
812c4c6d98 virt-install: Move more shared options to cli.py
virt-xml will use these
2014-01-22 10:43:48 -05:00
Cole Robinson
f9ab83a69e virt-install: Deprecate --init, make it --boot init= instead 2014-01-22 10:43:09 -05:00
Cole Robinson
ec79c676b3 cli: Deprecate explicit --cpuset option, make it a --vcpus sub option 2014-01-22 10:43:01 -05:00
Cole Robinson
54b73f4502 cli: Centralize most option handling dispatch
Rather than require tools to do multiple parse_* calls. This infrastructure
will help with virt-xml as well.
2014-01-22 10:42:05 -05:00
Cole Robinson
269339f29f cli: drop get_* helpers, just make parse_* helpers handle all cases 2014-01-22 10:40:48 -05:00
Cole Robinson
d216c44157 Stub out --check-cpu option
It's old, uninteresting, and I don't think anyone is depending on it
to work. Parse the command line option, but don't do anything differently.
2014-01-22 10:38:42 -05:00
Cole Robinson
6c7439d625 cli: Drop useless get_uuid helper 2014-01-22 10:36:21 -05:00
Cole Robinson
d1edce1ca5 cli: Drop dest= from most arguments, it was redundant 2014-01-22 10:36:14 -05:00
Cole Robinson
41a84bae9f cli: Rework adhoc CLI parsing into a class structure
This adds:

VirtCLIArgument: a single foo=bar mapping
VirtOptionString: A collection of VirtCLIArguments, that parses the whole thing
VirtCLIParser: Represents a single cli option like --disk, --network, etc.

Centralizing this infrastructure opens up a lot of doors for future
improvements, like cli option introspection.
2014-01-22 10:35:30 -05:00
Chen Hanxiao
a98515a4da virt-install: add support for '--panic option'
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>

(crobinso: man page and cli tweaks)
2014-01-22 09:33:18 -05:00
Martin Kletzander
dc0b9bbaaf Rename hide_unsupported_rhel_options to stable_defaults and clean-up its usage
There were multiple problems with the setting and usage of
hide_unsupported_rhel_options.  Due to the fact that the option has
several diferent namings throughout the code, this patch is renaming
it to stable_defaults, which basically says what the option does and
makes it possible to use it without need for more than one negation
(where the old code had up to 4 of them in some places), which also
helps understanding it.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2014-01-21 17:13:18 +01:00
Cédric Bosdonnat
d888ff2394 Add lxc filesystem drivers: loop and nbd
These file systems drivers have been added in virtinst, but also in the
addhardware UI.
2014-01-21 09:29:13 -05:00
Cédric Bosdonnat
2f505822a1 Add Hardware: added the missing filesystem types for LXC guests.
This means tweaking the UI to input a memory usage for the 'ram'
filesystem type.
2014-01-21 09:29:12 -05:00
Martin Kletzander
10331a5f14 pylint: Skip hashlib import hackery and remove unused variable
hashlib's dynamic import hackery makes pylint very sad since it cannot
realize that the module has sha256 member (just created dynamically),
so let's just make it skip this error.

Also remove unused variable in virtinst.cli

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2014-01-20 14:42:07 +01:00
Cole Robinson
c426a30511 Convert all command line handling to argparse
Allows us to drop some hacks, and we may need it for a new upcoming
tool.
2014-01-19 11:32:08 -05:00
Cole Robinson
7f66926721 Fix first time remote URL installs from virt-manager (bz 1049852)
On first run, the remote URL install handling creates a storage pool
for /var/lib/libvirt/boot on the remote host. After this, it clears
the VirtualConnection's object cache, so the next time all pools are
fetched, it returns an accurate list.

However that clear_cache call wasn't propagated up to virt-manager's
cache. Add a new cb to fix it.
2014-01-18 14:57:39 -05:00
Cole Robinson
a82b60dcff capabilities: Remove some public API back compat 2014-01-18 13:23:30 -05:00
Cole Robinson
dcd67be2db osdict: Use virtio console and qemu ga for RHEL7 2014-01-18 13:06:09 -05:00
Cole Robinson
073b3a69e3 urlfetcher: Use inst.repo kernel option for new RH distros (bz 1026841) 2014-01-18 13:04:47 -05:00
Cole Robinson
962994f72f osdict: RHEL7 has a public beta, so it's 'supported' now 2014-01-18 10:35:55 -05:00
Cole Robinson
e151146cad cloner: Don't validate new clone name (bz 1054771)
Our validation check might not be up to date, WRT what characters are
acceptable. So if we try to --auto-clone an existing valid VM with
some characters we aren't expecting, we cause ourselves to error.

Just skip the validation and let libvirt complain if something is wrong.
2014-01-17 18:44:26 -05:00
Cole Robinson
d040bf3573 Drop the len <= 50 validation check for domain names
Just let libvirt error out, since we have no idea if this is still
relevant.
2014-01-17 18:42:15 -05:00
Cole Robinson
958dea6c5f createnet: Use typical name validation pattern 2014-01-17 18:40:30 -05:00
Cole Robinson
6d2f937c99 virt-install: --host-device: add driver_name option 2014-01-14 18:09:21 -05:00
Cole Robinson
b57a2094ff Probe entire backing chain when checking if path is in use 2014-01-14 17:44:14 -05:00
Cole Robinson
66096a7eeb choosecd: Check path-in-use collision (bz 1028197) 2014-01-14 17:11:51 -05:00
Cole Robinson
765b1ed7d6 Track kernel/initrd/dtb in 'path in use by' UI 2014-01-14 16:57:32 -05:00
Chen Hanxiao
2bee4a128d panic notifier: display default value if not set
If we didn't set values for @type and @iobase in
XML, libvirt will use the default value.
Currently, virt-manager will display "-" if we don't
set any values.
This patch will use default value for display.
And update test case to cover this scenario.

Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
2014-01-14 09:58:09 -05:00
Cole Robinson
6db30432a5 domain: Use support infra to check if memory stats supported 2014-01-12 17:53:53 -05:00
Cole Robinson
bd111d411c addhw: Only allow panic device if libvirt supports it 2014-01-12 15:16:06 -05:00
Cole Robinson
f02b85d913 guest: Don't add qemu-ga on ARM where virtio slots are limited 2014-01-12 14:58:43 -05:00
Cole Robinson
52bb0f6067 nodedev: Include PCI vendor in pretty name
Pretty important if trying to distinguish between devices
2014-01-12 14:52:33 -05:00
Cole Robinson
cad64c0dc1 nodedev: Remove subdev for pretty_name, it's pointless 2014-01-12 14:52:15 -05:00
Cole Robinson
a70077172e urlfetcher: Don't mandate boot.iso in treeinfo for Generic distro
Hit this if doing --location /path/to/mounted/RHS.iso

https://bugzilla.redhat.com/show_bug.cgi?id=1039456
2014-01-11 16:24:13 -05:00
Cole Robinson
d38d019aeb distroinstaller: Make each media type explicit 2014-01-11 16:10:38 -05:00
Cole Robinson
0c80c69918 installer: Drop needless property redirection 2014-01-11 15:28:21 -05:00
Chen Hanxiao
8419835b1d virtinst: add support for panic notifier device
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
2014-01-11 14:32:18 -05:00
Cole Robinson
95170e8892 virt-install: Support --network source, source_mode, target
The latter two bits are needed for macvtap configuration.
2014-01-06 15:17:32 -05:00
Cole Robinson
c9680b34a1 ppc64 pseries guests use vga graphics, not qxl (bz 1034693) 2013-12-18 16:17:01 -05:00
Giuseppe Scrivano
25723f98ae osdict: append "(or later)" to the last version of an OS
It makes clearer to the user to pick the last version available for an
OS when a newer version is not listed by virt-manager/virt-install.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-12-06 20:18:28 +01:00
Cole Robinson
70f1f8df1e storage: Parse volume key 2013-12-05 09:17:12 -05:00
Giuseppe Scrivano
e51dd1cf40 capabilities: correctly parse "cpus" in the host NUMA topology
"cpus" might no be the only child element in the "cell" element, so be
sure to check all children.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1032320

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-11-22 13:53:06 +01:00
Cole Robinson
e7ed161f5a support: Use libvirt daemon version correctly
It should be the reference version for all libvirt checks if it exists.

Fixes AUTOSOCKET check for a remote RHEL6 hypervisor for example.
2013-11-19 17:02:51 -05:00
Giuseppe Scrivano
d3a6f1a537 virtinst: parse capabilities baselabel element
libvirt since version 1.1.4 shows the security context used to execute
the hypervisor process.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-11-18 09:05:22 +01:00
Cole Robinson
1ffcc0cced urlfetcher: Fix breakage after kernel err report fix 2013-11-10 11:35:22 -05:00
Cole Robinson
de7144d216 create: Don't ask about changing perms if qemu is 'root' user 2013-11-10 11:09:22 -05:00
Cole Robinson
8b42bca801 urlfetcher: Fix error reporting if fetching kernel fails (bz 1017419) 2013-11-09 18:56:09 -05:00
Cole Robinson
8dcb65bd50 create: Fix default qemu-ga setup (bz 1016613)
We were adding default devices before setting the OS value, which qemu_ga
setup depends on.
2013-11-09 18:52:05 -05:00
Cole Robinson
eb33bd34e7 Misc improvements to some debug messages 2013-11-09 18:17:29 -05:00
Giuseppe Scrivano
5798c5b9b4 virt-manager: prefer os.makedirs to os.mkdir when creating cache dir
Ensure the parent directories exist when attempting to create the
cache directory.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1016435

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-11-05 18:15:11 +01:00
Giuseppe Scrivano
a832d77559 virt-install: EGD RNG devs need a host to connect to if backend_mode=bind
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-28 17:32:06 +01:00
Giuseppe Scrivano
8248331d6c virtinst: allow EGD RNG devices to have both bind and connect sources
Remove backend_mode from VirtualRNGDevice and allow to directly specify
bind and connect sources.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-28 17:32:06 +01:00
Giuseppe Scrivano
2a040ccd17 mass update: remove double spaces from comments
Updated by this script:

find -name '*.py' -exec sed -i "s|^\(#.*[^.?\!]\)  \(.*[^#]\)$|\1 \2|g" \{\} \;

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-28 17:22:31 +01:00
Giuseppe Scrivano
0df75c7603 headers: update "Red Hat, Inc." copyright for the year 2013
Ensure that any file touched by a @redhat.com author in 2013 has an
updated copyright header.

The files were updated using the build-aux/update-copyright gnulib
script and manually added where the copyright line wasn't present.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-28 17:22:26 +01:00
Cole Robinson
2b564f524e Fix a string typo 2013-10-24 14:07:06 +01:00
Cole Robinson
1a88cef3af altlinux doesn't have installable URLs, clarify 2013-10-15 11:21:53 -04:00
Cole Robinson
6673123185 nodedev: Parse PCI iommuGroup 2013-10-10 09:41:49 -04:00
Cole Robinson
3f532fe263 VirtualDisk: Handle the blktap default
And cache the blktap lookup once for the localhost
2013-10-06 13:17:35 -04:00
Cole Robinson
5945b8c4a1 connection: Drop redundant XML sanitizing 2013-10-06 13:00:30 -04:00
Cole Robinson
56b9f6187b Streamline support checks
Just use one function check_support
2013-10-06 10:08:04 -04:00
Cole Robinson
d4103eac26 virt-install: Add '--console none' and '--channel none'
For skipping the default channel and default console behavior
2013-10-06 09:43:56 -04:00
Cole Robinson
18fa751059 Add qemu-guest-agent channel automatically for supported OS 2013-10-06 09:19:59 -04:00
Cole Robinson
f44ad5ae05 Default to virtio console for supported OS
This could cause issues for people trying unattended non-graphical
kickstart installs and expecting ttyS0 in the guest to be hooked
up to the default console. So to get back the default behavior, you
can do:

  --console pty
2013-10-06 08:53:05 -04:00
Cole Robinson
dae3678d26 guest: Absorb more default device checks 2013-10-06 08:30:33 -04:00
Cole Robinson
eede884554 guest: Set more involved clock defaults for qemu
The XML we use is:

  <clock offset="utc">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
  </clock>

Which translates to the qemu commands:

    -no-hpet -no-kvm-pit-reinjection -rtc driftfix=slew

The latter two bits are already used by openstack and gnome boxes by
default.

On RHEL hpet is compiled out so -no-hpet is the default,
but not everywhere else. Though recently the RH guys confirmed that
for regular usage it should be turned off because a) qemu support
is not that good, b) most users don't need it anyways c) it has
a performance penalty.

This default can be overridden from a virt-install command like

  --clock rtc_tickpolicy=delay

When Guest() sees that a timer has already been defined, it won't
set the new defaults, and that setting above is the old implied
default rtc setting.
2013-10-05 17:12:11 -04:00
Cole Robinson
d0b067f2fc virt-install: Add --clock option 2013-10-05 16:48:07 -04:00
Cole Robinson
a163f44a27 clock: Add timer parsing 2013-10-05 16:05:31 -04:00
Cole Robinson
ff73f1119e details: If we know the channel target name, pretty list it 2013-10-05 14:04:49 -04:00
Cole Robinson
0366589812 Rip out all support for local RHEL6 version checks
These bits only apply if virt-manager is running directly on a RHEL6.
Since latest virt-manager can't do that thanks to GTK3 conversion,
just drop it all.
2013-10-05 13:57:55 -04:00
Cole Robinson
34f23165b6 addhw: Add channel option for auto socket allocation 2013-10-05 13:54:28 -04:00
Cole Robinson
5f1187e4c3 addhw: Don't show target_type for every char device 2013-10-05 13:33:55 -04:00
Cole Robinson
9d21d2bb02 addhw: List known channel names in a comboboxentry 2013-10-05 13:27:11 -04:00
Cole Robinson
24137cdfe9 addhw: Add 'console' option for adding virtio consoles 2013-10-05 13:22:53 -04:00
Cole Robinson
f9fcac27a0 addhw: Don't advertise unused char types
Like vc, stdio, etc. They don't really have much use
2013-10-05 11:07:32 -04:00
Cole Robinson
98187eb4b7 util: Fix generate_name start_num logic
We would start at start_num+1 which was confusing, fix it to do
the right thing.
2013-10-05 10:22:27 -04:00
Fred A. Kemp
05254479db virt-install: Add --disk removable option 2013-10-04 07:57:13 -04:00
Fred A. Kemp
bcd47d6471 virtinst: Expose disk/target/@removable 2013-10-04 07:57:13 -04:00
Cole Robinson
d83b2c02fa virt-manager: Add USB3 convenience option to the controller UI
and a --controller usb3 option to virt-install
2013-10-03 16:34:28 -04:00
Giuseppe Scrivano
8e85840546 virt-install: allow to specify "startupPolicy" for --disk
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-03 16:51:23 +02:00
Giuseppe Scrivano
f5a7476497 virtinst: expose disk/source startupPolicy attribute
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-03 16:49:49 +02:00
Giuseppe Scrivano
b2e962fcf3 virtinst: Use the default keymap when running tests
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-03 16:49:45 +02:00
Cole Robinson
0bd2f97bda VirtualDisk: Try to append targets, not just use first free (bz #905439)
This used to happen:

- create VM with cdrom, cdrom gets hdc
- customize before install
- add new cdrom, gets target hda or hdb (first free target)
- new cdrom now has priority in the boot order

Change the logic to try to append targets first, and if there isn't
any space left, use the first free one. This may cause other issues
but we'll just have to wait and see.
2013-10-03 08:48:15 -04:00
Cole Robinson
5860b132dc tests: Add focused unit test for device numbering 2013-10-03 08:48:11 -04:00
Cole Robinson
0614e490c8 VirtualDisk: Don't try to force cdrom target=hdc
It was required a long long time ago, before qemu supported -drive
and possibly ancient xen. Nowadays it should be pointless, and contributes
to some issues like bz 905439
2013-10-02 20:31:57 -04:00
Cole Robinson
475ec1252e virt-install: Allow --disk target
Shouldn't be needed often, but just in case
2013-10-02 20:15:49 -04:00
Cole Robinson
18d8512699 Move the 'default graphics type' logic into Guest
So we can share it, and make virt-install more robust
2013-10-02 18:06:52 -04:00
Cole Robinson
a2cbb9f500 support: s/CONN_HV/CONN/g
We don't need to distinguish these days.
2013-10-02 16:41:23 -04:00
Cole Robinson
fb7868db19 Enable cache=None and io=native by default for block devices
This is where performance issues hit the most. This changes the
RHEL default to remove cache=None for all file volumes. If anyone
cares they can speak up, but it seems an overly unnecessary deviation
from upstream qemu.
2013-10-02 16:10:39 -04:00
Cole Robinson
9c57c72eac Default to adding USB2 for new enough KVM
We enable this for virt-install as well. To avoid it, you can do either

--controller usb,model=none or --controller usb
2013-10-02 15:54:35 -04:00
Cole Robinson
9194feb1f5 virt-manager: Default to qcow2 on kvm
qcow2 enables fancy features like snapshots and is generally more
desktopy, which we purport to be.

We only do this on not horribly old libvirt/qemu, and only on qemu
connections. This may work for xen but I'm not going to turn it on
until someone tests it.
2013-10-02 15:34:34 -04:00
Cole Robinson
fa0ee32172 virt-install: Fix multiple invocation of --disk pool=default
Don't use a global counter, just correctly specify a collidelist with
not yet created disk images
2013-10-02 13:20:27 -04:00
Cole Robinson
187ce92621 hostkeymap: Centralize parsing, don't be so noisy
And add /etc/vconsole.conf parsing to close bug 882183
2013-10-02 12:35:59 -04:00
Cole Robinson
67c62e68de create: Move name to last page, arch/type to first page
Moving name to the end allows us to do things like generate a default
name based on the chosen OS type, which we do here. This is bz 736951

Moving arch/type to the front page of the wizard simplifies validation
and will be needed to intuitively install arm guests without a bunch
of hacky workarounds.
2013-10-01 16:53:59 -04:00
Cole Robinson
37350859ce storage: Use qcow2 metadata preallocation if supported 2013-10-01 14:29:58 -04:00
Ying-Shiuan Pan
fa8422f278 support: decrease required libvirt version for stream console
According to the changelog of libvirt http://libvirt.org/news.html,
the required version for stream console should be 0.8.6.

Please check the link: http://libvirt.org/news.html, libvirt started
to support virDomainOpenConsole() since "0.8.6: Nov 30 2010". And there
were also many changes related to stream console.

In practical terms, I have tested the change with libvirtd-0.8.8 in
Ubuntu 12.04.2 (x64) and another ARM port libvird-0.8.8. I think changing
to 0.8.6 should be fine because according to the changelog there are
no big changes in libvirt-0.8.7 and libvirt-0.8.8.

Signed-off-by: Ying-Shiuan Pan <yspan@itri.org.tw>
2013-10-01 10:58:44 -04:00
Cole Robinson
dd823d2d8c cli: Don't log to debug files from the test suite
We shouldn't be doing it anyways, but my recent cache_dir change broke
a bunch of stuff without this.
2013-10-01 10:14:46 -04:00
Cole Robinson
0b58badfc1 Storage debug and scratch files in ~/.cache/virt-manager (bz 693028) 2013-10-01 08:28:15 -04:00
Cole Robinson
6043a88a0c snapshots: Add some specific UI for external snapshots
We sort them separately in the snapshot list, explicitly mention that
they are 'external', and add a UI field listing the memory/disk
details.

In general mixing internal and external snapshots is a recipe for
confusion and disaster, so I think the best thing to do is at least
acknowledge their presence in the UI but not make any attempt to
predict what will or will not work.
2013-09-30 19:55:21 -04:00
Cole Robinson
45e84d46ec snapshots: Make state type/icon UI match other usage 2013-09-30 17:12:24 -04:00