Исправлены ошибки по итогам аудита: формат образов, CD-ROM, действия с машинами, firewall, VNC

- формат образа диска определяется через qemu-img info (облачные .img — это qcow2)
- ISO подключается/извлекается через virsh change-media, без угадывания устройств
- действия start/shutdown/delete сообщают об ошибке virsh; удаление UEFI-машин (--nvram)
- правила iptables/ufw для удалённых пробросов портов теперь удаляются
- VNC машин слушает только 127.0.0.1; virtuality-ctl reconfigure чинит старые машины
- зелёное уведомление не показывается, если действие вернуло ошибку
- убраны смена архитектуры машины, эмуляция ARM64 на x86 и загрузка по PXE
- tests/test_audit_fixes.py

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
Этот коммит содержится в:
Claude
2026-09-25 15:01:32 +00:00
родитель fd7e53f8f4
Коммит 0e4b1783ec
9 изменённых файлов: 309 добавлений и 167 удалений
+13
Просмотреть файл
@@ -306,11 +306,24 @@ restart_panel() {
fi
}
# VMs created by older versions listened for VNC on every address; the panel proxies consoles over localhost.
harden_vnc() {
command -v virsh >/dev/null 2>&1 && command -v virt-xml >/dev/null 2>&1 || return 0
local name
while read -r name; do
[[ -n "$name" ]] || continue
if virsh dumpxml "$name" 2>/dev/null | grep -q "listen='0.0.0.0'"; then
virt-xml "$name" --edit --graphics listen=127.0.0.1 >/dev/null 2>&1 && log "vnc of ${name} now listens on 127.0.0.1 (applies after restart)" || true
fi
done < <(virsh list --all --name 2>/dev/null)
}
cmd_reconfigure() {
need_root reconfigure
[[ -d "$APP_DIR" ]] || die "панель не установлена: ${APP_DIR} не найден"
write_units
apply_firewall
harden_vnc
restart_panel
log "reconfigured: $(panel_url)"
echo "Панель перезапущена: $(panel_url)"