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 2011/09/21 15:53:12 UTC

svn commit: r1173646 - in /libcloud/trunk: libcloud/compute/drivers/openstack.py test/compute/test_openstack.py test/compute/test_rackspace.py

Author: tomaz
Date: Wed Sep 21 13:53:12 2011
New Revision: 1173646

URL: http://svn.apache.org/viewvc?rev=1173646&view=rev
Log:
Fix a regression in Rackspace compute driver pricing. Now the correct pricing
should be returned again. Also update the tests to prevent regressions in the
future.

Modified:
    libcloud/trunk/libcloud/compute/drivers/openstack.py
    libcloud/trunk/test/compute/test_openstack.py
    libcloud/trunk/test/compute/test_rackspace.py

Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1173646&r1=1173645&r2=1173646&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Wed Sep 21 13:53:12 2011
@@ -649,13 +649,13 @@ class OpenStack_1_0_NodeDriver(NodeDrive
         )
 
     def _get_size_price(self, size_id):
-        if 'openstack' not in PRICING_DATA['compute']:
+        try:
+            return get_size_price(driver_type='compute',
+                                  driver_name=self.api_name,
+                                  size_id=size_id)
+        except KeyError:
             return 0.0
 
-        return get_size_price(driver_type='compute',
-                              driver_name='openstack',
-                              size_id=size_id)
-
 
 class OpenStack_1_0_SharedIpGroup(object):
     """

Modified: libcloud/trunk/test/compute/test_openstack.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_openstack.py?rev=1173646&r1=1173645&r2=1173646&view=diff
==============================================================================
--- libcloud/trunk/test/compute/test_openstack.py (original)
+++ libcloud/trunk/test/compute/test_openstack.py Wed Sep 21 13:53:12 2011
@@ -278,10 +278,15 @@ class OpenStackTests(unittest.TestCase, 
         for size in sizes:
             self.assertTrue(isinstance(size.price, float),
                             'Wrong size price type')
-            self.assertEqual(size.price, 0,
-                             'Size price should be zero by default')
+
+            if self.driver.api_name == 'openstack':
+                self.assertEqual(size.price, 0,
+                                 'Size price should be zero by default')
 
     def test_list_sizes_with_specified_pricing(self):
+        if self.driver.api_name != 'openstack':
+            return
+
         pricing = dict((str(i), i) for i in range(1, 9))
 
         set_pricing(driver_type='compute', driver_name='openstack',
@@ -293,8 +298,7 @@ class OpenStackTests(unittest.TestCase, 
         for size in sizes:
             self.assertTrue(isinstance(size.price, float),
                             'Wrong size price type')
-            self.assertEqual(size.price, pricing[size.id],
-                             'Size price should be zero by default')
+            self.assertEqual(float(size.price), float(pricing[size.id]))
 
 
 class OpenStackMockHttp(MockHttpTestCase):

Modified: libcloud/trunk/test/compute/test_rackspace.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_rackspace.py?rev=1173646&r1=1173645&r2=1173646&view=diff
==============================================================================
--- libcloud/trunk/test/compute/test_rackspace.py (original)
+++ libcloud/trunk/test/compute/test_rackspace.py Wed Sep 21 13:53:12 2011
@@ -28,6 +28,11 @@ class RackspaceTests(OpenStackTests):
     driver_type = RackspaceNodeDriver
     driver_args = RACKSPACE_PARAMS
 
+    def test_list_sizes_pricing(self):
+        sizes = self.driver.list_sizes()
+
+        for size in sizes:
+            self.assertTrue(size.price > 0)
 
 if __name__ == '__main__':
     sys.exit(unittest.main())