Merge "Encode user data to utf-8 when creating a server"

This commit is contained in:
Jenkins 2012-10-10 16:57:11 +00:00 committed by Gerrit Code Review
commit e8c22cd130
2 changed files with 36 additions and 0 deletions

View File

@ -72,6 +72,8 @@ class BootingManagerWithFind(base.ManagerWithFind):
if userdata:
if hasattr(userdata, 'read'):
userdata = userdata.read()
elif isinstance(userdata, unicode):
userdata = userdata.encode('utf-8')
body["server"]["user_data"] = base64.b64encode(userdata)
if meta:
body["server"]["metadata"] = meta

View File

@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
import StringIO
from novaclient import exceptions
@ -59,6 +61,38 @@ class ServersTest(utils.TestCase):
cs.assert_called('POST', '/servers')
self.assertTrue(isinstance(s, servers.Server))
def test_create_server_userdata_unicode(self):
s = cs.servers.create(
name="My server",
image=1,
flavor=1,
meta={'foo': 'bar'},
userdata=u'こんにちは',
key_name="fakekey",
files={
'/etc/passwd': 'some data', # a file
'/tmp/foo.txt': StringIO.StringIO('data'), # a stream
},
)
cs.assert_called('POST', '/servers')
self.assertTrue(isinstance(s, servers.Server))
def test_create_server_userdata_utf8(self):
s = cs.servers.create(
name="My server",
image=1,
flavor=1,
meta={'foo': 'bar'},
userdata='こんにちは',
key_name="fakekey",
files={
'/etc/passwd': 'some data', # a file
'/tmp/foo.txt': StringIO.StringIO('data'), # a stream
},
)
cs.assert_called('POST', '/servers')
self.assertTrue(isinstance(s, servers.Server))
def test_update_server(self):
s = cs.servers.get(1234)