[IMP] qemu: RAM presets up to 256G, shown with their GB equivalent

The presets stopped at 32768 MB; current virtualization hosts go well beyond
that. The series now doubles up to 262144 MB (256G).

The prompt is in MB while people think in GB, so each preset carries its
equivalent: « [g] 65536 (64G) ». With nine of them the line no longer fits, so
suggestions are laid out five per row. Disk presets keep the plain format.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mathieu Benoit 2026-08-01 05:08:01 -04:00
parent 2716127bff
commit 6d3a4c38cb

View file

@ -3422,21 +3422,38 @@ class TODO:
# pour ne JAMAIS entrer en conflit avec une valeur tapée directement : toute
# saisie commençant par un chiffre est lue comme la valeur elle-même.
_QEMU_DISK_PRESETS = ("20G", "40G", "60G", "80G", "120G", "200G")
_QEMU_RAM_PRESETS = (1024, 2048, 4096, 8192, 16384, 32768)
# Jusqu'à 256 Go : les hôtes de virtualisation récents dépassent largement
# 32 Go, et l'invite est en Mo — l'équivalent en Go est donc affiché.
_QEMU_RAM_PRESETS = (
1024,
2048,
4096,
8192,
16384,
32768,
65536,
131072,
262144,
)
@staticmethod
def _qemu_ask_value(label, current, presets):
def _qemu_ram_label(mb):
"""« 65536 (64G) » : l'invite est en Mo, on raisonne en Go."""
return f"{mb} ({mb // 1024}G)" if mb >= 1024 else str(mb)
@staticmethod
def _qemu_ask_value(label, current, presets, fmt=str):
"""Invite avec raccourcis lettrés. Renvoie '' pour « garder ».
[a][f] choisissent une suggestion, un chiffre reste une valeur
littérale, vide garde la valeur actuelle.
Une lettre choisit une suggestion, un chiffre reste une valeur
littérale, vide garde la valeur actuelle. Les suggestions sont
réparties sur plusieurs lignes pour rester lisibles.
"""
print(
" "
+ " ".join(
f"[{chr(ord('a') + i)}] {p}" for i, p in enumerate(presets)
)
)
lst_item = [
f"[{chr(ord('a') + i)}] {fmt(p)}" for i, p in enumerate(presets)
]
for start in range(0, len(lst_item), 5):
print(" " + " ".join(lst_item[start : start + 5]))
answer = input(f" {label} ({current}): ").strip()
if not answer:
return ""
@ -3543,6 +3560,7 @@ class TODO:
t("New RAM in MB, blank = keep"),
sel[i][2],
self._QEMU_RAM_PRESETS,
fmt=self._qemu_ram_label,
)
if rm:
try: