[openstack-dev] Nova XML serialization bug 1223358 moving discussion here to get more people involved

Vishvananda Ishaya vishvananda at gmail.com
Tue Nov 12 21:56:04 UTC 2013


I personally don't see any problem with converting the Selector to handle empty objects. If we are concerned with hiding other exceptions, then we could explicitly check for == '' instead of catching TypeError.

Vish

On Nov 1, 2013, at 7:35 AM, "Rosa, Andrea (HP Cloud Services)" <andrea.rosa at hp.com> wrote:

> Hi all
> 
> Long story short: a long time ago I raised a bug [1] and I started to work on the fix:  GuoHui LIu (the reviewer) and myself had long and useful discussion about the right solution for  that but now we are stuck and we need some more opinions to find a proper one.
> 
> And now the long story:
> When we have an instance booted from a volume and we don't specify the image details in the boot command the XML serialization of instance details fails and the API call (like nova show) returns a 500 error.
> The problem is that the image properties is mandatory to serialize but the xml serializer can't manage properly an empty value.
> In particular in the xmlutil we a have the class Selector which selects datum within a specific object, that class is designed to deal with missing data in the object but not to deal with an empty object.
> At this moment to deal with missing data the logic used in the method is to catch KeyError or IndexError exceptions:
> try:
>    obj = obj[elem]
> except (KeyError, IndexError):
>    if do_raise:
>        raise KeyError(elem)
> 
> My simple fix was to following the same logic and add a new exception to get caught TypeError which is raised when the passed object is empty (it is an empty string).
> 
> One of the main complain was that this approach tends to add some business logic in the xmlutil and also adding a new exception could hide some potential errors.
> I can't disagree but at the same time I say that I am following the same logic that we already have there.
> 
> We are now stuck, because the long-term solution probably is to rethink the XML serialization process to allow more flexibility but that doesn't seem an easy task and I really want to get this bug fixed.
> 
> What do you think?
> Anyone is available to have a look and give us an opinion? 
> 
> Please @Llu feel free to add your comments or any missing points.
> 
> PS: I am not an expert of the nova xmlutil, could be that I am missing some easy points if so, please let me know.
> 
> Thanks 
> --
> Andrea Rosa
> 
> [1] https://bugs.launchpad.net/nova/+bug/1223358
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list