Files
sci-gui-agent-benchmark/desktop_env/providers/proxmox/manager.py
lizhanyuan 4bde685bbd feat: 新增 Proxmox provider 支持及 inject_steps 参数
- 新增 desktop_env/providers/proxmox/ (manager + provider)
- desktop_env.py: 添加 proxmox 到 provider 名称列表
- providers/__init__.py: 工厂函数注册 proxmox provider
- run.py: 新增 --inject_steps/--no_inject_steps 参数
- run_proxmox.sh: Proxmox 运行脚本
2026-03-04 16:39:08 +08:00

50 lines
1.3 KiB
Python

import logging
import os
from desktop_env.providers.base import VMManager
logger = logging.getLogger("desktopenv.providers.proxmox.ProxmoxVMManager")
logger.setLevel(logging.INFO)
class ProxmoxVMManager(VMManager):
"""
Simplified VM manager for Proxmox.
Unlike VMware/VirtualBox, Proxmox VMs are pre-created on the server.
This manager does not handle VM provisioning, downloading, or local
registry management. The VM ID is passed directly via --path_to_vm.
"""
def __init__(self, registry_path=""):
pass
def initialize_registry(self, **kwargs):
pass
def add_vm(self, vm_path, **kwargs):
pass
def delete_vm(self, vm_path, **kwargs):
pass
def occupy_vm(self, vm_path, pid, **kwargs):
pass
def list_free_vms(self, **kwargs):
return []
def check_and_clean(self, **kwargs):
pass
def get_vm_path(self, os_type="Windows", region=None, screen_size=(1920, 1080), **kwargs):
"""Return the VM ID from environment variable or default.
For Proxmox, the VM is pre-created. The VM ID should be passed
via --path_to_vm argument. This method is only called when
--path_to_vm is not provided.
"""
vmid = os.environ.get("PROXMOX_VM_ID", "102")
logger.info(f"Using Proxmox VM ID: {vmid}")
return vmid