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 2013/08/17 18:06:10 UTC

[1/6] git commit: Add a test for CloudStack compute driver which verifies that driver throws an exception if user instantiates the driver correctly, but doesn't provider host and path argument.

Updated Branches:
  refs/heads/trunk b651f6de1 -> e72a88b26


Add a test for CloudStack compute driver which verifies that driver throws an
exception if user instantiates the driver correctly, but doesn't provider host
and path argument.


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

Branch: refs/heads/trunk
Commit: b7252c5b1753dc3df83723799d5f0f47eaedb401
Parents: b651f6d
Author: Tomaz Muraus <to...@apache.org>
Authored: Sat Aug 17 16:45:55 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Aug 17 16:45:55 2013 +0200

----------------------------------------------------------------------
 libcloud/test/compute/test_cloudstack.py | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/b7252c5b/libcloud/test/compute/test_cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_cloudstack.py b/libcloud/test/compute/test_cloudstack.py
index 31562ff..2f27539 100644
--- a/libcloud/test/compute/test_cloudstack.py
+++ b/libcloud/test/compute/test_cloudstack.py
@@ -27,7 +27,8 @@ except ImportError:
     import json
 
 from libcloud.compute.drivers.cloudstack import CloudStackNodeDriver
-from libcloud.compute.types import DeploymentError, LibcloudError
+from libcloud.compute.types import DeploymentError, LibcloudError, Provider
+from libcloud.compute.providers import get_driver
 from libcloud.compute.base import Node, NodeImage, NodeSize, NodeLocation
 
 from libcloud.test import unittest
@@ -48,6 +49,19 @@ class CloudStackNodeDriverTest(unittest.TestCase, TestCaseMixin):
         CloudStackMockHttp.fixture_tag = 'default'
         self.driver.connection.poll_interval = 0.0
 
+    def test_user_must_provide_host_and_path(self):
+        expected_msg = 'When instantiating CloudStack driver directly ' + \
+                       'you also need to provide host and path argument'
+        cls = get_driver(Provider.CLOUDSTACK)
+
+        self.assertRaisesRegexp(Exception, expected_msg, cls,
+                                'key', 'secret')
+
+        try:
+            cls('key', 'secret', True, 'localhost', '/path')
+        except Exception:
+             self.fail('host and path provided but driver raised an exception')
+
     def test_create_node_immediate_failure(self):
         size = self.driver.list_sizes()[0]
         image = self.driver.list_images()[0]


[6/6] git commit: Update CHANGES.

Posted by to...@apache.org.
Update CHANGES.


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

Branch: refs/heads/trunk
Commit: e72a88b262e5074abff28ce337bfe07c44a7c2bc
Parents: 712a062
Author: Tomaz Muraus <to...@apache.org>
Authored: Sat Aug 17 17:51:48 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Aug 17 17:51:48 2013 +0200

----------------------------------------------------------------------
 CHANGES | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/e72a88b2/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index c2fc0e1..addbc69 100644
--- a/CHANGES
+++ b/CHANGES
@@ -62,6 +62,12 @@ Changes with Apache Libcloud in development
       and CloudFiles driver. (LIBCLOUD-369)
       [Stefan Friesel]
 
+  *) Load Balancer
+
+   - Expose CloudStack driver directly through the Provider.CLOUDSTACK
+     constant.
+     [Tomaz Muraus]
+
 Changes with Apache Libcloud 0.13.0:
 
  *) General


[4/6] git commit: Add a test case for ninefold loadbalancer driver.

Posted by to...@apache.org.
Add a test case for ninefold loadbalancer driver.


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

Branch: refs/heads/trunk
Commit: 4e48b4587d8af6cce0cc083db10287c8a9f933e3
Parents: 2b5f467
Author: Tomaz Muraus <to...@apache.org>
Authored: Sat Aug 17 17:10:13 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Aug 17 17:10:13 2013 +0200

----------------------------------------------------------------------
 libcloud/test/loadbalancer/test_ninefold.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/4e48b458/libcloud/test/loadbalancer/test_ninefold.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_ninefold.py b/libcloud/test/loadbalancer/test_ninefold.py
new file mode 100644
index 0000000..c3c514f
--- /dev/null
+++ b/libcloud/test/loadbalancer/test_ninefold.py
@@ -0,0 +1,15 @@
+import sys
+import unittest
+
+from libcloud.loadbalancer.types import Provider
+from libcloud.loadbalancer.providers import get_driver
+
+
+class NinefoldLbTestCase(unittest.TestCase):
+    def test_driver_instantiation(self):
+        cls = get_driver(Provider.NINEFOLD)
+        cls('username', 'key')
+
+
+if __name__ == '__main__':
+    sys.exit(unittest.main())


[5/6] git commit: Use unittest2.

Posted by to...@apache.org.
Use unittest2.


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

Branch: refs/heads/trunk
Commit: 712a06236609ce98226ae90d418e919a6b09d7d2
Parents: 4e48b45
Author: Tomaz Muraus <to...@apache.org>
Authored: Sat Aug 17 17:17:12 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Aug 17 17:17:12 2013 +0200

----------------------------------------------------------------------
 libcloud/test/loadbalancer/test_cloudstack.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/712a0623/libcloud/test/loadbalancer/test_cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_cloudstack.py b/libcloud/test/loadbalancer/test_cloudstack.py
index 25b9cfb..bea57fd 100644
--- a/libcloud/test/loadbalancer/test_cloudstack.py
+++ b/libcloud/test/loadbalancer/test_cloudstack.py
@@ -1,5 +1,4 @@
 import sys
-import unittest
 
 try:
     import simplejson as json
@@ -16,6 +15,7 @@ from libcloud.loadbalancer.providers import get_driver
 from libcloud.loadbalancer.base import LoadBalancer, Member, Algorithm
 from libcloud.loadbalancer.drivers.cloudstack import CloudStackLBDriver
 
+from libcloud.test import unittest
 from libcloud.test import MockHttpTestCase
 from libcloud.test.file_fixtures import LoadBalancerFileFixtures
 


[3/6] git commit: Modify CloudStackLB driver to throw if user instantiates it directly, but doesn't pass in host and path.

Posted by to...@apache.org.
Modify CloudStackLB driver to throw if user instantiates it directly, but
doesn't pass in host and path.


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

Branch: refs/heads/trunk
Commit: 2b5f467e4985b764ebe93d0f0315e5fb37473145
Parents: 670ef06
Author: Tomaz Muraus <to...@apache.org>
Authored: Sat Aug 17 16:59:52 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Aug 17 16:59:52 2013 +0200

----------------------------------------------------------------------
 libcloud/loadbalancer/drivers/cloudstack.py   | 22 +++++++++++++++++--
 libcloud/test/loadbalancer/test_cloudstack.py | 25 +++++++++++++++++++---
 2 files changed, 42 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/2b5f467e/libcloud/loadbalancer/drivers/cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/loadbalancer/drivers/cloudstack.py b/libcloud/loadbalancer/drivers/cloudstack.py
index 0a4e8a7..1cedfcc 100644
--- a/libcloud/loadbalancer/drivers/cloudstack.py
+++ b/libcloud/loadbalancer/drivers/cloudstack.py
@@ -16,6 +16,7 @@
 from libcloud.common.cloudstack import CloudStackDriverMixIn
 from libcloud.loadbalancer.base import LoadBalancer, Member, Driver, Algorithm
 from libcloud.loadbalancer.base import DEFAULT_ALGORITHM
+from libcloud.loadbalancer.types import Provider
 from libcloud.loadbalancer.types import State
 from libcloud.utils.misc import reverse_dict
 
@@ -26,6 +27,7 @@ class CloudStackLBDriver(CloudStackDriverMixIn, Driver):
     api_name = 'cloudstack_lb'
     name = 'CloudStack'
     website = 'http://cloudstack.org/'
+    type = Provider.CLOUDSTACK
 
     _VALUE_TO_ALGORITHM_MAP = {
         'roundrobin': Algorithm.ROUND_ROBIN,
@@ -37,11 +39,27 @@ class CloudStackLBDriver(CloudStackDriverMixIn, Driver):
         'Active': State.RUNNING,
     }
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, key, secret=None, secure=True, host=None,
+                 path=None, port=None, *args, **kwargs):
         """
         @inherits: L{Driver.__init__}
         """
-        super(CloudStackLBDriver, self).__init__(*args, **kwargs)
+        host = host if host else self.host
+        path = path if path else self.path
+
+        if path is not None:
+            self.path = path
+
+        if host is not None:
+            self.host = host
+
+        if (self.type == Provider.CLOUDSTACK) and (not host or not path):
+            raise Exception('When instantiating CloudStack driver directly ' +
+                            'you also need to provide host and path argument')
+
+        super(CloudStackLBDriver, self).__init__(key=key, secret=secret,
+                                                 secure=secure,
+                                                 host=host, port=port)
 
     def list_protocols(self):
         """

http://git-wip-us.apache.org/repos/asf/libcloud/blob/2b5f467e/libcloud/test/loadbalancer/test_cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_cloudstack.py b/libcloud/test/loadbalancer/test_cloudstack.py
index 6c924b9..25b9cfb 100644
--- a/libcloud/test/loadbalancer/test_cloudstack.py
+++ b/libcloud/test/loadbalancer/test_cloudstack.py
@@ -11,6 +11,8 @@ from libcloud.utils.py3 import urlparse
 from libcloud.utils.py3 import parse_qsl
 
 from libcloud.common.types import LibcloudError
+from libcloud.loadbalancer.types import Provider
+from libcloud.loadbalancer.providers import get_driver
 from libcloud.loadbalancer.base import LoadBalancer, Member, Algorithm
 from libcloud.loadbalancer.drivers.cloudstack import CloudStackLBDriver
 
@@ -21,13 +23,30 @@ class CloudStackLBTests(unittest.TestCase):
     def setUp(self):
         CloudStackLBDriver.connectionCls.conn_classes = \
             (None, CloudStackMockHttp)
+
+        CloudStackLBDriver.path = '/test/path'
+        CloudStackLBDriver.type = -1
+        CloudStackLBDriver.name = 'CloudStack'
         self.driver = CloudStackLBDriver('apikey', 'secret')
-        self.driver.path = '/test/path'
-        self.driver.type = -1
-        self.driver.name = 'CloudStack'
         CloudStackMockHttp.fixture_tag = 'default'
         self.driver.connection.poll_interval = 0.0
 
+    def test_user_must_provide_host_and_path(self):
+        CloudStackLBDriver.path = None
+        CloudStackLBDriver.type = Provider.CLOUDSTACK
+
+        expected_msg = 'When instantiating CloudStack driver directly ' + \
+                       'you also need to provide host and path argument'
+        cls = get_driver(Provider.CLOUDSTACK)
+
+        self.assertRaisesRegexp(Exception, expected_msg, cls,
+                                'key', 'secret')
+
+        try:
+            cls('key', 'secret', True, 'localhost', '/path')
+        except Exception:
+             self.fail('host and path provided but driver raised an exception')
+
     def test_list_supported_algorithms(self):
         algorithms = self.driver.list_supported_algorithms()
 


[2/6] git commit: Add a provider constant for CloudStack loadbalancer driver and expose it through get_driver.

Posted by to...@apache.org.
Add a provider constant for CloudStack loadbalancer driver and expose it through
get_driver.


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

Branch: refs/heads/trunk
Commit: 670ef06615e989b936569eb0903e8a62877597e6
Parents: b7252c5
Author: Tomaz Muraus <to...@apache.org>
Authored: Sat Aug 17 16:59:09 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Sat Aug 17 16:59:09 2013 +0200

----------------------------------------------------------------------
 libcloud/loadbalancer/providers.py | 5 ++++-
 libcloud/loadbalancer/types.py     | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/670ef066/libcloud/loadbalancer/providers.py
----------------------------------------------------------------------
diff --git a/libcloud/loadbalancer/providers.py b/libcloud/loadbalancer/providers.py
index cf2411d..3ed140d 100644
--- a/libcloud/loadbalancer/providers.py
+++ b/libcloud/loadbalancer/providers.py
@@ -35,7 +35,10 @@ DRIVERS = {
         Provider.BRIGHTBOX:
             ('libcloud.loadbalancer.drivers.brightbox', 'BrightboxLBDriver'),
         Provider.ELB:
-            ('libcloud.loadbalancer.drivers.elb', 'ElasticLBDriver')
+            ('libcloud.loadbalancer.drivers.elb', 'ElasticLBDriver'),
+        Provider.CLOUDSTACK:
+            ('libcloud.loadbalancer.drivers.cloudstack', 'CloudStackLBDriver')
+
 }
 
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/670ef066/libcloud/loadbalancer/types.py
----------------------------------------------------------------------
diff --git a/libcloud/loadbalancer/types.py b/libcloud/loadbalancer/types.py
index 95f4a9f..6608ca4 100644
--- a/libcloud/loadbalancer/types.py
+++ b/libcloud/loadbalancer/types.py
@@ -38,6 +38,7 @@ class Provider(object):
     RACKSPACE_UK = 'rackspace_uk'
     BRIGHTBOX = 'brightbox'
     ELB = 'elb'
+    CLOUDSTACK = 'cloudstack'
 
 
 class State(object):