os_template_image.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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.LABEL.value,
  31. Rules.DESCRIPTION.value,
  32. Rules.PATH.value,
  33. Rules.ICON.value,
  34. Rules.OS_TEMPLATE_PROFILE_ID_EXT.value,
  35. Rules.ACTIVE.value
  36. ]
  37. os_template_image.label = request.json.get('label')
  38. os_template_image.description = request.json.get('description')
  39. os_template_image.path = request.json.get('path')
  40. os_template_image.icon = request.json.get('icon')
  41. os_template_image.active = request.json.get('active')
  42. os_template_image.os_template_profile_id = request.json.get('os_template_profile_id')
  43. try:
  44. ji.Check.previewing(args_rules, os_template_image.__dict__)
  45. ret = dict()
  46. ret['state'] = ji.Common.exchange_state(20000)
  47. if os_template_image.exist_by('path'):
  48. ret['state'] = ji.Common.exchange_state(40901)
  49. ret['state']['sub']['zh-cn'] = ''.join([ret['state']['sub']['zh-cn'], ': ', os_template_image.path])
  50. return ret
  51. os_template_profile = OSTemplateProfile()
  52. os_template_profile.id = os_template_image.os_template_profile_id
  53. if not os_template_profile.exist():
  54. ret['state'] = ji.Common.exchange_state(40401)
  55. ret['state']['sub']['zh-cn'] = ''.join([ret['state']['sub']['zh-cn'], u': 操作系统模板描述文件ID: ',
  56. os_template_image.os_template_profile_id.__str__()])
  57. return ret
  58. os_template_image.create()
  59. os_template_image.get_by('path')
  60. ret['data'] = os_template_image.__dict__
  61. return ret
  62. except ji.PreviewingError, e:
  63. return json.loads(e.message)
  64. @Utils.dumps2response
  65. def r_update(_id):
  66. os_template_image = OSTemplateImage()
  67. args_rules = [
  68. Rules.ID.value
  69. ]
  70. if 'label' in request.json:
  71. args_rules.append(
  72. Rules.LABEL.value,
  73. )
  74. if 'description' in request.json:
  75. args_rules.append(
  76. Rules.DESCRIPTION.value,
  77. )
  78. if 'path' in request.json:
  79. args_rules.append(
  80. Rules.PATH.value,
  81. )
  82. if 'active' in request.json:
  83. args_rules.append(
  84. Rules.ACTIVE.value,
  85. )
  86. if 'icon' in request.json:
  87. args_rules.append(
  88. Rules.ICON.value,
  89. )
  90. if 'os_template_profile_id' in request.json:
  91. args_rules.append(
  92. Rules.OS_TEMPLATE_PROFILE_ID_EXT.value,
  93. )
  94. if args_rules.__len__() < 2:
  95. ret = dict()
  96. ret['state'] = ji.Common.exchange_state(20000)
  97. return ret
  98. request.json['id'] = _id
  99. try:
  100. ji.Check.previewing(args_rules, request.json)
  101. os_template_image.id = request.json.get('id')
  102. os_template_image.get()
  103. os_template_image.label = request.json.get('label', os_template_image.label)
  104. os_template_image.description = request.json.get('description', os_template_image.description)
  105. os_template_image.path = request.json.get('path', os_template_image.path)
  106. os_template_image.active = request.json.get('active', os_template_image.active)
  107. os_template_image.icon = request.json.get('icon', os_template_image.icon)
  108. os_template_image.os_template_profile_id = \
  109. request.json.get('os_template_profile_id', os_template_image.os_template_profile_id)
  110. os_template_image.update()
  111. os_template_image.get()
  112. ret = dict()
  113. ret['state'] = ji.Common.exchange_state(20000)
  114. ret['data'] = os_template_image.__dict__
  115. return ret
  116. except ji.PreviewingError, e:
  117. return json.loads(e.message)
  118. @Utils.dumps2response
  119. def r_delete(ids):
  120. return os_template_image_base.delete(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  121. @Utils.dumps2response
  122. def r_get(ids):
  123. return os_template_image_base.get(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  124. @Utils.dumps2response
  125. def r_get_by_filter():
  126. return os_template_image_base.get_by_filter()
  127. @Utils.dumps2response
  128. def r_content_search():
  129. return os_template_image_base.content_search()