Commit Graph

177 Commits

Author SHA1 Message Date
Chen Hanxiao
7f1b4cee82 pycodestyle: fix all E125 warnings
Fix all E125:
     Continuation line with same indent as next logical line

   Also remove ignore options of E125

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2017-10-21 23:26:16 +08:00
Pavel Hrdina
9f191da5c5 devicepanic: add all models supported by libvirt
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:09:46 +02:00
Radostin Stoyanov
b93cc3bbc9 pycodestyle: Do not use bare 'except:'
A bare 'except:' catches all exceptions [1], including SystemExit,
KeyboardInterrupt, and GeneratorExit (which is not an error and should
not normally be caught by user code). In situations where you need to
catch all “normal” errors, you can catch the base class for all normal
exceptions, Exception [2].

[1] https://docs.python.org/2/howto/doanddont.html#except
[2] https://docs.python.org/2/library/exceptions.html#Exception
2017-08-02 13:57:43 -04:00
Cole Robinson
f41844f3f2 guest: Use usb3 qemu-xhci for machvirt
This is what libvirt will default to nowadays for those configs,
so let's match it.
2017-07-10 19:46:13 -04:00
Cole Robinson
0633055fb9 guest: Drop old os type=linux back compat
We don't support libvirt versions that require this anymore
2017-07-10 09:34:38 -04:00
Cole Robinson
6d625ae45f guest: Enable spice sound on more arches
If spice is enabled, just assume sound devices will work as well
2017-06-28 16:28:25 -04:00
Cole Robinson
a07a874497 guest: If graphics enabled, add usb tablet/keyboard for machvirt 2017-06-28 16:22:23 -04:00
Cole Robinson
2cabc2e386 guest: Don't add default ps2 or xen mouse
libvirt drivers have added these by default for a long time, so
its redudnant here
2017-06-28 16:17:50 -04:00
Cole Robinson
f2de47cee2 guest: Add USB3 controller for machvirt by default
...if libvirt is new enough to do machvirt PCI by default. We can
just use usb3 since all guest OS that support aarch64 are new enough
to support it
2017-06-28 15:35:07 -04:00
Cole Robinson
ae836304f9 guest: Drop references to ia64
Nothing modern supports it, don't even bother
2017-06-28 15:17:20 -04:00
Cole Robinson
23b971bba8 guest: Rename _hv_supported to _hyperv_supported
Much more clear name
2017-06-28 15:15:31 -04:00
Cole Robinson
225d53c511 guest: Default to video type=virtio for machvirt
That's basically the only working config on KVM
2017-06-28 15:13:44 -04:00
Cole Robinson
0fe76d321b guest: Enable default virtio-rng for pseries and machvirt
arm guys confirmed virtio-rng should be fine. pseries guys didn't
but I think it will be okay
2017-06-28 15:12:00 -04:00
Cole Robinson
47b127b49f guest: Use virtio more for ppc64 pseries, and s390
qemu s390x is virtio only nowadays, and on ppc64 pseries is preferred,
and all relevant OS are going to support it for that case
2017-06-28 15:02:23 -04:00
Cole Robinson
4e7cd661ee guest: Only add input devices if graphics are specified 2017-06-28 12:05:14 -04:00
Pavel Hrdina
b690908aa4 virtinst: enable secure feature together with smm for UEFI
The secure feature actually enforce the secure boot if Secure Boot
Mode is configured.

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

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-06-07 20:49:45 +02:00
Pavel Hrdina
4f8e795c6a virtinst: if required by UEFI enable SMM feature and set q35 machine type
If we detect that the UEFI image is build to require SMM feature we
should configure the guest to enable SMM feature and set q35 machine
type.  Without this user wouldn't be able to boot the guest.

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

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-06-01 09:58:46 +02:00
Cole Robinson
a90d675394 Switch deprecating log.warn to log.warning
Same semantics, but the alias is deprecated
2017-05-05 14:53:28 -04:00
Cole Robinson
62feeb02a8 Switch to python3 style 'except X as Y' notation
Which also works with python2.7
2017-05-05 14:52:11 -04:00
Pavel Hrdina
3ebbeef80e virtinst: introduce support for <maxMemory> element
This element controls hot(un)plugable memory for the guest in
addition to the initial memory configured by <memory> element.

One has to configure <maxMemory> and guest numa nodes using <numa>
element to enable hot(un)plug of memory modules.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-05-05 11:49:27 +02:00
Cole Robinson
8181e86098 guest: Only use define+start logic for vz
Handling this for qemu, which may need UNDEFINE_NVRAM flags to do
the cleanup, is a pain, so move this logic to only apply to vz
driver which doesn't support createXML

Mentioned on list: https://www.redhat.com/archives/virt-tools-list/2017-April/msg00037.html
2017-04-27 14:59:41 -04:00
Cole Robinson
4c4d31d67d tests: Fix after vmvga change 2017-04-19 14:08:04 -04:00
Cole Robinson
93085d2b9d guest: Don't repeatedly overwrite self.domain
Since clearing it is important, just set it at the end when things
have succeeded
2017-04-13 14:56:03 -04:00
Christophe Fergeau
2099a1946e Reset Guest.domain to None on domain creation error
When an error occurs when the VM creation wizard tries to start the VM,
it's then not possible to press again the "Finish" button to try again
to start it, as this errors out with:

Traceback (most recent call last):
  File "/home/teuf/redhat/virt/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/home/teuf/redhat/virt/virt-manager/virtManager/create.py", line 2341, in _do_async_install
    guest.start_install(meter=meter)
  File "/home/teuf/redhat/virt/virt-manager/virtinst/guest.py", line 457, in start_install
    raise RuntimeError(_("Domain has already been started!"))
RuntimeError: Domain has already been started!

This is caused by code introduced in commit fc6778 which does not reset
self.domain to None when an exception is caught.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2017-04-13 14:24:40 -04:00
Mikhail Feoktistov
c25ea6537b Tune default device list for Virtuozzo containers
Virtuozzo supports virtio NIC.
Also add default VNC graphics.
Privnet feature and emulator device have no sense for vz containers.
2017-03-17 13:36:15 -04:00
Cole Robinson
d62e975568 guest: Add default virtio-rng /dev/urandom (bz 1212082)
For guests that support it, per libosinfo, and new enough libvirt
to handle /dev/urandom. See the bug for discussion

https://bugzilla.redhat.com/show_bug.cgi?id=1212082
2017-03-08 17:26:19 -05:00
Cole Robinson
22b6becd5d guest: Add support for qemu cli passthrough
This is for xml like:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  ...
  </devices>
  <qemu:commandline>
    <qemu:arg value='-newarg'/>
    <qemu:env name='QEMU_ENV' value='VAL'/>
  </qemu:commandline>
</domain>

Requires some extensions to the xmlbuilder infrastructure
2017-03-06 22:15:46 -05:00
Cole Robinson
a2df53db21 guest: Reorder XML output to match libvirt output 2017-03-05 21:04:34 -05:00
Cole Robinson
8ebed65459 guest: Only add default usb redirdev for x86
Since we only attempt to add a default USB controller for x86, match
it by only trying to add redir devices on x86 as well. Fixes a uitests
failure for ppc testing, since the test:/// driver doesn't add an
implied USB controller, and libvirt now validates that one was provided.
2017-03-05 14:32:14 -05:00
Mikhail Feoktistov
f78ff6457b Do not use createXML for non transient domains
For these domains use defineXML

(crobinso: Add undefine on start() failure)
2017-03-01 15:27:37 -05:00
Cole Robinson
fc6778108b guest: Don't set any defaults for on_*
Currently we hardcode these defaults for installing VMs:

  <on_poweroff>destroy</on_poweroff>
  <on_reboot>destroy</on_reboot>
  <on_crash>destroy</on_crash>

And these for post-install config:

  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>

But this has some issues. on_crash=restart is problematic in that most
configs don't support it, and some like virtuozzo actively reject it.
Additionally this we should leave as much to libvirt defaults as we
can, which are more sensible in this case.

Drop everything except setting on_reboot=destroy for the install time
case (which is required for our config changes). Since on_poweroff
and on_crash already default to 'destroy', the install time config
is unchanged, and the post-install config now on_crash=destroy instead
of 'restart'.

The s390 on_crash=preserve workaround is dropped, which was intended
to avoid a reboot loop caused by on_crash=reboot
2017-03-01 14:17:51 -05:00
Marc-André Lureau
ee6a60a9b9 virtinst: error out if spice+gl is not supported
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-11-14 09:55:43 +01:00
Charles Arnold
b31c0b442e virtinst: Add classes for defining SMBios information
This includes adding an smbios sub-element to the guest os element and a
sysinfo sub-element to the guest. The sysinfo sub-element contains the SMBios
specific data.
2016-09-08 11:36:59 -04:00
Cole Robinson
1d2cd30677 osdict: Fix incorrect usage of virtio input
Regression reported with latest libosinfo, when the OS reports
virtio-input support:

http://www.redhat.com/archives/virt-tools-list/2016-July/msg00109.html

Really our code presently only cares about the USB tablet, so adjust
our libosinfo lookup to explicitly check for it
2016-07-29 13:17:36 -04:00
Cole Robinson
40e0354631 guest: Fix multiple address.type=pci auto allocate requests
And test it for aarch64, which is the only place it's really
interesting at the moment
2016-06-17 17:17:49 -04:00
Richard W.M. Jones
246e3c9c59 virtinst: Add --transient flag.
If this flag is specified, --import|--boot will create a transient
libvirt domain, ie. one which goes away when the guest shuts down or
the host is rebooted.

(crobinso: some tweaks and tests)
2016-06-17 12:20:24 -04:00
Cole Robinson
116fabb37a virt-install: Access domain in place via guest.domain
And stop returning the domain object from Guest.start_install, it's
redundant
2016-06-17 12:13:21 -04:00
Cole Robinson
59edd87e9f guest: Rename noboot -> doboot
It's a bit easier to follow the logic IMO
2016-06-17 12:13:21 -04:00
Cole Robinson
b5d0b381ba guest: Rename start_xml -> install_xml
Make it more clear what the case is
2016-06-17 12:13:21 -04:00
Cole Robinson
837a9710a3 guest: Use newer named CreateXML API
CreateLinux is the very old style name. CreateXML has been around
since at least 2009, which covers our minimum libvirt-python version
2016-06-17 08:58:28 -04:00
Cole Robinson
9f297eda5b virtinst: guest: drop 'continue_install' concept
continue_install is intended to facilitate windows XP style 3 stage
installs:

  stage 1: initial dos style disk setup, reboot
  stage 2: actual full installer, reboot
  stage 3: OS is functional, virt-install is done

The code assumed that we needed to keep the cdrom as the primary
boot device for the second stage, so virt-install/virt-manager needed
to hang around through the second stage run, wait until the VM shutdown,
then encode the final XML to boot of the disk.

Windows is and always has been smart enough to handle that case though...
after the initial boot, if we set the hd as the primary boot device
for stage 2, the disk bits that windows already installed will make
use of the cdrom as necessary. So the entire premise of continue_install
is irrelevant. Maybe back when it was added, when xen didn't even have
working ACPI support, this served a purpose, but I'm pretty sure we
can safely drop it nowadays.
2016-06-17 07:52:42 -04:00
Cole Robinson
302a84a97d virtinst: rename .seclabel->.seclabels
Since guest and disk can have multiple of these, make it clear
to callers
2016-06-12 11:09:15 -04:00
Shivaprasad G Bhat
94f610465f CD-ROMs should be on scsi bus for pSeries machines
Commit f6322c9e changed the default bus type for disks to virtio.
That changed it for both disks and cdroms. The CD-ROMs dont work
if on virtio on pSeries. So, change the cdrom bus type to scsi as
before.

Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>

Extend virt-install-ppc64-pseries-f20 test to cover this case.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2016-06-07 16:55:46 +02:00
Leno Hou
3bbf0aad85 virtinst: fix indent tab issue with virtinst/guest.py
Signed-off-by: Leno Hou <lenohou@gmail.com>
2016-05-13 12:38:55 +02:00
Leno Hou
1ba524db04 virtinst: set preserve when on_crash in s390x
When booting from empty disk image or none bootdev, its leads
system IPL enter into infinite loop with message on s390x.
This patch sets preserve when on_crash to avoid the loop

Signed-off-by: Leno Hou <lenohou@gmail.com>
2016-05-10 13:38:38 -04:00
Shivaprasad G Bhat
f6322c9ed8 virtinst: Use virtio bus type for disks on pSeries machines
pSeries doesn't support ide and so was changed to use the scsi. virtio works
better on pSeries with better performance outcomes. Change the default to
virtio for disks

Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
2016-04-21 09:58:08 -04:00
Marc-André Lureau
ea1bd169c1 virtinst: use virtio if spice+gl
Use virtio+accel3d by default whenever spice+gl is chosen. This allows
to easily set up accelerated gpu VM.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2016-03-09 20:25:37 -05:00
Cole Robinson
33ca0fff7d Only use spice on x86
qemu isn't compiled with spice support for non-x86

Reported-by: Kevin Zhao <kevinzs@linux.vnet.ibm.com>
2015-12-24 11:33:47 -05:00
Cole Robinson
e13f81a7c5 guest: Add qemu-ga virtio channel for arm
Originally we didn't add this since arm vexpress virtio only had 4
virtio-mmio slots. But the now-common -M virt target has 32 slots,
so we aren't starved.
2015-11-24 19:39:19 -05:00
Cole Robinson
e18d2caa45 create: Don't go back to NewVM on error, if customize dialog launched
The code really isn't set up to handle exiting the customize dialog,
so just make the UI enforce it.
2015-11-21 19:55:48 -05:00