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()