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 2012/04/18 21:01:06 UTC
svn commit: r1327631 - in /libcloud/trunk: CHANGES
libcloud/compute/drivers/openstack.py test/compute/test_openstack.py
Author: tomaz
Date: Wed Apr 18 19:01:05 2012
New Revision: 1327631
URL: http://svn.apache.org/viewvc?rev=1327631&view=rev
Log:
Add ex_userdata argument to the OpenStack 1.1 driver. This patch has been
contributed by Jay Doane and is part of LIBCLOUD-185.
Modified:
libcloud/trunk/CHANGES
libcloud/trunk/libcloud/compute/drivers/openstack.py
libcloud/trunk/test/compute/test_openstack.py
Modified: libcloud/trunk/CHANGES
URL: http://svn.apache.org/viewvc/libcloud/trunk/CHANGES?rev=1327631&r1=1327630&r2=1327631&view=diff
==============================================================================
--- libcloud/trunk/CHANGES (original)
+++ libcloud/trunk/CHANGES Wed Apr 18 19:01:05 2012
@@ -44,6 +44,9 @@ Changes with Apache Libcloud in developm
- Allow reverse dns updates for cloud ip extensions
[Neil Wilson, Tomaz Muraus]
+ - Add ex_userdata argument to the OpenStack 1.1 driver.
+ [Jay Doane]
+
*) Storage
- Large object upload support for CloudFiles driver
Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1327631&r1=1327630&r2=1327631&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Wed Apr 18 19:01:05 2012
@@ -38,7 +38,8 @@ import base64
from xml.etree import ElementTree as ET
-from libcloud.common.openstack import OpenStackBaseConnection, OpenStackDriverMixin
+from libcloud.common.openstack import OpenStackBaseConnection
+from libcloud.common.openstack import OpenStackDriverMixin
from libcloud.common.types import MalformedResponseError, LibcloudError
from libcloud.compute.types import NodeState, Provider
from libcloud.compute.base import NodeSize, NodeImage
@@ -807,9 +808,15 @@ class OpenStack_1_1_NodeDriver(OpenStack
the node
@type ex_files: C{dict}
- @keyword ex_keyname: Name of existing public key to inject into instance
+ @keyword ex_keyname: Name of existing public key to inject into
+ instance
@type ex_keyname: C{string}
+ @keyword ex_userdata: String containing user data
+ see
+ https://help.ubuntu.com/community/CloudInit
+ @type ex_userdata: C{string}
+
"""
server_params = self._create_args_to_params(None, **kwargs)
@@ -871,6 +878,10 @@ class OpenStack_1_1_NodeDriver(OpenStack
if 'ex_keyname' in kwargs:
server_params['key_name'] = kwargs['ex_keyname']
+ if 'ex_userdata' in kwargs:
+ server_params['user_data'] = base64.b64encode(
+ b(kwargs['ex_userdata'])).decode('ascii')
+
if 'name' in kwargs:
server_params['name'] = kwargs.get('name')
else:
Modified: libcloud/trunk/test/compute/test_openstack.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_openstack.py?rev=1327631&r1=1327630&r2=1327631&view=diff
==============================================================================
--- libcloud/trunk/test/compute/test_openstack.py (original)
+++ libcloud/trunk/test/compute/test_openstack.py Wed Apr 18 19:01:05 2012
@@ -699,11 +699,12 @@ class OpenStack_1_1_Tests(unittest.TestC
self.assertEqual(node.extra['password'], 'racktestvJq7d3')
self.assertEqual(node.extra['metadata']['My Server Name'], 'Apache1')
- def test_create_node_with_ex_keyname(self):
+ def test_create_node_with_ex_keyname_and_ex_userdata(self):
image = NodeImage(id=11, name='Ubuntu 8.10 (intrepid)', driver=self.driver)
size = NodeSize(1, '256 slice', None, None, None, None, driver=self.driver)
node = self.driver.create_node(name='racktest', image=image, size=size,
- ex_keyname='devstack')
+ ex_keyname='devstack',
+ ex_userdata='sample data')
self.assertEqual(node.id, '26f7fbee-8ce1-4c28-887a-bfe8e4bb10fe')
self.assertEqual(node.name, 'racktest')
self.assertEqual(node.extra['password'], 'racktestvJq7d3')