environment.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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.form.environment import EnvironmentForm
  10. from walle.model.deploy import EnvironmentModel
  11. from walle.api.api import SecurityResource
  12. class EnvironmentAPI(SecurityResource):
  13. controller = 'environment'
  14. def get(self, env_id=None):
  15. """
  16. fetch environment list or one item
  17. /environment/<int:env_id>
  18. :return:
  19. """
  20. super(EnvironmentAPI, self).get()
  21. return self.item(env_id) if env_id else self.list()
  22. def list(self):
  23. """
  24. fetch environment list
  25. :return:
  26. """
  27. page = int(request.args.get('page', 0))
  28. page = page - 1 if page else 0
  29. size = float(request.args.get('size', 10))
  30. kw = request.values.get('kw', '')
  31. table = [
  32. {
  33. 'key': 'tag',
  34. 'value': ['线上', '测试'],
  35. 'sort': 0
  36. }
  37. ]
  38. env_model = EnvironmentModel()
  39. env_list, count = env_model.list(page=page, size=size, kw=kw)
  40. return self.list_json(list=env_list, count=count, table=table)
  41. def item(self, env_id):
  42. """
  43. 获取某个用户组
  44. :param env_id:
  45. :return:
  46. """
  47. env_model = EnvironmentModel(id=env_id)
  48. env_info = env_model.item()
  49. if not env_info:
  50. return self.render_json(code=-1)
  51. return self.render_json(data=env_info)
  52. def post(self):
  53. """
  54. create a environment
  55. /environment/
  56. :return:
  57. """
  58. super(EnvironmentAPI, self).post()
  59. form = EnvironmentForm(request.form, csrf_enabled=False)
  60. if form.validate_on_submit():
  61. env_new = EnvironmentModel()
  62. env_id = env_new.add(env_name=form.env_name.data)
  63. if not env_id:
  64. return self.render_json(code=-1)
  65. return self.render_json(data=env_new.item())
  66. else:
  67. return self.render_json(code=-1, message=form.errors)
  68. def put(self, env_id):
  69. """
  70. update environment
  71. /environment/<int:env_id>
  72. :return:
  73. """
  74. super(EnvironmentAPI, self).put()
  75. form = EnvironmentForm(request.form, csrf_enabled=False)
  76. form.set_env_id(env_id)
  77. if form.validate_on_submit():
  78. env = EnvironmentModel(id=env_id)
  79. ret = env.update(env_name=form.env_name.data, status=form.status.data)
  80. return self.render_json(data=env.item())
  81. else:
  82. return self.render_json(code=-1, message=form.errors)
  83. def delete(self, env_id):
  84. """
  85. remove an environment
  86. /environment/<int:env_id>
  87. :return:
  88. """
  89. super(EnvironmentAPI, self).delete()
  90. env_model = EnvironmentModel(id=env_id)
  91. env_model.remove(env_id)
  92. return self.render_json(message='')