Hello community, here is the log from the commit of package libvirt-python for openSUSE:Factory checked in at 2014-11-11 09:59:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libvirt-python (Old) and /work/SRC/openSUSE:Factory/.libvirt-python.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt-python" Changes: -------- --- /work/SRC/openSUSE:Factory/libvirt-python/libvirt-python.changes 2014-10-06 12:06:28.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libvirt-python.new/libvirt-python.changes 2014-11-11 10:16:01.000000000 +0100 @@ -1,0 +2,6 @@ +Mon Nov 3 16:29:33 MST 2014 - jfeh...@suse.com + +- Update to 1.2.10 + - Add all new APIs and constants in libvirt 1.2.10 + +------------------------------------------------------------------- Old: ---- libvirt-python-1.2.9.tar.gz libvirt-python-1.2.9.tar.gz.asc New: ---- libvirt-python-1.2.10.tar.gz libvirt-python-1.2.10.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libvirt-python.spec ++++++ --- /var/tmp/diff_new_pack.T3zjyx/_old 2014-11-11 10:16:02.000000000 +0100 +++ /var/tmp/diff_new_pack.T3zjyx/_new 2014-11-11 10:16:02.000000000 +0100 @@ -18,7 +18,7 @@ Name: libvirt-python Url: http://libvirt.org/ -Version: 1.2.9 +Version: 1.2.10 Release: 0 Summary: Library providing a simple virtualization API License: LGPL-2.1+ ++++++ libvirt-python-1.2.9.tar.gz -> libvirt-python-1.2.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/AUTHORS new/libvirt-python-1.2.10/AUTHORS --- old/libvirt-python-1.2.9/AUTHORS 2014-10-01 11:00:41.000000000 +0200 +++ new/libvirt-python-1.2.10/AUTHORS 2014-11-03 07:36:13.000000000 +0100 @@ -262,6 +262,7 @@ Daniel Veillard <veill...@redhat.com> Daniel Veillard <veill...@redhat.com> Diego Elio Pettenò <flamee...@gmail.com> + Dmitry Guryanov <dgurya...@parallels.com> Don Dugger <donald.d.dug...@intel.com> Doug Goldstein <car...@cardoe.com> Doug Goldstein <car...@cardoe.com> @@ -438,6 +439,8 @@ Laine Stump <la...@laine.org> Lei Li <li...@linux.vnet.ibm.com> Lei Li <li...@linux.vnet.ibm.com> + Luyao Huang <lhu...@redhat.com> + Luyao Huang <lhu...@redhat.com> Marcelo Cerri <mhce...@linux.vnet.ibm.com> Marian Neagul <mar...@info.uvt.ro> Mark McLoughlin <mar...@redhat.com> @@ -453,6 +456,9 @@ Martin Kletzander <mklet...@redhat.com> Martin Kletzander <mklet...@redhat.com> Martin Kletzander <mklet...@redhat.com> + Martin Kletzander <mklet...@redhat.com> + Martin Kletzander <mklet...@redhat.com> + Martin Kletzander <mklet...@redhat.com> MATSUDA Daiki <matsuda...@intellilink.co.jp> MATSUDA Daiki <matsuda...@intellilink.co.jp> Matthias Bolte <matthias.bo...@googlemail.com> @@ -521,6 +527,12 @@ Pavel Hrdina <phrd...@redhat.com> Pavel Hrdina <phrd...@redhat.com> Pavel Hrdina <phrd...@redhat.com> + Pavel Hrdina <phrd...@redhat.com> + Pavel Hrdina <phrd...@redhat.com> + Pavel Hrdina <phrd...@redhat.com> + Pavel Hrdina <phrd...@redhat.com> + Peter Krempa <pkre...@redhat.com> + Peter Krempa <pkre...@redhat.com> Peter Krempa <pkre...@redhat.com> Peter Krempa <pkre...@redhat.com> Peter Krempa <pkre...@redhat.com> @@ -538,6 +550,7 @@ Philipp Hahn <h...@univention.de> Philipp Hahn <h...@univention.de> Philipp Hahn <h...@univention.de> + Pradipta Kr. Banerjee <pradipta.baner...@gmail.com> Richard W.M. Jones <rjo...@redhat.com> Richard W.M. Jones <rjo...@redhat.com> Richard W.M. Jones <rjo...@redhat.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/ChangeLog new/libvirt-python-1.2.10/ChangeLog --- old/libvirt-python-1.2.9/ChangeLog 2014-10-01 11:00:41.000000000 +0200 +++ new/libvirt-python-1.2.10/ChangeLog 2014-11-03 07:36:13.000000000 +0100 @@ -1,3 +1,125 @@ +2014-10-28 Dmitry Guryanov <dgurya...@parallels.com> + + fix libvirt headers list + Since libvirt.h has been split out, generator.py + should be fixed accordingly. So add full list of header + files. + + + +2014-10-22 Pavel Hrdina <phrd...@redhat.com> + + virDomainBlockCopy: initialize flags to 0 + An optional argument if not passed isn't modified by the + PyArg_ParseTuple function. + + + +2014-10-22 Pavel Hrdina <phrd...@redhat.com> + + flags cannot get right value for blockCopy function + When use blockCopy, flags cannot get a right value, because + PyArg_ParseTuple want to get 6 parameters and blockCopy only + pass 5. Flags will get a unpredictable value, this will make + the function fail with error: + + unsupported flags (0x7f6c) in function qemuDomainBlockCopy + + + +2014-10-22 Peter Krempa <pkre...@redhat.com> + + Fix rest of unsigned integer handling + As in the previous patch, fix all places where 'flags' is converted as a + signed argument to unsigned including the python code generator. + + +2014-10-22 Luyao Huang <lhu...@redhat.com> + + Fix parsing of 'flags' argument for bulk stats functions + When 'flags' is set to + 'libvirt.VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS, + python will report a error: + + OverflowError: signed integer is greater than maximum + + as VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS is defined as 1<<31. + This happens as PyArg_ParseTuple's formatting string containing 'i' as a + modifier expects a signed integer. + + With python >= 2.3, 'I' means unsigned int and 'i' means int so we + should use 'I' in the formatting string. + + See: https://docs.python.org/2/c-api/arg.html + + + +2014-10-22 Peter Krempa <pkre...@redhat.com> + + Fix function name when parsing arguments in libvirt_virNodeAllocPages + The override function was copied&pasted from virConnectGetAllDomainStats + and the function name after the colon was not changed. Fix the issue as + an invalid name would appear in the error message. + + +2014-10-20 Luyao Huang <lhu...@redhat.com> + + Improve error output when use getTime with a nonzero flags. + When give a nonzero flags to getTime, c_retval will get -1 and goto + cleanup. But py_retval still is NULL, so set py_retval = VIR_PY_NONE. + This will make the output message more correct. + + + +2014-10-16 Pradipta Kr. Banerjee <pradipta.baner...@gmail.com> + + Change the comment in getPyNodeCPUCount method reflecting correct called methods + Comment mentions virGetNodeCPUMap whereas the actual method is + virNodeGetCPUMap. Similarly comment mentions virGetNodeInfo whereas the actual + method is virNodeGetInfo + + + +2014-10-07 Pavel Hrdina <phrd...@redhat.com> + + setup.py: fix rpm build to return 1 on error + + +2014-10-07 Martin Kletzander <mklet...@redhat.com> + + sanitytest: define long for python version >= 3 + Commit c58c7f362aab37e4961407c2efc8a74925ed9c37 fixed 32-bit python + build but broke build with python3 due to the lack of 'long' in the + newer version of python. This patch aims to fix it with a simple + string comparison of sys.version and '3'. + + + +2014-10-07 Martin Kletzander <mklet...@redhat.com> + + sanitytest: count with the fact that large enums can be long + On 32-bit systems, one new flag that has the value of 1 << 31, namely + VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS, fails to fit into an + 'int' on python and is therefore of type 'long'. Fix sanitytest to + count with such fact in order to avoid build failures on 32-bit systems. + + + +2014-10-06 Martin Kletzander <mklet...@redhat.com> + + sanitytest: check for exported enums + We are already collecting list of enums exported and list of enums we + want to have available. Event though there was an issue with one enum + fixed with 014d9bbaf368b33a881f1d6b2fd8a5dd285a4f71, there was no test + for it and this commit tries to fix that. + + + +2014-10-02 Pavel Hrdina <phrd...@redhat.com> + + Post-release version bump for new dev cycle + + 2014-09-30 Pavel Hrdina <phrd...@redhat.com> implement new tunable event diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/PKG-INFO new/libvirt-python-1.2.10/PKG-INFO --- old/libvirt-python-1.2.9/PKG-INFO 2014-10-01 11:00:42.000000000 +0200 +++ new/libvirt-python-1.2.10/PKG-INFO 2014-11-03 07:36:13.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: libvirt-python -Version: 1.2.9 +Version: 1.2.10 Summary: The libvirt virtualization API Home-page: http://www.libvirt.org Author: Libvirt Maintainers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/generator.py new/libvirt-python-1.2.10/generator.py --- old/libvirt-python-1.2.9/generator.py 2014-10-01 09:59:22.000000000 +0200 +++ new/libvirt-python-1.2.10/generator.py 2014-11-03 07:35:28.000000000 +0100 @@ -29,6 +29,21 @@ debug = 0 onlyOverrides = False +libvirt_headers = [ + "libvirt", + "libvirt-domain", + "libvirt-domain-snapshot", + "libvirt-event", + "libvirt-host", + "libvirt-interface", + "libvirt-network", + "libvirt-nodedev", + "libvirt-nwfilter", + "libvirt-secret", + "libvirt-storage", + "libvirt-stream", +] + def getparser(): # Attach parser to an unmarshalling object. return both objects. target = docParser() @@ -112,9 +127,7 @@ self.function_return_field = attrs['field'] elif tag == 'enum': # enums come from header files, hence virterror.h - if (attrs['file'] == "libvirt" or - attrs['file'] == "virterror" or - attrs['file'] == "virerror"): + if attrs['file'] in libvirt_headers + ["virerror", "virterror"]: enum(attrs['type'],attrs['name'],attrs['value']) elif attrs['file'] == "libvirt-lxc": lxc_enum(attrs['type'],attrs['name'],attrs['value']) @@ -127,11 +140,8 @@ if tag == 'function': # fuctions come from source files, hence 'virerror.c' if self.function is not None: - if (self.function_module == "libvirt" or - self.function_module == "event" or - self.function_module == "virevent" or - self.function_module == "virerror" or - self.function_module == "virterror"): + if self.function_module in libvirt_headers + \ + ["event", "virevent", "virerror", "virterror"]: function(self.function, self.function_descr, self.function_return, self.function_args, self.function_file, self.function_module, @@ -292,7 +302,7 @@ 'int': ('i', None, "int", "int"), 'long': ('l', None, "long", "long"), 'double': ('d', None, "double", "double"), - 'unsigned int': ('i', None, "int", "int"), + 'unsigned int': ('I', None, "int", "int"), 'unsigned long': ('l', None, "long", "long"), 'long long': ('L', None, "longlong", "long long"), 'unsigned long long': ('L', None, "longlong", "long long"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/libvirt-lxc-override.c new/libvirt-python-1.2.10/libvirt-lxc-override.c --- old/libvirt-python-1.2.9/libvirt-lxc-override.c 2014-08-05 09:41:49.000000000 +0200 +++ new/libvirt-python-1.2.10/libvirt-lxc-override.c 2014-10-27 17:38:00.000000000 +0100 @@ -71,7 +71,7 @@ int *fdlist = NULL; size_t i; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainLxcOpenNamespace", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainLxcOpenNamespace", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/libvirt-override.c new/libvirt-python-1.2.10/libvirt-override.c --- old/libvirt-python-1.2.9/libvirt-override.c 2014-10-01 09:59:22.000000000 +0200 +++ new/libvirt-python-1.2.10/libvirt-override.c 2014-10-27 17:38:00.000000000 +0100 @@ -437,10 +437,10 @@ /* * Utility function to retrieve the number of node CPUs present. - * It first tries virGetNodeCPUMap, which will return the + * It first tries virNodeGetCPUMap, which will return the * number reliably, if available. * As a fallback and for compatibility with backlevel libvirt - * versions virGetNodeInfo will be called to calculate the + * versions virNodeGetInfo will be called to calculate the * CPU number, which has the potential to return a too small * number if some host CPUs are offline. */ @@ -521,7 +521,7 @@ virTypedParameterPtr params; const char *path; - if (!PyArg_ParseTuple(args, (char *)"Ozi:virDomainBlockStatsFlags", + if (!PyArg_ParseTuple(args, (char *)"OzI:virDomainBlockStatsFlags", &pyobj_domain, &path, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -571,7 +571,7 @@ bool totalflag; virTypedParameterPtr params = NULL, cpuparams; - if (!PyArg_ParseTuple(args, (char *)"OOi:virDomainGetCPUStats", + if (!PyArg_ParseTuple(args, (char *)"OOI:virDomainGetCPUStats", &pyobj_domain, &totalbool, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -888,7 +888,7 @@ unsigned int flags; virTypedParameterPtr params; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetScedulerParametersFlags", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetScedulerParametersFlags", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1012,7 +1012,7 @@ virTypedParameterPtr params, new_params = NULL; if (!PyArg_ParseTuple(args, - (char *)"OOi:virDomainSetScedulerParametersFlags", + (char *)"OOI:virDomainSetScedulerParametersFlags", &pyobj_domain, &info, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1087,7 +1087,7 @@ virTypedParameterPtr params = NULL, new_params = NULL; if (!PyArg_ParseTuple(args, - (char *)"OOi:virDomainSetBlkioParameters", + (char *)"OOI:virDomainSetBlkioParameters", &pyobj_domain, &info, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1159,7 +1159,7 @@ unsigned int flags; virTypedParameterPtr params; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetBlkioParameters", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetBlkioParameters", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1207,7 +1207,7 @@ virTypedParameterPtr params = NULL, new_params = NULL; if (!PyArg_ParseTuple(args, - (char *)"OOi:virDomainSetMemoryParameters", + (char *)"OOI:virDomainSetMemoryParameters", &pyobj_domain, &info, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1279,7 +1279,7 @@ unsigned int flags; virTypedParameterPtr params; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetMemoryParameters", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetMemoryParameters", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1327,7 +1327,7 @@ virTypedParameterPtr params = NULL, new_params = NULL; if (!PyArg_ParseTuple(args, - (char *)"OOi:virDomainSetNumaParameters", + (char *)"OOI:virDomainSetNumaParameters", &pyobj_domain, &info, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1399,7 +1399,7 @@ unsigned int flags; virTypedParameterPtr params; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetNumaParameters", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetNumaParameters", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1448,7 +1448,7 @@ virTypedParameterPtr params = NULL, new_params = NULL; if (!PyArg_ParseTuple(args, - (char *)"OzOi:virDomainSetInterfaceParameters", + (char *)"OzOI:virDomainSetInterfaceParameters", &pyobj_domain, &device, &info, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1757,7 +1757,7 @@ unsigned int flags; int i_retval; - if (!PyArg_ParseTuple(args, (char *)"OiOi:virDomainPinVcpuFlags", + if (!PyArg_ParseTuple(args, (char *)"OiOI:virDomainPinVcpuFlags", &pyobj_domain, &vcpu, &pycpumap, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1819,7 +1819,7 @@ unsigned int flags; int i_retval, cpunum; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetVcpuPinInfo", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetVcpuPinInfo", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -1886,7 +1886,7 @@ int i_retval; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"OOi:virDomainPinVcpu", + if (!PyArg_ParseTuple(args, (char *)"OOI:virDomainPinVcpu", &pyobj_domain, &pycpumap, &flags)) return NULL; @@ -1953,7 +1953,7 @@ int ret; int cpunum; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainEmulatorPinInfo", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainEmulatorPinInfo", &pyobj_domain, &flags)) return NULL; @@ -2232,7 +2232,7 @@ virConnectAuth auth; memset(&auth, 0, sizeof(auth)); - if (!PyArg_ParseTuple(args, (char *)"zOi:virConnectOpenAuth", &name, &pyauth, &flags)) + if (!PyArg_ParseTuple(args, (char *)"zOI:virConnectOpenAuth", &name, &pyauth, &flags)) return NULL; pycredtype = PyList_GetItem(pyauth, 0); @@ -2336,7 +2336,7 @@ int flags = 0; const char *arch = NULL; - if (!PyArg_ParseTuple(args, (char *)"Osi:virConnectGetCPUModelNames", + if (!PyArg_ParseTuple(args, (char *)"OsI:virConnectGetCPUModelNames", &pyobj_conn, &arch, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -2461,7 +2461,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllDomains", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllDomains", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -2554,7 +2554,7 @@ PyObject *pyobj_snap; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainSnapshotListNames", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainSnapshotListNames", &pyobj_dom, &flags)) return NULL; dom = (virDomainPtr) PyvirDomain_Get(pyobj_dom); @@ -2612,7 +2612,7 @@ unsigned int flags; PyObject *pyobj_snap; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainListAllSnapshots", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainListAllSnapshots", &pyobj_dom, &flags)) return NULL; dom = (virDomainPtr) PyvirDomain_Get(pyobj_dom); @@ -2658,7 +2658,7 @@ PyObject *pyobj_snap; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainSnapshotListChildrenNames", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainSnapshotListChildrenNames", &pyobj_snap, &flags)) return NULL; snap = (virDomainSnapshotPtr) PyvirDomainSnapshot_Get(pyobj_snap); @@ -2715,7 +2715,7 @@ unsigned int flags; PyObject *pyobj_snap; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainSnapshotListAllChildren", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainSnapshotListAllChildren", &pyobj_parent, &flags)) return NULL; parent = (virDomainSnapshotPtr) PyvirDomainSnapshot_Get(pyobj_parent); @@ -2758,7 +2758,7 @@ PyObject *pyobj_dom; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"OOi:virDomainRevertToSnapshot", &pyobj_dom, &pyobj_snap, &flags)) + if (!PyArg_ParseTuple(args, (char *)"OOI:virDomainRevertToSnapshot", &pyobj_dom, &pyobj_snap, &flags)) return NULL; snap = (virDomainSnapshotPtr) PyvirDomainSnapshot_Get(pyobj_snap); @@ -2809,7 +2809,7 @@ int reason; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetState", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetState", &pyobj_domain, &flags)) return NULL; @@ -2836,7 +2836,7 @@ virDomainControlInfo info; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainGetControlInfo", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainGetControlInfo", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -2863,7 +2863,7 @@ const char *path; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Ozi:virDomainGetInfo", &pyobj_domain, &path, &flags)) + if (!PyArg_ParseTuple(args, (char *)"OzI:virDomainGetInfo", &pyobj_domain, &path, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -3166,7 +3166,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllNetworks", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllNetworks", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -3374,7 +3374,7 @@ int nparams = 0; virNodeCPUStatsPtr stats = NULL; - if (!PyArg_ParseTuple(args, (char *)"Oii:virNodeGetCPUStats", &pyobj_conn, &cpuNum, &flags)) + if (!PyArg_ParseTuple(args, (char *)"OiI:virNodeGetCPUStats", &pyobj_conn, &cpuNum, &flags)) return ret; conn = (virConnectPtr)(PyvirConnect_Get(pyobj_conn)); @@ -3438,7 +3438,7 @@ int nparams = 0; virNodeMemoryStatsPtr stats = NULL; - if (!PyArg_ParseTuple(args, (char *)"Oii:virNodeGetMemoryStats", &pyobj_conn, &cellNum, &flags)) + if (!PyArg_ParseTuple(args, (char *)"OiI:virNodeGetMemoryStats", &pyobj_conn, &cellNum, &flags)) return ret; conn = (virConnectPtr)(PyvirConnect_Get(pyobj_conn)); @@ -3609,7 +3609,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllStoragePools", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllStoragePools", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -3711,7 +3711,7 @@ unsigned int flags; PyObject *pyobj_pool; - if (!PyArg_ParseTuple(args, (char *)"Oi:virStoragePoolListAllVolumes", + if (!PyArg_ParseTuple(args, (char *)"OI:virStoragePoolListAllVolumes", &pyobj_pool, &flags)) return NULL; @@ -3918,7 +3918,7 @@ char *cap; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Ozi:virNodeListDevices", + if (!PyArg_ParseTuple(args, (char *)"OzI:virNodeListDevices", &pyobj_conn, &cap, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -3967,7 +3967,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllNodeDevices", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllNodeDevices", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -4180,7 +4180,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllSecrets", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllSecrets", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -4225,7 +4225,7 @@ PyObject *pyobj_secret; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virSecretGetValue", &pyobj_secret, + if (!PyArg_ParseTuple(args, (char *)"OI:virSecretGetValue", &pyobj_secret, &flags)) return NULL; secret = (virSecretPtr) PyvirSecret_Get(pyobj_secret); @@ -4254,7 +4254,7 @@ int size; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oz#i:virSecretSetValue", &pyobj_secret, + if (!PyArg_ParseTuple(args, (char *)"Oz#I:virSecretSetValue", &pyobj_secret, &value, &size, &flags)) return NULL; secret = (virSecretPtr) PyvirSecret_Get(pyobj_secret); @@ -4402,7 +4402,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllNWFilters", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllNWFilters", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -4560,7 +4560,7 @@ size_t i; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"Oi:virConnectListAllInterfaces", + if (!PyArg_ParseTuple(args, (char *)"OI:virConnectListAllInterfaces", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -4608,7 +4608,7 @@ PyObject *pybase_cpu; size_t i, j; - if (!PyArg_ParseTuple(args, (char *)"OOi:virConnectBaselineCPU", + if (!PyArg_ParseTuple(args, (char *)"OOI:virConnectBaselineCPU", &pyobj_conn, &list, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -4697,7 +4697,7 @@ PyObject *dict = NULL; int rc; - if (!PyArg_ParseTuple(args, (char *) "Oi:virDomainGetJobStats", + if (!PyArg_ParseTuple(args, (char *) "OI:virDomainGetJobStats", &pyobj_domain, &flags)) goto cleanup; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -4740,7 +4740,7 @@ PyObject *type = NULL, *bandwidth = NULL, *cur = NULL, *end = NULL; PyObject *dict; - if (!PyArg_ParseTuple(args, (char *)"Ozi:virDomainGetBlockJobInfo", + if (!PyArg_ParseTuple(args, (char *)"OzI:virDomainGetBlockJobInfo", &pyobj_domain, &path, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -4804,7 +4804,7 @@ unsigned int flags; virTypedParameterPtr params = NULL, new_params = NULL; - if (!PyArg_ParseTuple(args, (char *)"OzOi:virDomainSetBlockIoTune", + if (!PyArg_ParseTuple(args, (char *)"OzOI:virDomainSetBlockIoTune", &pyobj_domain, &disk, &info, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -4877,7 +4877,7 @@ unsigned int flags; virTypedParameterPtr params; - if (!PyArg_ParseTuple(args, (char *)"Ozi:virDomainGetBlockIoTune", + if (!PyArg_ParseTuple(args, (char *)"OzI:virDomainGetBlockIoTune", &pyobj_domain, &disk, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -4924,7 +4924,7 @@ int count; size_t i; - if (!PyArg_ParseTuple(args, (char *) "Oi:virDomainGetDiskErrors", + if (!PyArg_ParseTuple(args, (char *) "OI:virDomainGetDiskErrors", &pyobj_domain, &flags)) return NULL; @@ -7131,7 +7131,7 @@ unsigned int keycodes[VIR_DOMAIN_SEND_KEY_MAX_KEYS]; unsigned int nkeycodes; - if (!PyArg_ParseTuple(args, (char *)"OiiOii:virDomainSendKey", + if (!PyArg_ParseTuple(args, (char *)"OiiOiI:virDomainSendKey", &pyobj_domain, &codeset, &holdtime, &pyobj_list, &nkeycodes, &flags)) { DEBUG("%s failed to parse tuple\n", __FUNCTION__); @@ -7174,7 +7174,7 @@ int rc; if (!PyArg_ParseTuple(args, - (char *) "Oi:virDomainMigrateGetCompressionCache", + (char *) "OI:virDomainMigrateGetCompressionCache", &pyobj_domain, &flags)) return VIR_PY_NONE; @@ -7200,7 +7200,7 @@ PyObject *pyobj_domain; unsigned int flags = 0; - if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainMigrateGetMaxSpeed", + if (!PyArg_ParseTuple(args, (char *)"OI:virDomainMigrateGetMaxSpeed", &pyobj_domain, &flags)) return NULL; @@ -7231,7 +7231,7 @@ int nparams; virDomainPtr ddom = NULL; - if (!PyArg_ParseTuple(args, (char *) "OOOi:virDomainMigrate3", + if (!PyArg_ParseTuple(args, (char *) "OOOI:virDomainMigrate3", &pyobj_domain, &pyobj_dconn, &dict, &flags)) return NULL; @@ -7262,7 +7262,7 @@ int nparams; int ret = -1; - if (!PyArg_ParseTuple(args, (char *) "OzOi:virDomainMigrate3", + if (!PyArg_ParseTuple(args, (char *) "OzOI:virDomainMigrate3", &pyobj_domain, &dconnuri, &dict, &flags)) return NULL; @@ -7293,7 +7293,7 @@ char *buf; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"OzLni:virDomainBlockPeek", &pyobj_domain, + if (!PyArg_ParseTuple(args, (char *)"OzLnI:virDomainBlockPeek", &pyobj_domain, &disk, &offset, &size, &flags)) return NULL; @@ -7330,7 +7330,7 @@ char *buf; unsigned int flags; - if (!PyArg_ParseTuple(args, (char *)"OLni:virDomainMemoryPeek", &pyobj_domain, + if (!PyArg_ParseTuple(args, (char *)"OLnI:virDomainMemoryPeek", &pyobj_domain, &start, &size, &flags)) return NULL; @@ -7370,7 +7370,7 @@ virTypedParameterPtr params, new_params = NULL; if (!PyArg_ParseTuple(args, - (char *)"OOi:virNodeSetMemoryParameters", + (char *)"OOI:virNodeSetMemoryParameters", &pyobj_conn, &info, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -7442,7 +7442,7 @@ unsigned int flags; virTypedParameterPtr params; - if (!PyArg_ParseTuple(args, (char *)"Oi:virNodeGetMemoryParameters", + if (!PyArg_ParseTuple(args, (char *)"OI:virNodeGetMemoryParameters", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -7495,7 +7495,7 @@ unsigned int flags; size_t i; - if (!PyArg_ParseTuple(args, (char *)"Oi:virNodeGetCPUMap", + if (!PyArg_ParseTuple(args, (char *)"OI:virNodeGetCPUMap", &pyobj_conn, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -7562,7 +7562,7 @@ int *files = NULL; size_t i; - if (!PyArg_ParseTuple(args, (char *)"OOi:virDomainCreateWithFiles", + if (!PyArg_ParseTuple(args, (char *)"OOI:virDomainCreateWithFiles", &pyobj_domain, &pyobj_files, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -7608,7 +7608,7 @@ int *files = NULL; size_t i; - if (!PyArg_ParseTuple(args, (char *)"OzOi:virDomainCreateXMLWithFiles", + if (!PyArg_ParseTuple(args, (char *)"OzOI:virDomainCreateXMLWithFiles", &pyobj_conn, &xmlDesc, &pyobj_files, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -7655,7 +7655,7 @@ char **mountpoints = NULL; size_t i = 0, j; - if (!PyArg_ParseTuple(args, (char *)"OOi:virDomainFSFreeze", + if (!PyArg_ParseTuple(args, (char *)"OOI:virDomainFSFreeze", &pyobj_domain, &pyobj_list, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -7701,7 +7701,7 @@ char **mountpoints = NULL; size_t i = 0, j; - if (!PyArg_ParseTuple(args, (char *)"OOi:virDomainFSThaw", + if (!PyArg_ParseTuple(args, (char *)"OOI:virDomainFSThaw", &pyobj_domain, &pyobj_list, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -7745,7 +7745,7 @@ unsigned int flags; int c_retval; - if (!PyArg_ParseTuple(args, (char*)"Oi:virDomainGetTime", + if (!PyArg_ParseTuple(args, (char*)"OI:virDomainGetTime", &pyobj_domain, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -7757,8 +7757,10 @@ c_retval = virDomainGetTime(domain, &seconds, &nseconds, flags); LIBVIRT_END_ALLOW_THREADS; - if (c_retval < 0) + if (c_retval < 0) { + py_retval = VIR_PY_NONE; goto cleanup; + } if (!(pyobj_seconds = libvirt_longlongWrap(seconds)) || PyDict_SetItemString(dict, "seconds", pyobj_seconds) < 0) @@ -7790,7 +7792,7 @@ ssize_t py_dict_size; int c_retval; - if (!PyArg_ParseTuple(args, (char*)"OOi:virDomainSetTime", + if (!PyArg_ParseTuple(args, (char*)"OOI:virDomainSetTime", &pyobj_domain, &py_dict, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -7846,7 +7848,7 @@ int c_retval; ssize_t pyobj_pagesize_size, i, j; - if (!PyArg_ParseTuple(args, (char *)"OOiii:virNodeGetFreePages", + if (!PyArg_ParseTuple(args, (char *)"OOiiI:virNodeGetFreePages", &pyobj_conn, &pyobj_pagesize, &startCell, &cellCount, &flags)) return NULL; @@ -7946,7 +7948,7 @@ char *mac = NULL; size_t i; - if (!PyArg_ParseTuple(args, (char *) "Ozi:virNetworkDHCPLeasePtr", + if (!PyArg_ParseTuple(args, (char *) "OzI:virNetworkDHCPLeasePtr", &pyobj_network, &mac, &flags)) return NULL; @@ -8088,7 +8090,7 @@ unsigned int flags; unsigned int stats; - if (!PyArg_ParseTuple(args, (char *)"Oii:virConnectGetAllDomainStats", + if (!PyArg_ParseTuple(args, (char *)"OII:virConnectGetAllDomainStats", &pyobj_conn, &stats, &flags)) return NULL; conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn); @@ -8124,7 +8126,7 @@ unsigned int flags; unsigned int stats; - if (!PyArg_ParseTuple(args, (char *)"OOii:virDomainListGetStats", + if (!PyArg_ParseTuple(args, (char *)"OOII:virDomainListGetStats", &pyobj_conn, &py_domlist, &stats, &flags)) return NULL; @@ -8169,12 +8171,11 @@ char *destxml = NULL; virTypedParameterPtr params = NULL; int nparams = 0; - unsigned int flags; + unsigned int flags = 0; int c_retval; - if (!PyArg_ParseTuple(args, (char *) "Ozz|Oi:virDomainBlockCopy", - &pyobj_dom, &disk, &destxml, &pyobj_dict, ¶ms, - &flags)) + if (!PyArg_ParseTuple(args, (char *) "Ozz|OI:virDomainBlockCopy", + &pyobj_dom, &disk, &destxml, &pyobj_dict, &flags)) return VIR_PY_INT_FAIL; if (PyDict_Check(pyobj_dict)) { @@ -8212,7 +8213,7 @@ unsigned int flags = VIR_NODE_ALLOC_PAGES_ADD; int c_retval; - if (!PyArg_ParseTuple(args, (char *)"OOiii:virConnectGetAllDomainStats", + if (!PyArg_ParseTuple(args, (char *)"OOiiI:virNodeAllocPages", &pyobj_conn, &pyobj_pages, &startCell, &cellCount, &flags)) return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/libvirt-python.spec new/libvirt-python-1.2.10/libvirt-python.spec --- old/libvirt-python-1.2.9/libvirt-python.spec 2014-10-01 11:00:41.000000000 +0200 +++ new/libvirt-python-1.2.10/libvirt-python.spec 2014-11-03 07:36:12.000000000 +0100 @@ -6,7 +6,7 @@ Summary: The libvirt virtualization API python2 binding Name: libvirt-python -Version: 1.2.9 +Version: 1.2.10 Release: 1%{?dist}%{?extra_release} Source0: http://libvirt.org/sources/python/%{name}-%{version}.tar.gz Url: http://libvirt.org diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/libvirt-qemu-override.c new/libvirt-python-1.2.10/libvirt-qemu-override.c --- old/libvirt-python-1.2.9/libvirt-qemu-override.c 2014-09-02 09:10:06.000000000 +0200 +++ new/libvirt-python-1.2.10/libvirt-qemu-override.c 2014-10-27 17:38:00.000000000 +0100 @@ -141,7 +141,7 @@ char *cmd; int c_retval; - if (!PyArg_ParseTuple(args, (char *)"Ozi:virDomainQemuMonitorCommand", + if (!PyArg_ParseTuple(args, (char *)"OzI:virDomainQemuMonitorCommand", &pyobj_domain, &cmd, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); @@ -172,7 +172,7 @@ unsigned int flags; char *cmd; - if (!PyArg_ParseTuple(args, (char *)"Ozii:virDomainQemuAgentCommand", + if (!PyArg_ParseTuple(args, (char *)"OziI:virDomainQemuAgentCommand", &pyobj_domain, &cmd, &timeout, &flags)) return NULL; domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/sanitytest.py new/libvirt-python-1.2.10/sanitytest.py --- old/libvirt-python-1.2.9/sanitytest.py 2014-09-02 09:10:06.000000000 +0200 +++ new/libvirt-python-1.2.10/sanitytest.py 2014-10-27 17:38:00.000000000 +0100 @@ -9,6 +9,9 @@ sys.path.insert(0, sys.argv[1]) import libvirt +if sys.version > '3': + long = int + # Path to the libvirt API XML file xml = sys.argv[2] @@ -16,7 +19,10 @@ tree = lxml.etree.parse(f) verbose = False +fail = False +enumvals = {} +second_pass = [] wantenums = [] wantfunctions = [] @@ -25,11 +31,51 @@ for n in set: wantfunctions.append(n) +set = tree.xpath('/api/symbols/enum') +for n in set: + typ = n.attrib['type'] + name = n.attrib['name'] + val = n.attrib['value'] + + if typ not in enumvals: + enumvals[typ] = {} + + # If the value cannot be converted to int, it is reference to + # another enum and needs to be sorted out later on + try: + val = int(val) + except ValueError: + second_pass.append(n) + continue + + enumvals[typ][name] = int(val) + +for n in second_pass: + typ = n.attrib['type'] + name = n.attrib['name'] + val = n.attrib['value'] + + for v in enumvals.values(): + if val in v: + val = int(v[val]) + break + + if type(val) != int: + fail = True + print("Cannot get a value of enum %s (originally %s)" % (val, name)) + enumvals[typ][name] = val + set = tree.xpath('/api/files/file/exports[@type="enum"]/@symbol') for n in set: + for enumval in enumvals.values(): + if n in enumval: + enum = enumval + break + # Eliminate sentinels + if n.endswith('_LAST') and enum[n] == max(enum.values()): + continue wantenums.append(n) - # Phase 2: Identify all classes and methods in the 'libvirt' python module gotenums = [] gottypes = [] @@ -41,7 +87,7 @@ thing = getattr(libvirt, name) # Special-case libvirtError to deal with python 2.4 difference # in Exception class type reporting. - if type(thing) == int: + if type(thing) in (int, long): gotenums.append(name) elif type(thing) == type or name == "libvirtError": gottypes.append(name) @@ -51,6 +97,13 @@ else: pass +for enum in wantenums: + if enum not in gotenums: + fail = True + for typ, enumval in enumvals.items(): + if enum in enumval: + print("FAIL Missing exported enum %s of type %s" % (enum, typ)) + for klassname in gottypes: klassobj = getattr(libvirt, klassname) for name in dir(klassobj): @@ -241,7 +294,6 @@ # Phase 5: Validate sure that every C API is mapped to a python API -fail = False usedfunctions = {} for name in sorted(finalklassmap): klass = finalklassmap[name][0] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libvirt-python-1.2.9/setup.py new/libvirt-python-1.2.10/setup.py --- old/libvirt-python-1.2.9/setup.py 2014-09-25 11:42:15.000000000 +0200 +++ new/libvirt-python-1.2.10/setup.py 2014-10-27 17:38:00.000000000 +0100 @@ -245,8 +245,8 @@ """ self.run_command('sdist') - os.system('rpmbuild -ta --clean dist/libvirt-python-%s.tar.gz' % - self.distribution.get_version()) + self.spawn(["/usr/bin/rpmbuild", "-ta", "--clean", + "dist/libvirt-python-%s.tar.gz" % self.distribution.get_version()]) class my_test(Command): user_options = [ @@ -309,7 +309,7 @@ _c_modules, _py_modules = get_module_lists() setup(name = 'libvirt-python', - version = '1.2.9', + version = '1.2.10', url = 'http://www.libvirt.org', maintainer = 'Libvirt Maintainers', maintainer_email = 'libvir-l...@redhat.com', -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org