Cole Robinson
35bfdc26a6
setup: Use xgettext --add-comments=translators
...
So in the code we can prefix comments with 'translators:' before
translated strings to have them show up in .pot file output
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2020-07-11 19:18:38 -04:00
Cole Robinson
fec9f0b136
po: Fix message format warnings printed from xgettext
...
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2020-07-11 19:18:38 -04:00
Daniel Henrique Barboza
bdb2bed3e9
virtinst: trivial codespell fixes
...
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2020-07-04 17:56:57 -04:00
Cole Robinson
f107e39989
Switch to more traditional logging structure
...
Init a shared log instance in virtinst/logger.py, and use that
throughout the code base, so we aren't calling directly into
'logging'. This helps protect our logging output from being
cluttered with other library output, as happens with some
'requests' usage
2019-06-17 00:12:31 -04:00
Cole Robinson
ae5e9d9a2c
virtinst: Add full test coverage for xml*.py files
2019-06-09 19:00:03 -04:00
Cole Robinson
388850f04e
virtinst: Rename util to xmlutil
...
The only functions left in there are largely for xml handling, so
make it explicit
2019-06-07 18:21:24 -04:00
Cole Robinson
5ed8f2aa5f
util: move validate_name to XMLBuilder.validate_generic_name
2019-06-07 18:04:12 -04:00
Cole Robinson
f47f6f3c7c
util: Replace xml_indent with textwrap.indent
2019-06-06 18:11:01 -04:00
Cole Robinson
f22a0ec2e4
xmlbuilder: Add replace_child
...
This will be used for UI XML editing of devices
2019-06-05 11:13:33 -04:00
Cole Robinson
472cfbc2a7
xmlbuilder: Validate root element of object parsexml
...
Ensure that for example a DeviceDisk is actually passed <disk> XML
2019-05-13 12:09:39 -04:00
Cole Robinson
76d5113941
xmlbuilder: Make is_* handling more future proof
...
If libvirt changes XML handling in the future, we shouldn't restrict
what we return to the user with the is_yesno/is_onoff convertors
2019-05-12 17:22:13 -04:00
Cole Robinson
550e8f243c
Fix pylint 'Unnecessary pass statement'
2019-04-14 20:22:56 -04:00
Cole Robinson
2f89ecf4a9
Remove Author lines from file headers
...
Similar to what was done in libvirt. See these commits:
600462834f
c99e954973
2019-01-08 11:45:35 -05:00
Cole Robinson
41d0f8fdf1
installer: Order install CDROM before any manual CDROMs
...
This is important for the virtio-win case: --cdrom media should
always be ordered first, so it's the boot preference.
https://www.redhat.com/archives/virt-tools-list/2018-September/msg00048.html
2018-10-13 10:44:09 -04:00
Cole Robinson
4adb1c8c30
pycodestyle: fix W605 invalid escape sequence
2018-09-29 13:59:19 -04:00
Cole Robinson
841d5126d2
xmlapi: Move namespace mappings to the relevant classes
...
So we don't need to update xmlapi.py to account for additions
2018-09-13 09:34:04 -04:00
Cole Robinson
4394eff9fa
xmlbuilder: Drop last usages of set_converter
...
Unfold most of them into manual property() wrappers. It's a bit
noisier but the logic is easier to follow.
2018-09-04 14:55:04 -04:00
Cole Robinson
2e9a11b220
xmlbuilder: Drop last remaining validate_cb usage
...
Fold the interface bits into the existing validate() function
2018-09-04 14:55:04 -04:00
Cole Robinson
0ed8946a5a
xmlbuilder: Remove the default_cb and default_name logic
...
It was always very hard to follow the logic chain with default_*
settings, having it explicit in set_defaults() function calls is
much easier to follow and more flexible for the future
2018-09-04 14:55:04 -04:00
Cole Robinson
9a5b903086
domain: features: Add set_defaults
...
And move all the Guest logic there.
We need to add an xmlbuilder helper _prop_is_unset to be able to
determine if a bool property is unset, in our quest to remove
default_* xmlbuilder bits
2018-09-04 14:55:04 -04:00
Cole Robinson
ea413be214
xmlbuilder: Rename get_xml_config -> get_xml
...
The config part is redundant. Should have done this a long time ago
2018-08-31 16:52:02 -04:00
Daniel P. Berrangé
48e32b429d
Fix copyright header to specify GPLv2 or later, not GPLv2 only.
...
The copyright headers in every file were chjanged in this previous commit
commit b6dcee8eb7
Author: Cole Robinson <crobinso@redhat.com>
Date: Tue Mar 20 15:00:02 2018 -0400
Use consistent and minimal license header for every file
Where before this they said "
"either version 2 of the License, or (at your option) any later version."
Now they just say
"GNU GPLv2"
This fixes it to say "GNU GPLv2 or later" again.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-04 16:51:37 -04:00
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
4b26348290
xmlbuilder: Separate out the property cache
...
Add a few more mappings to simplify certain lookups, and add
some more validation to prevent programming errors
2018-03-21 14:32:47 -04:00
Cole Robinson
7fb1ddbc18
virtinst: s/_XML_ROOT_NAME/XML_NAME/g
...
No reason for it to be privatized, could be useful in some cases
2018-03-21 11:17:36 -04:00
Cole Robinson
3e176f2aa4
xmlbuilder: Remove relative_xpath substitution support
...
This only has one user in interface.py. That case is indeed weird
but we can implement it there, rather than in generic code
2018-03-21 11:17:36 -04:00
Cole Robinson
b7f6e4990e
xmlbuilder: Use OrderedDict for propstore
...
Let's us drop proporder
2018-03-21 11:17:36 -04:00
Cole Robinson
8d0b1f80f1
cli: Have parser classes reference property names, not xmlbuilders
...
propertys already give us ways to access the backing class, and
switching to this method lets us drop some infrastructure in
xmlbuilder
2018-03-21 11:17:36 -04:00
Cole Robinson
256f0df8c2
xmlbuilder: Drop s/child_classes/child_class/
...
The only user was Guest._devices hackery, which has been dropped,
so clean up all this stuff
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
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
93c22eff79
xmlbuilder: Move xml_indent to util
2018-03-20 10:35:22 -04: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
84c02da998
xmlbuilder: Make sure split out XML has xmlns as needed
...
Otherwise libxml2 whines
2018-02-23 14:41:22 -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
6f578ffeff
xmlbuilder: Remove get_xml_config prep wrappers
...
The only user was Guest, and in fact it's not needed for the standard
get_xml_config, only for the custom _get_install_xml. So drop it
2018-02-22 20:49:07 -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
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
a20230091b
xmlbuilder: Move xpath string ops to their own class
...
This streamlines the actual libxml2 interaction quite a bit
2018-02-14 14:49:35 -05:00
Cole Robinson
dce3484e95
xmlbuilder: Move all libxml2 interaction to a single class
...
Makes the boundaries clearer
2018-02-14 11:29:12 -05:00
Cole Robinson
a853387866
xmlbuilder: Remove more redundant xml state
...
We don't need to carry around a separate xml_node. Dropping it simplifies
a few things
2018-02-14 11:08:09 -05:00
Cole Robinson
d108bbe143
Convert docstrings to standard reStructuredText param format
2018-02-14 11:08:09 -05:00
Cole Robinson
c4fdd1d56a
xmlbuilder: Remove unused code
2018-02-14 11:08:09 -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
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
8819176ad4
xmlbuilder: Drop unused node_top_xpath
2018-02-07 15:45:38 -05:00
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