constants.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. from django.db.models import Q
  2. from .choices import InterfaceTypeChoices
  3. # Exclude SVG images (unsupported by PIL)
  4. DEVICETYPE_IMAGE_FORMATS = 'image/bmp,image/gif,image/jpeg,image/png,image/tiff,image/webp'
  5. #
  6. # Racks
  7. #
  8. RACK_U_HEIGHT_DEFAULT = 42
  9. RACK_ELEVATION_BORDER_WIDTH = 2
  10. RACK_ELEVATION_DEFAULT_LEGEND_WIDTH = 30
  11. RACK_ELEVATION_DEFAULT_MARGIN_WIDTH = 15
  12. #
  13. # RearPorts
  14. #
  15. REARPORT_POSITIONS_MIN = 1
  16. REARPORT_POSITIONS_MAX = 1024
  17. #
  18. # Interfaces
  19. #
  20. INTERFACE_MTU_MIN = 1
  21. INTERFACE_MTU_MAX = 65536
  22. VIRTUAL_IFACE_TYPES = [
  23. InterfaceTypeChoices.TYPE_VIRTUAL,
  24. InterfaceTypeChoices.TYPE_LAG,
  25. InterfaceTypeChoices.TYPE_BRIDGE,
  26. ]
  27. WIRELESS_IFACE_TYPES = [
  28. InterfaceTypeChoices.TYPE_80211A,
  29. InterfaceTypeChoices.TYPE_80211G,
  30. InterfaceTypeChoices.TYPE_80211N,
  31. InterfaceTypeChoices.TYPE_80211AC,
  32. InterfaceTypeChoices.TYPE_80211AD,
  33. InterfaceTypeChoices.TYPE_80211AX,
  34. InterfaceTypeChoices.TYPE_80211AY,
  35. InterfaceTypeChoices.TYPE_802151,
  36. InterfaceTypeChoices.TYPE_OTHER_WIRELESS,
  37. ]
  38. NONCONNECTABLE_IFACE_TYPES = VIRTUAL_IFACE_TYPES + WIRELESS_IFACE_TYPES
  39. #
  40. # Device components
  41. #
  42. MODULE_TOKEN = '{module}'
  43. MODULAR_COMPONENT_TEMPLATE_MODELS = Q(
  44. app_label='dcim',
  45. model__in=(
  46. 'consoleporttemplate',
  47. 'consoleserverporttemplate',
  48. 'frontporttemplate',
  49. 'interfacetemplate',
  50. 'poweroutlettemplate',
  51. 'powerporttemplate',
  52. 'rearporttemplate',
  53. ))
  54. MODULAR_COMPONENT_MODELS = Q(
  55. app_label='dcim',
  56. model__in=(
  57. 'consoleport',
  58. 'consoleserverport',
  59. 'frontport',
  60. 'interface',
  61. 'poweroutlet',
  62. 'powerport',
  63. 'rearport',
  64. ))
  65. #
  66. # Cabling and connections
  67. #
  68. CABLE_TRACE_SVG_DEFAULT_WIDTH = 400
  69. # Cable endpoint types
  70. CABLE_TERMINATION_MODELS = Q(
  71. Q(app_label='circuits', model__in=(
  72. 'circuittermination',
  73. )) |
  74. Q(app_label='dcim', model__in=(
  75. 'consoleport',
  76. 'consoleserverport',
  77. 'frontport',
  78. 'interface',
  79. 'powerfeed',
  80. 'poweroutlet',
  81. 'powerport',
  82. 'rearport',
  83. ))
  84. )
  85. COMPATIBLE_TERMINATION_TYPES = {
  86. 'circuittermination': ['interface', 'frontport', 'rearport', 'circuittermination'],
  87. 'consoleport': ['consoleserverport', 'frontport', 'rearport'],
  88. 'consoleserverport': ['consoleport', 'frontport', 'rearport'],
  89. 'interface': ['interface', 'circuittermination', 'frontport', 'rearport'],
  90. 'frontport': ['consoleport', 'consoleserverport', 'interface', 'frontport', 'rearport', 'circuittermination'],
  91. 'powerfeed': ['powerport'],
  92. 'poweroutlet': ['powerport'],
  93. 'powerport': ['poweroutlet', 'powerfeed'],
  94. 'rearport': ['consoleport', 'consoleserverport', 'interface', 'frontport', 'rearport', 'circuittermination'],
  95. }