We need to quote URL values in the username, that's what libvirt expects.
Unquote the values before caching them in the URI object, so console
connections continue to work
https://bugzilla.redhat.com/show_bug.cgi?id=1452389
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>
The cb_add_new_pool callback will add a newly created storage pool
into virt-manager's cache so we don't have to wait for the libvirt
event to be handled.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1435064
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
libvirt added network forward mode 'open' by commit 25e8112d, No any
iptables rules are added to this virtual network.
This patch adds support to create such a virtual network.
Signed-off-by: Lin Ma <lma@suse.com>
It relies on the presence of X cursor fonts in the system. Use
recommended gdk_cursor_new_from_name and use cursor names that works
on different backends.
Deprecated since Gdk 3.16
https://bugzilla.redhat.com/show_bug.cgi?id=1442612
If we set on_crash as `preserve`, we'll get a crashed
VM state.
At this time, it's impossible to start this VM.
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
When showing all the OSes, the list of distributions for some types of
OSes (Linux, UNIX) will get insanely long, and thus very hard to scroll.
As solution, introduce groups for some of the OS families, leaving the
ones without a defined group into a "Others" group.
To keep the completion working in the editable combobox, add a separate
completion model for the completion entry, providing all the OSes
directly there as simple list.
There are a number of changes related to this:
- the model for the OS comboboxes is now a TreeStore, and the iterations
on the OS variant keep that into account
- there are better UI labels for OS types and groups
- when there are no groups for a type, add all the OSes directly, just
like now
- optimize the way types are added to the combobox: when not adding all
of them, filter out those not "supported"
- optimize the way OSes are added to the combobox: query only for the
list we need (supported or all, not both), and group them according
to the hash defined
- add separator + "show all" options only when not showing all of them
- _add_os_row now is called only when needed, so remove its "supported"
parameter
Seen in a bug log file:
[Tue, 28 Mar 2017 12:05:21 virt-manager 2465] DEBUG (cli:251) Uncaught exception:
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/details.py", line 1303, in refresh_vm_state
self.console.details_update_widget_states()
File "/usr/share/virt-manager/virtManager/console.py", line 1025, in details_update_widget_states
return self._update_vm_widget_states()
File "/usr/share/virt-manager/virtManager/console.py", line 597, in _update_vm_widget_states
self._refresh_widget_states()
File "/usr/share/virt-manager/virtManager/console.py", line 663, in _refresh_widget_states
self.widget("details-menu-vm-screenshot").set_sensitive(is_viewer)
TypeError: Argument 1 does not allow None as a value
This is in fact a bug in QEMU so we have to workaround this issue
to allow to connect to guest with VNC and listen type none.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1434551
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
When the Autostart checkbox on the host Virtual Network or Storage tabs
is deselected, the label reads "Never", and when selected the label reads
"On Boot". This changes these labels to always read "On Boot".
Add virtuozzo hypervisor to connection list.
Add radio buttons for choosing VM or container virtualization type.
New wizard window for setting template name for containers.
We don't have any way at the momemnt to synchronously update cached
object lists. So if old_nvram will create a pool for the nvram dir
(/var/lib/libvirt/qemu/nvram), new_nvram won't see that new object
in our cache, will attempt to create it itself, and raise an error.
Next attempts succeed though.
We can avoid this by not even setting new_nvram.path, that step was
redundant anyways since we are setting a vol_install right afterwards.
This way, new_nvram is getting a reference to the parent_pool object
via the vol_install, so it doesn't even check the pool object cache.
Libvirt storage API doesn't support renaming storage volumes so
we need to copy the nvram file and remove the old one.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1368922
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Libvirt doesn't support creating volumes for some storage pools,
don't generate default clone_path for these storage pools.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1420190
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
If we don't default to clone the disk in question don't try to generate
and assign default clone_path, this will force user to select the path
explicitly and avoid some unnecessary errors in debug log.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Similarly to virt-install --listen=none, add a combobox to select
the listen type: "address" or "none" for now, as suggested by Pavel
Hrdina.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Add an OpenGL checkbox to the Spice graphics options (only available if
SUPPORT_CONN_SPICE_GL).
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
If a package has no summary, try to use the description (if available):
- if it is just one line (mostly because the package manager only has
a single line as description of a package), then use it fully
- if it contains more lines, then take the first only, adding suspension
dots to indicate it is longer than that
Refresh the 'Information' page when there are new inspection data
available, so they can be seen even without switching to a different
page and back. This could be seen when starting virt-manager, and
opening quickly the 'Information' page of an uninspected guest.
Now we act for each item in the queue, so there is no more need to drain
it fully before doing anything. Thus, turn _run into a simple
get+process+done loop.
We might get 'conn-added' signals for the same connections more than
once, so make sure to skip a new connection notification when the
connection is already known.
Currently, the handling of the 'vm_added' element in the queue (added as
consequence of the 'vm-added' signal) is to act as trigger to rescan
every VM in every local connection; this operation is "fast" because
every VM except the newly added is already marked as visited. Still, it
is an not really efficient way to visit new VMs.
Instead, just push in the queue all the data we get in vm_added, so when
processing the queue we can process each VM straight away. Because of
this, make sure to gracefully handle VMs that were removed while the
'vm_added' item for them was sitting in the queue (which is something
the old code did not handle properly).
When connecting to remote SPICE we use ssh tunnel if the SPICE is
listening only on "localhost". Our ssh tunnel scheduler uses locks
to serialize the requests for FD in order to not spam user for ssh
password.
However when the main_channel is connected and emits AUTH_ERROR
we ask user for password and request for new FD. Unfortunately
after the new request is handled we didn't unlock the scheduler
and all other request would remain waiting for the lock.
We need to unlock every FD request for the SPICE main channel not
only the first one when the channel itself is created.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1401790
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
When there is no high quality icon for a guest, try getting the low
quality icon. This should make virt-manager show icons for Ubuntu and
Windows guests.
When the network interface is up the active XML contains only IP address
even in case that the inactive XML was configured to get the IP address
from DHCP server. To propagate this information back to UI we need to
get both XMLs to figure out current IP addresses and the configuration.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1410722
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Libvirt provides domain capabilities where supported disk bus types are
listed. Virt-manager should try to get those bus types. The old code
remains as fallback if domain capabilities doesn't contain the disk
bus types.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1387218
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Yet another issue with not using window.get_size() and instead using
its size allocation directly, which differ on wayland due to client
side decorations.
https://bugzilla.redhat.com/show_bug.cgi?id=1397598
The virt-manager application generates invalid guest XML when a
spapr-vio SCSI model controller is changed to a virtio-scsi model controller.
1. Create a guest
2. Add an spapr-vio controller to the guest via this gui path:
->Add Hardware
->Controller
->Type SCSI
->Model Hypervisor default
At this point, there will be a valid spapr-vio SCSI controller defined:
<controller type='scsi' index='0'>
<address type='spapr-vio' reg='0x2000'/>
</controller>
3.Now modify the above SCSI controller using this gui path:
->Choose "Controller sPAPR SCSI" on left pane
->Choose "VirtIO SCSI" for the Model on the right pane
->Apply
At this point, there will be a SCSI controller definition which is invalid due to an incorrect address type:
~# virsh dumpxml dotg2|grep -A2 -i scsi
<controller type='scsi' index='0' model='virtio-scsi'>
<address type='spapr-vio' reg='0x2000'/>
</controller>
Any attempt to start the guest will throw this error:
error: Failed to start domain dotg2
error: internal error: process exited while connecting to monitor: 2016-12-02T17:45:12.989165Z qemu-system-ppc64le: -device virtio-scsi-pci,id=scsi0,reg=0x2000: Property '.reg' not found
virt-manager fails to realize that the address type needs to be changed to a PCI address for a virtio-scsi controller.
If you change the model, you are supposed to leave the address field empty, so that libvirt sets it correctly. Or change the address field also appropriately.
Note that this bug can be reproduced entirely within virt-manager. No manual editing of guest XML is being done here. So, fix is to make virt-manager delete the address field when the SCSI controller model is changed, allowing libvirt to automatically assign a new address with the correct type.
Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
such as a VM is active.
This patch will disable 'Clone' label in VMActionMenu
if we can't clone a VM,
as same as we did for 'Clone' button in clone ui page.
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
For Xen, virt-manager uses a 'xenmigr' URI scheme, which is not
supported by the libvirt libxl driver. Attempting migration
fails with
libvirtError: invalid argument: unable to parse URI: xenmigr://myhost
The old xend-based libvirt driver supports this scheme, but also
supports an empty scheme. It's not clear what the 'xenmigr' scheme
is used for. 'xenmigr' is not referenced by any files in the Xen
code-base, including old branches with xend.
Drop setting scheme to 'xenmigr' when creating the Xen migration URI.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
libvirt has supported the migration V3 protocol for many years now.
A nice feature of the virDomainMigrate3 API is that it will detect
the protocol version supported by the underlying hypervisor,
including whether it supports the extensible parameters variant,
and call the hypervisor API with parameters fixed up as needed.
Change virt-manager to use the virDomainMigrate3 API, allowing
migration to work with hypervisors that only support the extensible
parameters variant of the migration V3 API.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
When creating a storage volume, it wouldn't show up in the list
since the refresh signaling was busted.
Code was using VIR_STORAGE_POOL_EVENT_REFRESHED which was dropped
from lifecycle event type, refresh is introduced as top level
event.
Function _close_viewer should be always called together with setting
unavailable page. Call only _activate_unavailable_page which does both things.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
We need to tweak refresh() handling to work similar to the shared
XML and status caching in libvirtobject.py: when the user manually
invokes the refresh() operation, and storage events are set up,
we just invoke the refresh() but let the event loop handle
refreshing the cache.
This fixes a backtrace when invoking a manual refresh via the
host details dialog
When new pool objects appear, we call refresh() on them, to ensure
we have the latest data (in case manual changes were made to the
storage pool directory behind libvirt's back, which is quite common).
However with the storage event support, this results in lots of
REFRESHED signals during initial connection startup, which kick
off redundant object polling.
Avoid storage REFRESHED events if they come in before the connection
is finished starting up to skip this redundant polling.
Otherwise this triggers some event calls and results in double
polling during connection startup. Doesn't cause any issues, just
spams the logs and needless libvirt calls
Even if it's not marked readonly or shareable, floppy media is
very likely to be a shared resource and not something that belongs
to the VM that the user will want to delete by default.
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.
If the first install attempt fails, then the second attempt succeeds,
we were still removing the disk images we created as though the
install never succeeded. We need to clear out the cached failed_guest
value via the customize dialog callback
https://bugzilla.redhat.com/show_bug.cgi?id=1342043
This improves loading domcapabilities to get domcapabilities for recommended
machine, not for default machine.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
If password for console is saved currently there is no way how to tell
virt-manager to forget that password. This patch improves the authentication
page in order to provide a way how to forget password simply by unchecking the
"Save this password in your keyring".
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Commit 839ce682 removed deprecated support of save/restore which was replaced by
managedsave feature. This is a leftover that wasn't removed together with that
commit.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1340356
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Commit a0c2fdf4 fixed a bug that there was no way how to close the app.
The original issue isn't present anymore but reverting that commit isn't
enough. We need to increment/decrement window count while
showing/closing the create window in order to not exit right after
the create window is opened.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1331707
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
- If connecting remotely but graphics has no listen address,
like the spice GL case.
- Trying to connect to a TLS using VM over an ssh tunnel, it doesn't
seem to work: https://bugzilla.redhat.com/show_bug.cgi?id=1320331
Basically reverting this commit:
commit 1c8bf88db7
Author: Cole Robinson <crobinso@redhat.com>
Date: Tue Jun 18 08:46:24 2013 -0400
baseclass: Add unregister wrappers for idle and timeout
If an idle handler raises an exception, it isn't unregistered and loops
forever. This is a regression from previous pygobject and pygtk:
https://bugzilla.gnome.org/show_bug.cgi?id=702552
Work around this for now with our own wrappers.
Commit 159e4af1 fixed a case where VM was started if user destroyed VM
while installing it. This moves the code before we check whether we
need to restart the VM in order to continue in installation (windows
requires that).
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1235238
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This is largely left over from the old days when a xen VM could
start up but still take a bit of time for the allocated VNC port
to be reflected in the XML.
This may still be an issue with old old xen, but I suspect it's
not relevant for anything modern, and it causes some issues with
listen=none behavior that spice supports. Just drop it and see if
anyone complains
Function virDomainOpenGraphicsFD() from libvirt can return -1
But in this case libvirt-python will raise an exception.
We should handle this case and return -1 as invalid FD.
In commit 5c451b64 Viewer._open() there is a code to open
graphics console in case of invalid GraphicsFD.
(crobinso: also log the error message)
So far we used only the last --extra-args argument from virt-install
command line, but it makes more sense to use all occurrences of
--extra-args and pass them to kernel.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This allows to connect to VM without any display listening socket, the
fd passing is done through libvirt connection.
Furthermore, since it uses unix socket, spice can use virgl locally
with texture sharing. This effectively enables spice-gtk to display
local virgl rendering.
Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
In case that libvirtd is stopped, we could receive another type of error
from libvirt "libvirtError: internal error: client socket is closed".
This one is usually reported from local connection.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
libvirt does not allow this and attempt to do so causes error during domain
startup. Prevent this in the beginning instead with correct explanation.
Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
So I was confused here and completely missed that GtkApplication is
meant to handle the common case of invoking actions in an existing
app instance. So drop the manual dbus server and use the simpler
Gtk support.
Fix a bunch of other errors in this area too
Traceback (most recent call last):
File "/home/crobinso/src/virt-manager/virtManager/details.py", line 1257, in switch_page
self.console.details_refresh_can_fullscreen()
File "/home/crobinso/src/virt-manager/virtManager/console.py", line 965, in details_refresh_can_fullscreen
return self._refresh_can_fullscreen()
File "/home/crobinso/src/virt-manager/virtManager/console.py", line 464, in _refresh_can_fullscreen
self.widget("control-fullscreen").set_sensitive(allow_fullscreen)
TypeError: Argument 1 does not allow None as a value
This allows virt-manager command line that launch windows to work for an
existing virt-manager instance. This is handy for scripting, and giving
other apps a reasonable way to launch a virt-manager VM window for
example.
This UI exposed the old NUMA allocation policy detailed in the last commit.
It's very much sub-optimal, and should be removed.
Manual cpuset configuration is also quite uncommon and not really something
worth exposing in the UI. It can easily be done from the command line
with virt-xml.
If people complain, I'd consider adding a checkbox for vcpu placement=auto,
or an option to do that by default for new VMs.
Currently we show channel label by its name.
If we use name com.redhat.spice.0 but set it
as unix socket, the label in details keep unchanged.
This patch will set label according to device type
if we failed matching target_name
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
Most of this is lifted from 'meld'. The bits are
- compile gsettings schemas at setup.py install time
- add options to disable that, and use them in the RPM
- always pass GSETTINGS_SCHEMA_DIR so gsettings loading always works
regardless of the install dir
https://bugzilla.redhat.com/show_bug.cgi?id=1267377
Since qemu has the setuid qemu-bridge-helper, give a way in the UI
to specify a manual bridge name for qemu:///session. Might not work
all the time but at least the users can try
https://bugzilla.redhat.com/show_bug.cgi?id=1212443
Simplest is to have a separate UI area for the arch warning, since
the standard startup warning may still apply too.
Reported-by: João Pirralha <joaopirralha@gmail.com>
pygobject doesn't seem to choke on debug_leak_check anymore, so we
can use it to find object leaks. just doing a few for now since it's
generally not a big deal.
This is so we can drop the dep on system python-urlgrabber, which will
block us from going to python3.
All we need is like 300 lines from python-urlgrabber for the progress
bar. In reality our needs are much lower, we don't need the fancy
progress bar that urlgrabber provides, but it's nice to have. So if
keeping a copy of this code causes issues in the future, we can probably
come up with something simpler (or hopefully there's a more common
python progressbar impl that we can use at that point).
It happens every now and then that a libvirt bug means calling XMLDesc
on an object will always fail. For example:
https://bugzilla.redhat.com/show_bug.cgi?id=1225771
We don't handle this very well and it can bleed into many other parts of
the code in a bad way. So if the initial polling of the object fails,
blacklist it entirely and ignore it for all future polling.
Originally this made sense, as it was the only way to specify a non-default
storage format when creating new storage.
Nowadays the storage browser is a full featured storage manager... and
this field is a bit confusing WRT whether it's used for creating new
storage, or informing libvirt about an existing image's format.
Drop it from the addhardware wizard, and simplify what we show in the
details wizard as well.
This is a little low level and rarely used IMO to have it in the UI.
If people want to edit this we should point them at virt-xml which
seems like the appropriate user friendlyness for this feature.
This made more sense when raw was the disk image default, but nowadays
we use qcow2 which doesn't even support non-sparse, so the UI is always
disabled.
If the user changed their preference to raw, it still doesn't make much
sense to show the option, since they are likely using raw for performance
in which case they are going to want to preallocate anyways.
So just default to sparse=False. If users want to override it, they can
do it via custom created storage.
- Privatize a bunch of functions
- Rename functions to make their purpose cleared
- Document some functions
- Group functions into logical groups and use comment blocks to separate them
Similar to the virt-install change, we only do this with default storage
if the installed failed in such a way that we never left the wizard.
It isn't going to cover all cases, but should handle the common issue
of stranded disk images
https://bugzilla.redhat.com/show_bug.cgi?id=799721
It's not consistently applied. If I had a setup to test against old xen
that still listed dom0, I'd make it so we never even show dom0 so we
can sidestep the problem entirely.
This has been supported for a long time now, and is more tested these
days, so let's use it rather than the old style AttachDevice method
It also works around a libvirt issue described in bz 1229819
Libvirt commit#742d49f introduces vgamem attribute to set the VGA
framebuffer size for QXL device of qemu, So we use vgamem instead
of vram here for qxl.
Signed-off-by: Lin Ma <lma@suse.com>
This feature has been added few years ago. I don't think, that it's a
good feature, as it can ask a user to use different storage than he
actually wants to use. One thing is automatically create a new storage
for user, if he let as do that, but we shouldn't annoy a user with this
question as he probably don't want to use the proposed storage. For
example he would like to use different storage pool or while importing
existing storage.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1232599
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
There is no virtio-scsi or spapr-vscsi bus, but only 'scsi' bus. There
are several types of SCSI controllers, but the SCSI storage don't care
about the SCSI controller and there is also no difference in address
specification or address type. Use only 'scsi' bus for all SCSI storages
to correspond the reality and also the libvirt domain XML. The only
difference is in the type of SCSI controller
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Commint 0ddec919 updated the details page. Now the detail page of
existing domain cannot update the 'machine' value, only prints that
value. If we cannot get the machine from domain XML, don't pass a None,
but "Unknown" instead. This can happen if you are connecting with
virt-manager to really old libvirt, the machine value is present in
domain XML since libvirt v0.9.5.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1238981
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This issue was fixed for few years but only in virt-manager,
virt-install has the same bug. If you have two USB devices with same
vendor and product ID, you need to use also address element to create
a valid XML to define that device into a guest.
This patch moves the logic from vmmAddHardware into VirtualHostDevice in
order to not duplicate that code for virt-manager and virt-install.
Also update the tests files to properly check this functionality. I've
changed the USB device according the 'tests/testdriver.xml' and picked
one of the USB HUBs, because they have the same vendor and product ID.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1230611
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
We need to update/initialize the capsinfo sooner in that function to be
able to call has_install_options().
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1244566
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Each guest type can have its own capabilities and we should always ask
only for those capabilities.
The old approach was to get capabilities from libvirt and then for
example cycle trough all guests and return True, if any guest type
supports kvm or pae, etc.
Now we check those capabilities only for the correct guest type
according to defaults and input from user.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
For architecture "s390x",the disk and the network device are base
on "virtio" bus.The cdrom is based on "scsi".So set the default
cdrom bus as "scsi",the default bus as "virtio".Also the default
machine type is set to "s390-ccw-virtio" as it is the only supported
in "s390x".Also add a test cast of virt-install by cdrom in s390x.
(crobinso: Tweak test suite and minor formatting stuff)
All the strings have to be at first translated and then we can fill the
formated and translated string.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Drop horizontal scrolling, since with gtk3 hidden scrollbars it might
mean users don't realize there's info that is scrolled off.
Adjust the default sizing to match that pattern
commit 938060ae53 moved default devices
setup to happen before UEFI is set invalidating what the commit
5acfccf6032abb9e8be89130d05b661e8b3f42c7 does.
Add another check to happen before installing the guest to disable
HYPER-V when not supported.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1185253
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Repopulating the ostype/variant list triggers a bunch of change events,
which causes us to enter an infinite loop due to some minor behavior
change in the uiutil helpers.
The uiutil helpers are still correct, the root problem is we should be
disabling change events when repopulating those UI lists (we already
have to do a similar trick in a few other places, like host.py)
This is really only useful for building default XML internally, and
for virt-install stuff like --watchdog default. Instead just select
the 'default' value in the wizard
commit 5357b91402 changed the semantic of
conn.get_(vm|pool|interface|nodedev|net), to return None instead of
raising KeyError. Leave the exception handling code in case the
semantic is going to be reverted.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1219427
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
memory doesn't have a separate input/output stats, so we shouldn't use
the in_out_vector_helper. This resulted in shutoff VMs appearing to still
use memory in the manager window.
Trying to fall back to the create wizard can give weird results, since
it's really hard to ensure the customized changes are preserved if
the user changes things in the 'new' wizard.
Apparently xen doesn't set <serial> device alias names, and OpenConsole
just opens the first <console> device unconditionally.
Properly handling that would be to report it in the UI that we can
only open the first console, but for now just drop the alias check.
Apparently SUSE already does this as mentioned in the RH bug
https://bugzilla.redhat.com/show_bug.cgi?id=1215357