summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornishigori <nishigori.tak@gmail.com>2014-09-05 22:17:49 +0900
committernishigori <nishigori.tak@gmail.com>2014-09-05 22:17:49 +0900
commit6f4d0bb6158491cc2c1d4aa28fa8658e23b2593b (patch)
tree3c89e9b64b9673c48b36bb69bd2fee8a8df692b7
parent7a397419e48b0f1b3dc76f62da624fe3ea7828cc (diff)
downloadboto-6f4d0bb6158491cc2c1d4aa28fa8658e23b2593b.tar.gz
autoscale module: fix launch_config.user_data creation via connection
backward-compatible support for Python 3.3+
-rw-r--r--boto/ec2/autoscale/__init__.py5
-rwxr-xr-xtests/unit/ec2/autoscale/test_group.py4
2 files changed, 7 insertions, 2 deletions
diff --git a/boto/ec2/autoscale/__init__.py b/boto/ec2/autoscale/__init__.py
index 96c42848..5a58748d 100644
--- a/boto/ec2/autoscale/__init__.py
+++ b/boto/ec2/autoscale/__init__.py
@@ -222,7 +222,10 @@ class AutoScaleConnection(AWSQueryConnection):
if launch_config.key_name:
params['KeyName'] = launch_config.key_name
if launch_config.user_data:
- params['UserData'] = base64.b64encode(launch_config.user_data).decode('utf-8')
+ user_data = launch_config.user_data
+ if isinstance(user_data, six.text_type):
+ user_data = user_data.encode('utf-8')
+ params['UserData'] = base64.b64encode(user_data).decode('utf-8')
if launch_config.kernel_id:
params['KernelId'] = launch_config.kernel_id
if launch_config.ramdisk_id:
diff --git a/tests/unit/ec2/autoscale/test_group.py b/tests/unit/ec2/autoscale/test_group.py
index 19e2c7ca..25e621de 100755
--- a/tests/unit/ec2/autoscale/test_group.py
+++ b/tests/unit/ec2/autoscale/test_group.py
@@ -27,6 +27,8 @@ from datetime import datetime
from tests.unit import unittest
from tests.unit import AWSMockServiceTestCase
+from boto.compat import six
+
from boto.ec2.autoscale import AutoScaleConnection
from boto.ec2.autoscale.group import AutoScalingGroup
from boto.ec2.autoscale.policy import ScalingPolicy
@@ -385,7 +387,7 @@ class TestLaunchConfiguration(AWSMockServiceTestCase):
'EbsOptimized': 'false',
'LaunchConfigurationName': 'launch_config',
'ImageId': '123456',
- 'UserData': base64.b64encode('#!/bin/bash').decode('utf-8'),
+ 'UserData': base64.b64encode(six.b('#!/bin/bash')).decode('utf-8'),
'InstanceMonitoring.Enabled': 'false',
'InstanceType': 'm1.large',
'SecurityGroups.member.1': 'group1',