@@ -38,29 +38,24 @@ async def get_my_vms(
|
||||
vm_id = vm["vmid"]
|
||||
access = access_map.get(vm_id)
|
||||
|
||||
# 권한이 없는 VM은 목록에서 제외
|
||||
if not access:
|
||||
continue
|
||||
|
||||
# VMAccess가 있으면 해당 정보 사용
|
||||
# VMAccess가 있으면 해당 정보 사용, 없으면 기본값
|
||||
vm_info = VMInfo(
|
||||
vm_id=vm_id,
|
||||
node=vm.get("node"), # cluster/resources returns 'node'
|
||||
type=vm.get("type", "qemu"),
|
||||
node=vm["node"],
|
||||
name=vm.get("name", "Unknown"),
|
||||
status=vm.get("status", "unknown"),
|
||||
ip_address=access.static_ip, # Static IP
|
||||
cpus=vm.get("maxcpu", 0), # cluster/resources uses maxcpu
|
||||
ip_address=access.static_ip if access else None, # Static IP 자동 설정
|
||||
cpus=vm.get("cpus", 0),
|
||||
memory=vm.get("maxmem", 0) // (1024 * 1024), # bytes to MB
|
||||
memory_usage=vm.get("mem", 0) // (1024 * 1024) if vm.get("mem") else None,
|
||||
cpu_usage=vm.get("cpu", 0),
|
||||
can_start=access.can_start,
|
||||
can_stop=access.can_stop,
|
||||
can_reboot=access.can_reboot,
|
||||
can_connect=access.can_connect,
|
||||
rdp_username=access.rdp_username,
|
||||
rdp_password=access.rdp_password,
|
||||
rdp_port=access.rdp_port or 3389
|
||||
can_start=True,
|
||||
can_stop=True,
|
||||
can_reboot=True,
|
||||
can_connect=True,
|
||||
rdp_username=access.rdp_username if access else None, # RDP 사용자명
|
||||
rdp_password=access.rdp_password if access else None, # RDP 비밀번호
|
||||
rdp_port=access.rdp_port if access else 3389 # RDP 포트
|
||||
)
|
||||
vm_list.append(vm_info)
|
||||
|
||||
@@ -70,22 +65,21 @@ async def get_my_vms(
|
||||
async def get_vm_detail(
|
||||
vm_id: int,
|
||||
node: str,
|
||||
type: str = "qemu",
|
||||
current_user: CurrentUser = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
VM 상세 정보 조회
|
||||
"""
|
||||
# VM 상태 조회
|
||||
status = await proxmox_service.get_vm_status(node, vm_id, type)
|
||||
status = await proxmox_service.get_vm_status(node, vm_id)
|
||||
|
||||
if not status:
|
||||
raise NotFoundError(f"VM {vm_id}를 찾을 수 없습니다")
|
||||
|
||||
# IP 조회 제거 - 연결에 필요하지 않음
|
||||
return VMDetail(
|
||||
vm_id=vm_id,
|
||||
node=node,
|
||||
type=type,
|
||||
name=status.get("name", "Unknown"),
|
||||
status=status.get("status", "unknown"),
|
||||
ip_address=None, # IP 조회 안 함
|
||||
@@ -102,11 +96,10 @@ async def get_vm_detail(
|
||||
async def start_vm(
|
||||
vm_id: int,
|
||||
node: str,
|
||||
type: str = "qemu",
|
||||
current_user: CurrentUser = Depends(get_current_user)
|
||||
):
|
||||
"""VM 시작"""
|
||||
success = await proxmox_service.start_vm(node, vm_id, type)
|
||||
success = await proxmox_service.start_vm(node, vm_id)
|
||||
|
||||
return VMControlResponse(
|
||||
success=success,
|
||||
@@ -119,11 +112,10 @@ async def start_vm(
|
||||
async def stop_vm(
|
||||
vm_id: int,
|
||||
node: str,
|
||||
type: str = "qemu",
|
||||
current_user: CurrentUser = Depends(get_current_user)
|
||||
):
|
||||
"""VM 종료"""
|
||||
success = await proxmox_service.stop_vm(node, vm_id, type)
|
||||
success = await proxmox_service.stop_vm(node, vm_id)
|
||||
|
||||
return VMControlResponse(
|
||||
success=success,
|
||||
@@ -136,11 +128,10 @@ async def stop_vm(
|
||||
async def reboot_vm(
|
||||
vm_id: int,
|
||||
node: str,
|
||||
type: str = "qemu",
|
||||
current_user: CurrentUser = Depends(get_current_user)
|
||||
):
|
||||
"""VM 재시작"""
|
||||
success = await proxmox_service.reboot_vm(node, vm_id, type)
|
||||
success = await proxmox_service.reboot_vm(node, vm_id)
|
||||
|
||||
return VMControlResponse(
|
||||
success=success,
|
||||
|
||||
Reference in New Issue
Block a user