diff --git a/lib/ansible/modules/cloud/cloudstack/cs_instance.py b/lib/ansible/modules/cloud/cloudstack/cs_instance.py index 06a2529419..c3145b99f9 100644 --- a/lib/ansible/modules/cloud/cloudstack/cs_instance.py +++ b/lib/ansible/modules/cloud/cloudstack/cs_instance.py @@ -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): diff --git a/test/integration/targets/cs_instance/tasks/present.yml b/test/integration/targets/cs_instance/tasks/present.yml index cc145e5bb0..ed089f170d 100644 --- a/test/integration/targets/cs_instance/tasks/present.yml +++ b/test/integration/targets/cs_instance/tasks/present.yml @@ -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 }}"