version.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import json
  2. import logging
  3. import requests
  4. from flask import current_app
  5. from flask_restful import Resource, reqparse
  6. from . import api
  7. class VersionApi(Resource):
  8. def get(self):
  9. parser = reqparse.RequestParser()
  10. parser.add_argument('current_version', type=str, required=True, location='args')
  11. args = parser.parse_args()
  12. check_update_url = current_app.config['CHECK_UPDATE_URL']
  13. result = {
  14. 'version': current_app.config['CURRENT_VERSION'],
  15. 'release_date': '',
  16. 'release_notes': '',
  17. 'can_auto_update': False,
  18. 'features': {
  19. 'can_replace_logo': current_app.config['CAN_REPLACE_LOGO'],
  20. 'model_load_balancing_enabled': current_app.config['MODEL_LB_ENABLED']
  21. }
  22. }
  23. if not check_update_url:
  24. return result
  25. try:
  26. response = requests.get(check_update_url, {
  27. 'current_version': args.get('current_version')
  28. })
  29. except Exception as error:
  30. logging.warning("Check update version error: {}.".format(str(error)))
  31. result['version'] = args.get('current_version')
  32. return result
  33. content = json.loads(response.content)
  34. result['version'] = content['version']
  35. result['release_date'] = content['releaseDate']
  36. result['release_notes'] = content['releaseNotes']
  37. result['can_auto_update'] = content['canAutoUpdate']
  38. return result
  39. api.add_resource(VersionApi, '/version')