update.py 719 B

123456789101112131415161718192021222324252627282930
  1. from fastapi import APIRouter
  2. from packaging.version import Version
  3. from gpustack.server.update_check import UpdateResponse, get_update
  4. from gpustack import __version__
  5. router = APIRouter()
  6. @router.get("/")
  7. async def update():
  8. update_response = await get_update()
  9. if is_newer_version(update_response.latest_version, __version__):
  10. return update_response
  11. return UpdateResponse(latest_version=__version__)
  12. def is_newer_version(given: str, current: str) -> bool:
  13. """
  14. Check if the given version is newer than the current version.
  15. """
  16. try:
  17. givenV = Version(given)
  18. currentV = Version(current)
  19. except Exception:
  20. return False
  21. return givenV > currentV