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
This commit is contained in:
parent
ba4f26313b
commit
0d55081ba8
1 changed files with 6 additions and 6 deletions
|
@ -541,15 +541,15 @@ EXAMPLES = '''
|
|||
|
||||
'''
|
||||
|
||||
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
|
||||
|
@ -1042,7 +1042,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
|
||||
|
|
Loading…
Reference in a new issue