1
0
mirror of https://gitlab.com/libvirt/libvirt-python.git synced 2025-07-24 00:58:54 +03:00
Commit Graph

508 Commits

Author SHA1 Message Date
71fda98981 Add test for setting scheduler parameters
Add a test setting scheduler parameters to validate the
previous bugfix to strncpy of field names.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2014-03-19 15:16:15 +00:00
eaded7bdad Add support for running unit tests with nose
Make the 'python setup.py test' able to run unit tests
found under tests/ through the 'nosetests' command

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2014-03-19 15:16:15 +00:00
69c4600d61 setPyVirTypedParameter: free whole return variable on error
The @ret value is built in a loop. However, if in one iteration
there's an error, we should free all the fields built so far. For
instance, if there's an error and the previous item was
type of VIR_TYPED_PARAM_STRING we definitely must free it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2014-03-18 14:43:10 +01:00
412c93a7b9 setPyVirTypedParameter: Copy full field name
In the setPyVirTypedParameter we try to produce virTypedParameter
array from a python dictionary. However, when copying field name into
item in returned array, we use strncpy() as the field name is fixed
length array. To determine its size we use sizeof() but mistakenly
dereference it resulting in sizeof(char) which equals to 1 byte.
Moreover, there's no need for using sizeof() when we have a global
macro to tell us the length of the field name:
VIR_TYPED_PARAM_FIELD_LENGTH.

And since array is allocated using VIR_ALLOC() we are sure the memory
is initially filled with zeros. Hence, there's no need to terminate
string we've just copied into field name with '\0' character. It's
there for sure too as we copy up to field length - 1.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2014-03-18 14:43:00 +01:00
f738e4162e Post release version bump to 1.2.3
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2014-03-03 12:04:07 +00:00
4382fc518c Release of libvirt-python 1.2.2 v1.2.2 2014-03-02 22:42:36 +08:00
014d9bbaf3 generator: Skip exporting only sentinels
When enum type has '_LAST' in its name, but is not the last type in
that enum, it's skipped even though it shouldn't be.  Currently, this
is the case for only VIR_NETWORK_UPDATE_COMMAND_ADD_LAST inside an
enum virNetworkUpdateCommand.

Also, since _LAST types can have other enums instead of values, that
needs to be filtered out using a try-except when converting the value.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
v1.2.2-rc2
2014-02-20 17:12:45 +01:00
bde9d463f3 Fix stream related spelling mistakes
Consistent spelling of all-uppercase I/O.

Signed-off-by: Philipp Hahn <hahn@univention.de>
2014-02-13 11:17:29 +01:00
44be62beee examples: demonstrate network events
Commit 6ea5be0 added network event callback support, so we might
as well demonstrate that it works by updating our example.

* examples/event-test.py: Add network event, fix typos.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-02-11 17:58:48 -07:00
6df78db098 maint: ignore editor files
* .gitignore: Exclude emacs cruft.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-02-04 16:35:14 -07:00
92c5aa6e27 Merge tag 'v1.2.1'
Release of libvirt-python-1.2.1
2014-02-03 14:28:09 -07:00
ea9339c878 Fix calling of virStreamSend method
Change d40861 removed the 'len' argument from the virStreamSend
C level wrapper, but forgot to remove it from the python level
wrapper.

Reported-by: Robie Basak <robie.basak@canonical.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2014-01-23 14:29:16 +00:00
c8e1ae3ecd Release of libvirt-python-1.2.1 v1.2.1 2014-01-16 17:33:29 +08:00
de8361627c virStream.sendAll() fix raising an undeclared var
The exception is raised from the variable 'e', which was undeclared in
this context. Used code that is compatible with old and new Python
versions.
v1.2.1-rc2
2014-01-10 21:16:34 -06:00
80c53727f3 Add space after comma for consistency with code style v1.2.1-rc1 2014-01-02 09:52:13 -06:00
c6ff569fb6 define __GNUC_PREREQ macro before using it
We brought over use of the __GNUC_PREREQ macro from libvirt but didn't
bring over the definition of it. This brings over the macro from libvirt
sources.
2013-12-30 12:36:31 -06:00
a06d78b4a1 Rewrite libvirt_charPtrUnwrap to work with Python 3.0->3.2
The PyUnicode_AsUTF8 method doesn't exist prior to Python 3.3.
It is also somewhat inefficient, so rewrite it to use an
intermediate PyBytes object.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-12 18:15:05 +00:00
c95c635d9b Add python3 to the automated build and RPM
This updates autobuild.sh to test the python3 build process.
The RPM specfile is changed to build a libvirt-python3 RPM
on Fedora > 18

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-12 11:26:11 +00:00
ab2b22aa7d Skip network event callbacks in sanity test
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:39:13 +00:00
faaf2a4835 Fix return type in override method for virStreamRecv
The virStreamRecv override returns a PyObject not an int

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:27:27 +00:00
d499f4a7c1 sanitytest: remove use of string.lower()
Call lower() directly on the string object instance, not
the class

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:14:46 +00:00
919bb0cc3b sanitytest: Fix broken comparison between int and string
Python2 was forgiving of a comparison between an int and string
but Python3 gets very upset.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:14:46 +00:00
d40861012c override: Switch virStreamSend wrapper to use libvirt_charPtrSizeUnwrap
Instead of using a 'z#i' format string to receive byte array,
use 'O' and then libvirt_charPtrSizeUnwrap. This lets us hide
the Python 3 vs 2 differences in typewrappers.c

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:14:46 +00:00
e6551e60ce override: Conditionalize use of PyString_Check and PyInt_Check
The PyString and PyInt classes are gone in Python 3, so we must
conditionalize their use to be Python 2 only.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:14:46 +00:00
a65df7c7a5 typewrappers: PyInt/PyLong merge for Python3
In Python3 the PyInt / PyLong types have merged into a single
PyLong type. Conditionalize the use of PyInt to Python 2 only

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:14:46 +00:00
b4d8863469 typewrappers: Replace use of PyString class
Replace use of PyString with either PyBytes or PyUnicode.
The former is used for buffers with explicit sizes, which
are used by APIs processing raw bytes.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:14:46 +00:00
d021f89dfc override: Replace PyInt_AsLong with helper
Replace use of the PyInt_AsLong libvirt_intUnwrap helper.
This isolates the need for Python3 specific code in one
place

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
a933b7f5d1 override: Replace Py{Int,Long}_FromLong with helpers
Replace use of the PyInt_FromLong and PyLong_FromLongLong
with libvirt_{int,uint,longlong,ulonglong}Wrap helpers.
This isolates the need for Python3 specific code in one
place.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
aac76e7630 override: Replace PyString_AsString with libvirt_charPtrUnwrap
Replace calls to PyString_AsString with the helper method
libvirt_charPtrUnwrap. This isolates the code that will
change in Python3.

In making this change, all callers now have responsibility
for free'ing the string.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
e5161dec9e override: Replace PyString_FromString with libvirt_constcharPtrWrap
Make use of libvirt_constcharPtrWrap in all override code,
to match generated code. This will isolate Python3 specific
changes in one place.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
c6dcaef7d9 sanitytest: Fix libvirtError class handling for Python 2.4
The Exception class hiearchy in Python 2.4 reports different
data types than in later Python versions. As a result the
type(libvirt.libvirtError) does not return 'type'. We just
special case handling of this class.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
1b4dc72140 override: Fix native module registration to work with Python3
The way native modules are registered has completely
changed, so the code must be #ifdef'd for Python2 & 3

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
b882ae9ecf examples: Ensure we write bytes to the self-pipe
Strings in python3 default to unicode, so when writing to
the self-pipe we must be sure to use bytes by calling the
encode() method.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
3f4e32c6a1 examples: Invoke print("...") instead of print "..."
The 'print' method must be called as a function in python3,
ie with brackets.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:54 +00:00
bb3301ba78 Don't free passed in args in libvirt_charPtrWrap / libvirt_charPtrSizeWrap
Functions should not make assumptions about the memory management
callers use for parameters

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 16:12:14 +00:00
6ea5be0dd2 Added python binding for the new network events API
The new network events code requires manual binding code to
be written.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-11 15:39:09 +00:00
1f180dde63 test: Invoke print("...") instead of print "..."
The 'print' statement no longer exists in Python 3 and now must be
called as a function. This is compatible down to Python 2.4 as we are
not using any special syntax of the function.
2013-12-09 08:49:56 -06:00
bf9bc81447 override: Fix exception handling syntax
Python 3 no longer accepts 'except Exception, e:' as valid while Python
2.4 does not accept the new syntax 'except Exception as e:' so this uses
a fall back method that is compatible with both.
2013-12-09 08:49:56 -06:00
c2da294180 generator: Sort enums and functions when generating code
To assist in diff comparisons between code generated with
different versions of Python, do an explicit sort of all
functions and enums.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-09 13:50:48 +00:00
dec4ff10ff generator: Remove use of string.replace and string.find functions
Call the 'replace' and 'find' functions directly on the
string variables, instead of via the 'string' module.
Python3 only accepts the latter syntax

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-09 13:50:42 +00:00
394d88324c generator: Update to use sort() 'key' param
The sort() method previously took either a comparator function
or a key function. Only the latter is supported in Python3.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-09 13:50:32 +00:00
3ae0a76d88 generator: Remove use of 'has_key' function
The code 'XXX.has_key(YYYY)' must be changed to be of
the form  'YYY in XXXX' which works in Python2 and 3

As an added complication, if 'YYY in XXX' is used against
an object overriding the '__getitem__' method it does not
work in Python 2.4. Instead we must use 'YYY in XXX.keys()'

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-09 13:47:23 +00:00
ec15ea947b Update exception catching in generated code
Use a syntax for exception handling that works in both Python 2 and
Python 3. The new syntax is 'except Exception as e:' but this does not
work in older Pythons so we use the most compatible way by just catching
the exception and getting the type and the exception value after the
fact.
2013-12-05 12:06:53 +00:00
0634769595 generator: Support exceptions in Python 2 and 3
Use a syntax for exception handling that works in both Python 2 and
Python 3
2013-12-05 12:06:53 +00:00
3af0f02351 setup: Drop unused exception variable
Drop the unused exception variable in setup.py. This has the benefit
of dropping syntax that is not valid with Python 3.
2013-12-05 12:06:53 +00:00
f7addb7e6c generator: Cast iterators to a list() explicitly
In python3 various methods list 'dict.keys()' do not
return a list, so we must explicitly cast the result.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-04 18:10:00 +00:00
7e68c27960 Revert "Optimize callback lookup in event handlers"
This reverts commit 084729e269.

The PyImport_ImportModuleNoBlock method does not exist in
python 2.4

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-04 18:05:21 +00:00
dcbbb23072 Revert accidental change to exception handling syntax
The previous commit changed the exception handling syntax to
use 'as' instead of a ','. This doesn't work with python 2.4

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-04 18:04:27 +00:00
2b8bb538a3 generator: Invoke print("...") instead of print "..."
The 'print' method must be called as a function in python3,
ie with brackets.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-04 17:08:33 +00:00
8bc78e12c1 generator: Remove string.lower(XXX) with XXX.lower()
In python3 the string.lower() method doesn't exist, the
lower() function can only be executed against a string
variable directly. Python2 supported both approaches so
this change is compatible

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2013-12-04 17:08:28 +00:00