Commit Graph

1645 Commits

Author SHA1 Message Date
Cole Robinson
c38be50dcb urldetect: Use fedora-unknown more
Instead of the magic to look up latest OS... fedora-unknown is meant
for that usecase.
2019-01-08 16:02:34 -05:00
Cole Robinson
6c28f53590 cli; Share --os-variant option registering
And improve the help message for both users
2019-01-08 12:44:53 -05:00
Cole Robinson
0d3babe42b cli: Improve 'Unknown options' error
By mentioning the offending command line option, ex:

$ ./virt-install --boot disk
ERROR    Unknown --boot options: ['disk']
2019-01-08 11:50:36 -05:00
Cole Robinson
2f89ecf4a9 Remove Author lines from file headers
Similar to what was done in libvirt. See these commits:

600462834f
c99e954973
2019-01-08 11:45:35 -05:00
Marc Hartmayer
0df18e29aa cli: refactor noset_cb
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 15:46:01 -05:00
Marc Hartmayer
976a03c264 cli: don't use monkey patching
Instead we provide a meta class that can be used to customize the
subclass creation. It's similar to '__init_subclass__' (see
https://www.python.org/dev/peps/pep-0487/).

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 15:46:01 -05:00
Marc Hartmayer
4d33cb747d cli: use Python3 conventions: super()
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 15:04:24 -05:00
Marc Hartmayer
f555d3a2be cli: rename ParseMemdev to ParserMemdev
...since it meets the common naming scheme for VirtCLIParsers.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 15:04:15 -05:00
Marc Hartmayer
a8b1b5df0e cli: add register classmethod to each parser
Add a classmethod for registering the parser to each
VirtCLIParser. This allows us to register only those parsers that were
actually needed. Before this patch, each parser was registered when
the module 'virtinst.cli' was loaded. Now the parser will only be
registered if the corresponding CLI option is added,
e.g. 'add_gfx_option(...)' or the register method is called
explicitly.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 15:01:54 -05:00
Marc Hartmayer
6e8a9cd963 cli: register a parser class only once
Make sure that a parser class can only be registered once.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 14:52:15 -05:00
Marc Hartmayer
b574beb668 xmlapi: refactor node_is_text function
...since it's used at least at three places.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2019-01-07 14:45:53 -05:00
Fabiano Fidêncio
5eb47bc00f guest: Default to libosinfo recommended resources
Let's create a new method that defaults to libosinfo's recommended
resources (when they're available) for memory and vcpus.

It'll help us to avoid erroring out whenever virt-install is called
without specifying the memory amount, as the recommended amount of
memory would come from libosinfo.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
2019-01-07 12:24:06 +01:00
Cole Robinson
4336bdb92d cli: Fix --check completion
Make the completer functions fold in ParseCLICheck as well
2019-01-06 19:03:35 -05:00
Slavomir Kaslev
be1b5e6ebb virtinst: Add vsock device type
VSOCK sockets allow communication between virtual machines and the host they are
running on.

This patch adds vsock device support along with clitest for the new properties.

Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
2019-01-06 18:04:26 -05:00
Cole Robinson
91c274efbb cli: Make argcomplete optional
It's only invoked when bash completion is attempted. Will make it
a bit nicer for devs to just pull down and run the code
2018-12-18 15:39:08 -05:00
Cole Robinson
eb85f8a887 cli: Centralize argcomplete completer hackery
This way it will be harder to miss a class when we add more commandlines
in the future
2018-12-18 15:39:08 -05:00
Cole Robinson
b68656329d tests: Add argcomplete testing 2018-12-18 15:39:08 -05:00
Lin Ma
2d38e22943 cli: Add auto complete support about sub options
With this patchset, the sub options completion is available. ex:

$ virt-install --disk <TAB><TAB>
...
bus=    cache=      format=     path=   serial=     size=
...

$ virt-install --disk path=test.qcow2,cache=none,<TAB><TAB>
...
bus=    format=     serial=     size=
...

$ virt-install --disk bu<TAB><TAB>
Then the sub option 'bus' will be auto completed with a '='
$ virt-install --disk bus=

Signed-off-by: Lin Ma <lma@suse.com>
2018-12-18 11:20:35 -05:00
Lin Ma
d68f0f8867 cli: Add the generic completer function and validator function
The patch adds the generic completer and validator, Further patches use
them as completer/validator. The completer won't add already specified
options to the list.

Signed-off-by: Lin Ma <lma@suse.com>
2018-12-18 11:20:35 -05:00
Cole Robinson
a8d4c7cb79 cli: Fix --security baselabel=X 2018-12-17 09:06:03 -05:00
Cole Robinson
b91393e6c3 cli: s390x+graphics specified, use video=virtio (bz #1654994)
s390x doesn't support any of the PCI graphics cards

https://bugzilla.redhat.com/show_bug.cgi?id=1654994
2018-12-13 16:39:43 -05:00
Fabiano Fidêncio
ee0ac5f2c7 osdict: adapt latest_os_version() to ignore "-unknown" distros
As some enterprise distros adopted the "unknown" approach in osinfo-db,
and those usually support different versions at the same time, there may
be different "unknown" entries (like rhel-unknown, rhel-8-unknown,
rhel-7-unknown, and so on) for the very same distro.

This situation can easily happen when some ISO matches, for exmaple,
"rhel-unknown" and then the latest one selected would be
"rhel-8-unknown".

In order to avoid this situation from happening, let's just ignore the
"unknown" entries when calling latest_regex().

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
2018-12-05 15:04:59 +01:00
Fabiano Fidêncio
fbcea0b63c osdict: adapt latest_regex() to openSUSE's versioning
Due to OpenSUSE's decision of versioning their OS as 11.x, 12.x, 42.x,
15.x, we have to add a specific check in latest_regex() in order to make
sure we skip the 42.x series in the sorted list of OSes when returning
the OS name to the user.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
2018-12-05 15:04:59 +01:00
Fabiano Fidêncio
7612c5bdcd osdict: expand the "unknown" check for any distro
Currently osinfo-db has "unknown" entries for fedora, opensuse and
asianux. Considering this list may grow even more at some point, let's
just make the check more generic and use it for all of them instead of
keeping it for fedora only.

Changes have also been done in urldetect and tests_url, as those also
used latest_fedora_version().

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
2018-12-05 15:04:59 +01:00
Lukáš Doktor
30b7c33c6d virt-install: Fix guest-os deprecation msg
Arguments to logging needs to be individual args, otherwise it
fails with "not enough arguments for format string"                             

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
2018-11-14 18:25:06 +01:00
Radostin Stoyanov
f53e5b024d progress: Remove commented out code
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
45d76ccadd progress: Resolve protected-access
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
0505f2be3d progress: Resolve E226
E226: missing whitespace around arithmetic operator

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
48255ea584 progress: Don't use black-listed name 'bar'
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
6a66d8cce0 progress: Resolve E502
E502: the backslash is redundant between brackets

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
5e6b73d439 progress: Resolve E501 and E305
E501: line too long (82 > 79 characters)
E305: expected 2 blank lines after end of function or class

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
e7a3a55f2d progress: Resolve E231
E231: missing whitespace after ‘,’, ‘;’, or ‘:’

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
a7254aa006 progress: Resolve E129
E129: visually indented line with same indent as next logical line

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
19b3d2ac66 progress: Resolve E714
E714: test for object identity should be ‘is not’

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
6d125cca72 progress: Resolve E265
E265: block comment should start with ‘# ‘

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
3468a2ec1f progress: Resolve E722
E722: do not use bare except, specify exception instead

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
c3453422f2 progress: Resolve E261
E261: at least two spaces before inline comment

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
cd1a46c2ae progress: Resolve E701
E701: multiple statements on one line (colon)

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
9a472f506d progress: Resolve E221
E221: multiple spaces before operator

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
ed98a29dda progress: Resolve E302
E302: expected 2 blank lines

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Radostin Stoyanov
b7c7c27f7c progress: Resolve W0201
W0201: Attribute %r defined outside __init__

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-11-12 08:34:55 -05:00
Cole Robinson
25b8873340 urldetect: Don't overload suse_content variable
Use an explicit check_for_suse_content variable rather than
stuffing -1 into suse_content
2018-10-18 17:16:14 -04:00
Johannes Tiefenbacher
b8aff28087 virtinst: quickfix ubuntu net-preseed insert cdrom error
the proper kernel/initrd pair for booting from an http server is found in install/netboot/... on a mounted ubuntu iso.
this last worked in v1.4.2

Discussion: https://github.com/virt-manager/virt-manager/pull/34

(crobinso: add the fetcher.is_iso handling and add a comment)
2018-10-18 13:21:41 -04:00
Cole Robinson
369cf6774b guest: Don't add spicevmc channel if virtio not supported
Not that big of a deal for linux guests, but will add ?
devices on windows
2018-10-14 12:29:33 -04:00
Cole Robinson
b051b6c95d cpu: Have host-copy use domcaps if qemu is new enough (bz 1637767)
capabilities is known problematic. Use domcaps if libvirt+qemu
reports working host-model

https://bugzilla.redhat.com/show_bug.cgi?id=1637767
2018-10-13 17:48:25 -04:00
Cole Robinson
f102d2a256 tests: inject: use virt-install, not direct API
Simplifies the code and gives us actual command line coverage,
but requires a small hack to work correctly for modern
centos/fedora test cases, inst.repo from --location takes
precedence over our kickstart URL
2018-10-13 16:31:04 -04:00
Cole Robinson
e212ce84e6 installer: extraargs -> extra_args
Better matches what's on the command line
2018-10-13 16:29:32 -04:00
Cole Robinson
4ae24802d7 installer: Fix --initrd-inject 2018-10-13 15:51:38 -04:00
Cole Robinson
edab908f42 guest: Use q35 chipset by default for new qemu + supported OS
There's been various discussions about changing the x86 default
from 'pc' to 'q35' over the years, but it's unlikely to happen
at the qemu or libvirt level for compatibility reasons. So
let's start using it for new enough OS that support it.
2018-10-13 14:58:57 -04:00
Cole Robinson
c23a0d4c96 nodedev: add is_linux_root_hub helper
Move the check out of connection.py, and simplify the addhardware
code
2018-10-13 12:18:50 -04:00
Cole Robinson
41d0f8fdf1 installer: Order install CDROM before any manual CDROMs
This is important for the virtio-win case: --cdrom media should
always be ordered first, so it's the boot preference.

https://www.redhat.com/archives/virt-tools-list/2018-September/msg00048.html
2018-10-13 10:44:09 -04:00
Cole Robinson
2e6093d6b6 create: Show inserted CDROM media in customize
This makes it easier for people to change install media afterwards
if they want:

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

But also this makes it more clear that if users want to use virtio-win,
they need to add an additional CDROM and not try to reuse the install
CDROM device
2018-10-13 10:17:50 -04:00
Cole Robinson
2482e57a15 create: Fix customize boot page
Installer reworks dropped the guest.autostart flag, need to add
it back. Add Uitest for it
2018-10-13 09:46:06 -04:00
Cole Robinson
11d1cbdf06 installer: DistroInstaller -> InstallerTreeMedia
Now we have only one Installer class, and callers don't need to
worry about choosing a particular class type depending on their
needs, just pass cdrom vs. location to the installer init and
we figure out everything behind the scenes.

Besides simplifying the callers this makes the control flow a
lot easier to follow whether looking at InstallerTreeMedia or
Installer classes
2018-10-13 09:42:11 -04:00
Cole Robinson
6fb81aeb65 cli: Another searchdata.user fix 2018-10-12 18:34:42 -04:00
Cole Robinson
8ff2043f2a urldetect: Drop boot.iso fetching
Since this was only used for the --cdrom $treeurl case, this is
no longer used
2018-10-12 15:54:39 -04:00
Cole Robinson
b90b8e3c07 distroinstaller: Remove --cdrom $URL boot.iso fetching
And instead treat any URL passed to --cdrom as a file to
access directly over http. Rationale for dropping this is
laid out here:

https://www.redhat.com/archives/virt-tools-list/2018-May/msg00011.html
2018-10-12 15:54:36 -04:00
Cole Robinson
4f320c2b98 distroinstaller: Remove implied cdrom installs
This is an obscure feature that I'm skeptical anyone is relying on,
and has weirdly subtle semantics that are hard to test.
2018-10-12 15:33:05 -04:00
Cole Robinson
286dbf6d51 installer: Fold PXEInstaller into base Installer class
PXEInstaller is really just 'boot off bootdev=network' which is
easy enough to model without a separate class
2018-10-12 15:15:20 -04:00
Cole Robinson
e05f74c2f0 devices: disk: Fix path search changing
Accessed the wrong variable name
2018-10-12 13:49:53 -04:00
Jim Fehlig
5a7698c799 Fix selection of network volumes
When creating a new VM and selecting a volume from a network-based
storage pool such as rbd, the volume is not recognized as network-based
and is treated as a volume from a directory storage pool.

This patch adds a method to check if the volume's path points to a
network-based volume, then uses the method to avoid actions like
setting unix file permissions on the volume, which doesn't make
sense for a network-based volume.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>

(crobinso: rebase, tweak lookup logic)
2018-10-12 13:49:53 -04:00
Cole Robinson
c0314cad2e storage: Remove needless manage_path wrapper 2018-10-11 19:23:18 -04:00
Cole Robinson
d36aa7fbaf device: disk: Move last host touching to diskbackend
This just conceptually makes more sense to keep it all in
one file, and DeviceDisk is the API for the rest of the code
to deal with any host storage state
2018-10-11 19:20:46 -04:00
Cole Robinson
425f599c84 device: disk: Move all path search handling to diskbackend
Simplify it slightly by combining return output and removing
an entry point. Add some additional test cases for it
2018-10-11 19:11:16 -04:00
Cole Robinson
fb1e63c100 devices: disk: remove dead code 2018-10-11 18:00:10 -04:00
Lin Ma
eb1a67a595 cli: disk: Add options to support SCSI persistent reservation
Create the managed or the unmanaged PR object to enable SCSI persistent
reservation for LUN Passthrough

Signed-off-by: Lin Ma <lma@suse.com>
2018-10-11 16:00:28 -04:00
Cole Robinson
42a96cfd59 virt-install: add --destroy-on-exit
This makes the console window behave like a raw qemu command line:
when the user closes it, the VM is hard powered off.
2018-10-11 15:24:16 -04:00
Cole Robinson
3e55e89453 tests: Add better virt-install console testing 2018-10-11 12:19:48 -04:00
Yossi Ovadia
215d296b61 cli: add --boot rebootTimout
virt-install -n blah -r 1024 --vcpu=1 --disk=/root/vm/blah.qcow2,size=10\
 --network=bridge:br-public --pxe --boot=network,rebootTimeout=3

By default, in case of (first) pxe boot failure the VM will simply
stop trying.
By adding the above, VM will re-try pxe boot. ( useful when DHCP not
replys on first attempt.

Libvirt support it and VM XML will look as follow : ( 'bios rebootTimeout'
will be created under OS section. )

  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.5.0'>hvm</type>
    <boot dev='network'/>
    <bios rebootTimeout='3'/>
  </os>

(crobinso: fix it, add test case)
2018-10-11 11:24:07 -04:00
Chen Hanxiao
70f9817bdc pylint: fix simplifiable-if-statement issue
pylint complain:
    The if statement can be replaced with 'var = bool(test)'

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2018-10-11 11:19:49 -04:00
Cole Robinson
71626b1dd2 initrdinject: Remove RHEL4 support
It's end of life, let's move on
2018-10-09 14:18:36 -04:00
Cole Robinson
be628ad54f cli: Log openauth callback prompts 2018-10-08 09:15:06 -04:00
Cole Robinson
7eaf036acf virtinst: Remove stable_defaults concept
This switch says: if we detect a rhel host, use special version
checks that match rhel backports. This pattern sucks. The way
forward is to have libvirt advertise the bits that are supported,
through domcapabilities. Then virt-manager/virtinst can react
as appropriate.
2018-10-06 19:45:51 -04:00
Cole Robinson
019a33e975 clock: Drop RHEL hyperv clock distinction
I think enough time has passed that we can just check the
support based on the older RHEL version.
2018-10-06 19:45:51 -04:00
Cole Robinson
e6738d9827 cliconfig: Remove --default-qemu-user
Libvirt has given us this info in capabilities for a long time,
this shouldn't matter anymore
2018-10-06 12:30:59 -04:00
Cole Robinson
a4097b7691 cli: Merge multiple instances of single use opts
So --memory 123,maxmem=456 --memory 555 is equivalent to
--memory 555,maxmem=45
2018-10-05 13:23:20 -04:00
Cole Robinson
03439dd9a3 cli: Remove some --sysinfo examples
This is a sufficiently uncommon option, it doesn't need 5 examples
2018-10-04 20:52:32 -04:00
Cole Robinson
40dc4b1131 support: Limit qemu-xhci check to qemu 2.9.0 2018-10-04 20:48:43 -04:00
Cole Robinson
945c0125db cli: Remove VirtStreamHandler
This was needed at one point to make our logging not throw
exceptions when passed non-ascii text, like logging translated
errors. pretty sure python 3 and probably python2.7 fixed all
those issues, so lets drop it
2018-10-04 19:45:06 -04:00
Cole Robinson
9edca3486a virt-manager: Wire up support for default mode=host-model
Simplify things a long the way
2018-10-04 14:43:44 -04:00
Cole Robinson
469fed08a0 guest: Default to cpu mode=host-model if libvirt is new enough
We check whether host-model is exposed in domcapabilities, which
indicates host-model is using the smarter new safer method in
cooperation with qemu
2018-10-04 14:43:41 -04:00
Cole Robinson
76334bfabd guest: Add DomainCapabilities caching 2018-10-04 12:30:14 -04:00
Cole Robinson
210cb858bc controller: usb: Use ports=15 for usb3
It's the max that qemu supports, so why not add as many as possible.
Gerd indicated in private mail that he didn't know of any issues
with it.
2018-10-04 11:55:57 -04:00
Cole Robinson
35dd99f172 cli: Don't hardcode nec-xhci for --controller usb3
Use our helper function to choose the optimal model
2018-10-04 09:24:43 -04:00
Cole Robinson
b51104ad22 guest: Tweak error with invalid --os-variant
Try to point people in the right direction if they specify an
unknown distro name on the cli, like was reported here:

https://bugzilla.redhat.com/show_bug.cgi?id=1576473
2018-10-03 19:32:09 -04:00
Cole Robinson
046a242bd4 guest: Use USB3 for x86 qemu if OS supports it
Using new annotations in osinfo-db
2018-10-03 19:02:07 -04:00
Cole Robinson
c539f06eeb cli: Give better --controller examples
ich9-ehci1 isn't a recommended configuration
2018-10-03 18:52:33 -04:00
Pino Toscano
8227b820ee osinfo: warn when using deprecated osinfo IDs
At some point in the future it could be a good idea to drop the _aliases
mapping altogether; it will be hard to do so, in case the users are not
informed that they are using a deprecated ID.

(crobinso: Tweak format and message)

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
2018-10-02 11:41:34 -04:00
Marc-André Lureau
4ad74278ca cli: add memory backing access_mode & source_type
Allow to set some memory backing options, ex:
--memorybacking access_mode=shared,source_type=anonymous

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2018-10-02 11:12:13 -04:00
Cole Robinson
760dc32bac osdict: Clarify comment about rhel virtio-serial hack 2018-10-01 11:39:58 -04:00
Cole Robinson
ff3d6c65d8 Fix some pep8 warnings 2018-10-01 11:37:28 -04:00
Cole Robinson
b2e7986c7b osdict: Switch device lookups to be ID based
I'm not positive device names will never change, but presumably the IDs
won't, so use them instead
2018-10-01 11:24:45 -04:00
Cole Robinson
757910a1bb cli: Add --metadata os_name= and os_full_id=
Allows changing the libosinfo metadata for an existing vm via virt-xml
2018-09-30 20:55:32 -04:00
Cole Robinson
b19f94299b details: Add OS name view/edit, + oslist rework
This is just a big nasty commit.

Turn the OS inspection page into an always available page that
shows the libosinfo name from the domain metadata XML. Use oslist.py
and have it absorb more of the common behavior needed by create.py
and details.py. Add UI tests for it all
2018-09-30 20:55:32 -04:00
Cole Robinson
65e1187c10 osdict: Add a helpful __repr__ 2018-09-30 09:37:14 -04:00
Cole Robinson
31e4b72a8b osdict: Drop Glib.Date API usage
Use python datetime instead, it's more python friendly
2018-09-29 15:22:44 -04:00
Cole Robinson
97ea737386 devices: interface: Have x86 fallback model be e1000
libvirt will use rtl8139, but the qemu default changed a while
ago to e1000, and libvirt has diverged. e1000 is more modern and
considered the better default here, so use it
2018-09-29 14:35:28 -04:00
Cole Robinson
627bfabc32 pylint: Silence output on Fedora 29 2018-09-29 14:27:34 -04:00
Cole Robinson
4adb1c8c30 pycodestyle: fix W605 invalid escape sequence 2018-09-29 13:59:19 -04:00
Cole Robinson
7356afcca7 osdict: Use USB tablet if no OS specified
Most OS users will be installing benefit from it, so make it the
default
2018-09-29 13:36:42 -04:00
Cole Robinson
184b96a815 virtinst: util: Remove unused validate_uuid
We let libvirt error nowadays
2018-09-14 15:19:03 -04:00
Cole Robinson
a741f595ea guest: Drop update_defaults
Fold its one purpose into the UEFI setting bits, fix it and test it
2018-09-13 15:59:27 -04:00
Cole Robinson
d7ff46f7f5 guest: Encode the cli --os-variant in the XML
And add some testdriver examples of it
2018-09-13 15:11:22 -04:00
Cole Robinson
86ef998023 guest: Lookup osinfo object from libosinfo metadata XML 2018-09-13 15:03:36 -04:00
Cole Robinson
bad5eabd93 domain: Add metadata.libosinfo
From the libosinfo discussion here:
https://www.redhat.com/archives/libosinfo/2018-September/msg00003.html

This is a cross-app schema for tracking libosinfo OS ID in the
domain <metadata> XML. Example:

   <metadata>
     <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
       <libosinfo:os id="http://fedoraproject.org/fedora/17"/>
     </libosinfo:libosinfo>
   </metadata>
2018-09-13 12:39:56 -04:00
Cole Robinson
baaab74b6d xmlapi: Rework xmlns setting slightly
So the xmlns is not always set on the top element. We need this for
custom <metadata> support
2018-09-13 12:39:56 -04:00
Cole Robinson
841d5126d2 xmlapi: Move namespace mappings to the relevant classes
So we don't need to update xmlapi.py to account for additions
2018-09-13 09:34:04 -04:00
Cole Robinson
6063538750 guest: Replace os_variant with set_os_name
And have callers directly access osinfo.name if they need it
2018-09-12 17:24:28 -04:00
Cole Robinson
2549e60698 guest: Add an entry point for setting machine=q35 default
We will want this at some point, but it's dependent on libosinfo
work
2018-09-12 15:35:49 -04:00
Cole Robinson
4e30161f44 guest: Absorb UEFI default setup
Rather than force callers to deal with it
2018-09-12 14:02:23 -04:00
Cole Robinson
e903d374c2 guest: Always encode machine= in XML
Don't rely on libvirt's default. This makes any XML changes more
explicit, and can help other parts of the code that may depend on
a machine type being encoded
2018-09-12 12:16:47 -04:00
Cole Robinson
ec69ae44b6 capabilities: Drop build_virtinst_guest
Same as lookup_virtinst_guest
2018-09-06 20:54:59 -04:00
Cole Robinson
1c05db691d guest: Cache capsinfo
Don't repeatedly look it up, was slowing down the test suite by about 5%
2018-09-06 20:38:59 -04:00
Cole Robinson
a2fa799478 capabilities: Drop lookup_virtinst_guest
Users should just init Guest() directly, and call
set_capabilities_defaults if they need default arch data
2018-09-06 20:28:05 -04:00
Cole Robinson
e61f2b991b guest: Re-organize function locations 2018-09-06 20:12:49 -04:00
Cole Robinson
5f22f41da4 guest: Absorb capabilities defaults setup
Rather than forcing API users to go through the capabilities APIs.
This lets us simplify things in virt-install quite a bit, and is
needed for smarter machine type defaults
2018-09-06 20:12:49 -04:00
Cole Robinson
12a7a18be0 cli: Fix traceback detection 2018-09-06 18:39:14 -04:00
Cole Robinson
a754718889 devices: disk: Use uppercase naming for mode lists 2018-09-06 16:51:14 -04:00
Cole Robinson
63287c83fb addhardware: Move disk bus listing to virtinst
Drop the stable_default stuff as domcaps usage should make
it obsolete for any cases we care about
2018-09-06 16:40:49 -04:00
Cole Robinson
a09a46289a addhardware: Move controller list logic to virtinst
And tweak the UI defaults a bit, preferring virtio-scsi and
usb3
2018-09-06 16:05:12 -04:00
Cole Robinson
7994dc90c8 addhardware: Move video model list to virtinst
And make it smart about the hypervisor
2018-09-06 14:45:05 -04:00
Cole Robinson
b3865d7b0d addhardware: Drop tcp/udp/dev char support
I know openstack uses tcp consoles but for end users I've never
really heard about it. RHEL compiles out udp as well. I'm fine telling
users to go to the cli and use virt-xml for this use case.

Use this opportunity to drop a lot of code that only simplified the
case when there are tons of char options we need to consider
2018-09-06 13:28:21 -04:00
Cole Robinson
cd07d6af34 sound: Track recommended models in virtinst
Change addhardware to show an editable model entry, like the
details wizard
2018-09-06 13:28:21 -04:00
Cole Robinson
be1f5a6e25 devices: Remove a bunch of unused static lists 2018-09-06 13:28:21 -04:00
Cole Robinson
2b7043cd85 createpool: Fix showing formats
But shrink the format list to 'auto' only, but also add a text entry
so users can type their own
2018-09-06 13:28:21 -04:00
Cole Robinson
c5033c02d5 fsdetails: Use combo entry for format list
And stop listing all the crazy qemu formats
2018-09-06 13:28:21 -04:00
Cole Robinson
242844fefa osdict: Make the broken uefi+hyperv bit more explicit
And add links to the relevant bug reports
2018-09-04 14:55:40 -04:00
Cole Robinson
4394eff9fa xmlbuilder: Drop last usages of set_converter
Unfold most of them into manual property() wrappers. It's a bit
noisier but the logic is easier to follow.
2018-09-04 14:55:04 -04:00
Cole Robinson
bd35f4711c devices: disk: Rename setup() to build_storage()
It's more explicit. Plus drop the supposedly generic setup()
entry point, storage is handled specially everywhere so it's
not a generic interface
2018-09-04 14:55:04 -04:00
Cole Robinson
ebd6091cc8 devices: interface: Simplify is_conflict_net calls
We don't return a non-fatal error these days, so adjust all callers
to only handle failure
2018-09-04 14:55:04 -04:00
Cole Robinson
c27cdc67de devices: interface: Convert setup() to validate()
That's all it's doing. Fold in mac validation while we are here
2018-09-04 14:55:04 -04:00
Cole Robinson
43f40950eb devices: Remove some redundant char/rng xml callbacks
I think these aren't needed after the default fixing stuff, or maybe
past xmlbuilder fixes
2018-09-04 14:55:04 -04:00
Cole Robinson
2e9a11b220 xmlbuilder: Drop last remaining validate_cb usage
Fold the interface bits into the existing validate() function
2018-09-04 14:55:04 -04:00
Cole Robinson
6711b538ef sysinfo: Remove validate date
Libvirt does this for us, no need to duplicate it
2018-09-04 14:55:04 -04:00
Cole Robinson
852d7b564d virtinst: Remove name field validate_cb usage
Either openly do this at callers, or wrap it in a validate() call.
Doing this at set time has always had issues, like the self.replace hack
2018-09-04 14:55:04 -04:00
Cole Robinson
2ac54ac001 guest: Drop self.installer and start_install wrapper
This changes all the callers to invoke start_install directly on the
Installer object. We still stash the installer instance inside the
guest object in create.py, just for simplicity
2018-09-04 14:55:04 -04:00
Cole Robinson
c154bbacd4 guest: Fold add_default_devices into set_defaults
It doesn't have any need anymore to be separate
2018-09-04 14:55:04 -04:00
Cole Robinson
f1bbc5f67a guest: move set_install_defaults to installer class
It's only called explicitly in one place, so update the caller
2018-09-04 14:55:04 -04:00
Cole Robinson
8a6a491306 guest: Drop self.autostart and self.replace
Require callers to pass autostart as an argument to start_install
self.replace isn't even used for guest installs
2018-09-04 14:55:04 -04:00
Cole Robinson
9e05c56397 guest: Drop self.domain
The only user is virt-install, make its usage explicit
2018-09-04 14:55:04 -04:00
Cole Robinson
fdbb1f9e5a installer: Absorb all guest start_install handling
Really it makes more conceptual sense that the Installer class
should handle start_install and friends, but that's difficult
because the layering is all mixed up.

Start to untangle it by moving all those routines to the Installer
class and adding wrapper APIs to Guest to maintain compat for now.
2018-09-04 14:55:04 -04:00
Cole Robinson
1abbdfc551 installer: Drop isinstall parameter
Separate the install from postinstall config case more clearly,
so the installer is only ever altering bits for the install-time
case, and Guest handles actually writing postinstall bits
2018-09-04 14:55:04 -04:00
Cole Robinson
068c8aedd2 installer: Remove ContainerInstaller and ImportInstaller
Fold their non-logic into the base Installer class
2018-09-04 14:55:04 -04:00
Cole Robinson
0ed8946a5a xmlbuilder: Remove the default_cb and default_name logic
It was always very hard to follow the logic chain with default_*
settings, having it explicit in set_defaults() function calls is
much easier to follow and more flexible for the future
2018-09-04 14:55:04 -04:00
Cole Robinson
1e76496fa8 storage: remove default_cb usage 2018-09-04 14:55:04 -04:00
Cole Robinson
221dd00cb9 devices: disk: remove default_cb usage 2018-09-04 14:55:04 -04:00
Cole Robinson
fff3c88f9c devices: disk: Absorb Guest bus/target default setting
Simplifies cli stuff as a nice side effect
2018-09-04 14:55:04 -04:00
Cole Robinson
4e7652b548 domain: cpu: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
cf65bef6f5 domain: clock: add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
d5bff2c987 guest: Remove default_cb usage
This lets us simplify things in create.py a bit, since we don't
need to manually encode a UUID
2018-09-04 14:55:04 -04:00
Cole Robinson
e6219504ce domain: os: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
c1443f8a80 guest: Remove fallback xen loader/emulator handling
This has been provided by libvirt caps for a long time, and we
don't even test it
2018-09-04 14:55:04 -04:00
Cole Robinson
468f5e67fa domain: pm: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
5517033c79 domain: seclabel: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
9a5b903086 domain: features: Add set_defaults
And move all the Guest logic there.

We need to add an xmlbuilder helper _prop_is_unset to be able to
determine if a bool property is unset, in our quest to remove
default_* xmlbuilder bits
2018-09-04 14:55:04 -04:00
Cole Robinson
640a068650 devices: controller: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
6215f790f5 devices: filesystem: Add set_defaults
Requires a bit of rework in virt-manager handling, which had lots
of explicit "default" handling
2018-09-04 14:55:04 -04:00
Cole Robinson
ef83565e48 devices: hostdev: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
0f918a4bd5 addhw: Move interface model list to virtinst
So we are keeping the default and model list logic closer together,
as its similar
2018-09-04 14:55:04 -04:00
Cole Robinson
64dc334538 devices: interface: Add set_default function
Move all the Guest network default logic to it, and drop a now
redundant test
2018-09-04 14:55:04 -04:00
Cole Robinson
7b5f1a304d guest: Publicize _os_object as osinfo 2018-09-04 14:55:04 -04:00
Cole Robinson
347143982a devices: Add set_defaults for memballon, redirdev, rng, smartcard 2018-09-04 14:55:04 -04:00
Cole Robinson
35c0cf352f guest: Move graphics defaults handling to DeviceGraphics 2018-09-04 14:55:04 -04:00
Cole Robinson
e29980959c devices: tpm: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
221edf7d86 devices: char: Remove default_cb in favor of add_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
31bda5bbb6 devices: watchdog: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
31d74ff0eb devices: input: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
698c72e60d devices: sound: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
40de2c4762 guest: For implied devices, explicitly call set_defaults
These can be added after we initially call set_defaults on all devices,
so require a manual set_defaults call
2018-09-04 14:55:04 -04:00
Cole Robinson
1b0f325813 devices: video: Add set_defaults 2018-09-04 14:55:04 -04:00
Cole Robinson
d25ce81439 guest: Force qxl/vga more often
Letting libvirt choose gives us cirrus, which is really bad.
So for x86 for it more
2018-09-04 14:55:04 -04:00
Cole Robinson
fdd1cc5ca8 guest: Make spice default device additions explicit
Don't lump it in with setting video defaults
2018-09-04 14:55:04 -04:00
Cole Robinson
7738b8f407 devices: panic: Add set_defaults
Move default handling out of Guest and default_cb callbacks, and
make implement it in a standard set_defaults function
2018-09-04 14:55:04 -04:00
Cole Robinson
c3515fa469 guest: Drop multifunction address magic
Seems sufficiently obscure that if someone is manually specifying
addresses we can require them to pass multifunction as well
2018-09-04 14:55:04 -04:00
Povilas Kanapickas
e6c7e46a54 details: Add support for disk detect zeroes option 2018-09-04 11:39:50 -04:00
Cole Robinson
d5638eb140 osdict: Make qemu_ga support solely dependent on virtio-serial support
We shouldn't concern ourselves with whether the OS supports qemu_ga
out of the box, just set up the channel regardless, as long as
virtio-serial is supported.

This adds the channel for some aarch64 cases which didn't have OS
specified, but that's desired IMO
2018-09-01 13:23:01 -04:00
Cole Robinson
0f3b7fcc26 osdict: Make sure virtio1.0 matches virtio lookups
Right now this doesn't matter, but possibly a future OS will only
support virtio1.0, and osdict metadata might break us in that case
2018-09-01 13:23:01 -04:00
Cole Robinson
8a87c91888 osdict: Move default_netmodel logic to Guest
Make the entry point just return a list of libosinfo device names,
and have Guest choose the preference. This is more future proof
2018-09-01 13:23:01 -04:00
Cole Robinson
b902fbd54f osdict: Move default_videomodel to guest
It's not really osdict specific
2018-09-01 13:23:01 -04:00
Cole Robinson
717cd87b16 osdict: Add helpers for device filtering 2018-09-01 13:23:01 -04:00
Cole Robinson
4e63267a4f urldetect: Rename urldistro to matching_distros
Allow store classes to track multiple matching types, and use this
to ditch the custom urldistro logic in osdict altogether
2018-09-01 13:23:01 -04:00
Cole Robinson
9330548c3c osdict: Move EOL calculation to its own function 2018-09-01 13:23:01 -04:00
Cole Robinson
6ae8e51901 osdict: Remove unused functions 2018-09-01 13:23:01 -04:00
Cole Robinson
fb1bb26373 support: Drop lots more checks
- Remove anything for less than qemu 0.12 or libvirt 0.10, basically
  rhel6 vintage stuff
- Open code some simple checks
- Remove some that are only used for unnecessary error reporting
2018-08-31 22:21:15 -04:00
Cole Robinson
a5ef8a2995 support: Drop a few more support checks only used in tests/ 2018-08-31 18:31:17 -04:00
Cole Robinson
967ca4eeda virtinst: Drop direct 'support' usage
Except from connection. This requires some reorg in clitest and
some minor changes in a few other places
2018-08-31 18:31:17 -04:00
Cole Robinson
c33e8abcb5 support: Remove some unused checks 2018-08-31 18:31:17 -04:00
Cole Robinson
2eaff7fdcf support: Remove getversion/getlibversion checks
They are only used in one place, just handle it there
2018-08-31 18:31:17 -04:00
Cole Robinson
d8514e19c8 guest: Drop arm vexpress virtio-mmio support
This case will still work, but be a bit slower, which is fine. Nowadays
-M virt is much better for virt usage and nearly everyone is using that,
so save us the complication. This was really only useful when
bootstrapping arm virt support
2018-08-31 17:31:09 -04:00
Cole Robinson
ea413be214 xmlbuilder: Rename get_xml_config -> get_xml
The config part is redundant. Should have done this a long time ago
2018-08-31 16:52:02 -04:00
Cole Robinson
2b41e130d8 connection: rename fetch_all_guests->fetch_all_domains
The virtinst class is erroneously called Guest, but these
functions are dealing with libvirt <domain> XML, so rename them
2018-08-31 16:50:46 -04:00
Cole Robinson
b1eb07c26a guest: Don't add usb tablet for xen PV
xen PV doesn't have USB support
2018-08-22 08:38:33 -04:00
Cole Robinson
8d45dba43d cli: Add --boot bootloader= 2018-08-22 07:38:34 -04:00
Cole Robinson
2b35183352 guest: Don't hardcode /usr/bin/pygrub for xenpv
Let libvirt/libxl fill it in. This was required for rhel5 xen at
least, but we don't support that anymore and modern libvirt seems
to do the right thing and fill it in for us.
2018-08-22 07:37:32 -04:00
Cole Robinson
7cd41ab9ea guest: Default to e1000e if machine=q35
And libosinfo doesn't have any specific recommendation for us
2018-08-21 16:36:38 -04:00
Cole Robinson
2da06fec95 guest: Default to ich9 if machine=q35 (bz 1388177)
It's the pci-e version which we should prefer for q35

https://bugzilla.redhat.com/show_bug.cgi?id=1388177
2018-08-21 16:35:34 -04:00
Cole Robinson
e59c3d969e guest: Remove old xen acpi disabling
This is only for rhel5 vintage xen which is long out of support,
so drop it
2018-08-21 16:35:34 -04:00
Cole Robinson
b623ece2ba domcapabilities: Whitelist fedora arm and ia32 edk2 paths 2018-08-08 15:04:51 -04:00
Lin Ma
4484f473cd char: Track/Show the state of virtio channels in channel details
crobinso: Add a test case

Signed-off-by: Lin Ma <lma@suse.com>
2018-07-12 15:25:23 -04:00
Pavel Hrdina
931936a328 virtinst: Remove only auto-generated channel source path
In attempt to fix https://bugzilla.redhat.com/show_bug.cgi?id=1270696
this code was introduced but it removes the path for all channel
devices.  We need to limit it only to the devices that have
auto-generated source path.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1591670

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2018-06-28 16:45:14 +02:00