You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by pq...@apache.org on 2010/05/07 22:24:32 UTC
svn commit: r942205 - /incubator/libcloud/trunk/libcloud/drivers/slicehost.py
Author: pquerna
Date: Fri May 7 20:24:31 2010
New Revision: 942205
URL: http://svn.apache.org/viewvc?rev=942205&view=rev
Log:
Properly handle multiple IP addresses from slicehost
Modified:
incubator/libcloud/trunk/libcloud/drivers/slicehost.py
Modified: incubator/libcloud/trunk/libcloud/drivers/slicehost.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/slicehost.py?rev=942205&r1=942204&r2=942205&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/slicehost.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/slicehost.py Fri May 7 20:24:31 2010
@@ -166,8 +166,9 @@ class SlicehostNodeDriver(NodeDriver):
# slicehost does not determine between public and private, so we
# have to figure it out
- public_ip = element.findtext('ip-address')
- private_ip = None
+ primary_ip = element.findtext('ip-address')
+ public_ip = []
+ private_ip = []
for addr in element.findall('addresses/address'):
ip = addr.text
try:
@@ -176,9 +177,13 @@ class SlicehostNodeDriver(NodeDriver):
# not a valid ip
continue
if is_private_subnet(ip):
- private_ip = ip
+ private_ip.append(ip)
else:
- public_ip = ip
+ public_ip.append(ip)
+
+ public_ip.append(primary_ip)
+
+ public_ip = list(set(public_ip))
try:
state = self.NODE_STATE_MAP[element.findtext('status')]
@@ -194,8 +199,8 @@ class SlicehostNodeDriver(NodeDriver):
n = Node(id=element.findtext('id'),
name=element.findtext('name'),
state=state,
- public_ip=[public_ip],
- private_ip=[private_ip],
+ public_ip=public_ip,
+ private_ip=private_ip,
driver=self.connection.driver,
extra=extra)
return n