Commit Graph

80 Commits

Author SHA1 Message Date
Cole Robinson be2d9ddcb4 Add base conn object and bump minimum libvirt version to 0.6.0
This base connection object will be used to simplify the API in various
places, reduce libvirt API calls, and better share code between virtinst
and virt-manager. For now it just centralizes connection opening.

This also exposed various places where our handling for older libvirt
was busted, so raise our minimum host version to 0.6.0, the first
version that supports threaded client requests.
2013-07-05 16:42:19 -04:00
Cole Robinson ea2a1331cf virtinst: Guest: Simplify passing in a connection 2013-07-03 13:37:00 -04:00
Cole Robinson e973f34c41 virtinst: Remove User module
I'm sure the solaris support is totally broken, so just drop this
overcomplicated abstraction.

Also fix a bug where we were using usermode networking in a bunch of
places where it isn't supported.
2013-07-02 21:17:07 -04:00
Cole Robinson 802ed1cba6 clone: Bunch of API cleanup
Simplify imports, drop back compat stuff, drop needless property handling.
2013-07-02 18:54:03 -04:00
Cole Robinson 771707fb9c Minor TPM UI fixups 2013-06-26 20:20:12 -04:00
Stefan Berger 2766dd5c6a Add GUI elements for TPM passthrough details
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2013-06-26 19:45:16 -04:00
Stefan Berger 93718868c7 Add CLI support and CLI test cases
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2013-06-26 19:43:58 -04:00
Stefan Berger c829b55581 Add VirtualTPMDevice class to virtinst
Add VirtualTPMDevice class and TPM test cases to xmlparse.py

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2013-06-26 19:43:53 -04:00
Martin Kletzander 137134650f Allow partial address formatting
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2013-06-19 18:18:32 -04:00
Cole Robinson 0283750b9d Fix USB test failures with latest libvirt 2013-06-14 14:58:52 -04:00
Cole Robinson f625cf66d4 testdriver: Add guest using a duplicate host USB device 2013-05-11 11:44:25 -04:00
Guannan Ren 32f0781531 addhardware: differentiate duplicate usb devices by bus/addr
When there are multiple usb devices with same vendor/product
in the host device list, the bus/addr is going to be used when
attaching one of usb devices.

Currently is_dup flag is only useful to VirtualHostDeviceUSB.

I put get_nodedevs_number() in connection.py, so the startup
hooks can use it.
2013-05-09 13:48:18 -04:00
Guannan Ren 0802cb1add virtinst: throw error when --host-device can't specify unique device
When there are mutiple USB devices with identical vendorId and
productId, with --host-device <vendorId:productId>, virt-install
fails to specify one.
Currently the virt-install add the first node device with
these vendorId and productId.
This fix will throw out an error when argument to --host-device
can't specify unique node device.

For example:
virt-install ${other args} \
             --host-device <vendorId:productId>
ERROR    15e1:2007 corresponds to multiple node devices
2013-04-25 13:40:23 -04:00
Cole Robinson 6f4167a66f clone: Fix --preserve-data --file /existing/storage/vol
We were validating storage creation in a bunch of cases where we
shouldn't, since it was all skipped anyways.
2013-04-24 10:50:20 -04:00
Cole Robinson 8d1ad359ee Don't leave *c files around after tests 2013-04-23 17:19:27 -04:00
Cole Robinson b2041f7399 clitest: Remove massive dict, turn test cases into objects
This will make it easier in the future to annotate test cases with
libvirt version information, so the test suite can work across
libvirt versions.
2013-04-23 17:18:34 -04:00
Cole Robinson 6f7fca5f2a tests: Greatly expand testdriver.xml
Mostly comes from my own testdriver I used for manual virt-manager testing.
Add some notes to HACKING about using it.
2013-04-21 13:34:51 -04:00
Cole Robinson 191fff8c0c tests: Make sure virtinst doesn't pull in Gtk
Add an explicit test to warn if it inadvertently happens
2013-04-18 16:41:02 -04:00
Cole Robinson 07e0c92b4b Remove a bunch of outdates FIXME/XXX comments 2013-04-17 09:32:00 -04:00
Cole Robinson 0f57dae8b2 virtinst: Remove not-very-useful post_install_check
It doesn't work in a variety of cases and it's not very useful
to begin with.
2013-04-15 12:37:36 -04:00
Hu Tao ee7168e6f9 Add and fix test cases for cpu mode attribute
This patch adds and fixes test cases for cpu mode attribute.

Signed-off-by: Ken ICHIKAWA <ichikawa.ken@jp.fujitsu.com>
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>

(crobinso: Minor rebase tweaks)
2013-04-14 13:55:26 -04:00
Cole Robinson 1771f6a300 tests: Replace 'scriptimports' with a much simpler method 2013-04-13 15:38:53 -04:00
Cole Robinson 0d243983d0 Revive pep8 and clean up the code
autopep8 is pretty cool :)
2013-04-13 15:22:43 -04:00
Cole Robinson fcc680cae1 Use an RC file for pylint
Will let use tweak things easier in the future
2013-04-13 15:22:29 -04:00
Cole Robinson 3f79fa3919 Fix the last of the pylint messages
If using an older pylint, there are still some complaints about hashlib
and Popen, but those aren't our problems.
2013-04-13 13:45:08 -04:00
Cole Robinson baf531f710 virtinst: Guest: Remove back compat static device lists 2013-04-13 13:40:45 -04:00
Cole Robinson 248a1a509f virtinst: Guest: remove legacy 'boot' handling 2013-04-13 13:40:45 -04:00
Cole Robinson 7a47465ab6 virtinst: Guest: remove back compat graphics handling 2013-04-13 13:40:45 -04:00
Cole Robinson 9359ad2bb6 virtinst: Remove ParaVirt and FullVirtGuest
They were just around for back compat at this point, the tools
have moved on.
2013-04-13 13:40:45 -04:00
Cole Robinson ae471007fc Tons of misc pylint fixes 2013-04-13 13:40:29 -04:00
Cole Robinson a386186c74 Remove most map() and filter() usage
They aren't available on python3 so pylint complains, and list
comprehensions are usually better.
2013-04-12 08:27:44 -04:00
Cole Robinson c5e45ae448 Remove all relative imports
We also drop VirtualDevice from the 'public' virtinst API, since there
are better ways to get its info.
2013-04-12 08:27:44 -04:00
Cole Robinson aead0135b0 setup.py: Re-add 'pylint' subcommand
We drop our hacky shell wrappers, and just track it all in setup.py
2013-04-12 08:27:09 -04:00
Cole Robinson 69d3f21da6 virtinst: nic: Don't check MAC collision with host
It was:

- Slow
- Not that useful
- Only worked in the local case

If anyone cares, the proper thing to do is implement it with the iface APIs.
2013-04-11 12:15:37 -04:00
Cole Robinson 459cb3de5e util: Remove old default_bridge, rename default_bridge2 2013-04-11 12:15:37 -04:00
Cole Robinson b3779eec7d Remove old 'Xen' class name back compat 2013-04-11 12:15:37 -04:00
Cole Robinson 3bce20d974 virtinst: Combine util.py and _util.py
Was originally split to not pollute the public API, but we aren't public
anymore
2013-04-11 12:15:37 -04:00
Martin Kletzander 1876ce0af8 Fix cpuset tests
In order to fix last tests that fail for me, I had to modify the
output xml, both modified machines will fit in the first numa node, so
the cpus from that node should be mentioned in the xml and that lead
me to the fact that the problem was in the test xml and not the code.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2013-04-10 10:02:13 -04:00
Martin Kletzander a2d36f8c52 Fix hostdev tests
For <hostdev> element, mode="capabilities" is used only for
block/character device passthrough and thus it fails with pci
passthrough.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2013-04-10 10:02:13 -04:00
Martin Kletzander 212b77cc1f Fix logical volume tests
After commit 590c8dbebf, the tests got
broken due to the fact that the commit broke something that was
working.  I'm changing the error to warning and fixing the tests.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2013-04-10 10:02:13 -04:00
Gene Czarcinski 73629b76b2 IPv6 support v2: update gui python and ui
The purpose of this update is:

1. replace use of IPy with ipaddr since ipaddr has needed
functionality and IPy does not.
2. Update the glade-3 ui (vmm-host.ui) to provide
for IPv6 as well as IPv4.  If either IPv4 or IPv6
is not defined, its respective frame is hidden.
3. The DNS Domain Name is added to the basic frame.
4. IPv4 forwarding is moved to the basic frame and ipv6
forwarding is added.
5. If an IPv4 address is not defined then the IPv4
is set to Isolated network, internal rout only.
6. IPv6 network has three values for Forwarding:
Isolated network, Isolated network with internal forwarding,
and Routed network.
7. Add network definitions to tests/testdriver.xml which
include IPv6 and other new parameters now being handled.

This patch includes the fix for getting a KeyError exception
when deleting a network definition.

In this update, createnet.py has been changed to use
ipaddr but it still only handles IPv4 network creation.
.
Signed-off-by: Gene Czarcinski <gene@czarc.net>

(crobinso: Add Gene to AUTHORS)
2013-04-03 21:32:42 -04:00
Cole Robinson ae0e151c8a tests: Add rbd pool example to testdriver 2013-04-03 19:40:39 -04:00
Cole Robinson d6c8ad0297 Wire up python unit tests, unify gettext setup 2013-04-03 18:22:05 -04:00
Cole Robinson 88603e4fad Merge code from python-virtinst.git
As outlined here:

https://www.redhat.com/archives/virt-tools-list/2012-February/msg00040.html

For now this is just a direct import of the code from virtinst commit
dca5a4d6245f21d554f8853197a6a234bfc8e52c. History is not merged, so
please refer to original git for detailed commit histor:

http://git.fedorahosted.org/cgit/python-virtinst.git/
2013-04-03 18:22:05 -04:00
Cole Robinson 9d05583c26 Remove autotools, replace with distutils-extra
Despite being a known quantity, autotools is so overkill for our needs,
so let's drop it and replace it with a much simpler and easy to customize
system.
2013-04-03 18:20:51 -04:00
Cole Robinson abbdd1743a Fix some pylint 2013-04-03 18:13:27 -04:00
Cole Robinson e741d9cab6 Clean up all pylint + pep8 violations 2013-04-03 18:13:25 -04:00
Cole Robinson d057cce292 Remove local copy of IPy 2013-04-03 18:13:25 -04:00
Daniel P. Berrange 3c3237b951 Convert to use GTK3 and GObject Introspection bindings
Switch over to use GObject introspection bindings for all python
modules related to GObject/GTK3/etc. It is not possible to mix
and match old pyggtk/pygobject manual bindings with new introspection
based bindings so it must be all changed in one go.

Imports like

    import gtk

Change to

    from gi.repository import Gtk

The vmmGObject class is changed to always inherit from GObject.GObject
There is no compelling reason to avoid a GObject dep for the
virt-manager TUI & it horribly messed up the code.

Signal declarations are changed from

  vmmChooseCD.signal_new(vmmChooseCD, "cdrom-chosen", [object, str])

To

     __gsignals__ = {
        "cdrom-chosen": (GObject.SignalFlags.RUN_FIRST, None, [object, str])
    }

which is required by new GObject bindings

Most of the rest of the change is simply dealing with renamed
constants / classes.

Alot of legacy compat code was removed - ie helpers which
check to see if certain GTK2 methods are available are no
longer required since we're mandating GTK3 only.

The event loop is replaced with LibvirtGLib's event loop.

Still todo

 - Rip out all DBus stuff & make vmmEngine class inherit GtkApplication
   which provides unique support & DBus method handling
 - Switch to use LibvirtGConfig & LibvirtGObject for libvirt interaction
 - Possibly switch to Python 3 too ?
 - Figure out why GNOME keyring is missing Introspection support

My suggestion is that the standalone GIT repo for virt-install
only live on as a support branch for legacy platforms.

A stable-0.9 branch of virt-manager can be kept for legacy PyGtk2
based virt-manager releases.

The virt-manager master branch should exclusively use GObject
inspection and ideally Python3 and contain both the virt-manager
and virt-install codebases in one since they are intimately
related to each other & using separate GIT repos has needlessly
complicated life for everyone.

crobinso:
    Some locking fixes
    Misc cleanups and dropping now-useless code
    Fix dbus usage
    Fix graph cell renderer regression
    Fix a couple tooltip issues
2013-04-03 18:13:24 -04:00
Cole Robinson 12dcebcc0a Disable a bunch of pep8 tests I won't fix before gtk3 port 2013-02-06 15:41:43 -05:00