- 新增 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 运行脚本
50 lines
1.3 KiB
Python
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
|