fix(vm): use JSON instead

This commit is contained in:
Aleksandr Tcitlionok
2024-12-09 03:11:45 +00:00
parent 24ceca9e4f
commit 6e80ea7773

View File

@@ -14,6 +14,9 @@ class VirtualMachine(BaseModel):
storage: str storage: str
type: str type: str
class HetznerToken(BaseModel):
api_token: str
@router.get("/vm/data") @router.get("/vm/data")
def get_vm_data(): def get_vm_data():
return {"virtual_machines": fetch_all("virtual_machines")} 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."} return {"message": f"Virtual machine '{vm.name}' added successfully."}
@router.post("/vm/import-hetzner") @router.post("/vm/import-hetzner")
def import_hetzner_vms(api_token: str): def import_hetzner_vms(token: HetznerToken):
""" """
Import virtual machines from Hetzner Cloud. Import virtual machines from Hetzner Cloud.
""" """
hetzner_url = "https://api.hetzner.cloud/v1/servers" hetzner_url = "https://api.hetzner.cloud/v1/servers"
headers = { headers = {
"Authorization": f"Bearer {api_token}" "Authorization": f"Bearer {token.api_token}"
} }
try: try:
@@ -70,7 +73,6 @@ def import_hetzner_vms(api_token: str):
vm_type=vm_type vm_type=vm_type
) )
except Exception as e: except Exception as e:
# Log or handle individual server import errors gracefully
print(f"Failed to import server {server['name']}: {e}") print(f"Failed to import server {server['name']}: {e}")
return {"message": f"Imported {len(servers)} virtual machines from Hetzner."} return {"message": f"Imported {len(servers)} virtual machines from Hetzner."}