Files

42 lines
1.4 KiB
Python

from pathlib import Path
# Исправляет совместимость создания LXC с Proxmox VE 9.
path = Path("/app/app/proxmox_client.py")
text = path.read_text()
# Диск контейнера создаётся сразу на SSD при POST /lxc.
text = text.replace('storage: str = "local",', 'storage: str = "SSD",', 1)
text = text.replace(
' ostemplate=template_volid,\n cores=cores,',
' ostemplate=template_volid,\n rootfs=f"{storage}:{disk_gb}",\n cores=cores,',
1,
)
# Proxmox VE 9 не поддерживает POST /lxc/{vmid}/passwd.
text = text.replace(
' px.nodes(node).lxc(new_vmid).passwd.post(password=password)\n',
'',
1,
)
# Rootfs уже создаётся нужного размера в POST /lxc.
text = text.replace(
' px.nodes(node).lxc(new_vmid).resize.put(\n'
' disk="rootfs",\n'
' size=f"{storage}:{disk_gb}",\n'
' )\n',
'',
1,
)
# Proxmox может завершать vzcreate со статусом WARNINGS: N.
# Это успешное создание с предупреждениями, а не ошибка.
text = text.replace(
' if status.get("exitstatus") != "OK":',
' exitstatus = status.get("exitstatus", "")\n'
' if exitstatus != "OK" and not str(exitstatus).startswith("WARNINGS:"):',
1,
)
path.write_text(text)