[ 
https://issues.apache.org/jira/browse/LIBCLOUD-117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13125268#comment-13125268
 ] 

Hutson Betts commented on LIBCLOUD-117:
---------------------------------------

My testing was against an OpenNebula 2.2 installation I have running on a 
server. However OpenNebula 3.0 seems to be the same. The OpenNebula OCCI API 
can be found at: http://opennebula.org/documentation:rel3.0:occidd. In the "The 
Compute Resource" sub-section, it shows IP as a tag.

Was the test fixture designed against OpenNebula 1.4? In that version of 
OpenNebula "ip" was an attribute. That can be seen in their documentation as 
well: http://opennebula.org/documentation:archives:rel1.4:occidd under the "The 
Compute Resource" sub-section.

However, your fall-back solution is a better choice since it makes that section 
compatible with all versions of OpenNebula's OCCI API.
                
> 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
>              Labels: patch
>             Fix For: 0.5.2, 0.6.0
>
>         Attachments: opennebula.network.error.py.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> 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

        

Reply via email to