main.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import traceback
  4. import thread
  5. import signal
  6. import time
  7. from models import Utils
  8. from models.event_processor import EventProcessor
  9. from models.initialize import app, logger
  10. import api_route_table
  11. from models import Database as db
  12. from api.os_init import blueprint as os_init_blueprint
  13. from api.os_init import blueprints as os_init_blueprints
  14. from api.os_init_write import blueprint as os_init_write_blueprint
  15. from api.os_init_write import blueprints as os_init_write_blueprints
  16. from api.os_template import blueprint as os_template_blueprint
  17. from api.os_template import blueprints as os_template_blueprints
  18. from api.guest import blueprint as guest_blueprint
  19. from api.guest import blueprints as guest_blueprints
  20. from api.disk import blueprint as disk_blueprint
  21. from api.disk import blueprints as disk_blueprints
  22. from api.config import blueprint as config_blueprint
  23. from api.log import blueprint as log_blueprint
  24. from api.log import blueprints as log_blueprints
  25. __author__ = 'James Iter'
  26. __date__ = '2017/3/31'
  27. __contact__ = 'james.iter.cn@gmail.com'
  28. __copyright__ = '(c) 2017 by James Iter.'
  29. # noinspection PyBroadException
  30. try:
  31. db.init_conn_mysql()
  32. thread.start_new_thread(db.keepalived_mysql, ())
  33. db.init_conn_redis()
  34. app.register_blueprint(os_init_blueprint)
  35. app.register_blueprint(os_init_blueprints)
  36. app.register_blueprint(os_init_write_blueprint)
  37. app.register_blueprint(os_init_write_blueprints)
  38. app.register_blueprint(os_template_blueprint)
  39. app.register_blueprint(os_template_blueprints)
  40. app.register_blueprint(guest_blueprint)
  41. app.register_blueprint(guest_blueprints)
  42. app.register_blueprint(disk_blueprint)
  43. app.register_blueprint(disk_blueprints)
  44. app.register_blueprint(config_blueprint)
  45. app.register_blueprint(log_blueprint)
  46. app.register_blueprint(log_blueprints)
  47. except:
  48. logger.error(traceback.format_exc())
  49. if __name__ == '__main__':
  50. # noinspection PyBroadException
  51. try:
  52. signal.signal(signal.SIGTERM, Utils.signal_handle)
  53. signal.signal(signal.SIGINT, Utils.signal_handle)
  54. thread.start_new_thread(EventProcessor.launch, ())
  55. Utils.thread_counter += 1
  56. app.run(host=app.config['jimv_listen'], port=app.config['jimv_port'], use_reloader=False, threaded=True)
  57. while Utils.thread_counter > 0:
  58. time.sleep(1)
  59. print 'Main say bye-bye!'
  60. except:
  61. logger.error(traceback.format_exc())
  62. exit(-1)