You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by im...@apache.org on 2010/02/10 02:59:49 UTC

svn commit: r908315 - in /incubator/libcloud/trunk/libcloud: base.py drivers/dummy.py drivers/ec2.py drivers/gogrid.py drivers/linode.py drivers/rackspace.py drivers/rimuhosting.py drivers/slicehost.py drivers/vcloud.py drivers/vpsnet.py interface.py

Author: imeredith
Date: Wed Feb 10 01:59:48 2010
New Revision: 908315

URL: http://svn.apache.org/viewvc?rev=908315&view=rev
Log:
Added location=None to list_images and list_sizes for all drivers. Added the impl of that for RimuHosting in list_sizes.

Modified:
    incubator/libcloud/trunk/libcloud/base.py
    incubator/libcloud/trunk/libcloud/drivers/dummy.py
    incubator/libcloud/trunk/libcloud/drivers/ec2.py
    incubator/libcloud/trunk/libcloud/drivers/gogrid.py
    incubator/libcloud/trunk/libcloud/drivers/linode.py
    incubator/libcloud/trunk/libcloud/drivers/rackspace.py
    incubator/libcloud/trunk/libcloud/drivers/rimuhosting.py
    incubator/libcloud/trunk/libcloud/drivers/slicehost.py
    incubator/libcloud/trunk/libcloud/drivers/vcloud.py
    incubator/libcloud/trunk/libcloud/drivers/vpsnet.py
    incubator/libcloud/trunk/libcloud/interface.py

Modified: incubator/libcloud/trunk/libcloud/base.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/base.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/base.py (original)
+++ incubator/libcloud/trunk/libcloud/base.py Wed Feb 10 01:59:48 2010
@@ -521,7 +521,7 @@
         raise NotImplementedError, \
             'list_nodes not implemented for this driver'
 
-    def list_images(self):
+    def list_images(self, location=None):
         """
         List images on a provider
         @return: C{list} of L{NodeImage} objects
@@ -529,7 +529,7 @@
         raise NotImplementedError, \
             'list_images not implemented for this driver'
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         """
         List sizes on a provider
         @return: C{list} of L{NodeSize} objects

Modified: incubator/libcloud/trunk/libcloud/drivers/dummy.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/dummy.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/dummy.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/dummy.py Wed Feb 10 01:59:48 2010
@@ -72,14 +72,14 @@
         self.nl.remove(node)
         return True
 
-    def list_images(self):
+    def list_images(self, location=None):
         return [
             NodeImage(id=1, name="Ubuntu 9.10", driver=self),
             NodeImage(id=2, name="Ubuntu 9.04", driver=self),
             NodeImage(id=3, name="Slackware 4", driver=self),
         ]
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         return [
           NodeSize(id=1,
                    name="Small",

Modified: incubator/libcloud/trunk/libcloud/drivers/ec2.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/ec2.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/ec2.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/ec2.py Wed Feb 10 01:59:48 2010
@@ -285,11 +285,11 @@
                     'reservationSet/item/instancesSet/item')
         return nodes
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         return [ NodeSize(driver=self.connection.driver, **i) 
                     for i in self._instance_types.values() ]
     
-    def list_images(self):
+    def list_images(self, location=None):
         params = {'Action': 'DescribeImages'}
         images = self._to_images(
             self.connection.request('/', params=params).object

Modified: incubator/libcloud/trunk/libcloud/drivers/gogrid.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/gogrid.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/gogrid.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/gogrid.py Wed Feb 10 01:59:48 2010
@@ -162,7 +162,7 @@
         return [ self._to_image(el)
                  for el in object['list'] ]
 
-    def list_images(self):
+    def list_images(self, location=None):
         images = self._to_images(
                     self.connection.request('/api/grid/image/list').object)
         return images
@@ -209,7 +209,7 @@
         object = self.connection.request("/api/grid/ip/list", params).object
         return object['list'][0]['ip']
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         return [ NodeSize(driver=self.connection.driver, **i) 
                     for i in self._instance_types.values() ]
 

Modified: incubator/libcloud/trunk/libcloud/drivers/linode.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/linode.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/linode.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/linode.py Wed Feb 10 01:59:48 2010
@@ -344,7 +344,7 @@
         data = self.connection.request(LINODE_ROOT, params=params).object
         return self._to_node(data[0])
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         # List Sizes
         # Retrieve all available Linode plans.
         # FIXME: Prices get mangled due to 'float'.
@@ -358,7 +358,7 @@
             sizes.append(n)
         return sizes
     
-    def list_images(self):
+    def list_images(self, location=None):
         # List Images
         # Retrieve all available Linux distributions.
         params = { "api_action": "avail.distributions" }

Modified: incubator/libcloud/trunk/libcloud/drivers/rackspace.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/rackspace.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/rackspace.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/rackspace.py Wed Feb 10 01:59:48 2010
@@ -152,10 +152,10 @@
     def list_nodes(self):
         return self.to_nodes(self.connection.request('/servers/detail').object)
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         return self.to_sizes(self.connection.request('/flavors/detail').object)
 
-    def list_images(self):
+    def list_images(self, location=None):
         return self.to_images(self.connection.request('/images/detail').object)
 
     def list_locations(self):

Modified: incubator/libcloud/trunk/libcloud/drivers/rimuhosting.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/rimuhosting.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/rimuhosting.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/rimuhosting.py Wed Feb 10 01:59:48 2010
@@ -145,11 +145,16 @@
             name=image['distro_description'],
             driver=self.connection.driver)
         
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         # Returns a list of sizes (aka plans)
         # Get plans. Note this is really just for libcloud.
         # We are happy with any size.
-        res = self.connection.request('/pricing-plans;server-type=VPS').object
+        if location == None:
+            location = '';
+        else:
+            location = ";dc_location=%s" % (location.id)
+
+        res = self.connection.request('/pricing-plans;server-type=VPS%s' % (location)).object
         return map(lambda x : self._to_size(x), res['pricing_plan_infos'])
 
     def list_nodes(self):
@@ -158,9 +163,10 @@
         res = self.connection.request('/orders;include_inactive=N').object
         return map(lambda x : self._to_node(x), res['about_orders'])
     
-    def list_images(self):
+    def list_images(self, location=None):
         # Get all base images.
         # TODO: add other image sources. (Such as a backup of a VPS)
+        # All Images are available for use at all locations
         res = self.connection.request('/distributions').object
         return map(lambda x : self._to_image(x), res['distro_infos'])
 

Modified: incubator/libcloud/trunk/libcloud/drivers/slicehost.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/slicehost.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/slicehost.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/slicehost.py Wed Feb 10 01:59:48 2010
@@ -68,10 +68,10 @@
     def list_nodes(self):
         return self._to_nodes(self.connection.request('/slices.xml').object)
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         return self._to_sizes(self.connection.request('/flavors.xml').object)
 
-    def list_images(self):
+    def list_images(self, location=None):
         return self._to_images(self.connection.request('/images.xml').object)
 
     def list_locations(self):

Modified: incubator/libcloud/trunk/libcloud/drivers/vcloud.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/vcloud.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/vcloud.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/vcloud.py Wed Feb 10 01:59:48 2010
@@ -430,7 +430,7 @@
         )
         return ns
 
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         sizes = [self._to_size(i) for i in VIRTUAL_MEMORY_VALS]
         return sizes
 
@@ -464,7 +464,7 @@
 
         return res
 
-    def list_images(self):
+    def list_images(self, location=None):
         images = []
         for vdc in self.vdcs:
             res = self.connection.request(vdc).object

Modified: incubator/libcloud/trunk/libcloud/drivers/vpsnet.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/vpsnet.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/vpsnet.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/vpsnet.py Wed Feb 10 01:59:48 2010
@@ -148,7 +148,7 @@
         node = self._to_node(res.object['virtual_machine'])
         return True
     
-    def list_sizes(self):
+    def list_sizes(self, location=None):
         res = self.connection.request('/nodes.%s' % (API_VERSION,))
         available_nodes = len([size for size in res.object 
                             if not size['slice']["virtual_machine_id"]])
@@ -165,7 +165,7 @@
         res = self.connection.request('/virtual_machines.%s' % (API_VERSION,))
         return [self._to_node(i['virtual_machine']) for i in res.object] 
 
-    def list_images(self):
+    def list_images(self, location=None):
         res = self.connection.request('/available_clouds.%s' % (API_VERSION,))
 
         images = []

Modified: incubator/libcloud/trunk/libcloud/interface.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/interface.py?rev=908315&r1=908314&r2=908315&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/interface.py (original)
+++ incubator/libcloud/trunk/libcloud/interface.py Wed Feb 10 01:59:48 2010
@@ -160,12 +160,12 @@
         Returns a list of nodes for this provider
         """
 
-    def list_images():
+    def list_images(location=None):
         """
         Returns a list of images for this provider
         """
 
-    def list_sizes():
+    def list_sizes(location=None):
         """
         Returns a list of sizes for this provider
         """