Skip to content

Commit

Permalink
Bkprt py3 ec2 user data (#37664)
Browse files Browse the repository at this point in the history
* Fix use of user_data field with spot_price in ec2 module (#37628)

The user_data field is base64 encoded inside of the boto library.  In
Python3, base64 must be used with byte strings.  So we make sure to
encode the user_data into a byte string before passing it on to the boto
library.

Fixes #34978

(cherry picked from commit 0d55081)

* Python3 ec2 fix added to changelog
  • Loading branch information
abadger authored and nitzmahone committed Mar 29, 2018
1 parent 97a0516 commit 389c4d1
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/py3-ec2-user_data.yaml
@@ -0,0 +1,2 @@
bugfixes:
- ec2 - Fix ec2 user_data parameter to properly convert to base64 on python3 (https://github.com/ansible/ansible/pull/37628)
12 changes: 6 additions & 6 deletions lib/ansible/modules/cloud/amazon/ec2.py
Expand Up @@ -620,15 +620,15 @@
'''

import traceback
import time
import traceback
from ast import literal_eval
from ansible.module_utils.six import get_function_code, string_types
from ansible.module_utils._text import to_text
from distutils.version import LooseVersion

from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.ec2 import get_aws_connection_info, ec2_argument_spec, ec2_connect
from distutils.version import LooseVersion
from ansible.module_utils.six import string_types
from ansible.module_utils.six import get_function_code, string_types
from ansible.module_utils._text import to_bytes, to_text

try:
import boto.ec2
Expand Down Expand Up @@ -1121,7 +1121,7 @@ def create_instances(module, ec2, vpc, override_count=None):
'instance_type': instance_type,
'kernel_id': kernel,
'ramdisk_id': ramdisk,
'user_data': user_data}
'user_data': to_bytes(user_data, errors='surrogate_or_strict')}

if ebs_optimized:
params['ebs_optimized'] = ebs_optimized
Expand Down

0 comments on commit 389c4d1

Please sign in to comment.