From 72d063b312c27d8ec737d34414d4d3712f4d7558 Mon Sep 17 00:00:00 2001 From: Jim Enright Date: Wed, 1 Jul 2026 23:12:40 +0100 Subject: [PATCH] Refactor ML resource pool configuration to include parent pool name and workspace quota structure Signed-off-by: Jim Enright --- plugins/modules/ml.py | 64 +++++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/plugins/modules/ml.py b/plugins/modules/ml.py index 4db3300d..26153cd6 100644 --- a/plugins/modules/ml.py +++ b/plugins/modules/ml.py @@ -348,27 +348,32 @@ type: dict required: False suboptions: - cpu: + parent_pool_name: description: - - The CPU resource pool configuration. - type: str - required: True - aliases: - - cpu_quota - gpu: - description: - - The GPU resource pool configuration. + - The name of the parent resource pool. type: str required: False - aliases: - - gpu_quota - memory: + workspace_quota: description: - - The memory resource pool configuration. - type: str - required: True - aliases: - - memory_quota + - The resource quota for the workspace. + type: dict + required: False + suboptions: + cpu_quota: + description: + - The quota for the CPU resource. + type: str + required: True + gpu_quota: + description: + - The quota for the GPU resource. + type: str + required: False + memory_quota: + description: + - The quota for the memory resource. + type: str + required: True outbound_type: description: - Outbound type for the ML Workspace. @@ -863,12 +868,15 @@ def __init__(self): required=False, type="dict", options=dict( - cpu=dict(required=True, type="str", aliases=["cpu_quota"]), - gpu=dict(required=False, type="str", aliases=["gpu_quota"]), - memory=dict( - required=True, - type="str", - aliases=["memory_quota"], + parent_pool_name=dict(required=False, type="str"), + workspace_quota=dict( + required=False, + type="dict", + options=dict( + cpu_quota=dict(required=True, type="str"), + gpu_quota=dict(required=False, type="str"), + memory_quota=dict(required=True, type="str"), + ), ), ), ), @@ -1060,6 +1068,14 @@ def process(self): if self.database: database_config = snake_dict_to_camel_dict(self.database) + # Convert resource_pool from snake_case to camelCase for API + # New structure: {parentPoolName?, workspaceQuota?: {cpuQuota, gpuQuota?, memoryQuota}} + resource_pool_config = ( + snake_dict_to_camel_dict(self.resource_pool) + if self.resource_pool + else None + ) + client.create_workspace( workspace_name=self.name, environment_name=self.env, @@ -1079,7 +1095,7 @@ def process(self): enable_enhanced_performance=self.enhanced_volume_performance, enable_global_access_loadbalancer=self.global_access_loadbalancer, static_subdomain=self.subdomain, - resource_pool_config=self.resource_pool, + resource_pool_config=resource_pool_config, outbound_types=self.outbound_type, )