os_template_initialize_operate.py 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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 jimvc.api.base import Base
  8. from jimvc.models import Rules
  9. from jimvc.models import Utils
  10. from jimvc.models import OSTemplateInitializeOperate
  11. from jimvc.models import OSTemplateInitializeOperateSet
  12. from jimvc.models import OSTemplateInitializeOperateKind
  13. __author__ = 'James Iter'
  14. __date__ = '2018/2/4'
  15. __contact__ = 'james.iter.cn@gmail.com'
  16. __copyright__ = '(c) 2018 by James Iter.'
  17. blueprint = Blueprint(
  18. 'api_os_template_initialize_operate',
  19. __name__,
  20. url_prefix='/api/os_template_initialize_operate'
  21. )
  22. blueprints = Blueprint(
  23. 'api_os_template_initialize_operates',
  24. __name__,
  25. url_prefix='/api/os_template_initialize_operates'
  26. )
  27. os_template_initialize_operate_base = \
  28. Base(the_class=OSTemplateInitializeOperate, the_blueprint=blueprint, the_blueprints=blueprints)
  29. @Utils.dumps2response
  30. def r_create():
  31. os_template_initialize_operate_set = OSTemplateInitializeOperateSet()
  32. os_template_initialize_operate = OSTemplateInitializeOperate()
  33. args_rules = [
  34. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_SET_ID_EXT.value,
  35. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_KIND.value,
  36. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_SEQUENCE.value
  37. ]
  38. os_template_initialize_operate.os_template_initialize_operate_set_id = \
  39. request.json.get('os_template_initialize_operate_set_id')
  40. os_template_initialize_operate.kind = request.json.get('kind')
  41. os_template_initialize_operate.path = request.json.get('path', '')
  42. os_template_initialize_operate.sequence = request.json.get('sequence', 0)
  43. os_template_initialize_operate.content = request.json.get('content', '')
  44. os_template_initialize_operate.command = request.json.get('command', '')
  45. if os_template_initialize_operate.kind == OSTemplateInitializeOperateKind.cmd.value:
  46. args_rules.append(
  47. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_COMMAND.value
  48. )
  49. else:
  50. args_rules.extend([
  51. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_PATH.value,
  52. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_CONTENT.value
  53. ])
  54. try:
  55. ji.Check.previewing(args_rules, os_template_initialize_operate.__dict__)
  56. ret = dict()
  57. ret['state'] = ji.Common.exchange_state(20000)
  58. os_template_initialize_operate_set.id = os_template_initialize_operate.os_template_initialize_operate_set_id
  59. if not os_template_initialize_operate_set.exist():
  60. ret['state'] = ji.Common.exchange_state(40401)
  61. ret['state']['sub']['zh-cn'] = ''.join([ret['state']['sub']['zh-cn'], u': 操作系统初始化操作集ID: ',
  62. os_template_initialize_operate_set.id.__str__()])
  63. return ret
  64. if os_template_initialize_operate.kind == OSTemplateInitializeOperateKind.cmd.value:
  65. data, total = os_template_initialize_operate.get_by_filter(
  66. filter_str=':'.join(['os_template_initialize_operate_set_id', 'eq',
  67. os_template_initialize_operate.os_template_initialize_operate_set_id.__str__()]) +
  68. ';' + ':'.join(['command', 'eq', os_template_initialize_operate.command]))
  69. else:
  70. data, total = os_template_initialize_operate.get_by_filter(
  71. filter_str=':'.join(['os_template_initialize_operate_set_id', 'eq',
  72. os_template_initialize_operate.os_template_initialize_operate_set_id.__str__()]) +
  73. ';' + ':'.join(['path', 'eq', os_template_initialize_operate.path]))
  74. if data.__len__() > 0:
  75. ret['state'] = ji.Common.exchange_state(40901)
  76. if os_template_initialize_operate.kind == OSTemplateInitializeOperateKind.cmd.value:
  77. ret['state']['sub']['zh-cn'] = ''.join(
  78. [ret['state']['sub']['zh-cn'], u', 命令: ', os_template_initialize_operate.command,
  79. u', 已存在于操作集ID ',
  80. os_template_initialize_operate.os_template_initialize_operate_set_id.__str__(), u' 中。'])
  81. else:
  82. ret['state']['sub']['zh-cn'] = ''.join([
  83. ret['state']['sub']['zh-cn'], u', 路径: ', os_template_initialize_operate.path,
  84. u', 已存在于操作集ID ',
  85. os_template_initialize_operate.os_template_initialize_operate_set_id.__str__(), u' 中。'])
  86. return ret
  87. os_template_initialize_operate.create()
  88. data, total = os_template_initialize_operate.get_by_filter(
  89. filter_str=':'.join(['os_template_initialize_operate_set_id', 'eq',
  90. os_template_initialize_operate.os_template_initialize_operate_set_id.__str__()]) + ';'
  91. + ':'.join(['path', 'eq', os_template_initialize_operate.path]))
  92. ret['data'] = data[0]
  93. return ret
  94. except ji.PreviewingError, e:
  95. return json.loads(e.message)
  96. @Utils.dumps2response
  97. def r_update(_id):
  98. os_template_initialize_operate = OSTemplateInitializeOperate()
  99. args_rules = [
  100. Rules.ID.value
  101. ]
  102. if 'os_template_initialize_operate_set_id' in request.json:
  103. args_rules.append(
  104. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_SET_ID_EXT.value,
  105. )
  106. if 'kind' in request.json:
  107. args_rules.append(
  108. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_KIND.value,
  109. )
  110. if 'sequence' in request.json:
  111. args_rules.append(
  112. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_SEQUENCE.value,
  113. )
  114. if 'path' in request.json:
  115. args_rules.append(
  116. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_PATH.value,
  117. )
  118. if 'content' in request.json:
  119. args_rules.append(
  120. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_CONTENT.value,
  121. )
  122. if 'command' in request.json:
  123. args_rules.append(
  124. Rules.OS_TEMPLATE_INITIALIZE_OPERATE_COMMAND.value,
  125. )
  126. if args_rules.__len__() < 2:
  127. ret = dict()
  128. ret['state'] = ji.Common.exchange_state(20000)
  129. return ret
  130. request.json['id'] = _id
  131. try:
  132. ji.Check.previewing(args_rules, request.json)
  133. os_template_initialize_operate.id = request.json.get('id')
  134. os_template_initialize_operate.get()
  135. os_template_initialize_operate.os_template_initialize_operate_set_id = \
  136. request.json.get('os_template_initialize_operate_set_id',
  137. os_template_initialize_operate.os_template_initialize_operate_set_id)
  138. os_template_initialize_operate.kind = request.json.get('kind', os_template_initialize_operate.kind)
  139. os_template_initialize_operate.sequence = request.json.get('sequence', os_template_initialize_operate.sequence)
  140. os_template_initialize_operate.path = request.json.get('path', os_template_initialize_operate.path)
  141. os_template_initialize_operate.content = request.json.get('content', os_template_initialize_operate.content)
  142. os_template_initialize_operate.command = request.json.get('command', os_template_initialize_operate.command)
  143. os_template_initialize_operate.update()
  144. os_template_initialize_operate.get()
  145. ret = dict()
  146. ret['state'] = ji.Common.exchange_state(20000)
  147. ret['data'] = os_template_initialize_operate.__dict__
  148. return ret
  149. except ji.PreviewingError, e:
  150. return json.loads(e.message)
  151. @Utils.dumps2response
  152. def r_delete(ids):
  153. return os_template_initialize_operate_base.delete(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  154. @Utils.dumps2response
  155. def r_get(ids):
  156. return os_template_initialize_operate_base.get(ids=ids, ids_rule=Rules.IDS.value, by_field='id')
  157. @Utils.dumps2response
  158. def r_get_by_filter():
  159. return os_template_initialize_operate_base.get_by_filter()
  160. @Utils.dumps2response
  161. def r_content_search():
  162. return os_template_initialize_operate_base.content_search()