-
-
-
- {{ node.ip }}
-
-
+@app.get("/api/node/{node_id}")
+async def get_node(node_id: int):
+ conn = get_db()
+ node = conn.execute('SELECT * FROM nodes WHERE id = ?', (node_id,)).fetchone()
+ conn.close()
+ return dict(node) if node else {}
-
- {{ node.os }}
- {{ node.arch }}
-
+@app.post("/add_node")
+async def add_node(background_tasks: BackgroundTasks, name: str = Form(...), ip: str = Form(...), user: str = Form(...), password: str = Form(...)):
+ conn = get_db()
+ try:
+ # Speichere Initialdaten inkl. Sudo-Passwort
+ conn.execute('''
+ INSERT INTO nodes (name, ip, user, sudo_password, status)
+ VALUES (?, ?, ?, ?, ?)
+ ''', (name, ip, user, password, "Kopplung..."))
+ conn.commit()
+ background_tasks.add_task(bootstrap_node, ip, user, password)
+ except sqlite3.IntegrityError: pass
+ finally: conn.close()
+ return RedirectResponse(url="/", status_code=303)
-
-
- {{ node.status }}
-
-
-