constants.py 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. # Rack types
  2. RACK_TYPE_2POST = 100
  3. RACK_TYPE_4POST = 200
  4. RACK_TYPE_CABINET = 300
  5. RACK_TYPE_WALLFRAME = 1000
  6. RACK_TYPE_WALLCABINET = 1100
  7. RACK_TYPE_CHOICES = (
  8. (RACK_TYPE_2POST, '2-post frame'),
  9. (RACK_TYPE_4POST, '4-post frame'),
  10. (RACK_TYPE_CABINET, '4-post cabinet'),
  11. (RACK_TYPE_WALLFRAME, 'Wall-mounted frame'),
  12. (RACK_TYPE_WALLCABINET, 'Wall-mounted cabinet'),
  13. )
  14. # Rack widths
  15. RACK_WIDTH_19IN = 19
  16. RACK_WIDTH_23IN = 23
  17. RACK_WIDTH_CHOICES = (
  18. (RACK_WIDTH_19IN, '19 inches'),
  19. (RACK_WIDTH_23IN, '23 inches'),
  20. )
  21. # Rack faces
  22. RACK_FACE_FRONT = 0
  23. RACK_FACE_REAR = 1
  24. RACK_FACE_CHOICES = [
  25. [RACK_FACE_FRONT, 'Front'],
  26. [RACK_FACE_REAR, 'Rear'],
  27. ]
  28. # Parent/child device roles
  29. SUBDEVICE_ROLE_PARENT = True
  30. SUBDEVICE_ROLE_CHILD = False
  31. SUBDEVICE_ROLE_CHOICES = (
  32. (None, 'None'),
  33. (SUBDEVICE_ROLE_PARENT, 'Parent'),
  34. (SUBDEVICE_ROLE_CHILD, 'Child'),
  35. )
  36. # Interface ordering schemes (for device types)
  37. IFACE_ORDERING_POSITION = 1
  38. IFACE_ORDERING_NAME = 2
  39. IFACE_ORDERING_CHOICES = [
  40. [IFACE_ORDERING_POSITION, 'Slot/position'],
  41. [IFACE_ORDERING_NAME, 'Name (alphabetically)']
  42. ]
  43. # Interface form factors
  44. # Virtual
  45. IFACE_FF_VIRTUAL = 0
  46. IFACE_FF_LAG = 200
  47. # Ethernet
  48. IFACE_FF_100ME_FIXED = 800
  49. IFACE_FF_1GE_FIXED = 1000
  50. IFACE_FF_1GE_GBIC = 1050
  51. IFACE_FF_1GE_SFP = 1100
  52. IFACE_FF_10GE_FIXED = 1150
  53. IFACE_FF_10GE_CX4 = 1170
  54. IFACE_FF_10GE_SFP_PLUS = 1200
  55. IFACE_FF_10GE_XFP = 1300
  56. IFACE_FF_10GE_XENPAK = 1310
  57. IFACE_FF_10GE_X2 = 1320
  58. IFACE_FF_25GE_SFP28 = 1350
  59. IFACE_FF_40GE_QSFP_PLUS = 1400
  60. IFACE_FF_100GE_CFP = 1500
  61. IFACE_FF_100GE_CFP2 = 1510
  62. IFACE_FF_100GE_CFP4 = 1520
  63. IFACE_FF_100GE_CPAK = 1550
  64. IFACE_FF_100GE_QSFP28 = 1600
  65. # Wireless
  66. IFACE_FF_80211A = 2600
  67. IFACE_FF_80211G = 2610
  68. IFACE_FF_80211N = 2620
  69. IFACE_FF_80211AC = 2630
  70. IFACE_FF_80211AD = 2640
  71. # Fibrechannel
  72. IFACE_FF_1GFC_SFP = 3010
  73. IFACE_FF_2GFC_SFP = 3020
  74. IFACE_FF_4GFC_SFP = 3040
  75. IFACE_FF_8GFC_SFP_PLUS = 3080
  76. IFACE_FF_16GFC_SFP_PLUS = 3160
  77. # Serial
  78. IFACE_FF_T1 = 4000
  79. IFACE_FF_E1 = 4010
  80. IFACE_FF_T3 = 4040
  81. IFACE_FF_E3 = 4050
  82. # Stacking
  83. IFACE_FF_STACKWISE = 5000
  84. IFACE_FF_STACKWISE_PLUS = 5050
  85. IFACE_FF_FLEXSTACK = 5100
  86. IFACE_FF_FLEXSTACK_PLUS = 5150
  87. IFACE_FF_JUNIPER_VCP = 5200
  88. IFACE_FF_SUMMITSTACK = 5300
  89. IFACE_FF_SUMMITSTACK128 = 5310
  90. IFACE_FF_SUMMITSTACK256 = 5320
  91. IFACE_FF_SUMMITSTACK512 = 5330
  92. # Other
  93. IFACE_FF_OTHER = 32767
  94. IFACE_FF_CHOICES = [
  95. [
  96. 'Virtual interfaces',
  97. [
  98. [IFACE_FF_VIRTUAL, 'Virtual'],
  99. [IFACE_FF_LAG, 'Link Aggregation Group (LAG)'],
  100. ],
  101. ],
  102. [
  103. 'Ethernet (fixed)',
  104. [
  105. [IFACE_FF_100ME_FIXED, '100BASE-TX (10/100ME)'],
  106. [IFACE_FF_1GE_FIXED, '1000BASE-T (1GE)'],
  107. [IFACE_FF_10GE_FIXED, '10GBASE-T (10GE)'],
  108. [IFACE_FF_10GE_CX4, '10GBASE-CX4 (10GE)'],
  109. ]
  110. ],
  111. [
  112. 'Ethernet (modular)',
  113. [
  114. [IFACE_FF_1GE_GBIC, 'GBIC (1GE)'],
  115. [IFACE_FF_1GE_SFP, 'SFP (1GE)'],
  116. [IFACE_FF_10GE_SFP_PLUS, 'SFP+ (10GE)'],
  117. [IFACE_FF_10GE_XFP, 'XFP (10GE)'],
  118. [IFACE_FF_10GE_XENPAK, 'XENPAK (10GE)'],
  119. [IFACE_FF_10GE_X2, 'X2 (10GE)'],
  120. [IFACE_FF_25GE_SFP28, 'SFP28 (25GE)'],
  121. [IFACE_FF_40GE_QSFP_PLUS, 'QSFP+ (40GE)'],
  122. [IFACE_FF_100GE_CFP, 'CFP (100GE)'],
  123. [IFACE_FF_100GE_CFP2, 'CFP2 (100GE)'],
  124. [IFACE_FF_100GE_CFP4, 'CFP4 (100GE)'],
  125. [IFACE_FF_100GE_CPAK, 'Cisco CPAK (100GE)'],
  126. [IFACE_FF_100GE_QSFP28, 'QSFP28 (100GE)'],
  127. ]
  128. ],
  129. [
  130. 'Wireless',
  131. [
  132. [IFACE_FF_80211A, 'IEEE 802.11a'],
  133. [IFACE_FF_80211G, 'IEEE 802.11b/g'],
  134. [IFACE_FF_80211N, 'IEEE 802.11n'],
  135. [IFACE_FF_80211AC, 'IEEE 802.11ac'],
  136. [IFACE_FF_80211AD, 'IEEE 802.11ad'],
  137. ]
  138. ],
  139. [
  140. 'FibreChannel',
  141. [
  142. [IFACE_FF_1GFC_SFP, 'SFP (1GFC)'],
  143. [IFACE_FF_2GFC_SFP, 'SFP (2GFC)'],
  144. [IFACE_FF_4GFC_SFP, 'SFP (4GFC)'],
  145. [IFACE_FF_8GFC_SFP_PLUS, 'SFP+ (8GFC)'],
  146. [IFACE_FF_16GFC_SFP_PLUS, 'SFP+ (16GFC)'],
  147. ]
  148. ],
  149. [
  150. 'Serial',
  151. [
  152. [IFACE_FF_T1, 'T1 (1.544 Mbps)'],
  153. [IFACE_FF_E1, 'E1 (2.048 Mbps)'],
  154. [IFACE_FF_T3, 'T3 (45 Mbps)'],
  155. [IFACE_FF_E3, 'E3 (34 Mbps)'],
  156. ]
  157. ],
  158. [
  159. 'Stacking',
  160. [
  161. [IFACE_FF_STACKWISE, 'Cisco StackWise'],
  162. [IFACE_FF_STACKWISE_PLUS, 'Cisco StackWise Plus'],
  163. [IFACE_FF_FLEXSTACK, 'Cisco FlexStack'],
  164. [IFACE_FF_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'],
  165. [IFACE_FF_JUNIPER_VCP, 'Juniper VCP'],
  166. [IFACE_FF_SUMMITSTACK, 'Extreme SummitStack'],
  167. [IFACE_FF_SUMMITSTACK128, 'Extreme SummitStack-128'],
  168. [IFACE_FF_SUMMITSTACK256, 'Extreme SummitStack-256'],
  169. [IFACE_FF_SUMMITSTACK512, 'Extreme SummitStack-512'],
  170. ]
  171. ],
  172. [
  173. 'Other',
  174. [
  175. [IFACE_FF_OTHER, 'Other'],
  176. ]
  177. ],
  178. ]
  179. VIRTUAL_IFACE_TYPES = [
  180. IFACE_FF_VIRTUAL,
  181. IFACE_FF_LAG,
  182. ]
  183. WIRELESS_IFACE_TYPES = [
  184. IFACE_FF_80211A,
  185. IFACE_FF_80211G,
  186. IFACE_FF_80211N,
  187. IFACE_FF_80211AC,
  188. IFACE_FF_80211AD,
  189. ]
  190. NONCONNECTABLE_IFACE_TYPES = VIRTUAL_IFACE_TYPES + WIRELESS_IFACE_TYPES
  191. IFACE_MODE_ACCESS = 100
  192. IFACE_MODE_TAGGED = 200
  193. IFACE_MODE_TAGGED_ALL = 300
  194. IFACE_MODE_CHOICES = [
  195. [IFACE_MODE_ACCESS, 'Access'],
  196. [IFACE_MODE_TAGGED, 'Tagged'],
  197. [IFACE_MODE_TAGGED_ALL, 'Tagged All'],
  198. ]
  199. # Patch panel port types
  200. PANELPORT_TYPE_8P8C = 1000
  201. PANELPORT_TYPE_ST = 2000
  202. PANELPORT_TYPE_SC_SIMPLEX = 2100
  203. PANELPORT_TYPE_SC_DUPLEX = 2110
  204. PANELPORT_TYPE_FC = 2200
  205. PANELPORT_TYPE_LC = 2300
  206. PANELPORT_TYPE_MTRJ = 2400
  207. PANELPORT_TYPE_MPO = 2500
  208. PANELPORT_TYPE_CHOICES = [
  209. [
  210. 'Copper',
  211. [
  212. [PANELPORT_TYPE_8P8C, '8P8C'],
  213. ],
  214. ],
  215. [
  216. 'Fiber Optic',
  217. [
  218. [PANELPORT_TYPE_ST, 'ST'],
  219. [PANELPORT_TYPE_SC_SIMPLEX, 'SC (Simplex)'],
  220. [PANELPORT_TYPE_SC_DUPLEX, 'SC (Duplex)'],
  221. [PANELPORT_TYPE_FC, 'FC'],
  222. [PANELPORT_TYPE_LC, 'LC'],
  223. [PANELPORT_TYPE_MTRJ, 'MTRJ'],
  224. [PANELPORT_TYPE_MPO, 'MPO'],
  225. ]
  226. ]
  227. ]
  228. # Device statuses
  229. DEVICE_STATUS_OFFLINE = 0
  230. DEVICE_STATUS_ACTIVE = 1
  231. DEVICE_STATUS_PLANNED = 2
  232. DEVICE_STATUS_STAGED = 3
  233. DEVICE_STATUS_FAILED = 4
  234. DEVICE_STATUS_INVENTORY = 5
  235. DEVICE_STATUS_CHOICES = [
  236. [DEVICE_STATUS_ACTIVE, 'Active'],
  237. [DEVICE_STATUS_OFFLINE, 'Offline'],
  238. [DEVICE_STATUS_PLANNED, 'Planned'],
  239. [DEVICE_STATUS_STAGED, 'Staged'],
  240. [DEVICE_STATUS_FAILED, 'Failed'],
  241. [DEVICE_STATUS_INVENTORY, 'Inventory'],
  242. ]
  243. # Site statuses
  244. SITE_STATUS_ACTIVE = 1
  245. SITE_STATUS_PLANNED = 2
  246. SITE_STATUS_RETIRED = 4
  247. SITE_STATUS_CHOICES = [
  248. [SITE_STATUS_ACTIVE, 'Active'],
  249. [SITE_STATUS_PLANNED, 'Planned'],
  250. [SITE_STATUS_RETIRED, 'Retired'],
  251. ]
  252. # Bootstrap CSS classes for device statuses
  253. STATUS_CLASSES = {
  254. 0: 'warning',
  255. 1: 'success',
  256. 2: 'info',
  257. 3: 'primary',
  258. 4: 'danger',
  259. 5: 'default',
  260. }
  261. # Console/power/interface connection statuses
  262. CONNECTION_STATUS_PLANNED = False
  263. CONNECTION_STATUS_CONNECTED = True
  264. CONNECTION_STATUS_CHOICES = [
  265. [CONNECTION_STATUS_PLANNED, 'Planned'],
  266. [CONNECTION_STATUS_CONNECTED, 'Connected'],
  267. ]
  268. # Cable endpoint types
  269. CABLE_TERMINATION_TYPES = [
  270. 'consoleport', 'consoleserverport', 'interface', 'poweroutlet', 'powerport', 'frontpanelport', 'rearpanelport',
  271. ]
  272. # Cable types
  273. # TODO: Add more types
  274. CABLE_TYPE_COPPER = 1000
  275. CABLE_TYPE_FIBER = 2000
  276. CABLE_TYPE_CHOICES = (
  277. (CABLE_TYPE_COPPER, 'Copper'),
  278. (CABLE_TYPE_FIBER, 'Fiber'),
  279. )
  280. CABLE_TERMINATION_TYPE_CHOICES = {
  281. # (API endpoint, human-friendly name)
  282. 'consoleport': ('console-ports', 'Console port'),
  283. 'consoleserverport': ('console-server-ports', 'Console server port'),
  284. 'powerport': ('power-ports', 'Power port'),
  285. 'poweroutlet': ('power-outlets', 'Power outlet'),
  286. 'interface': ('interfaces', 'Interface'),
  287. 'frontpanelport': ('front-panel-ports', 'Front panel port'),
  288. 'rearpanelport': ('rear-panel-ports', 'Rear panel port'),
  289. }
  290. COMPATIBLE_TERMINATION_TYPES = {
  291. 'consoleport': ['consoleserverport', 'frontpanelport', 'rearpanelport'],
  292. 'consoleserverport': ['consoleport', 'frontpanelport', 'rearpanelport'],
  293. 'powerport': ['poweroutlet'],
  294. 'poweroutlet': ['powerport'],
  295. 'interface': ['interface', 'frontpanelport', 'rearpanelport'],
  296. 'frontpanelport': ['consoleport', 'consoleserverport', 'interface', 'frontpanelport', 'rearpanelport'],
  297. 'rearpanelport': ['consoleport', 'consoleserverport', 'interface', 'frontpanelport', 'rearpanelport'],
  298. }