summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* override: Replace PyInt_AsLong with helperDaniel P. Berrange2013-12-111-7/+3
| | | | | | | | 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>
* override: Replace Py{Int,Long}_FromLong with helpersDaniel P. Berrange2013-12-114-53/+62
| | | | | | | | | 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>
* override: Replace PyString_AsString with libvirt_charPtrUnwrapDaniel P. Berrange2013-12-113-44/+81
| | | | | | | | | | | 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>
* override: Replace PyString_FromString with libvirt_constcharPtrWrapDaniel P. Berrange2013-12-112-20/+20
| | | | | | | | 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>
* sanitytest: Fix libvirtError class handling for Python 2.4Daniel P. Berrange2013-12-111-1/+3
| | | | | | | | | 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>
* override: Fix native module registration to work with Python3Daniel P. Berrange2013-12-113-55/+166
| | | | | | | 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>
* examples: Ensure we write bytes to the self-pipeDaniel P. Berrange2013-12-111-1/+1
| | | | | | | | 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>
* examples: Invoke print("...") instead of print "..."Daniel P. Berrange2013-12-118-85/+82
| | | | | | | The 'print' method must be called as a function in python3, ie with brackets. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Don't free passed in args in libvirt_charPtrWrap / libvirt_charPtrSizeWrapDaniel P. Berrange2013-12-112-3/+3
| | | | | | | Functions should not make assumptions about the memory management callers use for parameters Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Added python binding for the new network events APICédric Bosdonnat2013-12-113-0/+188
| | | | | | | The new network events code requires manual binding code to be written. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* test: Invoke print("...") instead of print "..."Doug Goldstein2013-12-091-5/+5
| | | | | | 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.
* override: Fix exception handling syntaxDoug Goldstein2013-12-092-3/+8
| | | | | | 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.
* generator: Sort enums and functions when generating codeDaniel P. Berrange2013-12-091-2/+8
| | | | | | | | 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>
* generator: Remove use of string.replace and string.find functionsDaniel P. Berrange2013-12-091-3/+3
| | | | | | | | 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>
* generator: Update to use sort() 'key' paramDaniel P. Berrange2013-12-091-22/+8
| | | | | | | 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>
* generator: Remove use of 'has_key' functionDaniel P. Berrange2013-12-091-54/+54
| | | | | | | | | | | 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>
* Update exception catching in generated codeDoug Goldstein2013-12-051-4/+8
| | | | | | | | 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.
* generator: Support exceptions in Python 2 and 3Doug Goldstein2013-12-051-2/+4
| | | | | Use a syntax for exception handling that works in both Python 2 and Python 3
* setup: Drop unused exception variableDoug Goldstein2013-12-051-1/+1
| | | | | Drop the unused exception variable in setup.py. This has the benefit of dropping syntax that is not valid with Python 3.
* generator: Cast iterators to a list() explicitlyDaniel P. Berrange2013-12-041-19/+19
| | | | | | | 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>
* Revert "Optimize callback lookup in event handlers"Daniel P. Berrange2013-12-041-11/+24
| | | | | | | | | This reverts commit 084729e26905f574b8c057cc4c732b1b6ce852d3. The PyImport_ImportModuleNoBlock method does not exist in python 2.4 Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Revert accidental change to exception handling syntaxDaniel P. Berrange2013-12-041-2/+2
| | | | | | | 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>
* generator: Invoke print("...") instead of print "..."Daniel P. Berrange2013-12-041-21/+21
| | | | | | | The 'print' method must be called as a function in python3, ie with brackets. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* generator: Remove string.lower(XXX) with XXX.lower()Daniel P. Berrange2013-12-041-45/+45
| | | | | | | | | 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>
* generator: Don't use 'list' as a variable nameDaniel P. Berrange2013-12-041-4/+4
| | | | | | | | In python3 if we use 'list' as a variable name it causes it to hide the corresponding 'list()' function from the entire function that holds the variable. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Optimize callback lookup in event handlersDaniel P. Berrange2013-12-041-24/+11
| | | | | | | | | | The event handler code currently invokes PyImport_ImportModule which is very heavyweight. This is not in fact required, since we know the libvirt module has already been imported. We can thus use PyImport_ImportModuleNoBlock and do away with the global variables caching the imported module reference. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fix use of virDomainEventRegister in python bindingsDaniel P. Berrange2013-12-042-60/+6
| | | | | | | | | | | | | | | | | | | If an app used the virDomainEventRegister binding instead of the virDomainEventRegisterAny binding, it would never have its callback invoked. This is because the code for dispatching from the C libvirt_virConnectDomainEventCallback method was totally fubar. If DEBUG macro was set in the python build the error would become visible "libvirt_virConnectDomainEventCallback dom_class is not a class!" The code in libvirt_virConnectDomainEventCallback was inexplicably complex and has apparently never worked. The fix is to write it the same way as the other callback handlers. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* setup: Use user requested python binaryDoug Goldstein2013-12-031-4/+4
| | | | | | | When setup.py is kicked off with a python interpreter other than the system 'python', (e.g. python2.7 setup.py build) the build process would switch to 'python' and not use python2.7 as requested by the user. We should always respect the user requested python interpreter and use it.
* Improve quality of sanitytest checkv1.2.0Daniel P. Berrange2013-11-282-50/+293
| | | | | | | Validate that every public API method is mapped into the python and that every python method has a sane C API. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Skip copying manually written python for C APIs which don't existDaniel P. Berrange2013-11-281-1/+41
| | | | | | | | | | | | | | | | | | If the libvirt-override-virXXXX.py file has methods which call C APIs that don't exist in the version of libvirt built against we need to skip copying their code. eg for 0.9.13 libvirt we should not copy the 'listAllDomains' method. The way this works is that it breaks the override file into individual methods by looking for ' def '. It then collects the contents until the next method start, whereupon it looks for a libvirtmod.XXXXXX API call. It checks if the XXXXX part is present in the XML description we have, and if not, it discards the entire method. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fix misc RPM specfile flawsDaniel P. Berrange2013-11-281-3/+10
| | | | | | | | Fix the RPM summary line, add placeholder %changelog tag, make %setup quiet, add Url: tag and filter out bogus provides and add example programs as docs. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fix code for avoiding overrides of non-existant functionsDaniel P. Berrange2013-11-281-0/+6
| | | | | | | | | | | When reading/writing a global variable from inside a method it must be declared as a global, otherwise a local variable by the same name will be used. Special case the virConnectListDomainsID method which is bizarrely renamed for no obvious reason. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Deal with old filenames for events/error functionsDaniel P. Berrange2013-11-281-2/+5
| | | | | | | | | | Older libvirt has files named 'events' and 'virterror' rather than 'virevent' and 'virerror'. This is visible in the API XML files. We must look for both names to ensure we don't lose generation of methods with older versions of libvirt. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Add missing binding of security model/label APIsv1.2.0-rc2Daniel P. Berrange2013-11-275-3/+110
| | | | | | | | The virNodeGetSecurityModel, virDomainGetSecurityLabel and virDomainGetSecurityLabelList methods were disabled in the python binding for inexplicable reasons. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Avoid generating the methods in multiple classesDaniel P. Berrange2013-11-271-0/+2
| | | | | | | | | | | | | | | | | | | | | The python code generator tries to figure out what class a method should be in by looking at the list of arguments for any which are object types. Unfortunately missing break statements meant that methods which have multiple object arguments (eg migrate as a virDomainPtr followed by a virConnectPtr) got added to multiple classes. The following incorrect methods are removed by this change virStream.download (dup of virStorageVol.download) virStream.screenshot (dup of virDomain.screenshot) virStream.upload (dup of virStorageVol.upload) virConnect.migrate (dup of virDomain.migrate) virConnect.migrate2 (dup of virDomain.migrate2) virConnect.migrate3 (dup of virDomain.migrate3) virConnect.migrateToURI3 (dup of virDomain.migrateToURI3) Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Make block pull event dispatcher privateDaniel P. Berrange2013-11-272-2/+2
| | | | | | | | | | | The method dispatchDomainEventBlockPullCallback which is used internally to dispatch block pull events to the python application code was missing the leading '_', to denote that it was private. All other event callback helpers have a leading '_'. No application should have been using this so it is justifiable to rename it. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Don't include virDomainSnapshotRef in python APIDaniel P. Berrange2013-11-271-1/+2
| | | | | | | The reference counting API is for internal use only. Attempts to use it from python application code will cause havoc. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Call virGetLastError from mod rather than py wrapperDoug Goldstein2013-11-261-1/+1
| | | | | All other code always calls the methods from the mod rather than using the python wrapper so this matches the state of all other callers.
* Return right error code for baselineCPUDon Dugger2013-11-261-4/+4
| | | | | | | | This Python interface code is returning a -1 on errors for the `baselineCPU' API. Since this API is supposed to return a pointer the error return value should really be VIR_PY_NONE. Signed-off-by: Don Dugger <donald.d.dugger@intel.com>
* Make setup.py executableMartin Kletzander2013-11-261-0/+0
| | | | Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
* Update README file contents and add HACKING fileDaniel P. Berrange2013-11-262-20/+66
| | | | | | | | The previous README file from the python code is more like a HACKING file. Rename it and update the content. Then add a basic README file Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* maint: next release is 1.2.0v1.2.0-rc1Eric Blake2013-11-251-1/+1
| | | | | | | | | No other hits for: git grep '1\.1\.5' * libvirt-utils.h: Fix comment. Signed-off-by: Eric Blake <eblake@redhat.com>
* Ensure API overrides only used if API existsDaniel P. Berrange2013-11-221-0/+15
| | | | | | | Entries in the -overrides.xml files should only be recorded if the API also exists in the main API XML file. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Relax min required libvirt to version 0.9.11Daniel P. Berrange2013-11-221-1/+1
| | | | Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* virConnectGetCPUModelNames API appeared in 1.1.3Doug Goldstein2013-11-221-0/+4
|
* VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED appeared in 1.1.1Daniel P. Berrange2013-11-221-1/+4
|
* virDomainCreateXMLWithFiles and virDomainCreateWithFiles APIs appeared in 1.1.1Doug Goldstein2013-11-221-0/+4
| | | | | virDomainCreateXMLWithFiles() and virDomainCreateWithFiles() were not added to libvirt until 1.1.1
* virDomainMigrate3 and virDomainMigrateToURI3 appeared in 1.1.0Doug Goldstein2013-11-221-0/+4
| | | | | The functions virDomainMigrate3 and virDomainMigrateToURI3 were not added to libvirt until v1.1.0.
* virTypedParams* API appeared in 1.0.2 and used in 1.1.0Doug Goldstein2013-11-221-1/+4
| | | | | | | When building against versions of libvirt prior to 1.0.2, we can not provide wrappers for virTypedParams* APIs. In addition we don't need to have the helper APIs until 1.1.0 when the first API we wrap starts to use them.
* virDomainMigrateGetCompressionCache API appeared in 1.0.3Doug Goldstein2013-11-221-0/+4
|