You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@libcloud.apache.org by "Tomaz Muraus (Commented) (JIRA)" <ji...@apache.org> on 2011/10/11 20:27:12 UTC

[dev] [jira] [Commented] (LIBCLOUD-117) OpenNebula Compute Network Description

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

Tomaz Muraus commented on LIBCLOUD-117:
---------------------------------------

I checked our test fixtures and it looks like "IP" is an attribute there, not a separate tag.

Which version of the OpenNebula API are you hitting?

In any case, I have commited a patch which should fix it - [r1182002|http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/opennebula.py?view=diff&r1=1182001&r2=1182002&pathrev=1182002] (prefer "ip" attribute, if not specified, fall back to "IP" tag).

Thanks.
                
> 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