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/08/13 01:03:10 UTC
svn commit: r985030 - /incubator/libcloud/trunk/libcloud/drivers/dummy.py
Author: pquerna
Date: Thu Aug 12 23:03:10 2010
New Revision: 985030
URL: http://svn.apache.org/viewvc?rev=985030&view=rev
Log:
If the API key passed into the Dummy driver looks like a number, create N nodes, making it easier to debug tests with thousands of nodes.
Submitted By: Alex Polvi
Modified:
incubator/libcloud/trunk/libcloud/drivers/dummy.py
Modified: incubator/libcloud/trunk/libcloud/drivers/dummy.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/dummy.py?rev=985030&r1=985029&r2=985030&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/dummy.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/dummy.py Thu Aug 12 23:03:10 2010
@@ -22,6 +22,8 @@ from libcloud.base import NodeImage, Nod
from libcloud.types import Provider,NodeState
import uuid
+import socket
+import struct
class DummyConnection(ConnectionKey):
"""
@@ -39,24 +41,48 @@ class DummyNodeDriver(NodeDriver):
name = "Dummy Node Provider"
type = Provider.DUMMY
+ def _ip_to_int(ip):
+ return socket.htonl(struct.unpack('I', socket.inet_aton(ip))[0])
+ def _int_to_ip(ip):
+ return socket.inet_ntoa(struct.pack('I', socket.ntohl(ip)))
+
def __init__(self, creds):
self.creds = creds
- self.nl = [
- Node(id=1,
- name='dummy-1',
- state=NodeState.RUNNING,
- public_ip=['127.0.0.1'],
- private_ip=[],
- driver=self,
- extra={'foo': 'bar'}),
- Node(id=2,
- name='dummy-2',
- state=NodeState.RUNNING,
- public_ip=['127.0.0.1'],
- private_ip=[],
- driver=self,
- extra={'foo': 'bar'}),
- ]
+ try:
+ num = int(creds)
+ except ValueError:
+ num = None
+ if num:
+ self.nl = []
+ startip = self._ip_to_int('127.0.0.1')
+ for i in xrange(num):
+ ip = self._int_to_ip(startip + i)
+ self.nl.append(
+ Node(id=i,
+ name='dummy-%d' % (i),
+ state=NodeState.RUNNING,
+ public_ip=[ip],
+ private_ip=[],
+ driver=self,
+ extra={'foo': 'bar'})
+ )
+ else:
+ self.nl = [
+ Node(id=1,
+ name='dummy-1',
+ state=NodeState.RUNNING,
+ public_ip=['127.0.0.1'],
+ private_ip=[],
+ driver=self,
+ extra={'foo': 'bar'}),
+ Node(id=2,
+ name='dummy-2',
+ state=NodeState.RUNNING,
+ public_ip=['127.0.0.1'],
+ private_ip=[],
+ driver=self,
+ extra={'foo': 'bar'}),
+ ]
self.connection = DummyConnection(self.creds)
def get_uuid(self, unique_field=None):