OpenNebula Compute Network Description
--------------------------------------
Key: LIBCLOUD-117
URL: https://issues.apache.org/jira/browse/LIBCLOUD-117
Project: Libcloud
Issue Type: Bug
Components: Compute
Affects Versions: 0.5.2, 0.6.0
Environment: Debian Squeeze using 0.5.2 libcloud extracted archive
file.
Reporter: Hutson Betts
Fix For: 0.5.2, 0.6.0
Attachments: opennebula.network.error.py.patch
An issue exists in the way the OpenNebula driver pulls the network IP address
for a compute node. It causes the driver to fail every time.
Function Call:
cloudProvider.connection.list_nodes()
Exception Output:
Traceback (most recent call last):
File "test.py", line 65, in <module>
nodes[cloudProvider.host] = cloudProvider.connection.list_nodes()
File
"/var/lib/service-manager/service-management-system/lib/apache-libcloud-0.5.2/libcloud/compute/drivers/opennebula.py",
line 113, in list_nodes
return self._to_nodes(self.connection.request('/compute').object)
File
"/var/lib/service-manager/service-management-system/lib/apache-libcloud-0.5.2/libcloud/compute/drivers/opennebula.py",
line 188, in _to_nodes
computes.append(self._to_node(compute))
File
"/var/lib/service-manager/service-management-system/lib/apache-libcloud-0.5.2/libcloud/compute/drivers/opennebula.py",
line 200, in _to_node
networks.append(element.attrib["ip"])
KeyError: 'ip'
Cause:
for element in compute.findall("NIC"):
networks.append(element.attrib["ip"])
OpenNebula/OCCI Compute Definition
<COMPUTE href="http://www.opennebula.org/compute/32">
<ID>32</ID>
...
<NIC>
<NETWORK href="http://www.opennebula.org/network/12"/>
<MAC>00:ff:72:31:23:17</MAC>
<IP>192.168.0.12</IP>
...
</NIC>
...
</COMPUTE>
Conclusion:
IP address information is not an attribute. Rather it's a child element
of the NIC.
Patch:
With patch, the NIC information is returned correctly:
<Node: uuid=894yf9823fh9, name=one-34, state=4,
public_ip=['10.2.0.5', '10.2.2.3'], provider=OpenNebula ...>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira