Commit Graph

1013 Commits

Author SHA1 Message Date
Cole Robinson eee1caa946 domain: Drop most device list wrappers
There's lots of hacks stuffed into the domain device lists. Formalize
some of it, move some of the specific stuff to details.py, and drop
a lot of the needless API wrappers
2018-03-21 16:10:45 -04:00
Cole Robinson 538ea96116 guest: devices: change XML ordering to match libvirt 2018-03-21 11:17:36 -04:00
Cole Robinson 3b88bfb1ee cli: Drop clear_attr property
It slightly complicates the generic machinery, and the one usage we
can handle directly
2018-03-21 11:17:36 -04:00
Cole Robinson 7b61c45d3b guest: Move all_devices to guest.devices.X
The way we enumerate devices doesn't conform with the way all
other XMLBuilder instances expose child objects. Move more towards
that direction.

This requires some virt-xml and cli.py hacks but we will remove those
in future patches
2018-03-21 11:17:36 -04:00
Cole Robinson fe9ed2340c virtinst: move <domain> XML files to virtinst/domain
And give the classes consistent naming
2018-03-21 11:17:36 -04:00
Cole Robinson b6dcee8eb7 Use consistent and minimal license header for every file 2018-03-21 07:29:40 -04:00
Cole Robinson 3909c10441 virtinst: Move all devices to virtinst/devices/ 2018-03-21 07:29:40 -04:00
Cole Robinson 1c911ce567 virtinst: Give device classes consistent DeviceX naming
Previous state was inconsistenty and needlessly wordy. Fix up
a few other class namings that have redundant Virtual in the name
2018-03-21 07:29:40 -04:00
Cole Robinson 1994b4cf2d devicedisk: fix _is_dir_searchable
And add a test case that would have caught this
2018-03-18 11:51:09 -04:00
Cole Robinson 4d4a07c65b tests: uitests: Add window cleanup tests
And fix some bugs I found as a result
2018-03-17 19:42:19 -04:00
Cole Robinson 591dda6d1e uitests: connect: Test double click to open 2018-03-17 18:46:40 -04:00
Cole Robinson edc79a3272 uitests: Add VM 'doubleclick' open testing 2018-03-17 18:46:40 -04:00
Cole Robinson b423d8ffe7 uitests: cli: test --connect with a bad URI 2018-03-17 18:46:40 -04:00
Cole Robinson f5562e77ae tests: uitests: Make an addhw test less flakey 2018-03-15 21:24:48 -04:00
Cole Robinson dabbc8d5bd engine: Remove centralized conn.open handling
Move connection opening logic to each caller, since needs are
slightly different.
2018-03-15 21:24:48 -04:00
Cole Robinson 1d17b98852 engine: Move most remaining window tracking to UI classes
Kind of a big mess but it was difficult to untangle piecemeal.
Basically this drops nearly all the centralized window tracking
in engine.py and moves it to each UI class. If manager.py wants
to open a details window it does it directly, and vmmDetails tracks
the window object list itself. This simplifies things and makes
the code easier to follow.

There's still some weirdness with vmmConnect and connection callbacks,
but future patches will break those apart.
2018-03-15 21:24:48 -04:00
Cole Robinson b25c38816a pylint: Enable 'fixme' checking
Using these for long term TODO type items is not effective, however
it's nice to label things as FIXME during a coding session and have
pylint warn you about them before pushing.
2018-03-15 21:24:48 -04:00
Radostin Stoyanov 1ae5c4ff75 pylint: Resolve logging-not-lazy
A new Python checker was added to warn about using a + operator inside
call of logging methods when one of the operands is a literal string.

https://pylint.readthedocs.io/en/latest/whatsnew/1.8.html

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-03-03 16:04:12 -05:00
Radostin Stoyanov 474f60fc56 pylint: Silence inconsistent-return-statements
A new Python checker was added to warn about "inconsistent return
statements" [1]. A function or a method has inconsistent return
statements if it returns both explicit and implicit values.

[1] https://pylint.readthedocs.io/en/latest/whatsnew/1.8.html

Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
2018-03-03 16:04:08 -05:00
Cole Robinson 435fdf2a6a tests: Add xmlns remove_child test case
And tighten up the xmlbuilder xmlns hackery
2018-02-26 14:56:24 -05:00
Cole Robinson a58f458fb3 tests: storage: destroy/undefine created objects
Otherwise we pollute the test driver which causes collisions on
libvirt.git
2018-02-23 11:57:57 -05:00
Cole Robinson 3079426c82 virtinst: Drop doc= for properties
This data never gets to the user and largely is just duplicating
libvirt docs. It's redundant
2018-02-22 20:49:07 -05:00
Cole Robinson 472a52b170 virtconv: Drop all the chdir hackery
This was just lazy stuff to avoid having to assumble abspaths. Plus
it confuses cprofile
2018-02-22 20:49:07 -05:00
Cole Robinson 8371a681b1 tests: Remove some redundant clitests
- Consolidate tests if they don't add coverage
- Remove some categories that aren't really required
2018-02-22 18:26:50 -05:00
Marc-André Lureau 55fa6c4caa tests: add xmlparse/change vmcoreinfo test
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2018-02-22 16:23:40 -05:00
Marc-André Lureau 0a62ae0b7a virtinst: add <vmcoreinfo/> feature
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2018-02-22 16:23:40 -05:00
Cole Robinson 6954c6774a tests: Fix running testsuite on older libvirt
If we try to run the testsuite on anything older than libvirt 3.1,
it immediately throws an exception before processing any tests,
due to choking on parsing drm bits from testdriver.xml. This global
failure is only due to sloppy coding though.

Turn all test cases that use testdriver.xml into skips in this case,
so we can at least get some test coverage otherwise.
2018-02-22 16:01:24 -05:00
Cole Robinson 62fecb09d3 tests: Create a smaller testsuite.xml
Right now, most test cases will create a libvirt test driver using
tests/testdriver.xml. This is problematic for 2 reasons:

1) testdriver.xml is 3500 lines of XML, and it's parsed hundreds of
   times. Opening it is responsible for about 25% of test suite time
2) Older libvirt chokes on testdriver.xml, meaning the test suite will
   be useless there. This is a recurring problem as new features are
   added to testdriver.xml

Most test cases don't actually need all the test state in testdriver.xml
though. So this creates a smaller testsuite.xml which has a lower
libvirt requirement and is much quicker to parse. New XML bits should
continue to go into testdriver.xml so we can keep testsuite.xml as
the more stripped down option.
2018-02-22 15:44:06 -05:00
Cole Robinson c05cd52772 setup: Use CLIState for setting --debug value 2018-02-22 15:18:47 -05:00
Cole Robinson 8ee2f62efe tests: Simplify clonetest.py 2018-02-22 15:18:41 -05:00
Cole Robinson cb1c020c13 tests: Simplify virtconvtest.py 2018-02-22 15:18:06 -05:00
Cole Robinson 0adae891a6 tests: Use testdefault more 2018-02-22 15:08:09 -05:00
Cole Robinson 4205272384 tests: Add explicit test_dist target
Things like po validation don't need to be done on every test run
2018-02-20 12:33:57 -05:00
Cole Robinson 98d880a179 tests: Differentiate conn cache based on actual open URI
Since what is actually passed to libvirt here is what actually matters,
not all our fakeuri trickery
2018-02-20 12:21:45 -05:00
Cole Robinson 059fb7d0ba xmlbuilder: Order child props before serializing
We were implicitly depending on dict hash ordering here, which
was causing some different XML output in centos CI
2018-02-20 11:41:04 -05:00
Cole Robinson dfa0fa34b4 tests: xmlparse: Add a roundtrip metadata test
To ensure the xml engine doesn't mangle unknown XML
2018-02-20 11:23:37 -05:00
Cole Robinson bc94666778 tests: xmlparse: Add qemu xmlns tests
Since reproducing via manual clitest is hard since it requires
XML on stdin
2018-02-20 11:23:37 -05:00
Cole Robinson f04b284f21 xmlbuilder: Abstract libxml2 API and cleanup
Moves the libxml2 bits to a separate xmlapi file and class, a bunch
of cleanups to xmlbuilder internals dealing with XML stuff.

The main point is to experiment with different XML library impls,
since libxml2 is unfun to deal with and we are having python3
issues like

https://bugzilla.gnome.org/show_bug.cgi?id=776815
2018-02-20 11:23:37 -05:00
Cole Robinson 8917305a6e Don't use count() for substring checking
Use the idiomatic 'X in Y'
2018-02-14 11:08:09 -05:00
Cole Robinson fe728f899d tests: virtconvtest: Accumulate more errors before exiting 2018-02-14 09:57:39 -05:00
Chen Hanxiao a9596c7492 pylint: fix logging-too-few-args issue
From: Chen Hanxiao <chenhanxiao@gmail.com>

pylint complain:
  Not enough arguments for logging format string (logging-too-few-args)

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2018-02-13 16:42:29 +08:00
Cole Robinson 1550e70a4e uitests: Silence noisy harmless warnings
Could mean a code error but more likely is just slightly racy
UI bits disappearing that we weren't looking for anyways, so hide
it behind a debug statement
2018-02-08 14:23:11 -05:00
Cole Robinson 8e7b5ed2d8 Drop __future__ imports, no longer needed 2018-02-08 14:08:23 -05:00
Cole Robinson dae8642bb1 xmlbuilder: centralize adding child new child prop instances
Currently the domain CPU class has a child property like:

  siblings = XMLChildProperty(_CPUCellSibling)

If a user wants to add a new sibling, we add a convenience function:

    def add_sibling(self):
        obj = _CPUCellSibling(self.conn)
        self.add_child(obj)
        return obj

Rather than require every child property to define a similar matching
helper function, this adds infrastructure in xmlbuilder to do this
generically for every child property. Now callers can do

    obj = guest.cpu.siblings.add_new()
2018-02-08 14:03:47 -05:00
Cole Robinson ddba9c1702 Switch to python3 in script shebang
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2018-02-06 18:56:15 -05:00
Cole Robinson 3086c7fda9 Drop python3 compat imports
We are going completely python3
2018-02-06 18:56:15 -05:00
Radostin Stoyanov 81d68e6100 Use StringIO instad of BytesIO in Py 3
The print function in Python will convert printed arguments to text
strings [1] and thus print() cannot be used with binary mode file
objects.

In Python 2 the write() method of BytesIO() takes as input *bytes* object
which refers to *str* in Python 3. [2] The write() method of StringIO()
takes *unicode* object. [3] Therefore, StringIO() object cannot be used with
the print() function.

In Python 3 the write() method of BytesIO() takes a *bytes* object (not
*str*). [4] Therefore, the BytesIO() obj cannot be used with print().
However, the write() method of StringIO() in Python 3 takes a *str* as
input.[5]

Example of the issue:

    from __future__ import print_function
    import io

    a = io.BytesIO()
    b = io.StringIO()

    print("test", file=a)  <- Fails for Python 3
    print("test", file=b)  <- Fails for Python 2

    a.write('%s\n' % "test")  <- Fails for Python 3
    b.write('%s\n' % "test")  <- Fails for Python 2

[1] https://docs.python.org/3.5/library/functions.html#print
[2] https://docs.python.org/2/library/io.html#io.BufferedWriter.write
[3] https://docs.python.org/2/library/io.html#io.TextIOBase.write
[4] https://docs.python.org/3/library/io.html#io.BufferedWriter.write
[5] https://docs.python.org/3/library/io.html#io.TextIOBase.write
2018-02-06 18:49:17 -05:00
Radostin Stoyanov 978fb25ac7 Wrap keys(), values() in a list
In Python 3 dict.values() [1] , dict.keys() [2] and dict.items() [3]
return a view [4] of the dictionary’s values, keys and items.

In Python 2 these functions return a list. [5] [6] [7]

To resolve this we can convert the result of these function to a list.

[1] https://docs.python.org/3/library/stdtypes.html#dict.values
[2] https://docs.python.org/3/library/stdtypes.html#dict.keys
[3] https://docs.python.org/3/library/stdtypes.html#dict.items
[4] https://docs.python.org/3/library/stdtypes.html#dict-views
[5] https://docs.python.org/2/library/stdtypes.html#dict.items
[6] https://docs.python.org/2/library/stdtypes.html#dict.keys
[7] https://docs.python.org/2/library/stdtypes.html#dict.values
2018-02-06 18:49:17 -05:00
Radostin Stoyanov 810ee09292 Replace ConfigParser with configparser
The ConfigParser module has been renamed to configparser in
Python 3. [1] Backport of this changes is also available for
Python 2. [2]

[1] https://docs.python.org/2/library/configparser.html
[2] https://pypi.python.org/pypi/configparser/3.2.0r3
2018-02-06 18:49:17 -05:00
Wim ten Have 708516c39e virtinst: add vcpupin support
Add vcpupin support to virt-install so that it can create guest
domains with statically allocated vcpu pinning towards a given cpuset.

Syntax: to pin vcpu=0 to cpuset="1,3" and vcpu=1 to cpuset=2

  --cputune vcpupin0.vcpu=0,vcpupin0.cpuset=1,3,vcpupin1.vcpu=1,vcpupin1.cpuset=2

generates below XML description for the guest domain.

  <cputune>
    <vcpupin vcpu="0" cpuset="1,3"/>
    <vcpupin vcpu="1" cpuset="2"/>
  </cputune>

Signed-off-by: Wim ten Have <wim.ten.have@oracle.com>
Signed-off-by: Menno Lageman <menno.lageman@oracle.com>
2018-02-06 10:21:56 -05:00
Rauno Väli 582c1d3ded devicedisk: copy all rbd pool host and auth for volume
(crobinso: add test suite coverage, fix some pylint)
2018-01-30 11:30:22 -05:00
Menno Lageman ae5239358a virtinst: Add NUMA distance support
Now that libvirt has support for administration of distances between NUMA cells
it would be nice to be able to set those with virt-install directly instead of
having to 'virsh edit' the domain XML manually after installation.

For example

--cpu cell0.memory=1234,cell0.cpus=0-3,cell1.memory=5678,cell1.cpus=4-7,\
      cell0.distances.sibling0.id=0,cell0.distances.sibling0.value=10,\
      cell0.distances.sibling1.id=1,cell0.distances.sibling1.value=21,\
      cell1.distances.sibling0.id=0,cell1.distances.sibling0.value=21,\
      cell1.distances.sibling1.id=1,cell1.distances.sibling1.value=10

would generate the following XML:

     <cpu>
       <numa>
         <cell cpus="0-3" memory="1234">
           <distances>
             <sibling id="0" value="10"/>
             <sibling id="1" value="21"/>
           </distances>
         </cell>
         <cell cpus="4-7" memory="5678">
           <distances>
             <sibling id="0" value="21"/>
             <sibling id="1" value="10"/>
           </distances>
         </cell>
       </numa>
     </cpu>

Signed-off-by: Menno Lageman <menno.lageman@oracle.com>

(crobinso: rework cli format, drop some validation, drop man changes)
2018-01-30 11:19:54 -05:00
Cole Robinson bcdf7c8922 tests: inject: Fix some pylint 2018-01-27 16:27:41 -05:00
Cole Robinson 5e70cee128 tests: urls: Fix pylint 2018-01-27 16:12:11 -05:00
Cole Robinson e9b4d35dd0 tests: inject: Small updates
Fix output, better debugging, update URL list
2018-01-27 15:28:19 -05:00
Cole Robinson 1f23d60725 tests: urls: Tweak output and logging a bit 2018-01-27 15:28:12 -05:00
Cole Robinson 526d62a0e0 tests: Add 'magicuri' helper
Command line helper for generatin virtinst MagicURI-style URIs, like
we use in the test suite.
2018-01-21 15:08:16 -05:00
Cole Robinson f7c50ebe07 uitests: Add a test for command line errors 2018-01-21 14:42:44 -05:00
Cole Robinson 4a4207189f uitests: Add a live hotplug and media change test 2018-01-21 14:42:44 -05:00
Cole Robinson ab36d429d6 console: Add a basic spice GL + usbredir test 2018-01-21 14:42:44 -05:00
Cole Robinson 808f9975aa uitests: xml: drop hardcoded emulator path 2018-01-21 14:42:44 -05:00
Cole Robinson a10fda6b5c uitests: console: Add live lxc serial test 2018-01-21 14:42:44 -05:00
Cole Robinson d774d01e1c uitests: Add live console tests
Using transient VMs connecting to real qemu:///system. uitests are
already system invasive so I think this is okay
2018-01-21 14:42:44 -05:00
Cole Robinson 2fdf0c7ebe uitests: prefs: Move helper functions to util 2018-01-21 14:42:44 -05:00
Cole Robinson 2bfd2f28c1 uitests: More details config tweaking 2018-01-21 14:42:44 -05:00
Cole Robinson c68cd7bb00 uitests: Add details editing tests 2018-01-21 14:42:44 -05:00
Cole Robinson d3137419d0 uitests: Add manager related tests 2018-01-21 10:02:08 -05:00
Cole Robinson c87bb3937d uitests: Add dbus remote cli test 2018-01-21 10:02:08 -05:00
Cole Robinson 3ccb947ce3 uitests: Add choosecd dialog tests 2018-01-21 10:02:08 -05:00
Cole Robinson a6c3fca7a7 uitests: Basic migration tests 2018-01-21 10:02:08 -05:00
Cole Robinson a9ba930936 uitests: newvm: Add a customize->addhardware test 2018-01-21 10:02:08 -05:00
Cole Robinson f1468cf1c7 uitests: addhardware error dialog tests 2018-01-21 10:02:08 -05:00
Cole Robinson 114cfb3479 uitests: addhardware controller tests 2018-01-21 10:02:08 -05:00
Cole Robinson dc3c0b29f7 uitests: addhardware storage/disk testing 2018-01-21 10:02:08 -05:00
Cole Robinson c620e7405c uitests: addhardware: add network tests 2018-01-21 10:02:08 -05:00
Cole Robinson 72f006ae8b utils: Have find 'name' match labeller text too
Simplifies API callers
2018-01-21 10:02:05 -05:00
Cole Robinson d3b6df8e9a uitests: s/find_pattern/find/g 2018-01-19 11:05:23 -05:00
Cole Robinson 9232a51d55 uitests: Add a bunch of addhardware testing 2018-01-19 11:04:44 -05:00
Cole Robinson be03382e25 uitests: Add snapshot tests 2018-01-18 16:56:07 -05:00
Cole Robinson e7c822bf8f uitests: connect: Fix failure case to always fail 2018-01-15 09:57:33 -05:00
Cole Robinson d8d71bddfb ui: Add createnet/pool/vol/interface tests 2018-01-11 21:02:34 -05:00
Cole Robinson 570ee90c4d uitests: Centralize object list smoketest handling 2018-01-11 10:27:48 -05:00
Cole Robinson a4e1b64f1a uitests: Move helper functions into the Node wrapper class 2018-01-11 08:24:58 -05:00
Cole Robinson 9c4c9aeb8f uitests: Wait for windows to become 'active'
If we wait for windows to become active in the window manager before
we try to do any clickyclicky, this solves a lot of the race
conditions I was trying to work around widget by widget
2018-01-10 18:41:55 -05:00
Cole Robinson 8d7440fbde uitests: Add 'open connection' testing 2018-01-10 13:52:53 -05:00
Cole Robinson dc344fc8ee error: Add accessible strings for error dialogs
Makes UI testing easier
2018-01-09 17:58:55 -05:00
Cole Robinson 09dd1596e2 uitests: Add preferences dialog tests 2018-01-09 17:41:20 -05:00
Cole Robinson c073fc2a7e ui: about: Bump copyright year 2018-01-09 17:41:20 -05:00
Cole Robinson 7a12899b44 uitests: Add test for 'about' dialog 2018-01-09 17:41:20 -05:00
Cole Robinson 4b4f532417 uitests: Wire up --coverage
Need to launch the external coverage process to actually measure
things
2018-01-09 13:51:53 -05:00
Cole Robinson b4a2c46f6a virt-manager: If --connect passed, wait for it to init
...before showing the UI. This helps the UI test suite be less
racy at least.
2018-01-09 13:51:53 -05:00
Cole Robinson 0c615497b1 uitests: Drop sleeps from newvm tests
Adds a few new uiutils options to facilitate watching for the expected
result, rather than depending on hardcoded sleeps
2018-01-09 13:51:53 -05:00
Cole Robinson 4fbffc4086 uitests: Drop redundant sleeps
All these cases have sleep+backoff built into the dogtail logic,
so we don't need to manually sleep
2018-01-09 12:04:49 -05:00
Cole Robinson 8030e0a35c uitests: Centralize app shutdown
Try a graceful shutdown, wait for app to respond, before trying SIGKILL.
2018-01-09 12:04:43 -05:00
Cole Robinson acfd59f22b uitests: Split out UITestCase class 2018-01-09 10:06:26 -05:00
Cole Robinson 044d93d471 tests: Rework how we pass command line objects down to test data 2018-01-08 17:05:55 -05:00
Cole Robinson 89945118df uitests: Make unittest.installHandler work as expected
And ctrl-c exiting in general.
2018-01-08 09:21:42 -05:00
Cole Robinson 0198db6d3f tests: cli: Skip iso test if isoinfo isn't installed 2018-01-06 15:08:23 -05:00
Cole Robinson c9ca8ab7ce tests: test_urls: Simplify adding in local tests
I'll use this to scoop up local ISOs for comprehensive testing
locally.
2018-01-06 14:04:34 -05:00
Cole Robinson c7ed34de63 tests: test_urls: Big rework
Move all the test cases to an .ini file. Various cleanups and
minor improvements throughout
2018-01-06 14:04:34 -05:00
Cole Robinson 23c9dd3ee7 tests: clitest: Add an actual stub iso for --location testing
And add an explicit nfs URL test
2018-01-06 14:01:44 -05:00
Scott Garfinkle 249ff1ed36 virtio-scsi by default on power
Power architecture guests should default to virtio-scsi rather than spapr-scsi

Signed-off-by: Scott Garfinkle <scottgar@linux.vnet.ibm.com>
2017-12-20 13:30:45 -05:00
Cole Robinson 4224b0926e tests: Remove storage UUID hackery
In several cases we were trying to define two different pools with
the same UUID. Libvirt used to accept that but as of a recent
commit it started rejecting it for the test driver.

The UUID stuff isn't adding anything so drop it from all the test
cases and data.
2017-12-14 12:45:01 -05:00
Cole Robinson 5ac933e98a guest: Set default rendernode= if spice gl requested
Since this is required to work out of the box with qemu:///system
2017-11-25 17:29:02 -05:00
Cole Robinson 9b58ea4e51 tests: test_urls: Update URL list 2017-11-22 17:32:20 -05:00
Lin Ma bbd6a8fd98 testdriver: add missing addrStr for scsi disk
Signed-off-by: Lin Ma <lma@suse.com>
2017-11-21 17:39:00 -05:00
Cole Robinson 6fb5baf8a8 tests: xmlparse: explain AddRemoveDevice cases 2017-10-26 12:02:03 +02:00
Lin Ma 9e0e0dfb08 testdriver: Add vhostuser example
Signed-off-by: Lin Ma <lma@suse.com>
2017-10-26 11:52:26 +02:00
Chen Hanxiao 4897615a1e pylint: Replace deprecated assertEquals with assertEqual
pylint complain:
  Using deprecated method assertEquals() (deprecated-method)

https://docs.python.org/3.3/library/unittest.html#deprecated-aliases
Method Name     Deprecated alias        Deprecated alias
assertEqual()   failUnlessEqual         assertEquals

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2017-10-22 19:24:29 +08:00
Cole Robinson 10246e0caa tests: uitests: wire up --debug option 2017-10-21 19:41:33 -04:00
Cole Robinson be7db97ecf uitests: launch UI with same python executable
As the tests were launched with
2017-10-21 19:41:33 -04:00
Chen Hanxiao 7f1b4cee82 pycodestyle: fix all E125 warnings
Fix all E125:
     Continuation line with same indent as next logical line

   Also remove ignore options of E125

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2017-10-21 23:26:16 +08:00
Cole Robinson d2648d81cc virtconv: Don't implicitly depend on dict hash order 2017-10-20 16:13:04 -04:00
Cole Robinson b8fa0c6b67 xmlnsqemu: Order XML output like libvirt does
args before env
2017-10-20 16:13:04 -04:00
Cole Robinson e4aed23427 tests: Convert file()->open() usage
One snuck in recently
2017-10-20 16:13:04 -04:00
Radostin Stoyanov 44de92b772 Use reload() from imp module
In Python 3 the reload() function [1] has been moved in the imp
module. [2]

[1] https://docs.python.org/2/library/functions.html#reload
[2] https://docs.python.org/3/library/importlib.html#importlib.reload
2017-10-20 13:18:31 -04:00
Radostin Stoyanov a2bcd6c43a Do not compare between None and int
In Python 2 comparison between int and None is allowed but in
Pyhton 3 it is not.

Example:

Pyhton 2

    >>> None > 0
    False

Python 3

    >>> None > 0
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: '>' not supported between instances of 'NoneType' and 'int'
2017-10-20 13:18:31 -04:00
Radostin Stoyanov 75210ed37c Replace StringIO with io.(StringIO or BytesIO)
StringIO and cStringIO modules no longer exists in Python 3. [1]
Use either io.StringIO [2] for text or io.BytesIO [3] for bytes.

[1] http://docs.python.org/3.0/whatsnew/3.0.html
[2] https://docs.python.org/3/library/io.html#text-i-o
[3] https://docs.python.org/3/library/io.html#binary-i-o
2017-10-20 13:18:31 -04:00
Radostin Stoyanov 08a58d6145 pycodestyle: Remove description of fixed errors 2017-10-20 11:49:14 -04:00
Radostin Stoyanov 63fce081ed pycodestyle: Use isinstance() for type checking
This is E721 in pycodestyle [1]:
   "do not compare types, use ‘isinstance()’"

The main differece between "type() is" and "isinstance()" is that
isinstance() supports inheritance. [1]

This can be seen in the example below:
    >>> type(True) is int
    False
    >>> isinstance(True, int)
    True

As we can see in python 'bool' a subclass of 'int'.

[1] https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes
[2] https://docs.python.org/2/library/functions.html#isinstance
2017-10-20 11:49:13 -04:00
Cole Robinson f0987ed9b8 tests: Add more hostkeymap tests 2017-10-18 18:42:50 -04:00
Jim Fehlig 9a9f9ecd2c virtinst: ignore comments in keymap conf files
On a host system with keyboard configured to en-US, it was noticed
that virt-install created install XML with keymap='de'. The host
system did not have /etc/vconsole.conf, so /etc/sysconfig/keyboard
was the next file to check, which contained the following

KEYTABLE=""

Currently the parsing code does not ignore comments and incorrectly
parsed a 'de' keymap. Fix by ignoring any lines that start with '#'
after trimming whitespace.
2017-10-18 17:46:41 -04:00
Cole Robinson 09a53eb2a3 tests: Add basic hostkeymap test
To validate an upcoming bugfix
2017-10-18 17:44:29 -04:00
Lin Ma 6dfc4de125 network: add support for parsing/formatting SR-IOV VFs
Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-10-09 10:22:48 +02:00
Cole Robinson 2d27142c9c tests: urls: check for latest ubuntu LTS 2017-09-19 19:55:57 -04:00
Pavel Hrdina 8e0303059e cloner: get original XML with security informations
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1455491

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-18 09:04:35 +02:00
Cole Robinson 6b8f0b6e1a tests: uitests: Add a delay for nvram rename test
Seems to fail a bit otherwise
2017-09-15 19:42:40 -04:00
Cole Robinson cc1a0f8b0a tests: Add multi <panic> example 2017-09-15 19:33:22 -04:00
Lin Ma 40f70d4fe5 virt-install: add param cache.mode and cache.level for option '--cpu'
libvirt supports guest CPU cache by commit df13c0b, So add this feature
to virt-install to configure cpu L3 cache mode.

Currently, The valid values are 'passthrough', 'emulate' or 'disable'.
say:
  --cpu host-passthrough,cache.mode=passthrough
or
  --cpu $CPU,cache.mode=emulate,cache.level=3
or
  --cpu $CPU,cache.mode=disable

Signed-off-by: Lin Ma <lma@suse.com>
2017-09-14 18:54:01 -04:00
Pavel Hrdina af91d51fc8 cli: introduce snapshot_policy parameter for disk device
This allows to configure snapshot behavior for each disk.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1430642

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-12 08:58:31 +02:00
Chen Hanxiao 04e35b2d85 pycodestyle: fix all E124 warnings
Fix all E124:
     Closing bracket does not match visual indentation

   Also remove ignore options of E124

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2017-09-09 23:21:42 +08:00
Pavel Hrdina 4b108a8c75 tests: fix pylint
Commit g785352ea removed unused variable and felt unused import.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:55:47 +02:00
Pavel Hrdina d718f1a516 graphics: introduce listens.socket parameter
Add support to configure socket path for socket listen type.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:11:42 +02:00
Pavel Hrdina fe6c5067c0 graphics: introduce listens.{type|address|network} parameters
Using "listens.*" allows better configuration of listen elements for
graphics devices.  Currently the only way how to configure a listen
type is to abuse "listen" parameter and there is no way how to configure
exact "network".

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:11:42 +02:00
Pavel Hrdina ccaef8c16a graphics: set default port only for correct listen types
The default port and tlsPort should be configured only if no listen
type was specified or the listen type is "address" or "network".
For other listen types the port and tlsPort doesn't make sense.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:11:42 +02:00
Pavel Hrdina 9f191da5c5 devicepanic: add all models supported by libvirt
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:09:46 +02:00
Pavel Hrdina 48604bfb37 devicepanic: don't set default iobase
This is not required and it's correctly handled by libvirt and QEMU.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:09:46 +02:00
Pavel Hrdina 36230c9a18 devicepanic: use model instead of address.type
There are multiple models of the panic device, the address type is only
one and is valid only for "isa" model.

To not break the virt-install/virt-xml the command line parser needs to
be updated.  Before this patch there was only one parameter that
configured the "iobase".  Now the first parameter configures a model
but to keep it backward compatible it follows these rules:

1. there is only one parameter and it matches known model:

  --panic isa

  <panic model='isa'>
    <address iobase='0x505' type='isa'/>
  </panic>

2. there is only one parameter and it doesn't match any model:

  --panic 0x505

  <panic model='isa'>
    <address iobase='0x505' type='isa'/>
  </panic>

3. there are two parameters:

  --panic isa,iobase=0x505

  <panic model='isa'>
    <address iobase='0x505' type='isa'/>
  </panic>

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
2017-09-09 10:09:46 +02:00
Cole Robinson 170a169fcc test_urls: Remove dead link 2017-09-08 16:58:45 -04:00
Cole Robinson 785352ea60 tests: Fix pylint 2017-09-08 16:55:49 -04:00
Cole Robinson f0e36d52e7 tests: bypass cache hacking for test:///default
To allow us to test the standard code in some cases. Would have caught
the previous issue
2017-08-30 10:36:37 -04:00
Cole Robinson 427592bc7b tests: test_urls: Add debian s390x example 2017-08-29 11:57:45 -04:00
Cole Robinson 9cffcef66e tests: test_urls: Update
And only have one ftp test, since ftp is sloooow
2017-08-29 11:57:14 -04:00
Cole Robinson d71ef83942 tests: test_urls: Rework to better handle multiple archs 2017-08-29 11:57:14 -04:00
Chen Hanxiao b44aa0e3bb pycodestyle: fix all E131 warnings
Fix all E131:
     Continuation line unaligned for hanging indent

   Also remove ignore options of E131

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2017-08-26 20:03:21 +08:00
Chen Hanxiao c92aade081 pycodestyle: fix all E203 warnings
Fix all E203 whitespace before ':'
   Also remove E203 ignore option of pycodestyle

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
2017-08-11 00:01:38 +08:00
Radostin Stoyanov b93cc3bbc9 pycodestyle: Do not use bare 'except:'
A bare 'except:' catches all exceptions [1], including SystemExit,
KeyboardInterrupt, and GeneratorExit (which is not an error and should
not normally be caught by user code). In situations where you need to
catch all “normal” errors, you can catch the base class for all normal
exceptions, Exception [2].

[1] https://docs.python.org/2/howto/doanddont.html#except
[2] https://docs.python.org/2/library/exceptions.html#Exception
2017-08-02 13:57:43 -04:00
Radostin Stoyanov 2fd6d9aa32 tests: Upgrade pep8 to pycodestyle
The PEP8 [1] project has been renamed to pycodestyle [2].

[1] https://github.com/codeclimate/pep8
[2] https://github.com/pycqa/pycodestyle
2017-08-02 13:23:20 -04:00
Cole Robinson 6f8206dc55 uitests: newvm: Fix after CPU UI tweaks 2017-07-20 17:54:11 -04:00
Cole Robinson 1a09a05dc7 tests: Add a clone test for importing nvram directory
Need to use some callback magic to fake it like there's a file in
an existing directory
2017-07-20 17:51:06 -04:00