Repository: libcloud
Updated Branches:
  refs/heads/trunk 4b4a01946 -> a4a58f9c5


Fix cloudstack user data on Python 3

A wrongly nested string decode caused a TypeError as b64encode
expects a byte string in Python 3 and conversely the url parameter
needs to be a normal string.


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

Branch: refs/heads/trunk
Commit: 8a629fed41cec626d566d813ad33e72a64b4216d
Parents: 4b4a019
Author: Stefan Friesel <stefan.frie...@exoscale.ch>
Authored: Thu Jun 2 09:25:19 2016 +0200
Committer: Anthony Shaw <anthonys...@apache.org>
Committed: Fri Jun 17 08:20:19 2016 +1000

----------------------------------------------------------------------
 libcloud/compute/drivers/cloudstack.py   |  2 +-
 libcloud/test/compute/test_cloudstack.py | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/8a629fed/libcloud/compute/drivers/cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudstack.py 
b/libcloud/compute/drivers/cloudstack.py
index 85b9a64..aff5192 100644
--- a/libcloud/compute/drivers/cloudstack.py
+++ b/libcloud/compute/drivers/cloudstack.py
@@ -1633,7 +1633,7 @@ class CloudStackNodeDriver(CloudStackDriverMixIn, 
NodeDriver):
             server_params['keypair'] = ex_key_name
 
         if ex_user_data:
-            ex_user_data = base64.b64encode(b(ex_user_data).decode('ascii'))
+            ex_user_data = base64.b64encode(b(ex_user_data)).decode('ascii')
             server_params['userdata'] = ex_user_data
 
         if ex_security_groups:

http://git-wip-us.apache.org/repos/asf/libcloud/blob/8a629fed/libcloud/test/compute/test_cloudstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_cloudstack.py 
b/libcloud/test/compute/test_cloudstack.py
index 12449e3..2faeb21 100644
--- a/libcloud/test/compute/test_cloudstack.py
+++ b/libcloud/test/compute/test_cloudstack.py
@@ -221,6 +221,18 @@ class CloudStackCommonTestCase(TestCaseMixin):
         self.assertEqual(node.name, 'test')
         self.assertEqual(node.extra['key_name'], 'foobar')
 
+    def test_create_node_ex_userdata(self):
+        size = self.driver.list_sizes()[0]
+        image = self.driver.list_images()[0]
+        location = self.driver.list_locations()[0]
+        CloudStackMockHttp.fixture_tag = 'deploykeyname'
+        node = self.driver.create_node(name='test',
+                                       location=location,
+                                       image=image,
+                                       size=size,
+                                       ex_userdata='foobar')
+        self.assertEqual(node.name, 'test')
+
     def test_create_node_project(self):
         size = self.driver.list_sizes()[0]
         image = self.driver.list_images()[0]

Reply via email to