From 1e27b6b69c46c71bb809d6243fec65e5b456d4ce Mon Sep 17 00:00:00 2001 From: Jakob Meng Date: Fri, 28 Oct 2022 18:19:24 +0200 Subject: [PATCH] Revert openstack.cloud.server parameter user_data to userdata openstacksdk's create_server() [1] takes cloud-init userdata as a plaintext string (or other data types [2]) via argument 'userdata', not 'user_data' [3]. This is 'userdata' argument of create_server() is different from the 'user_data' value which is returned [4]. The latter is base64 decoded, while the former is e.g. a plaintext string. As a (tiny) visual indicator for this difference, this patch reverts the module parameter 'user_data' to 'userdata' which was used before this module got refactored [5]. [1] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/cloud/_compute.py#L678 [2] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/cloud/_compute.py#L1757 [3] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/cloud/_compute.py#L796 [4] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/compute/v2/server.py#L223 [5] https://opendev.org/openstack/ansible-collections-openstack/commit/ac401bb354c6a1d388848a3ebd18537beba080cc Change-Id: I1f3b9314e4d82674cd2ae45f6209de5611e2b6cb --- plugins/modules/server.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/modules/server.py b/plugins/modules/server.py index fabfcbbd..8bb1e3e0 100644 --- a/plugins/modules/server.py +++ b/plugins/modules/server.py @@ -205,12 +205,11 @@ options: into active state. default: 180 type: int - user_data: + userdata: description: - Opaque blob of data which is made available to the instance. - This server attribute cannot be updated. type: str - aliases: ['userdata'] volume_size: description: - The size of the volume to create in GB if booting from volume based @@ -423,7 +422,7 @@ EXAMPLES = ''' image: "Ubuntu Server 14.04" flavor: "P-1" network: "Production" - user_data: | + userdata: | #cloud-config chpasswd: list: | @@ -444,7 +443,7 @@ EXAMPLES = ''' image: "Ubuntu Server 22.04" flavor: "P-1" network: "Production" - user_data: | + userdata: | #!/bin/sh apt update apt -y full-upgrade @@ -818,7 +817,7 @@ class ServerModule(OpenStackModule): security_groups=dict(default=[], type='list', elements='str'), state=dict(default='present', choices=['absent', 'present']), terminate_volume=dict(default=False, type='bool'), - user_data=dict(aliases=['userdata']), + userdata=dict(), volume_size=dict(type='int'), volumes=dict(default=[], type='list', elements='str'), ) @@ -1065,7 +1064,7 @@ class ServerModule(OpenStackModule): 'boot_volume', 'config_drive', 'description', 'key_name', 'name', 'network', 'reuse_ips', 'scheduler_hints', 'security_groups', 'terminate_volume', 'timeout', - 'user_data', 'volume_size', 'volumes', 'wait']: + 'userdata', 'volume_size', 'volumes', 'wait']: if self.params[k] is not None: args[k] = self.params[k]