ONE.zonepool.info returns just one zone

When in Python I call one.zonepool.info(), I always get back just one ZONE element in the returned object.

I expected that there will be a list of all available (defined) zones, like it is with other one.*pool.info() calls, for example, one.vmpool.info() returns list of VMs.

When I do some debugging, I can see, that actually XML coming in response to my request contains many zones:

<ZONE_POOL><ZONE><ID>101</ID><NAME>zone3</NAME><TEMPLATE><ENDPOINT><![CDATA[http://zone3.example.com:2633/RPC2]]></ENDPOINT></TEMPLATE><SERVER_POOL></SERVER_POOL></ZONE><ZONE><ID>100</ID><NAME>zone2</NAME><TEMPLATE><ENDPOINT><![CDATA[http://nbzone2.example.com:2633/RPC2]]></ENDPOINT></TEMPLATE><SERVER_POOL></SERVER_POOL></ZONE><ZONE><ID>0</ID><NAME>OpenNebula</NAME><TEMPLATE><ENDPOINT><![CDATA[http://localhost:2633/RPC2]]></ENDPOINT></TEMPLATE><SERVER_POOL></SERVER_POOL></ZONE></ZONE_POOL>

Could this be because of buggy XSD - share/doc/xsd/zone_pool.xsd? It really defines just one ZONE element inside ZONE_POOL. In contrast, in case of VM, XSD states that there are sequence of VM elements inside VM_POOL with minOccurs=“0” and maxOccurs=“unbounded”.

You are right the, bug is in the xsd. The fix should be available with the next pyone release.

Thank you for such a precise report!