You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

257 lines
5.9KB

  1. # -*- coding: utf-8 -*-
  2. model = {
  3. 'type': 'list',
  4. 'required': True,
  5. 'nullable': False,
  6. 'minlength': 1,
  7. 'maxlength': 3,
  8. 'schema': {
  9. 'type': 'dict',
  10. 'required': True,
  11. 'schema': {
  12. 'code': {
  13. 'type': 'string',
  14. 'required': True,
  15. 'empty': False,
  16. 'nullable': False,
  17. 'dependencies': 'categories',
  18. 'regex': r'^[a-zA-Z0-9]{1,255}$'
  19. },
  20. 'categories': {
  21. 'type': 'list',
  22. 'required': True,
  23. 'dependencies': 'code',
  24. 'minlength': 1,
  25. 'schema': {
  26. 'type': 'dict',
  27. 'required': True,
  28. 'schema': {
  29. 'id': {
  30. 'type': 'string',
  31. 'required': True,
  32. 'empty': False,
  33. 'nullable': False,
  34. 'regex': r'^[a-zA-Z0-9]{1,255}$'},
  35. 'config': {
  36. 'type': 'dict',
  37. 'required': False,
  38. 'dependencies': 'id',
  39. }
  40. }
  41. }
  42. }
  43. }
  44. }
  45. }
  46. # 在线参数校验
  47. ONLINE_START_SCHEMA = {
  48. 'request_id': {
  49. 'type': 'string',
  50. 'required': True,
  51. 'empty': False,
  52. 'nullable': False,
  53. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  54. },
  55. 'command': {
  56. 'type': 'string',
  57. 'required': True,
  58. 'empty': False,
  59. 'nullable': False,
  60. 'allowed': ['start', 'stop']
  61. },
  62. 'pull_url': {
  63. 'type': 'string',
  64. 'required': True,
  65. 'empty': False,
  66. 'nullable': False,
  67. 'maxlength': 255
  68. },
  69. 'push_url': {
  70. 'type': 'string',
  71. 'required': True,
  72. 'nullable': False,
  73. 'empty': False,
  74. 'maxlength': 255
  75. },
  76. 'results_base_dir': {
  77. 'type': 'string',
  78. 'required': True,
  79. 'empty': False,
  80. 'nullable': False,
  81. 'regex': r'^[a-zA-Z0-9]{0,36}$'
  82. },
  83. 'models': model
  84. }
  85. # 在线停止参数校验
  86. ONLINE_STOP_SCHEMA = {
  87. 'request_id': {
  88. 'type': 'string',
  89. 'required': True,
  90. 'empty': False,
  91. 'nullable': False,
  92. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  93. },
  94. 'command': {
  95. 'type': 'string',
  96. 'required': True,
  97. 'empty': False,
  98. 'nullable': False,
  99. 'allowed': ['start', 'stop']
  100. }
  101. }
  102. # 离线开始参数校验
  103. OFFLINE_START_SCHEMA = {
  104. 'request_id': {
  105. 'type': 'string',
  106. 'required': True,
  107. 'empty': False,
  108. 'nullable': False,
  109. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  110. },
  111. 'command': {
  112. 'type': 'string',
  113. 'required': True,
  114. 'empty': False,
  115. 'nullable': False,
  116. 'allowed': ['start', 'stop']
  117. },
  118. 'original_url': {
  119. 'type': 'string',
  120. 'required': True,
  121. 'nullable': False,
  122. 'empty': False,
  123. 'maxlength': 255
  124. },
  125. 'push_url': {
  126. 'type': 'string',
  127. 'required': True,
  128. 'nullable': False,
  129. 'empty': False,
  130. 'maxlength': 255
  131. },
  132. 'original_type': {
  133. 'type': 'string',
  134. 'required': True,
  135. 'nullable': False,
  136. 'empty': False,
  137. 'maxlength': 255
  138. },
  139. 'results_base_dir': {
  140. 'type': 'string',
  141. 'required': True,
  142. 'empty': False,
  143. 'nullable': False,
  144. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  145. },
  146. 'models': model
  147. }
  148. # 离线停止参数校验
  149. OFFLINE_STOP_SCHEMA = {
  150. 'request_id': {
  151. 'type': 'string',
  152. 'required': True,
  153. 'empty': False,
  154. 'nullable': False,
  155. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  156. },
  157. 'command': {
  158. 'type': 'string',
  159. 'required': True,
  160. 'empty': False,
  161. 'nullable': False,
  162. 'allowed': ['start', 'stop']
  163. }
  164. }
  165. # 图片开始参数校验
  166. IMAGE_START_SCHEMA = {
  167. 'request_id': {
  168. 'type': 'string',
  169. 'required': True,
  170. 'empty': False,
  171. 'nullable': False,
  172. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  173. },
  174. 'command': {
  175. 'type': 'string',
  176. 'required': True,
  177. 'empty': False,
  178. 'nullable': False,
  179. 'allowed': ['start', 'stop']
  180. },
  181. 'image_urls': {
  182. 'type': 'list',
  183. 'required': True,
  184. 'minlength': 1,
  185. 'schema': {
  186. 'type': 'string',
  187. 'required': True,
  188. 'nullable': False,
  189. 'empty': False,
  190. 'maxlength': 5000
  191. }
  192. },
  193. 'results_base_dir': {
  194. 'type': 'string',
  195. 'required': True,
  196. 'empty': False,
  197. 'nullable': False,
  198. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  199. },
  200. 'models': model
  201. }
  202. # 录屏参数校验
  203. RECORDING_START_SCHEMA = {
  204. 'request_id': {
  205. 'type': 'string',
  206. 'required': True,
  207. 'empty': False,
  208. 'nullable': False,
  209. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  210. },
  211. 'command': {
  212. 'type': 'string',
  213. 'required': True,
  214. 'empty': False,
  215. 'nullable': False,
  216. 'allowed': ['start', 'stop']
  217. },
  218. 'pull_url': {
  219. 'type': 'string',
  220. 'required': True,
  221. 'nullable': False,
  222. 'empty': False,
  223. 'maxlength': 255
  224. },
  225. 'push_url': {
  226. 'type': 'string',
  227. 'required': True,
  228. 'nullable': False,
  229. 'empty': False,
  230. 'maxlength': 255
  231. }
  232. }
  233. # 录屏停止参数校验
  234. RECORDING_STOP_SCHEMA = {
  235. 'request_id': {
  236. 'type': 'string',
  237. 'required': True,
  238. 'empty': False,
  239. 'nullable': False,
  240. 'regex': r'^[a-zA-Z0-9]{1,36}$'
  241. },
  242. 'command': {
  243. 'type': 'string',
  244. 'required': True,
  245. 'empty': False,
  246. 'nullable': False,
  247. 'allowed': ['start', 'stop']
  248. }
  249. }