vm management
This commit is contained in:
15
app.py
15
app.py
@@ -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()
|
||||
|
Reference in New Issue
Block a user