vm management

This commit is contained in:
Mateusz Gruszczyński
2025-10-17 16:06:34 +02:00
parent 8c545aca55
commit 600467061c
3 changed files with 102 additions and 9 deletions

15
app.py
View File

@@ -488,7 +488,10 @@ def api_vm_action():
base = f"/nodes/{node}/{typ}/{vmid}/migrate"
cmd = ["pvesh", "create", base, "-target", target, "-online", "0"]
res = post_json(cmd)
return jsonify(ok=True, result=res or {})
upid = None
if isinstance(res, dict):
upid = res.get("data") or res.get("upid")
return jsonify(ok=True, result=res or {}, upid=upid, source_node=node)
else:
return jsonify(ok=False, error="unknown action"), 400
@@ -497,6 +500,16 @@ def api_vm_action():
return jsonify(ok=False, error=str(e)), 500
@app.get("/api/task-status")
def api_task_status():
upid = request.args.get("upid", "").strip()
node = request.args.get("node", "").strip()
if not upid or not node:
return jsonify(ok=False, error="upid and node required"), 400
st = get_json(["pvesh", "get", f"/nodes/{node}/tasks/{upid}/status"]) or {}
return jsonify(ok=True, status=st)
if __name__ == "__main__":
import argparse
p = argparse.ArgumentParser()