os_template_image.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from flask import Blueprint
  4. from flask import request
  5. import jimit as ji
  6. import json
  7. from api.base import Base
  8. from models import OSTemplateImage, OSTemplateProfile
  9. from models import Rules
  10. from models import Utils
  11. __author__ = 'James Iter'
  12. __date__ = '2018/2/4'
  13. __contact__ = 'james.iter.cn@gmail.com'
  14. __copyright__ = '(c) 2018 by James Iter.'
  15. blueprint = Blueprint(
  16. 'api_os_template_image',
  17. __name__,
  18. url_prefix='/api/os_template_image'
  19. )
  20. blueprints = Blueprint(
  21. 'api_os_templates_image',
  22. __name__,
  23. url_prefix='/api/os_templates_image'
  24. )
  25. os_template_image_base = Base(the_class=OSTemplateImage, the_blueprint=blueprint, the_blueprints=blueprints)
  26. @Utils.dumps2response
  27. def r_create():
  28. os_template_image = OSTemplateImage()
  29. args_rules = [
  30. Rules.OS_TEMPLATE_PROFILE_ID_EXT.value,
  31. Rules.PATH.value,
  32. Rules.ACTIVE.value
  33. ]
  34. os_template_image.path = request.json.get('path')
  35. os_template_image.active = request.json.get('active')
  36. os_template_image.os_template_profile_id = request.json.get('os_template_profile_id')
  37. try:
  38. ji.Check.previewing(args_rules, os_template_image.__dict__)
  39. ret = dict()
  40. ret['state'] = ji.Common.exchange_state(20000)
  41. if os_template_image.exist_by('path'):
  42. ret['state'] = ji.Common.exchange_state(40901)
  43. ret['state']['sub']['zh-cn'] = ''.join([ret['state']['sub']['zh-cn'], ': ', os_template_image.path])
  44. return ret
  45. os_template_profile = OSTemplateProfile()
  46. os_template_profile.id = os_template_image.os_template_profile_id
  47. if not os_template_profile.exist():
  48. ret['state'] = ji.Common.exchange_state(40401)
  49. ret['state']['sub']['zh-cn'] = ''.join([ret['state']['sub']['zh-cn'], u': 操作系统模板描述文件ID: ',
  50. os_template_image.os_template_profile_id.__str__()])
  51. return ret
  52. os_template_image.create()
  53. os_template_image.get_by('path')
  54. ret['data'] = os_template_image.__dict__
  55. return ret
  56. except ji.PreviewingError, e:
  57. return json.loads(e.message)
  58. @Utils.dumps2response
  59. def r_update(_id):
  60. os_template_image = OSTemplateImage()
  61. args_rules = [
  62. Rules.ID.value
  63. ]
  64. if 'path' in request.json:
  65. args_rules.append(
  66. Rules.PATH.value,
  67. )
  68. if 'active' in request.json:
  69. args_rules.append(
  70. Rules.ACTIVE.value,
  71. )
  72. if 'os_template_profile_id' in request.json:
  73. args_rules.append(
  74. Rules.OS_TEMPLATE_PROFILE_ID_EXT.value,
  75. )
  76. if args_rules.__len__() < 2:
  77. ret = dict()
  78. ret['state'] = ji.Common.exchange_state(20000)
  79. return ret
  80. request.json['id'] = _id
  81. try:
  82. ji.Check.previewing(args_rules, request.json)
  83. os_template_image.id = request.json.get('id')
  84. os_template_image.get()
  85. os_template_image.path = request.json.get('path', os_template_image.path)
  86. os_template_image.active = request.json.get('active', os_template_image.active)
  87. os_template_image.os_template_profile_id = \
  88. request.json.get('os_template_profile_id', os_template_image.os_template_profile_id)
  89. os_template_image.update()
  90. os_template_image.get()
  91. ret = dict()
  92. ret['state'] = ji.Common.exchange_state(20000)
  93. ret['data'] = os_template_image.__dict__
  94. return ret
  95. except ji.PreviewingError, e:
  96. return json.loads(e.message)
  97. @Utils.dumps2response
  98. def r_delete(ids):
  99. return os_template_image_base.delete(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  100. @Utils.dumps2response
  101. def r_get(ids):
  102. return os_template_image_base.get(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  103. @Utils.dumps2response
  104. def r_get_by_filter():
  105. return os_template_image_base.get_by_filter()
  106. @Utils.dumps2response
  107. def r_content_search():
  108. return os_template_image_base.content_search()