From 6f4d0bb6158491cc2c1d4aa28fa8658e23b2593b Mon Sep 17 00:00:00 2001 From: nishigori Date: Fri, 5 Sep 2014 22:17:49 +0900 Subject: autoscale module: fix launch_config.user_data creation via connection backward-compatible support for Python 3.3+ --- boto/ec2/autoscale/__init__.py | 5 ++++- tests/unit/ec2/autoscale/test_group.py | 4 +++- 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', -- cgit v1.2.1