Commit Graph

3128 Commits

Author SHA1 Message Date
Cole Robinson
eb4068cc47 xmlbuilder: Add infrastructure for parsing into subclasses
We already had this open coded in several classes with varying methods.
Now all someone has to do is

features = XMLChildProperty(CPUFeature)

The xmlbuilder code will pull the relevant xpath from the CPUFeature class,
handling parsing into instances of that class directly. The only
thing that needs to be manually added is the add_* remove_* functions.
2013-09-10 21:34:45 -04:00
Cole Robinson
10e608e9dd guest: Fix adding a parsed device to a built guest 2013-09-10 18:34:36 -04:00
Cole Robinson
71d7e20811 guest: Simplify remove_device 2013-09-10 18:34:36 -04:00
Cole Robinson
37ec775daf xmlbuilder: Fix multiple overwrite of root_xpath
Nothing really triggers it right now, but future code may
2013-09-10 18:34:36 -04:00
Cole Robinson
97f641f645 tests: cli: Fix fallout from testdriver alterations 2013-09-10 18:34:36 -04:00
Cole Robinson
9ca0545533 addhw: Drop intro text, simplify UI alignment 2013-09-09 13:06:37 -04:00
Cole Robinson
32c990dc29 addhw: Simplify chardev UI
The previous UI was a ugly and the doc text wasn't particularly helpful,
just make it work like the other UI.
2013-09-09 12:48:17 -04:00
Cole Robinson
2e4685590f testdriver: Drop test-many-nets
It doesn't even have as many nets as test-many-devices
2013-09-09 11:38:14 -04:00
Cole Robinson
3c9f3a16e1 addhw: Use gtkgrid for network UI 2013-09-09 11:37:32 -04:00
Cole Robinson
ba6e40e879 addhw: Convert usbredir UI to grid 2013-09-09 11:17:01 -04:00
Cole Robinson
e1063e0089 addhw: Fix error if no host devices are available 2013-09-09 11:04:08 -04:00
Cole Robinson
36c669d45a Replace get_property("sensitive") with get_sensitive 2013-09-09 11:02:34 -04:00
Cole Robinson
b6c078ad75 addhw: disk cache default should be 'default' not 'none' 2013-09-09 10:50:56 -04:00
Cole Robinson
6869760732 asyncjob: Fix issues with multiple dialogs (bz 1003101)
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.
2013-09-06 21:30:19 -04:00
Cole Robinson
0551d8956b error: Rename confusing sync/async param to modal 2013-09-06 20:16:37 -04:00
Cole Robinson
aabb3c8e48 asyncjob: Remove unused async parameter 2013-09-06 20:16:25 -04:00
Cole Robinson
0eab1706cc console: Fix password screen issue
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.
2013-09-06 19:55:46 -04:00
Cole Robinson
5bf63759b6 console: Fix issues with spice and askpass (bz 811346)
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.
2013-09-06 19:36:09 -04:00
Cole Robinson
67cc81f6b1 virt-install: Add --boot useserial=on
Which gives bios output over serial console via sgabios
2013-09-04 11:57:26 -04:00
Martin Kletzander
ab94df86c4 Typos fix and minor cleanup
Commit 57aab5de copy-pasted a typo, introduced a new one and used bad
order of parameters, so I'm fixing it so we're not stuck with it
forever.
2013-09-03 08:47:26 +02:00
Martin Kletzander
2dcba19f8c Fix addresses in manual
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).
2013-09-03 08:08:07 +02:00
Martin Kletzander
70fae14635 Automatically add multifunction address parameter when needed
Also check for use of duplicate addresses before passing such XML to
libvirt.  And fix tests (of course).
2013-09-03 08:08:06 +02:00
Martin Kletzander
57aab5de17 Add support for multifunction address parameter 2013-09-03 08:08:06 +02:00
Cole Robinson
018fcbbb4a distroinstaller: Support --initrd-inject for RHEL4 (bz 866608)
RHEL4 kernels are gzip'd ext2 images, so unzip it, use debugfs to inject
files, and zip it back up. Based on shell code from Patrick J. LoPresti.
2013-09-02 16:10:28 -04:00
Cole Robinson
4910611d3c autodrawer: Drop note about broken child_get_property
I can't reproduce anymore
2013-09-02 12:02:33 -04:00
Cole Robinson
efbc815a60 addhardware: Modernize 'graphics' UI
- 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
2013-09-02 11:59:02 -04:00
Cole Robinson
288a611ff7 graphics: Fix default autoport value
default_cb doesn't want yes/no, it wants True/False
2013-09-02 11:54:02 -04:00
Cole Robinson
b86c5b21ec manager: Use consistent row spacing even if we disable all graphs 2013-09-02 10:43:53 -04:00
Cole Robinson
bbf51ee3cb baseclass: Build error object on demand
Should speed things up a tiny bit in the common case
2013-09-02 09:35:07 -04:00
Cole Robinson
f141c77c45 manager: Separate stats and state update callbacks
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.
2013-09-02 09:32:50 -04:00
Cole Robinson
db7db9ab47 manager: Disable graph data func if graph isn't visible
Seems like pygobject is a bit leaky with tree row accesses, and
the cell cb hammers on that quite a bit, even if the graph isn't showing.
2013-09-02 08:42:25 -04:00
Cole Robinson
9c5962c72a graphwidgets: Make a division check more robust
Not an issue in practice, but I was stubbing out some parts of the code
in trying to track down a memory leak and this check failed.
2013-09-02 08:42:25 -04:00
Cole Robinson
9d87b0d342 Replace set_property("visible") with modern set_visible 2013-09-01 20:18:14 -04:00
Cole Robinson
1ce02cc7d9 addhw: Fix FS UI for non-qemu 2013-09-01 20:07:46 -04:00
Cole Robinson
c79ba14a6a details: Fix description field spacing 2013-09-01 20:03:53 -04:00
Cole Robinson
ae7ebc220b details: Properly limit machine type list by guests arch/type 2013-09-01 19:21:21 -04:00
Cole Robinson
4c2f7377af preferences: Stats interval can't be less than 1 2013-09-01 18:55:31 -04:00
Cole Robinson
1bd6026515 manager: Merge some row creation, drop unneeded row keys 2013-09-01 18:36:58 -04:00
Cole Robinson
10161a8fdb details: Track serial pages as console tabs
A bit cleaner conceptually, and shrinks the ever growing details.py
2013-09-01 17:40:38 -04:00
Cole Robinson
cdc82e62a2 console: Fix spice with TLS (bz #904295)
We now use the same CA trust store as virt-viewer's default, which is:

~/.spicec/spice_truststore.pem
2013-09-01 16:09:35 -04:00
Cole Robinson
280663c685 packageutils: Don't implement our own search dialog (bz #746011)
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.
2013-09-01 14:19:23 -04:00
Cole Robinson
82ef6ba173 console: Catch spice connection errors (bz #971558) 2013-09-01 13:25:37 -04:00
Cole Robinson
2c918ecaa6 uihelpers: Don't list 'lo' as a macvtap interface (bz #980606) 2013-08-31 13:14:47 -04:00
Daniel Gollub
1730a8e5ff virtinst: add nwfilter support
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)
2013-08-29 11:44:40 -04:00
Giuseppe Scrivano
f238abfe4d virt-manager: ignore another VIR_ERR_NO_DOMAIN error
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>
2013-08-27 13:44:43 -04:00
Martin Kletzander
3f47140cf9 uihelpers: Fix storage unit
We use GB everywhere, but there was one place missing where we used Gb
instead.
2013-08-27 07:33:28 +02:00
Cole Robinson
948b5359d2 virt-manager: Hide snapshot work behind --experimental-snapshot-ui
I don't want to publicize the UI and the current feature set until
we are sure it's what we want to support, so hide it for now.
2013-08-21 18:47:05 -04:00
Cole Robinson
e8531b1f40 Initial snapshot support
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.
2013-08-21 18:41:42 -04:00
Cole Robinson
9d11c7eae3 virtinst: Add DomainSnapshot object and some plumbing
Just for parsing domainsnapshot XML and performing some support checks
2013-08-21 18:26:27 -04:00
Martin Kletzander
3b9c397d11 Handle storage formats properly
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
2013-08-21 11:12:42 +02:00