Bug 56944

Summary: 500-ая ошибка при добавлении связанного клона Proxmox
Product: Sisyphus Reporter: Vladislav Glinkin <glinkinvd>
Component: openuds-serverAssignee: thatman <thatman>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: lepata, shaba, thatman
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Vladislav Glinkin 2025-11-20 18:42:20 MSK
Версия пакета: openuds-server-4.0.0-alt4

При добавлении связанного клона Proxmox возникает 500-ая ошибка, из-за чего меню в веб-интерфейсе не отображается.
В логах:
DEBUG 2025-11-20 15:07:19,658 urllib3.connectionpool:_make_request 544 https://XX.XX.XX.XX:8006 "GET /api2/json/cluster/ha/groups HTTP/1.1" 500 86

Данная проблема связана с тем, что с версии Proxmox 9.* API запрос GET /api2/json/cluster/ha/groups устарел.
HA Groups are deprecated and migrated to HA Node Affinity rules since Proxmox VE 9.0. (https://pve.proxmox.com/wiki/High_Availability)

Вместно него предлагается использование GET /api2/json/cluster/ha/rules
--- a/client.py
+++ b/client.py
@@ -461,7 +461,7 @@ class ProxmoxClient:

     @cached('hagrps', consts.CACHE_DURATION, key_helper=caching_key_helper)
     def list_ha_groups(self, **kwargs: typing.Any) -> list[str]:
-        return [g['group'] for g in self.do_get('cluster/ha/groups')['data']]
+        return [g['group'] for g in self.do_get('cluster/ha/rules')['data']]

     def enable_vm_ha(self, vmid: int, started: bool = False, group: typing.Optional[str] = None) -> None:
         """

Шаги воспроизведения:
1) В OpenUDS Server открыть страницу Поставщики услуг, нажать Новый → Поставщик платформы Proxmox
2) Вкладка Основной:
- Имя: pve
- Хост: Адрес хоста pve01
- Пароль пользователя root
3) Нажать Сохранить.
4) Нажать два раза на созданного поставщика.
5) Нажать Новый → Связанный клон Proxmox
Comment 1 Repository Robot 2025-11-28 02:49:57 MSK
openuds-server-4.0.0-alt5 -> sisyphus:

Fri Nov 28 2025 Alexander Burmatov <thatman@altlinux> 4.0.0-alt5
- Fix deprecated request to PVE 9 (ALT #56944) (thx smasher@).