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/05 00:05:03 UTC
svn commit: r941070 - in /incubator/libcloud/trunk/libcloud: base.py
drivers/ecp.py drivers/slicehost.py
Author: pquerna
Date: Tue May 4 22:05:02 2010
New Revision: 941070
URL: http://svn.apache.org/viewvc?rev=941070&view=rev
Log:
Move is_private_subnet into the base, as it will be used by multiple drivers
Modified:
incubator/libcloud/trunk/libcloud/base.py
incubator/libcloud/trunk/libcloud/drivers/ecp.py
incubator/libcloud/trunk/libcloud/drivers/slicehost.py
Modified: incubator/libcloud/trunk/libcloud/base.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/base.py?rev=941070&r1=941069&r2=941070&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/base.py (original)
+++ incubator/libcloud/trunk/libcloud/base.py Tue May 4 22:05:02 2010
@@ -33,6 +33,7 @@ import hashlib
import StringIO
import os
import socket
+import struct
from pipes import quote as pquote
@@ -652,3 +653,19 @@ class NodeDriver(object):
n = kwargs["deploy"].run(node, client)
client.close()
return n
+
+def is_private_subnet(ip):
+ priv_subnets = [ {'subnet': '10.0.0.0', 'mask': '255.0.0.0'},
+ {'subnet': '172.16.0.0', 'mask': '255.240.0.0'},
+ {'subnet': '192.168.0.0', 'mask': '255.255.0.0'} ]
+
+ ip = struct.unpack('I',socket.inet_aton(ip))[0]
+
+ for network in priv_subnets:
+ subnet = struct.unpack('I',socket.inet_aton(network['subnet']))[0]
+ mask = struct.unpack('I',socket.inet_aton(network['mask']))[0]
+
+ if (ip & mask) == (subnet & mask):
+ return True
+
+ return False
Modified: incubator/libcloud/trunk/libcloud/drivers/ecp.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/ecp.py?rev=941070&r1=941069&r2=941070&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/ecp.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/ecp.py Tue May 4 22:05:02 2010
@@ -21,6 +21,7 @@ from libcloud.base import NodeDriver, No
from libcloud.base import NodeImage, Node
from libcloud.base import Response, ConnectionUserAndKey
from libcloud.types import Provider, NodeState, InvalidCredsException
+from libcloud.base import is_private_subnet
from zope.interface import implements
import time
@@ -156,7 +157,7 @@ class ECPNodeDriver(NodeDriver):
except socket.error:
# not a valid ip
continue
- if self._is_private_subnet(ip):
+ if is_private_subnet(ip):
private_ips.append(ip)
else:
public_ips.append(ip)
@@ -353,21 +354,4 @@ class ECPNodeDriver(NodeDriver):
)
return n
-
- #Copied from slicehost driver
- def _is_private_subnet(self, ip):
- priv_subnets = [ {'subnet': '10.0.0.0', 'mask': '255.0.0.0'},
- {'subnet': '172.16.0.0', 'mask': '172.16.0.0'},
- {'subnet': '192.168.0.0', 'mask': '192.168.0.0'} ]
-
- ip = struct.unpack('I',socket.inet_aton(ip))[0]
-
- for network in priv_subnets:
- subnet = struct.unpack('I',socket.inet_aton(network['subnet']))[0]
- mask = struct.unpack('I',socket.inet_aton(network['mask']))[0]
-
- if (ip & mask) == (subnet & mask):
- return True
-
- return False
Modified: incubator/libcloud/trunk/libcloud/drivers/slicehost.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/slicehost.py?rev=941070&r1=941069&r2=941070&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/slicehost.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/slicehost.py Tue May 4 22:05:02 2010
@@ -18,6 +18,7 @@ Slicehost Driver
from libcloud.types import NodeState, Provider, InvalidCredsException
from libcloud.base import ConnectionKey, Response, NodeDriver, Node
from libcloud.base import NodeSize, NodeImage, NodeLocation
+from libcloud.base import is_private_subnet
import base64
import struct
import socket
@@ -169,7 +170,7 @@ class SlicehostNodeDriver(NodeDriver):
except socket.error:
# not a valid ip
continue
- if self._is_private_subnet(ip):
+ if is_private_subnet(ip):
private_ip = ip
else:
public_ip = ip
@@ -221,20 +222,3 @@ class SlicehostNodeDriver(NodeDriver):
name=str(element.findtext('name')),
driver=self.connection.driver)
return i
-
-
- def _is_private_subnet(self, ip):
- priv_subnets = [ {'subnet': '10.0.0.0', 'mask': '255.0.0.0'},
- {'subnet': '172.16.0.0', 'mask': '255.240.0.0'},
- {'subnet': '192.168.0.0', 'mask': '255.255.0.0'} ]
-
- ip = struct.unpack('I',socket.inet_aton(ip))[0]
-
- for network in priv_subnets:
- subnet = struct.unpack('I',socket.inet_aton(network['subnet']))[0]
- mask = struct.unpack('I',socket.inet_aton(network['mask']))[0]
-
- if (ip & mask) == (subnet & mask):
- return True
-
- return False