refine disk size validation and update Proxmox API format for extra disks

This commit is contained in:
Ludovic Cartier
2026-06-04 20:45:22 +02:00
parent 3276afa34c
commit 41cf8f75be
2 changed files with 11 additions and 4 deletions
+3 -3
View File
@@ -41,11 +41,11 @@
- _disk.disk is defined
- _disk.disk | length > 0
- _disk.size is defined
- _disk.size is match('^[0-9]+[KMGT]$')
- _disk.size | string is match('^[0-9]+[GT]?$')
fail_msg: >-
Disque supplémentaire invalide : {{ _disk }}.
'disk' (ex: scsi1) et 'size' (ex: 100G) sont obligatoires.
La taille doit être absolue (pas de préfixe +).
'disk' (ex: scsi1) et 'size' (ex: '100G' ou 100) sont obligatoires.
Formats acceptés : entier en GB (ex: 20) ou chaîne avec unité G/T (ex: '20G', '2T').
loop: "{{ vm_extra_disks }}"
loop_control:
loop_var: _disk
+8 -1
View File
@@ -64,7 +64,14 @@
- name: "deploy-vm | add extra disk '{{ _disk.disk }}' ({{ _disk.size }})"
vars:
_opts: "{{ _disk.storage | default(proxmox_storage) }}:0,size={{ _disk.size\
# Proxmox API format : storage:SIZE_GB[,options]
# SIZE_GB doit être un entier en GB (sans unité).
# Formats acceptés : entier brut (20 → 20 GB), chaîne avec unité G ("20G") ou T ("2T").
_size_gb: >-
{{ (_disk.size | string)[:-1] | int * 1024 if (_disk.size | string)[-1] | upper == 'T'
else (_disk.size | string)[:-1] | int if (_disk.size | string)[-1] | upper == 'G'
else _disk.size | int }}
_opts: "{{ _disk.storage | default(proxmox_storage) }}:{{ _size_gb\
}}{{ ',ssd=1' if _disk.ssd | default(false) | bool else ''\
}}{{ ',iothread=1' if _disk.iothread | default(false) | bool else ''\
}}{{ ',backup=0' if not (_disk.backup | default(true) | bool) else ''\