Cole Robinson
598be36862
xmlbuilder: drop is_build monkey patching
...
It's not needed
2018-02-07 15:38:30 -05:00
Radostin Stoyanov
5146d66126
python3 compat: python3 strings have no decode()
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
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
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
Cole Robinson
a9e3e50046
xmlbuilder: Improve __repr__ a bit
...
To show child class name as well
2017-03-08 13:59:11 -05:00
Cole Robinson
22b6becd5d
guest: Add support for qemu cli passthrough
...
This is for xml like:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0 '>
...
</devices>
<qemu:commandline>
<qemu:arg value='-newarg'/>
<qemu:env name='QEMU_ENV' value='VAL'/>
</qemu:commandline>
</domain>
Requires some extensions to the xmlbuilder infrastructure
2017-03-06 22:15:46 -05:00
Cole Robinson
8424d7fa7c
xmlbuilder: Pass around top level xpath context
...
Rather than instantiate it for every object. Gives about a 10% speed up
to to the test suite.
Clean up how we pass around this info a bit
2017-03-06 22:15:46 -05:00
Marc-André Lureau
1f0d1d3f7d
xmlbuilder: add a __repr__ for XMLBuilder object
...
To help with debugging.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2017-02-23 19:42:00 -05:00
Cole Robinson
eb2a56f700
util: Move xml_indent to XMLBuilder
2016-08-24 15:56:13 -04:00
Cole Robinson
b08647c2f2
xmlbuilder: Handle setting conditional xpaths correctly
...
So if xml=<foo> and xpath=./bar[@baz='foo'] and val=XXX, xmlbuilder
previously would generate XML
<foo>
<bar>XXX</bar>
</foo>
But now generates the expected
<foo>
<bar baz='foo'/>XXX</bar>
</foo>
No users yet, but they are incoming
2016-07-18 14:46:50 -04:00
Cole Robinson
835ddc5f77
xmlbuilder: More comments for _build_xpath_node
2016-07-18 14:46:50 -04:00
Cole Robinson
a931a1a6ad
xmlbuilder: Opencode single addnode= usage
2016-07-18 14:46:50 -04:00
Cole Robinson
559e813b96
xmlbuilder: Clarify the node 'pretty' helper function
2016-07-18 14:46:50 -04:00
Cole Robinson
d8a0a78805
xmlbuilder: Update XMLProperty docs
2016-07-18 14:46:50 -04:00
Cole Robinson
55327c81b7
xmlbuilder: Support clear()ing an object in place
...
This gives friendly XML output via virt-xml for clearxml=yes +
extra options: the XML block is editted in place, rather than removed
and with the newchanges appended
2016-05-20 14:51:31 -04:00
Cole Robinson
333103adbf
xmlbuilder: minor cleanup
2016-05-20 14:51:31 -04:00
Cole Robinson
f4dfb6de9d
Fix recent pylint/pep8 output
2016-04-18 16:42:12 -04:00
Cole Robinson
d449fb6fd5
xmlbuilder: Kill make_xpath_cb
...
There's no users left, and it's better to come up with a solution at
the caller anyways
2015-09-05 17:20:43 -04:00
Cole Robinson
7786c4b35b
xmlbuilder: Make clear() work for child objects
...
So we can call clear() on a Guest owned VirtualDisk, and it actually
does the correct thing. This allows us to enable clearxml= cli option
for most devices.
2015-09-05 13:16:35 -04:00
Cole Robinson
4d87d2f27b
cli: Make child lookup not specific to guest devices
...
<seclabel> is not singleton nowadays, so we need to extend our
infrastructure to handle non-device child properties. This is part of
that
2015-09-04 16:16:25 -04:00
Cole Robinson
acfb988945
xmlbuilder: Make _add_child and _remove_child public
...
We have a lot of functions that are just wrappers around these, so
make it public for future use.
2015-09-04 15:47:43 -04:00
Cole Robinson
070664b9e7
tests: Enable property checking for all objects
...
And loosen restrictions a bit so any read/write will trigger the
tracking.
2015-04-22 16:26:03 -04:00
Cole Robinson
e125aa69d8
nodedev: Handle busted 'system' XML
...
Libvirt can generated invalid XML for the system nodedev device:
https://bugzilla.redhat.com/show_bug.cgi?id=1184131
This hits at least two people, so catch this specific case, but the
real fix is libvirt not outputing busted XML.
2015-03-26 18:04:23 -04:00
Cole Robinson
0e67ffba2e
xmlbuilder: Remove now unused clear_attrs infrastructure
2014-12-04 15:29:12 -05:00
Cole Robinson
86417d42ca
osxml: Ensure kernel/initrd/dtb are absolute paths
2014-09-23 14:32:01 -04:00
Cole Robinson
052220cfc8
virtinst: Add DomainCapabilities parser
2014-09-17 18:29:24 -04:00
Cole Robinson
eb7612356e
virtinst: Switch to relative imports, fix cyclic import warnings
2014-09-12 16:28:38 -04:00
Chen Hanxiao
75d43f6a37
fix some missed binary prefixes for units
...
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
2014-06-17 09:33:14 +08:00
Cole Robinson
a398d245cb
Clean up pylint integration
...
- Drop no longer needed disable= bits
- Use string names for all skipped pylint messages
2014-04-02 19:00:24 -04:00
Cole Robinson
0b94c83beb
xmlbuilder: Actually import logging
2014-02-25 14:56:54 -05:00
Cole Robinson
87c2ff1a14
xmlbuilder: Log broken XML if we can't parse it
...
Related to https://bugzilla.redhat.com/show_bug.cgi?id=1066564
2014-02-25 12:45:15 -05:00
Cole Robinson
d76aab264e
tests: Only use one env variable to notify we are running tests
2014-02-10 14:47:20 -05:00
Cole Robinson
dde460e399
xmlbuilder: Fix adding devices with child properties
...
And test it
2014-01-27 19:55:37 -05:00
Cole Robinson
9f5a842a3a
xmlbuilder: Make clear() remove unknown XML properties
2014-01-25 17:20:30 -05:00
Cole Robinson
16c8c31cbd
xmlbuilder: Remove unneeded argument to _remove_xpath_node
2014-01-25 17:20:30 -05:00
Cole Robinson
5edf4de058
xmlbuilder: Only pass xml context to _remove_xpath_node
...
Was confusing otherwise, and can give us a speedup.
2014-01-25 17:20:29 -05:00
Cole Robinson
5c762a9851
simplify remove_ node args
2014-01-25 17:20:29 -05:00
Cole Robinson
329ebe0746
xmlbuilder: Remove some unneeded redirection
2014-01-25 17:20:29 -05:00
Giuseppe Scrivano
2a040ccd17
mass update: remove double spaces from comments
...
Updated by this script:
find -name '*.py' -exec sed -i "s|^\(#.*[^.?\!]\) \(.*[^#]\)$|\1 \2|g" \{\} \;
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2013-10-28 17:22:31 +01:00
Cole Robinson
3f532fe263
VirtualDisk: Handle the blktap default
...
And cache the blktap lookup once for the localhost
2013-10-06 13:17:35 -04:00
Cole Robinson
9ec845af03
xmlbuilder: Unify make_xpath callbacks
2013-09-24 09:25:05 -04:00
Cole Robinson
b690557a53
Convert NodeDevice to XMLBuilder
2013-09-23 08:25:20 -04:00
Cole Robinson
1c0475feff
xmlbuilder: Make prop cache work with subclasses
2013-09-23 07:38:22 -04:00
Cole Robinson
cadf5ba770
xmlbuilder: Cache class property maps
...
Shaves about 20 seconds off the test suite
2013-09-20 11:30:33 -04:00
Cole Robinson
85e81df01a
xmlbuilder: Serialize child objects even if they aren't in PROP_ORDER
...
This was just a bug
2013-09-20 11:17:11 -04:00
Cole Robinson
a23f1794d0
guest stuff
2013-09-20 10:55:48 -04:00
Cole Robinson
aff0ddb259
Use XMLBuilder for Storage object handling
...
Simplify the API a bunch while we are at it, add tests, etc.
2013-09-20 10:00:08 -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
Cole Robinson
cb06f7eb3d
xmlbuilder: Ensure top level XML objects always end with a newline
2013-09-19 13:48:28 -04:00
Cole Robinson
1aaf41b201
xmlbuilder: A couple optimizations
...
This brings the test suite back to pre-refactor speeds
2013-09-19 13:31:33 -04:00
Cole Robinson
0be727e6bb
xmlbuilder: Track singleton child properties explicitly
...
Things like Guest.Seclabel, VirtualDevice.VirtualAlias, etc.
Now we don't need to track a full xpath with each class, just its root
name and we build its hierarchy depending on its parent.
2013-09-19 13:31:33 -04:00
Cole Robinson
f5dab5cdfa
xmlbuilder: Distinguish between parent xpath and object xpath
...
We want to add support for nested objects, like child interfaces
in virInterface definition. To do that we need to distinguish between
parent xpath and relative object path.
This causes a 10-15% slow down in the unit test suite for me. There's
probably opportunities for speeding this up.
2013-09-11 11:28:27 -04:00
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
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
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
57aab5de17
Add support for multifunction address parameter
2013-09-03 08:08:06 +02:00
Cole Robinson
accff84ecc
virtinst: Fix import ordering to standardize on relative imports
...
Kind of annoying that some imports were directly from files while
some were from the __init__.py convenience bits.
2013-08-08 20:49:50 -04:00
Cole Robinson
a23e30eb2d
xmlbuilder: Fix clearing address.domain element
...
Our scheme for not unlinking a root node would cause issues if trying
to clear a @domain property when the root node was <domain>, even
if they are unrelated.
2013-07-29 10:45:37 -04:00
Cole Robinson
03bd6f024e
xmlbuilder: Fix setting float value for is_int
2013-07-25 15:31:40 -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
bdfb86fd06
xmlbuilder: Break out much of the xml handling to a separate class
...
Clears things up a bit.
2013-07-25 15:04:47 -04:00
Cole Robinson
bba3c93508
xmlbuilder: Always keep around an xml node, even if building from scratch
...
This further unifies the 'parse existing' vs. 'build new' case.
2013-07-25 10:59:23 -04:00
Cole Robinson
170595698e
xmlbuilder: Drop is_tri property
...
It's a minor variation of is_bool which is better understood by using
defaults.
2013-07-24 12:51:53 -04:00
Cole Robinson
7a369a9802
xmlbuilder: Drop is_multi option
...
It complicates things quite a bit. And there's only one user, so just open
code it.
2013-07-24 12:36:44 -04:00
Cole Robinson
7411776c9a
xmlbuilder: Simplify global XML vars
...
Just have classes specify a root XML path, and figure out root name,
indentation, and dumpxml path from there.
2013-07-24 12:36:10 -04:00
Cole Robinson
3cf7679beb
Guest: Add get_install_xml for install handling
2013-07-24 11:32:30 -04:00
Cole Robinson
c7af25f7ae
xmlbuilder: Drop cleanup_xml
2013-07-24 10:59:03 -04:00
Cole Robinson
e0190f7b5e
XMLBuilder: Drop some is_parse checking
2013-07-24 10:40:35 -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
24e433a8de
CPU: Convert to new style XML props
2013-07-23 17:34:33 -04:00
Cole Robinson
6af0848fb8
osxml: Convert to new style XML props
2013-07-23 17:34:33 -04:00
Cole Robinson
6127cac414
xmlbuilder: Allow is_int with custom converter options
2013-07-23 17:34:33 -04:00
Cole Robinson
aba9d82bac
xmlbuilder: Improve error report if we might unlink root node
2013-07-23 17:34:32 -04:00
Cole Robinson
b18a29d8ff
xmlbuilder: Add explicit support for yes/no XML options
2013-07-23 17:34:32 -04:00
Cole Robinson
326731cfc5
xmlbuilder: Remove order_elements hack
2013-07-23 17:34:32 -04:00
Cole Robinson
510d28e33b
Seclabel: Convert to new style XML props.
2013-07-23 17:34:31 -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
f3a37ba195
VirtualTPM: Convert to new style properties
2013-07-15 12:18:23 -04:00
Cole Robinson
6f61e30b18
VirtualWatchdog: Convert to new style XML props
2013-07-15 11:11:16 -04:00
Cole Robinson
e5230e90e9
VirtualAddress: Convert to new style XML properties
...
This adds a bunch of extra XML parsing infrastructure to make everything
work the same.
2013-07-15 10:40:12 -04:00
Cole Robinson
7cfe4ddb4d
VirtualDisk: Move xml cleanup to a global xmlbuilder hook
2013-07-14 18:31:33 -04:00
Cole Robinson
1a74a8fda6
VirtualDisk: Convert 'type' to new style XML property
2013-07-14 18:15:47 -04:00
Cole Robinson
8ad9084e5f
default rejiggering setup, no regression
2013-07-14 17:12:39 -04:00
Cole Robinson
2cea517823
xmlbuilder: Allow classes to specify order of certain xml elements
...
This will save us some test case churn. As an example, we now
do auto building of disk <target> XML and it doesn't alter things.
Without this bus and target are often swapped.
2013-07-14 16:45:28 -04:00
Cole Robinson
154bad0184
xmlbuilder: Simplify default getter/setter some more
2013-07-14 16:35:25 -04:00
Cole Robinson
2d460a98e5
xmlbuilder: Don't treat 0 as None in setter impl
2013-07-14 16:35:25 -04:00
Cole Robinson
328f98272c
xmlbuilder: Add plumbing to track if a property is unset
2013-07-14 16:35:09 -04:00
Cole Robinson
d3dbbe9f54
xmlbuilder: Add explicit support for refreshing an XML prop
2013-07-14 16:34:54 -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
69e1d66b53
xmlbuilder: Few misc cleanups and streamlinings
2013-07-13 22:51:54 -04:00
Cole Robinson
7d75a43e33
XMLProperty: Add convenience param is_int
2013-07-13 21:49:32 -04:00
Cole Robinson
5f58d05051
VirtualDisk: Convert more XMLProperties to the new world order
2013-07-13 21:40:54 -04:00
Cole Robinson
41afdfd9aa
hostkeymap: Globally cache the host lookup
...
Rather than make the callers worry about it
2013-07-13 20:58:09 -04:00
Cole Robinson
ed826315a5
xmlbuilder: Simplify free'ing xpath contexts
2013-07-13 20:47:19 -04:00
Cole Robinson
02f35628fb
VirtualDisk: Make get_xml_config not have side effects
...
Move all the defaults setting to a set_defaults function, wire it
up to Guest.get_xml_config.
2013-07-13 20:22:19 -04:00
Cole Robinson
b152e83fef
virtinst: Rename XMLBuilderDomain.py -> xmlbuilder.py
...
And XMLBuilderDomain -> XMLBuilder
And _xml_property -> XMLProperty
2013-07-13 18:57:24 -04:00