You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2016/10/09 08:50:53 UTC

[07/10] libcloud git commit: update code from PR review notes

update code from PR review notes


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/7a1bb847
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/7a1bb847
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/7a1bb847

Branch: refs/heads/trunk
Commit: 7a1bb8475e9d767b1eef51d23e93822325a2f4e3
Parents: 2888c72
Author: Anthony Shaw <an...@apache.org>
Authored: Sat Jun 25 20:18:59 2016 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Sat Jun 25 20:18:59 2016 +1000

----------------------------------------------------------------------
 libcloud/__init__.py | 58 ++-------------------------------
 libcloud/base.py     | 81 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/7a1bb847/libcloud/__init__.py
----------------------------------------------------------------------
diff --git a/libcloud/__init__.py b/libcloud/__init__.py
index eea2bbb..4c42e91 100644
--- a/libcloud/__init__.py
+++ b/libcloud/__init__.py
@@ -21,24 +21,9 @@ libcloud provides a unified interface to the cloud computing resources.
 import os
 import codecs
 
-from libcloud.backup.providers import Provider as BackupProvider
-from libcloud.backup.providers import get_driver as get_backup_driver
-
-from libcloud.compute.providers import Provider as ComputeProvider
-from libcloud.compute.providers import get_driver as get_compute_driver
-
-from libcloud.container.providers import Provider as ContainerProvider
-from libcloud.container.providers import get_driver as get_container_driver
-
-from libcloud.dns.providers import Provider as DnsProvider
-from libcloud.dns.providers import get_driver as get_dns_driver
-
-from libcloud.loadbalancer.providers import Provider as LoadBalancerProvider
-from libcloud.loadbalancer.providers import get_driver as \
-    get_loadbalancer_driver
-
-from libcloud.storage.providers import Provider as StorageProvider
-from libcloud.storage.providers import get_driver as get_storage_driver
+from libcloud.base import DriverType  # NOQA
+from libcloud.base import DriverTypeFactoryMap  # NOQA
+from libcloud.base import get_driver  # NOQA
 
 
 __all__ = ['__version__', 'enable_debug']
@@ -94,40 +79,3 @@ def _init_once():
             paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
 
 _init_once()
-
-
-class DriverType:
-    """ Backup-as-a-service driver """
-    BACKUP = BackupProvider
-
-    """ Compute-as-a-Service driver """
-    COMPUTE = ComputeProvider
-
-    """ Container-as-a-Service driver """
-    CONTAINER = ContainerProvider
-
-    """ DNS service provider driver """
-    DNS = DnsProvider
-
-    """ Load balancer provider-driver """
-    LOADBALANCER = LoadBalancerProvider
-
-    """ Storage-as-a-Service driver """
-    STORAGE = StorageProvider
-
-
-DriverTypeFactoryMap = {
-    DriverType.BACKUP: get_backup_driver,
-    DriverType.COMPUTE: get_compute_driver,
-    DriverType.CONTAINER: get_container_driver,
-    DriverType.DNS: get_dns_driver,
-    DriverType.LOADBALANCER: get_loadbalancer_driver,
-    DriverType.STORAGE: get_storage_driver
-}
-
-
-def get_driver(type, provider):
-    """
-    Get a driver
-    """
-    return DriverTypeFactoryMap[type](provider)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/7a1bb847/libcloud/base.py
----------------------------------------------------------------------
diff --git a/libcloud/base.py b/libcloud/base.py
new file mode 100644
index 0000000..6491f98
--- /dev/null
+++ b/libcloud/base.py
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from libcloud.backup.providers import Provider as BackupProvider
+from libcloud.backup.providers import get_driver as get_backup_driver
+
+from libcloud.compute.providers import Provider as ComputeProvider
+from libcloud.compute.providers import get_driver as get_compute_driver
+
+from libcloud.container.providers import Provider as ContainerProvider
+from libcloud.container.providers import get_driver as get_container_driver
+
+from libcloud.dns.providers import Provider as DnsProvider
+from libcloud.dns.providers import get_driver as get_dns_driver
+
+from libcloud.loadbalancer.providers import Provider as LoadBalancerProvider
+from libcloud.loadbalancer.providers import get_driver as \
+    get_loadbalancer_driver
+
+from libcloud.storage.providers import Provider as StorageProvider
+from libcloud.storage.providers import get_driver as get_storage_driver
+
+
+class DriverType(object):
+    """ Backup-as-a-service driver """
+    BACKUP = BackupProvider
+
+    """ Compute-as-a-Service driver """
+    COMPUTE = ComputeProvider
+
+    """ Container-as-a-Service driver """
+    CONTAINER = ContainerProvider
+
+    """ DNS service provider driver """
+    DNS = DnsProvider
+
+    """ Load balancer provider-driver """
+    LOADBALANCER = LoadBalancerProvider
+
+    """ Storage-as-a-Service driver """
+    STORAGE = StorageProvider
+
+
+DriverTypeFactoryMap = {
+    DriverType.BACKUP: get_backup_driver,
+    DriverType.COMPUTE: get_compute_driver,
+    DriverType.CONTAINER: get_container_driver,
+    DriverType.DNS: get_dns_driver,
+    DriverType.LOADBALANCER: get_loadbalancer_driver,
+    DriverType.STORAGE: get_storage_driver
+}
+
+
+class DriverTypeNotFoundError(KeyError):
+    def __init__(self):
+        self.message = "Driver type not found."
+
+    def __repr__(self):
+        return self.message
+
+
+def get_driver(type, provider):
+    """
+    Get a driver
+    """
+    try:
+        return DriverTypeFactoryMap[type](provider)
+    except KeyError:
+        raise DriverTypeNotFoundError()