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:48 UTC

[02/10] libcloud git commit: added doc example and test

added doc example and test


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

Branch: refs/heads/trunk
Commit: 93d387006d0eb5a1a194098aa480809d2d7baa03
Parents: f33df13
Author: Anthony Shaw <an...@apache.org>
Authored: Fri Jun 24 15:53:31 2016 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Fri Jun 24 15:53:31 2016 +1000

----------------------------------------------------------------------
 docs/getting_started.rst                        | 14 +++++------
 libcloud/__init__.py                            | 26 +++++++++++++++++---
 .../fixtures/docker/mac_124/create_image.json   |  1 +
 libcloud/test/test_init.py                      |  4 +++
 4 files changed, 35 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/93d38700/docs/getting_started.rst
----------------------------------------------------------------------
diff --git a/docs/getting_started.rst b/docs/getting_started.rst
index 29ddb4b..c407e9c 100644
--- a/docs/getting_started.rst
+++ b/docs/getting_started.rst
@@ -40,10 +40,10 @@ with any of the Libcloud drivers.
 
     from pprint import pprint
 
-    from libcloud.compute.types import Provider
-    from libcloud.compute.providers import get_driver
+    import libcloud
+    
+    cls = libcloud.get_driver(libcloud.DriverType.COMPUTE, libcloud.DriverType.COMPUTE.RACKSPACE)
 
-    cls = get_driver(Provider.RACKSPACE)
 
 2. Instantiate the driver with your provider credentials
 
@@ -70,10 +70,10 @@ see provider-specific documentation and the driver docstrings.
 
     from pprint import pprint
 
-    from libcloud.compute.types import Provider
-    from libcloud.compute.providers import get_driver
-
-    cls = get_driver(Provider.RACKSPACE)
+    import libcloud
+    
+    cls = libcloud.get_driver(libcloud.DriverType.COMPUTE, libcloud.DriverType.COMPUTE.RACKSPACE)
+    
     driver = cls('my username', 'my api key')
 
     pprint(driver.list_sizes())

http://git-wip-us.apache.org/repos/asf/libcloud/blob/93d38700/libcloud/__init__.py
----------------------------------------------------------------------
diff --git a/libcloud/__init__.py b/libcloud/__init__.py
index 69b2a0a..38ebfcb 100644
--- a/libcloud/__init__.py
+++ b/libcloud/__init__.py
@@ -22,11 +22,22 @@ 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
 
 
 __all__ = ['__version__', 'enable_debug']
@@ -104,9 +115,18 @@ class DriverType:
     STORAGE = StorageProvider
 
 
-def get_driver(provider):
-    """
+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
     """
-    pass
\ No newline at end of file
+    return DriverTypeFactoryMap[type](provider)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/93d38700/libcloud/test/container/fixtures/docker/mac_124/create_image.json
----------------------------------------------------------------------
diff --git a/libcloud/test/container/fixtures/docker/mac_124/create_image.json b/libcloud/test/container/fixtures/docker/mac_124/create_image.json
new file mode 100644
index 0000000..4509f55
--- /dev/null
+++ b/libcloud/test/container/fixtures/docker/mac_124/create_image.json
@@ -0,0 +1 @@
+{"status":"Download complete","progressDetail":{},"id":"cf55d61f5307b7a18a45980971d6cfd40b737dd661879c4a6b3f2aecc3bc37b0"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/93d38700/libcloud/test/test_init.py
----------------------------------------------------------------------
diff --git a/libcloud/test/test_init.py b/libcloud/test/test_init.py
index ad709d7..0276850 100644
--- a/libcloud/test/test_init.py
+++ b/libcloud/test/test_init.py
@@ -24,6 +24,7 @@ try:
 except ImportError:
     have_paramiko = False
 
+import libcloud
 from libcloud import _init_once
 from libcloud.common.base import LoggingHTTPConnection
 from libcloud.common.base import LoggingHTTPSConnection
@@ -56,6 +57,9 @@ class TestUtils(unittest.TestCase):
             paramiko_log_level = logger.getEffectiveLevel()
             self.assertEqual(paramiko_log_level, logging.DEBUG)
 
+    def test_factory(self):
+        driver = libcloud.get_driver(libcloud.DriverType.COMPUTE, libcloud.DriverType.COMPUTE.EC2)
+        self.assertEqual(driver.__name__, 'EC2NodeDriver')
 
 if __name__ == '__main__':
     sys.exit(unittest.main())