stop_service.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import os
  2. import requests
  3. from dotenv import load_dotenv
  4. load_dotenv()
  5. BASE_URL = "https://beta-api.runcomfy.net/prod/api"
  6. USER_ID = os.getenv("RUNCOMFY_USER_ID")
  7. API_TOKEN = os.getenv("API_TOKEN")
  8. def stop_server(server_id: str) -> dict:
  9. """Stop RunComfy server instance"""
  10. if not USER_ID or not API_TOKEN:
  11. return {
  12. "server_id": server_id,
  13. "status": "Error",
  14. "message": "Missing RUNCOMFY_USER_ID or API_TOKEN environment variables"
  15. }
  16. headers = {"Authorization": f"Bearer {API_TOKEN}"}
  17. url = f"{BASE_URL}/users/{USER_ID}/servers/{server_id}"
  18. try:
  19. resp = requests.delete(url, headers=headers, timeout=30)
  20. if resp.status_code == 200:
  21. return {
  22. "server_id": server_id,
  23. "status": "Deleted",
  24. "message": f"Server {server_id} successfully stopped"
  25. }
  26. elif resp.status_code == 404:
  27. return {
  28. "server_id": server_id,
  29. "status": "NotFound",
  30. "message": f"Server {server_id} not found or already deleted"
  31. }
  32. else:
  33. return {
  34. "server_id": server_id,
  35. "status": "Error",
  36. "message": f"HTTP {resp.status_code}: {resp.text}"
  37. }
  38. except Exception as e:
  39. return {
  40. "server_id": server_id,
  41. "status": "Error",
  42. "message": f"Request failed: {str(e)}"
  43. }