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 2012/10/01 02:39:51 UTC
svn commit: r1392147 - in /libcloud/trunk/libcloud: compute/providers.py
compute/types.py test/compute/test_rackspace.py
Author: tomaz
Date: Mon Oct 1 00:39:50 2012
New Revision: 1392147
URL: http://svn.apache.org/viewvc?rev=1392147&view=rev
Log:
Throw an exception if user wants to use old, now deprecated Rackspace provider
constant.
Modified:
libcloud/trunk/libcloud/compute/providers.py
libcloud/trunk/libcloud/compute/types.py
libcloud/trunk/libcloud/test/compute/test_rackspace.py
Modified: libcloud/trunk/libcloud/compute/providers.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/providers.py?rev=1392147&r1=1392146&r2=1392147&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/providers.py (original)
+++ libcloud/trunk/libcloud/compute/providers.py Mon Oct 1 00:39:50 2012
@@ -17,7 +17,8 @@ Provider related utilities
"""
from libcloud.utils.misc import get_driver as _get_provider_driver
-from libcloud.compute.types import Provider
+from libcloud.compute.types import Provider, DEPRECATED_RACKSPACE_PROVIDERS
+from libcloud.compute.types import OLD_CONSTANT_TO_NEW_MAPPING
__all__ = [
"Provider",
@@ -119,4 +120,15 @@ DRIVERS = {
def get_driver(provider):
+ if provider in DEPRECATED_RACKSPACE_PROVIDERS:
+ id_to_name_map = dict([(v, k) for k, v in Provider.__dict__.items()])
+ old_name = id_to_name_map[provider]
+ new_name = id_to_name_map[OLD_CONSTANT_TO_NEW_MAPPING[provider]]
+
+ msg = 'Provider constant %s has been removed. New constant ' \
+ 'is now called %s.\n' \
+ 'For more information on this change and how to modify your ' \
+ 'code to work with it, please visit: TODO' % (old_name, new_name)
+ raise Exception(msg)
+
return _get_provider_driver(DRIVERS, provider)
Modified: libcloud/trunk/libcloud/compute/types.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/types.py?rev=1392147&r1=1392146&r2=1392147&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/types.py (original)
+++ libcloud/trunk/libcloud/compute/types.py Mon Oct 1 00:39:50 2012
@@ -18,6 +18,7 @@ Base types used by other parts of libclo
from libcloud.common.types import LibcloudError, MalformedResponseError
from libcloud.common.types import InvalidCredsError, InvalidCredsException
+
__all__ = [
"Provider",
"NodeState",
@@ -28,7 +29,9 @@ __all__ = [
"LibcloudError",
"MalformedResponseError",
"InvalidCredsError",
- "InvalidCredsException"
+ "InvalidCredsException",
+ "DEPRECATED_RACKSPACE_PROVIDERS",
+ "OLD_CONSTANT_TO_NEW_MAPPING"
]
@@ -117,6 +120,29 @@ class Provider(object):
GRIDSPOT = 49
RACKSPACE_FIRST_GEN = 51
+ # Deprecated constants
+ RACKSPACE_UK = 23
+ RACKSPACE_NOVA_BETA = 40
+ RACKSPACE_NOVA_DFW = 41
+ RACKSPACE_NOVA_LON = 48
+ RACKSPACE_NOVA_ORD = 50
+
+
+DEPRECATED_RACKSPACE_PROVIDERS = [Provider.RACKSPACE_UK,
+ Provider.RACKSPACE_NOVA_BETA,
+ Provider.RACKSPACE_NOVA_DFW,
+ Provider.RACKSPACE_NOVA_LON,
+ Provider.RACKSPACE_NOVA_ORD]
+OLD_CONSTANT_TO_NEW_MAPPING = {
+ Provider.RACKSPACE: Provider.RACKSPACE_FIRST_GEN,
+ Provider.RACKSPACE_UK: Provider.RACKSPACE_FIRST_GEN,
+
+ Provider.RACKSPACE_NOVA_BETA: Provider.RACKSPACE,
+ Provider.RACKSPACE_NOVA_DFW: Provider.RACKSPACE,
+ Provider.RACKSPACE_NOVA_LON: Provider.RACKSPACE,
+ Provider.RACKSPACE_NOVA_ORD: Provider.RACKSPACE
+}
+
class NodeState(object):
"""
Modified: libcloud/trunk/libcloud/test/compute/test_rackspace.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/test/compute/test_rackspace.py?rev=1392147&r1=1392146&r2=1392147&view=diff
==============================================================================
--- libcloud/trunk/libcloud/test/compute/test_rackspace.py (original)
+++ libcloud/trunk/libcloud/test/compute/test_rackspace.py Mon Oct 1 00:39:50 2012
@@ -17,6 +17,8 @@ import unittest
from libcloud.utils.py3 import method_type
from libcloud.utils.py3 import httplib
+from libcloud.compute.providers import DEPRECATED_RACKSPACE_PROVIDERS
+from libcloud.compute.providers import get_driver
from libcloud.compute.drivers.rackspace import RackspaceFirstGenNodeDriver
from libcloud.compute.drivers.rackspace import RackspaceNodeDriver
from libcloud.test.compute.test_openstack import OpenStack_1_0_Tests
@@ -37,6 +39,16 @@ class RackspaceusFirstGenUsTests(OpenSta
driver_args = RACKSPACE_PARAMS
driver_kwargs = {'region': 'us'}
+ def test_error_is_thrown_on_accessing_old_constant(self):
+ for provider in DEPRECATED_RACKSPACE_PROVIDERS:
+ try:
+ get_driver(provider)
+ except Exception:
+ e = sys.exc_info()[1]
+ self.assertTrue(str(e).find('has been removed') != -1)
+ else:
+ self.fail('Exception was not thrown')
+
def test_list_sizes_pricing(self):
sizes = self.driver.list_sizes()