fix(vm): use JSON instead
This commit is contained in:
@@ -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."}
|
||||||
|
|||||||
Reference in New Issue
Block a user