Commit Graph

73 Commits

Author SHA1 Message Date
Giuseppe Scrivano
b3131e828e inspection: report guest inspection errors
Add an `error' flag to the inspection data for a guest and set it when
the inspection failed.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-12-03 11:39:23 +01:00
Giuseppe Scrivano
5798c5b9b4 virt-manager: prefer os.makedirs to os.mkdir when creating cache dir
Ensure the parent directories exist when attempting to create the
cache directory.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-11-05 18:15:11 +01:00
Martin Kletzander
1ac755e7b2 details: Fix processor tab display for some LXC guests
With LXC domain, the 'current' attribute of 'vcpu' element is not
always present, but the code is still depending on it.
2013-10-29 11:24:52 +01:00
Cole Robinson
a991c21d08 details: Fix reporting current VM cpus 2013-10-07 18:12:12 -04:00
Cole Robinson
56b9f6187b Streamline support checks
Just use one function check_support
2013-10-06 10:08:04 -04:00
Cole Robinson
e7e97a8088 domain: If title present, print only it
Forcing the name to be in the picture reduces the usefulness IMO
2013-10-04 11:50:19 -04:00
Fred A. Kemp
c45e1ef6b8 virt-manager: Add checkbox controlling disk 'removable' flag
(crobinso: Fix to use grid rework)
2013-10-04 08:08:44 -04:00
Cole Robinson
d83b2c02fa virt-manager: Add USB3 convenience option to the controller UI
and a --controller usb3 option to virt-install
2013-10-03 16:34:28 -04:00
Cole Robinson
2954995a28 domain: Fix deleting VM in test driver 2013-10-02 19:57:50 -04:00
Cole Robinson
2218a03154 details: Rip out 'would you like to add/remove spicevmc' bit
This was originally there for when we weren't defaulting to spice.
We basically do that now, so people shouldn't have much need to
switch spice on/off for an existing guest. Plus if we wanted to
be far about it we would want to add/remove qxl as well but there
it's just getting rediculous.
2013-10-02 18:04:56 -04:00
Cole Robinson
910c3a93ad domain: Fix 'customize install' after snapshot changes 2013-10-02 07:42:24 -04:00
Cole Robinson
868fbd9fc9 snapshots: Add screenshot support
Show a screenshot in the 'new snapshot' wizard. If we successfully create
that snapshot, save the screenshot in

~/.cache/virt-manager/$connuri/$vmuuid/snap-screenshot-$snapname.$ext

And show it in the snapshot details overview. We don't do any reaping
on snapshot delete, vm delete, etc, but that could be added later.
2013-10-01 10:14:51 -04:00
Cole Robinson
d44f863c2d details: Disable snapshot buttons if conn or guest doesn't have support 2013-09-30 20:33:42 -04:00
Cole Robinson
6043a88a0c snapshots: Add some specific UI for external snapshots
We sort them separately in the snapshot list, explicitly mention that
they are 'external', and add a UI field listing the memory/disk
details.

In general mixing internal and external snapshots is a recipe for
confusion and disaster, so I think the best thing to do is at least
acknowledge their presence in the UI but not make any attempt to
predict what will or will not work.
2013-09-30 19:55:21 -04:00
Cole Robinson
45e84d46ec snapshots: Make state type/icon UI match other usage 2013-09-30 17:12:24 -04:00
Cole Robinson
b1d3987aaa domain: Fix deleting a VM that has snapshots (bz 821518) 2013-09-30 15:38:35 -04:00
Cole Robinson
844a567e7b details: Don't silently drop managed save when renaming VM
Instead just error about it. Until there's an actual libvirt 'rename'
API we can't do much better than that.
2013-09-30 15:38:35 -04:00
Cole Robinson
2b74c46909 snapshots: Pretty up the 'new snapshot' dialog 2013-09-30 15:38:12 -04:00
Cole Robinson
369a17160a host: Allow renaming virtual networks 2013-09-29 12:14:00 -04:00
Cole Robinson
cd7837bc4b domain: Clean up some support checks
We don't need to cache things since virtinst/connection does it for
us.
2013-09-29 09:58:31 -04:00
Cole Robinson
7a5dc7c544 devicedisk: path_in_use_by: Check backing stores as well
Plumb through a fetch_all_vols helper for this, and do all the
caching bits.
2013-09-28 21:07:18 -04:00
Cole Robinson
1212cf43a9 DomainFeatures: Drop __getitem__ helpers
They just complicate matters
2013-09-27 15:08:44 -04:00
Giuseppe Scrivano
4b52133e53 virtManager: add functions to manage guest "title" metadata
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-09-25 19:16:23 +02:00
Cole Robinson
827e4cd9e5 domain: Fix changing disk/net poll from preferences dialog 2013-09-23 20:24:27 -04:00
Giuseppe Scrivano
92db24aa12 virtManager: add GUI elements for showing RNG devices
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-09-23 14:07:00 -04:00
Cole Robinson
a7b1414dc5 libvirtobject: Make parseclass non-optional
All libvirtobject child classes have an associated XMLBuilder now, so
make it mandatory.
2013-09-23 08:34:50 -04:00
Cole Robinson
38f110954d domain: Fix XML diff in logs when doing 'customize' 2013-09-20 10:24:31 -04:00
Cole Robinson
3db5cb5f06 Use XMLBuilder for Interface XML
So we unify parsing and building the XML.

Since we already do this for vmmDomain, take the opportunity to move
the shared infrastructure into vmmLibvirtObject
2013-09-19 16:56:38 -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
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
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
Cole Robinson
1ce5fb1bb9 details: Wire up DTB support
Only show it for supported archs (arm, microblaze, ppc). Take this
opportunity to tweak the kernel/initrd UI a bit
2013-08-18 12:42:07 -04:00
Giuseppe Scrivano
c1fa43ebb9 virt-manager: ignore VIR_ERR_NO_DOMAIN when a domain was just deleted
Some callbacks could try to access a domain that was just deleted and
not accessible anymore.  Detect these cases and don't propagate the
exception.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-08-16 11:51:15 -04:00
Cole Robinson
7c55cfeb39 virtManager: Drop util, combine it with virtinst.util and uihelpers 2013-08-11 12:39:28 -04:00
Giuseppe Scrivano
2a67ec9ed6 ui: allow to set an empty password for graphics
Now when a password is used a check box must be explicitely selected.
This enable the possibility to set an empty password "".

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

Signed-off-by: Giuseppe Scrivano <gscrivano@gnu.org>

(crobinso: fix minor pylint violation)
2013-08-01 11:42:08 -04:00
Cole Robinson
695c4b7189 VirtualDisk: Make the driver/type auto changes opt-in
It was hard to get this right, so just require that any API users
which are changing the path of an existing disk call sync_path_props()
2013-07-25 15:04:47 -04:00
Cole Robinson
3cf7679beb Guest: Add get_install_xml for install handling 2013-07-24 11:32:30 -04:00
Cole Robinson
2ba3ec2684 Guest: Convert to new style XML prop, drop a bunch of XML infrastructure
Now every XML property is new style, without explicit local get/set
handlers. Drop a bunch of XML infrastructure that was helping with the
transition.
2013-07-24 07:54:04 -04:00
Cole Robinson
012d1cdc52 Installer: Drop all XML handling, just have it setup install info 2013-07-23 17:34:33 -04:00
Cole Robinson
d9e82f984c VirtualDevice: Raise error if parsing addrstr fails 2013-07-23 17:34:32 -04:00
Cole Robinson
e802eae07b VirtualCharDevice: Convert to new style XML props, rework API 2013-07-23 17:34:31 -04:00
Cole Robinson
a9296ec3ae VirtualController: Convert to new style XML props 2013-07-15 21:52:18 -04:00
Cole Robinson
b6f2d99db2 VirtualSmartCard: Convert to new style XML props 2013-07-15 12:36:57 -04:00
Cole Robinson
e5a7fe6405 VirtualVideo: Convert to new style xml props 2013-07-15 11:19:18 -04:00
Cole Robinson
c12327cbd1 Guest: Switch memory units to KB to match default XML 2013-07-13 23:07:01 -04:00
Cole Robinson
4ce1774d53 VirtualDisk: Rework provisioning and validation behavior
We separate all the provisioning bits to diskbackend.py. VirtualDisk
users now need to explicitly opt in to storage creation by using
set_create_storage().

validation is no longer done automatically, users must call the
validation() command.

__init__ drops all extra parameters.

This will eventually get us to a point where we can unify the manual
XML building and XML parsing machinery, and get consistent validation
behavior between devices.
2013-07-13 16:37:33 -04:00
Cole Robinson
318ba7e474 VirtualConnection: Deal with Guest objects, not raw XML
We already do XML parsing, no need to open code it elsewhere
2013-07-10 20:09:51 -04:00
Cole Robinson
5e9e444dec connection: Do non-VM polling on demand
The goal here is to reduce the amount of tick() polling that we do by default.
For things like pools, networks, and interfaces, the constant polling is
not very helpful and causes CPU churn and slowness for remote connections.

Switch to a more on demand style. Pages that want new information for
these objects now request a priority tick that only refreshes the info
we want.

This isn't perfect, but neither was the previous solution in the face of
things like XML updates behind our back. The real solution here is libvirt
event support across the board.
2013-07-07 12:17:54 -04:00
Cole Robinson
149e19da64 connection: Pass nostatsupdate through to VM tick
When kicking off a priority tick, we want to update domain status but not
update stats listing.
2013-07-07 09:42:21 -04:00
Cole Robinson
b044dd94c7 Various cleanup and sync between libvirtobject classes 2013-07-07 09:05:01 -04:00