[libvirt] [PATCH] Return right error code for baselineCPU

Cole Robinson crobinso at redhat.com
Sat Dec 14 18:40:53 UTC 2013


On 12/14/2013 01:36 PM, Daniel P. Berrange wrote:
> On Sun, Nov 24, 2013 at 10:46:13AM -0600, Doug Goldstein wrote:
>> On Sat, Nov 23, 2013 at 3:15 PM, Don Dugger <n0ano at n0ano.com> wrote:
>>>
>>> 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.
>>>
>>> NB:  I've checked all the other APIs in this file and this is the
>>> only pointer API that is returning -1.
>>>
>>> Signed-off-by: Don Dugger <donald.d.dugger at intel.com>
>>> ---
>>>  python/libvirt-override.c |    8 ++++----
>>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/python/libvirt-override.c b/python/libvirt-override.c
>>> index c60747d..b471605 100644
>>> --- a/python/libvirt-override.c
>>> +++ b/python/libvirt-override.c
>>> @@ -4471,13 +4471,13 @@ libvirt_virConnectBaselineCPU(PyObject *self ATTRIBUTE_UNUSED,
>>>
>>>          ncpus = PyList_Size(list);
>>>          if (VIR_ALLOC_N_QUIET(xmlcpus, ncpus) < 0)
>>> -            return VIR_PY_INT_FAIL;
>>> +            return VIR_PY_NONE;
>>>
>>>          for (i = 0; i < ncpus; i++) {
>>>              xmlcpus[i] = PyString_AsString(PyList_GetItem(list, i));
>>>              if (xmlcpus[i] == NULL) {
>>>                  VIR_FREE(xmlcpus);
>>> -                return VIR_PY_INT_FAIL;
>>> +                return VIR_PY_NONE;
>>>              }
>>>          }
>>>      }
>>> @@ -4489,13 +4489,13 @@ libvirt_virConnectBaselineCPU(PyObject *self ATTRIBUTE_UNUSED,
>>>      VIR_FREE(xmlcpus);
>>>
>>>      if (base_cpu == NULL)
>>> -        return VIR_PY_INT_FAIL;
>>> +        return VIR_PY_NONE;
>>>
>>>      pybase_cpu = PyString_FromString(base_cpu);
>>>      VIR_FREE(base_cpu);
>>>
>>>      if (pybase_cpu == NULL)
>>> -        return VIR_PY_INT_FAIL;
>>> +        return VIR_PY_NONE;
>>>
>>>      return pybase_cpu;
>>>  }
>>> --
>>> 1.7.10.4
>>>
>>
>> ACK. This is correct. But it obviously changes our API so I'm not
>> really sure how we should handle this, (e.g. document the API as is as
>> note that its broken or fix it).
> 
> The implicit expectation with python APIs is that they all raise an
> exception if the libvirt call fails. So ACK to this bug fix & we
> should put it in maint branches.
> 
> That said, please hold off applying this to GIT. We'll put it into
> the new libvirt-python git I'm about to push instead.
> 

I've pushed this to 0.10.2 and 1.0.5 maint branches now.

Thanks,
Cole




More information about the libvir-list mailing list