Added delete to servers and clusters
This commit is contained in:
parent
68b518e661
commit
edbee69a8f
@ -1,4 +1,4 @@
|
|||||||
FROM python:3.10-slim
|
FROM python:3.13-slim
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
28
main.py
28
main.py
@ -59,6 +59,13 @@ def add_or_update_cluster(name: str, api_token: str):
|
|||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
def delete_cluster(name: str):
|
||||||
|
conn = sqlite3.connect("servers.db")
|
||||||
|
cursor = conn.cursor()
|
||||||
|
cursor.execute("DELETE FROM clusters WHERE name = ?", (name,))
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
def add_or_update_server(name: str, ip: str, mac: str, cluster_name: str):
|
def add_or_update_server(name: str, ip: str, mac: str, cluster_name: str):
|
||||||
conn = sqlite3.connect("servers.db")
|
conn = sqlite3.connect("servers.db")
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
@ -66,6 +73,13 @@ def add_or_update_server(name: str, ip: str, mac: str, cluster_name: str):
|
|||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
def delete_server(name: str):
|
||||||
|
conn = sqlite3.connect("servers.db")
|
||||||
|
cursor = conn.cursor()
|
||||||
|
cursor.execute("DELETE FROM servers WHERE name = ?", (name,))
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
class ServerModel(BaseModel):
|
class ServerModel(BaseModel):
|
||||||
@ -134,11 +148,18 @@ def get_clusters():
|
|||||||
return list_clusters()
|
return list_clusters()
|
||||||
|
|
||||||
@app.post("/clusters")
|
@app.post("/clusters")
|
||||||
|
@app.put("/clusters")
|
||||||
def add_cluster(cluster: ClusterModel):
|
def add_cluster(cluster: ClusterModel):
|
||||||
"""Adds or updates a cluster."""
|
"""Adds or updates a cluster."""
|
||||||
add_or_update_cluster(cluster.name, cluster.api_token)
|
add_or_update_cluster(cluster.name, cluster.api_token)
|
||||||
return {"message": "Cluster added/updated successfully"}
|
return {"message": "Cluster added/updated successfully"}
|
||||||
|
|
||||||
|
@app.delete("/clusters/{cluster_name}")
|
||||||
|
def remove_cluster(cluster_name: str):
|
||||||
|
"""Deletes a cluster."""
|
||||||
|
delete_cluster(cluster_name)
|
||||||
|
return {"message": "Cluster deleted successfully"}
|
||||||
|
|
||||||
def check_power_state(server_ip):
|
def check_power_state(server_ip):
|
||||||
"""Check if the server is online by pinging it."""
|
"""Check if the server is online by pinging it."""
|
||||||
response = subprocess.run(["ping", "-c", "1", server_ip], stdout=subprocess.DEVNULL)
|
response = subprocess.run(["ping", "-c", "1", server_ip], stdout=subprocess.DEVNULL)
|
||||||
@ -186,9 +207,16 @@ def get_servers():
|
|||||||
return list_servers()
|
return list_servers()
|
||||||
|
|
||||||
@app.post("/servers")
|
@app.post("/servers")
|
||||||
|
@app.put("/servers")
|
||||||
def add_server(server: ServerModel):
|
def add_server(server: ServerModel):
|
||||||
"""Adds or updates a server."""
|
"""Adds or updates a server."""
|
||||||
add_or_update_server(server.name, server.ip, server.mac, server.cluster_name)
|
add_or_update_server(server.name, server.ip, server.mac, server.cluster_name)
|
||||||
return {"message": "Server added/updated successfully"}
|
return {"message": "Server added/updated successfully"}
|
||||||
|
|
||||||
|
@app.delete("/servers/{server_name}")
|
||||||
|
def remove_server(server_name: str):
|
||||||
|
"""Deletes a server."""
|
||||||
|
delete_server(server_name)
|
||||||
|
return {"message": "Server deleted successfully"}
|
||||||
|
|
||||||
# Run the server with: uvicorn main:app --host 0.0.0.0 --port 8000
|
# Run the server with: uvicorn main:app --host 0.0.0.0 --port 8000
|
||||||
|
Loading…
Reference in New Issue
Block a user