rules.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from enum import Enum
  4. __author__ = 'James Iter'
  5. __date__ = '2017/3/21'
  6. __contact__ = 'james.iter.cn@gmail.com'
  7. __copyright__ = '(c) 2017 by James Iter.'
  8. class Rules(Enum):
  9. OFFSET = ('regex:^\d{1,17}$', 'offset')
  10. LIMIT = ('regex:^\d{1,17}$', 'limit')
  11. PAGE = ('regex:^\d{1,17}$', 'page')
  12. PAGE_SIZE = ('regex:^\d{1,17}$', 'page_size')
  13. ORDER_BY = (basestring, 'order_by', (1, 30))
  14. ORDER = (basestring, 'order', ['asc', 'desc'])
  15. KEYWORD = (basestring, 'keyword')
  16. ID = ('regex:^\d{1,17}$', 'id')
  17. # 正则表达式方便校验其来自URL的参数
  18. IP = 'regex:^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))$'
  19. CONFIG_ID = (int, 'id')
  20. GLUSTERFS_VOLUME = (basestring, 'glusterfs_volume')
  21. VM_NETWORK = (basestring, 'vm_network')
  22. VM_MANAGE_NETWORK = (basestring, 'vm_manage_network')
  23. START_IP = (IP, 'start_ip')
  24. END_IP = (IP, 'end_ip')
  25. START_VNC_PORT = (int, 'start_vnc_port')
  26. NETMASK = (IP, 'netmask')
  27. GATEWAY = (IP, 'gateway')
  28. DNS1 = (IP, 'dns1')
  29. DNS2 = (IP, 'dns2')
  30. RSA_PRIVATE = (basestring, 'rsa_private')
  31. RSA_PUBLIC = (basestring, 'rsa_public')
  32. UUID = (basestring, 'uuid', (36, 36))
  33. UUIDS = ('regex:^([\w-]{36})(,[\w-]{36})*$', 'uuids')
  34. CPU = (int, 'cpu')
  35. MEMORY = (int, 'memory')
  36. OS_TEMPLATE_ID = (int, 'os_template_id')
  37. DISKS = (list, 'disks')
  38. QUANTITY = (int, 'quantity')
  39. NAME = (basestring, 'name')
  40. PASSWORD = (basestring, 'password')
  41. LEASE_TERM = (int, 'lease_term')
  42. DESTINATION_HOST = (basestring, 'destination_host', (5, 64))
  43. DEVICE_NODE_UUID = (basestring, 'device_node_uuid', (36, 36))
  44. DISK_SIZE = ('regex:^\d{1,7}$', 'size')
  45. REMARK = (basestring, 'remark')
  46. LABEL = (basestring, 'label')
  47. ACTIVE = (bool, 'active')
  48. OS_INIT_ID_EXT = (int, 'os_init_id')
  49. OS_INIT_WRITE_PATH = (basestring, 'path')
  50. OS_INIT_WRITE_CONTENT = (basestring, 'content')