deploy.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # -*- coding: utf-8 -*-
  2. """
  3. walle-web
  4. :copyright: © 2015-2017 walle-web.io
  5. :created time: 2017-03-25 11:15:01
  6. :author: wushuiyong@walle-web.io
  7. """
  8. from flask import request
  9. from walle.api.api import SecurityResource
  10. from walle.model.deploy import TaskRecordModel
  11. from walle.service.deployer import Deployer
  12. from walle.service.websocket import WSHandler
  13. class DeployAPI(SecurityResource):
  14. def get(self, task_id=None):
  15. """
  16. fetch environment list or one item
  17. /environment/<int:env_id>
  18. :return:
  19. """
  20. super(DeployAPI, self).get()
  21. # def get(self, method):
  22. # """
  23. # fetch role list or one role
  24. #
  25. # :return:
  26. # """
  27. # if method == 'menu':
  28. # return self.menu()
  29. # elif method == 'mail':
  30. # return self.mail()
  31. # elif method == 'walle':
  32. # return self.walless()
  33. def post(self):
  34. """
  35. fetch role list or one role
  36. :return:
  37. """
  38. super(DeployAPI, self).post()
  39. task_id = request.form['task_id']
  40. if not task_id or not task_id.isdigit():
  41. return self.render_json(code=-1)
  42. wi = Deployer(task_id, websocket=WSHandler)
  43. ret = wi.walle_deploy()
  44. record = TaskRecordModel().fetch(task_id)
  45. return self.render_json(data={
  46. 'command': '',
  47. 'record': record,
  48. })