cs_instance: fix py3 user_data base64 (#37135)

* cs_instance: tests: reproduce py3 user_data base64 issue

* cs_instance: fix base64 encoding with py3
This commit is contained in:
René Moser 2018-03-08 17:05:57 +01:00 committed by GitHub
parent 4b6b2d4206
commit 0130490faa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 4 deletions

View file

@ -348,8 +348,13 @@ instance_name:
import base64
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.cloudstack import (AnsibleCloudStack, CS_HYPERVISORS, cs_argument_spec,
cs_required_together)
from ansible.module_utils._text import to_bytes, to_text
from ansible.module_utils.cloudstack import (
AnsibleCloudStack,
CS_HYPERVISORS,
cs_argument_spec,
cs_required_together
)
class AnsibleCloudStackInstance(AnsibleCloudStack):
@ -592,7 +597,7 @@ class AnsibleCloudStackInstance(AnsibleCloudStack):
def get_user_data(self):
user_data = self.module.params.get('user_data')
if user_data is not None:
user_data = base64.b64encode(str(user_data))
user_data = to_text(base64.b64encode(to_bytes(user_data)))
return user_data
def get_details(self):

View file

@ -15,6 +15,11 @@
affinity_group: "{{ cs_resource_prefix }}-ag"
security_group: "{{ cs_resource_prefix }}-sg"
ssh_key: "{{ cs_resource_prefix }}-sshkey"
user_data: |
#cloud-config
package_upgrade: true
packages:
- tmux
tags: []
register: instance
check_mode: true
@ -32,6 +37,11 @@
affinity_group: "{{ cs_resource_prefix }}-ag"
security_group: "{{ cs_resource_prefix }}-sg"
ssh_key: "{{ cs_resource_prefix }}-sshkey"
user_data: |
#cloud-config
package_upgrade: true
packages:
- tmux
tags: []
register: instance
- name: verify create instance
@ -54,6 +64,11 @@
affinity_group: "{{ cs_resource_prefix }}-ag"
security_group: "{{ cs_resource_prefix }}-sg"
ssh_key: "{{ cs_resource_prefix }}-sshkey"
user_data: |
#cloud-config
package_upgrade: true
packages:
- tmux
tags: []
register: instance
- name: verify create instance idempotence
@ -84,7 +99,6 @@
- instance.service_offering == "{{ test_cs_instance_offering_1 }}"
- instance.state == "Running"
- name: test running instance not updated
cs_instance:
name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}"