apps.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from typing import Optional, List
  2. from fastapi import APIRouter, status, Depends
  3. from pydantic import BaseModel
  4. from starlette.responses import JSONResponse
  5. import os, io, sys, platform, shutil, time, subprocess, json, datetime
  6. from api.model.app import App
  7. from api.service import manage
  8. from api.utils import shell_execute
  9. from api.utils.common_log import myLogger
  10. router = APIRouter()
  11. @router.api_route("/details", methods=["GET", "POST"])
  12. def app_detail(app_id: Optional[str] = None):
  13. myLogger.info_logger("Receive request: /api/v1/apps/details")
  14. list = manage.get_app_detail(app_id)
  15. return JSONResponse(list)
  16. @router.api_route("", methods=["GET", "POST"])
  17. def list_my_apps():
  18. myLogger.info_logger("Receive request: /api/v1/apps")
  19. list = manage.get_my_app()
  20. return JSONResponse(content=list)
  21. @router.api_route("/install", methods=["GET", "POST"])
  22. def install_app(app_name: Optional[str] = None, customer_app_name: Optional[str] = None, app_version: Optional[str] = None):
  23. myLogger.info_logger("Receive request: /api/v1/apps/install")
  24. ret = manage.install_app(app_name, customer_app_name, app_version)
  25. return JSONResponse(content=ret)
  26. @router.api_route("/process", methods=["GET", "POST"])
  27. def install_app_process(app_id: Optional[str] = None):
  28. myLogger.info_logger("Receive request: /api/v1/apps/process")
  29. ret = manage.install_app_process(app_id)
  30. return JSONResponse(content=ret)
  31. @router.api_route("/start", methods=["GET", "POST"])
  32. def start_app(app_id: Optional[str] = None):
  33. myLogger.info_logger("Receive request: /api/v1/apps/start")
  34. ret = manage.start_app(app_id)
  35. return JSONResponse(content=ret)
  36. @router.api_route("/stop", methods=["GET", "POST"])
  37. def stop_app(app_id: Optional[str] = None):
  38. myLogger.info_logger("Receive request: /api/v1/apps/stop")
  39. ret = manage.stop_app(app_id)
  40. return JSONResponse(content=ret)
  41. @router.api_route("/restart", methods=["GET", "POST"])
  42. def restart_app(app_id: Optional[str] = None):
  43. myLogger.info_logger("Receive request: /api/v1/apps/restart")
  44. ret = manage.restart_app(app_id)
  45. return JSONResponse(content=ret)
  46. @router.api_route("/uninstall", methods=["GET", "POST"])
  47. def uninstall_app(app_id: Optional[str] = None):
  48. myLogger.info_logger("Receive request: /api/v1/apps/uninstall")
  49. ret = manage.uninstall_app(app_id)
  50. return JSONResponse(content=ret)