diff --git a/app/routes/vm.py b/app/routes/vm.py index 1a0cf9d..082db7d 100644 --- a/app/routes/vm.py +++ b/app/routes/vm.py @@ -14,6 +14,9 @@ class VirtualMachine(BaseModel): storage: str type: str +class HetznerToken(BaseModel): + api_token: str + @router.get("/vm/data") def get_vm_data(): return {"virtual_machines": fetch_all("virtual_machines")} @@ -31,13 +34,13 @@ def add_vm_data(vm: VirtualMachine): return {"message": f"Virtual machine '{vm.name}' added successfully."} @router.post("/vm/import-hetzner") -def import_hetzner_vms(api_token: str): +def import_hetzner_vms(token: HetznerToken): """ Import virtual machines from Hetzner Cloud. """ hetzner_url = "https://api.hetzner.cloud/v1/servers" headers = { - "Authorization": f"Bearer {api_token}" + "Authorization": f"Bearer {token.api_token}" } try: @@ -70,7 +73,6 @@ def import_hetzner_vms(api_token: str): vm_type=vm_type ) except Exception as e: - # Log or handle individual server import errors gracefully print(f"Failed to import server {server['name']}: {e}") return {"message": f"Imported {len(servers)} virtual machines from Hetzner."}