You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2012/03/24 22:44:16 UTC
svn commit: r1304935 - in /libcloud/trunk: CHANGES
libcloud/compute/drivers/openstack.py
Author: tomaz
Date: Sat Mar 24 21:44:16 2012
New Revision: 1304935
URL: http://svn.apache.org/viewvc?rev=1304935&view=rev
Log:
Properly handle OpenStack providers which return public IP addresses under
the 'internet' key in the addresses dictionary.
Modified:
libcloud/trunk/CHANGES
libcloud/trunk/libcloud/compute/drivers/openstack.py
Modified: libcloud/trunk/CHANGES
URL: http://svn.apache.org/viewvc/libcloud/trunk/CHANGES?rev=1304935&r1=1304934&r2=1304935&view=diff
==============================================================================
--- libcloud/trunk/CHANGES (original)
+++ libcloud/trunk/CHANGES Sat Mar 24 21:44:16 2012
@@ -67,6 +67,10 @@ Changes with Apache Libcloud in developm
argument to the OpenStack driver constructor.
[Dave King]
+ - Properly handle OpenStack providers which return public IP addresses under
+ the 'internet' key in the addresses dictionary.
+ [Tomaz Muraus]
+
*) Storage:
- Don't lowercase special header names in the Amazon S3 storage driver. ;
Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1304935&r1=1304934&r2=1304935&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Sat Mar 24 21:44:16 2012
@@ -27,6 +27,8 @@ import os
import warnings
+from itertools import chain
+
from libcloud.utils.py3 import httplib
from libcloud.utils.py3 import b
from libcloud.utils.py3 import next
@@ -721,13 +723,14 @@ class OpenStack_1_0_NodeDriver(OpenStack
servers=servers)
def _to_ip_addresses(self, el):
- return OpenStack_1_0_NodeIpAddresses(
- [ip.get('addr') for ip in
- findall(findall(el, 'public', self.XML_NAMESPACE)[0],
- 'ip', self.XML_NAMESPACE)],
- [ip.get('addr') for ip in
- findall(findall(el, 'private', self.XML_NAMESPACE)[0],
- 'ip', self.XML_NAMESPACE)])
+ public_ips = [ip.get('addr') for ip in findall(findall(el, 'public',
+ self.XML_NAMESPACE)[0],
+ 'ip', self.XML_NAMESPACE)]
+ private_ips = [ip.get('addr') for ip in findall(findall(el, 'private',
+ self.XML_NAMESPACE)[0],
+ 'ip', self.XML_NAMESPACE)]
+
+ return OpenStack_1_0_NodeIpAddresses(public_ips, private_ips)
def _get_size_price(self, size_id):
try:
@@ -1026,7 +1029,8 @@ class OpenStack_1_1_NodeDriver(OpenStack
state=self.NODE_STATE_MAP.get(api_node['status'],
NodeState.UNKNOWN),
public_ips=[addr_desc['addr'] for addr_desc in
- api_node['addresses'].get('public', [])],
+ chain(api_node['addresses'].get('public', []),
+ api_node['addresses'].get('internet', []))],
private_ips=[addr_desc['addr'] for addr_desc in
api_node['addresses'].get('private', [])],
driver=self,