IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
Basically, drop usage of nested main loops. As has been documented in
other commit messages, we use nested main loops in ways they aren't
supposed to be used. They gave us async behavior that would block
callers, but had weird behavior in some edge cases.
Switch to having async dialogs be 100% async, requiring the user to
pass in a completion callback which is triggered after the async
action is complete.
Connect to remote URI, connect to VNC guest with password auth. Don't
enter password, just close the details window. Reopen the window,
password UI is still there, but it's no longer hooked up behind the
scenes. Fix it.
Spice opens many FDs to handle different channels (display, usb, sound,
etc.). For remote SSH URIs, this means we launch multiple SSH proceses.
We do so by forking off the process, and when SSH has successfully
authenticated, the data starts flowing.
If using spice + remote SSH w/o SSH keys, you need to put your data
into ssh askpass. askpass wants to own the display for security reasons.
When all the channel requests start coming in, we were launching multiple
ssh processes one after another. This upset askpass and generally
caused havoc in the app.
Add some infrastructure to serialize launching ssh processes. We only
launch the next ssh process if spice/vnc have conclusively connected
or errored out the connection. This makes connection a bit slower
for the non-askpass ssh case (about 1.5 seconds), but will ignore
avoid this oft reported problem.
Mention multifunction usage in manual, fix double use of PCI address
and also fix the format of PCI the address described (we parse and use
dot everywhere, but there was a colon on one place in man).
- Drop SDL, it doesn't mesh with modern libvirt
- Drop keymap, modern qemu/virt-manager handle this automagically
- Drop big text fields
- Misc other cleanups and simplifications
There's no need to be resetting row keys like VM name, state, on every
'resources-sampled' signals, since we have had finer grained status-changed
and config-changed signals for a while. This seems to reduce the memory
leak on F19 as well.
Our search dialog isn't as full featured as packagekits, so just call
out to that. This was originally avoided because it doesn't full
provide the semantics we want, but it's close enough and saves us
from duplicating all their work.
This allows to make use of libvirt network filtering support with virt-install.
With the additional option "filterref" in the --network parameter one can
configure any defined nwfilter per network interface, i.e.:
virt-install ... --network network=mynet,model=virtio,filterref=clean-traffic
(crobinso: add an xmlparse test case)
It fixes this exception while removing a VM:
Traceback (most recent call last):
File "virt-manager/virtManager/details.py", line 1438, in refresh_vm_state
self.change_run_text(vm.hasSavedImage())
File "virt-manager/virtManager/domain.py", line 1238, in hasSavedImage
return self._backend.hasManagedSaveImage(0)
File "/usr/local/lib/python2.7/site-packages/libvirt.py", line 852, in hasManagedSaveImage
if ret == -1: raise libvirtError ('virDomainHasManagedSaveImage() failed', dom=self)
libvirt.libvirtError: Domain not found: no domain with matching uuid
'7c3eebec-9b22-48ea-b9a2-3341840d0476' (test)
Traceback (most recent call last):
File "virt-manager/virtManager/manager.py", line 885, in vm_status_changed
self.vm_selected()
File "virt-manager/virtManager/manager.py", line 1009, in vm_selected
self.change_run_text(vm.hasSavedImage())
File "virt-manager/virtManager/domain.py", line 1238, in hasSavedImage
return self._backend.hasManagedSaveImage(0)
File "/usr/local/lib/python2.7/site-packages/libvirt.py", line 852, in hasManagedSaveImage
if ret == -1: raise libvirtError ('virDomainHasManagedSaveImage() failed', dom=self)
libvirt.libvirtError: Domain not found: no domain with matching uuid
'7c3eebec-9b22-48ea-b9a2-3341840d0476' (test)
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This adds initial UI for managing snapshots: list, run/revert, delete,
add, and redefining (for changing <description>) supported, but currently
only for internal snapshots. The UI is mostly in its final form except for
some bells and whistles.
The real remaining question is what do we want to advertise and support.
Internal (qcow2) snapshots are by far the simplest to manage, very
mature, and already have the semantics we want.
However most recent libvirt and qemu work has been to facilitate
external snapshots, which are more extensible and can be performed
live, and with qemu-ga coordination for extra safety. However
they make things much harder for virt-manager at the moment.
Until we have a plan, this work should be considered experimental
and not be relied upon.
This simple patch fixes three issues:
1) We used only one list of storage formats. However, we are able to
use some formats which we cannot create. This patch adds a list
called 'no_create_formats' and moves such formats (currently only
one) into it and uses new parameter 'create' which describes
whether such formats should be removed or not.
2) When creating new storage with the above fixed, we need to set the
combobox's text to "" in order not to change it to "raw". This
was already done in reset_state(), but we need it also when
toggle_storage_select() happens and it doesn't hurt in
set_initial_state(), so I abstracted the implementation into
populate_disk_format_combo().
3) It's a bit unrelated, but when bus of a domain disk gets changed
(in details.py), the address was not cleaned up properly ('target'
attribute was still kept), so I fixed up the VirtualDeviceAddress
as well.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=907289
Some ARM bits we are about to add would substantially complicate the
current setup, so move all the logic into guest.py where we can be
more flexible. I think this is closer to what libosinfo will give us
as well.