2
0

choices.py 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955
  1. from utilities.choices import ChoiceSet
  2. #
  3. # Sites
  4. #
  5. class SiteStatusChoices(ChoiceSet):
  6. STATUS_ACTIVE = 'active'
  7. STATUS_PLANNED = 'planned'
  8. STATUS_RETIRED = 'retired'
  9. CHOICES = (
  10. (STATUS_ACTIVE, 'Active'),
  11. (STATUS_PLANNED, 'Planned'),
  12. (STATUS_RETIRED, 'Retired'),
  13. )
  14. #
  15. # Racks
  16. #
  17. class RackTypeChoices(ChoiceSet):
  18. TYPE_2POST = '2-post-frame'
  19. TYPE_4POST = '4-post-frame'
  20. TYPE_CABINET = '4-post-cabinet'
  21. TYPE_WALLFRAME = 'wall-frame'
  22. TYPE_WALLCABINET = 'wall-cabinet'
  23. CHOICES = (
  24. (TYPE_2POST, '2-post frame'),
  25. (TYPE_4POST, '4-post frame'),
  26. (TYPE_CABINET, '4-post cabinet'),
  27. (TYPE_WALLFRAME, 'Wall-mounted frame'),
  28. (TYPE_WALLCABINET, 'Wall-mounted cabinet'),
  29. )
  30. class RackWidthChoices(ChoiceSet):
  31. WIDTH_10IN = 10
  32. WIDTH_19IN = 19
  33. WIDTH_21IN = 21
  34. WIDTH_23IN = 23
  35. CHOICES = (
  36. (WIDTH_10IN, '10 inches'),
  37. (WIDTH_19IN, '19 inches'),
  38. (WIDTH_21IN, '21 inches'),
  39. (WIDTH_23IN, '23 inches'),
  40. )
  41. class RackStatusChoices(ChoiceSet):
  42. STATUS_RESERVED = 'reserved'
  43. STATUS_AVAILABLE = 'available'
  44. STATUS_PLANNED = 'planned'
  45. STATUS_ACTIVE = 'active'
  46. STATUS_DEPRECATED = 'deprecated'
  47. CHOICES = (
  48. (STATUS_RESERVED, 'Reserved'),
  49. (STATUS_AVAILABLE, 'Available'),
  50. (STATUS_PLANNED, 'Planned'),
  51. (STATUS_ACTIVE, 'Active'),
  52. (STATUS_DEPRECATED, 'Deprecated'),
  53. )
  54. class RackDimensionUnitChoices(ChoiceSet):
  55. UNIT_MILLIMETER = 'mm'
  56. UNIT_INCH = 'in'
  57. CHOICES = (
  58. (UNIT_MILLIMETER, 'Millimeters'),
  59. (UNIT_INCH, 'Inches'),
  60. )
  61. class RackElevationDetailRenderChoices(ChoiceSet):
  62. RENDER_JSON = 'json'
  63. RENDER_SVG = 'svg'
  64. CHOICES = (
  65. (RENDER_JSON, 'json'),
  66. (RENDER_SVG, 'svg')
  67. )
  68. #
  69. # DeviceTypes
  70. #
  71. class SubdeviceRoleChoices(ChoiceSet):
  72. ROLE_PARENT = 'parent'
  73. ROLE_CHILD = 'child'
  74. CHOICES = (
  75. (ROLE_PARENT, 'Parent'),
  76. (ROLE_CHILD, 'Child'),
  77. )
  78. #
  79. # Devices
  80. #
  81. class DeviceFaceChoices(ChoiceSet):
  82. FACE_FRONT = 'front'
  83. FACE_REAR = 'rear'
  84. CHOICES = (
  85. (FACE_FRONT, 'Front'),
  86. (FACE_REAR, 'Rear'),
  87. )
  88. class DeviceStatusChoices(ChoiceSet):
  89. STATUS_OFFLINE = 'offline'
  90. STATUS_ACTIVE = 'active'
  91. STATUS_PLANNED = 'planned'
  92. STATUS_STAGED = 'staged'
  93. STATUS_FAILED = 'failed'
  94. STATUS_INVENTORY = 'inventory'
  95. STATUS_DECOMMISSIONING = 'decommissioning'
  96. CHOICES = (
  97. (STATUS_OFFLINE, 'Offline'),
  98. (STATUS_ACTIVE, 'Active'),
  99. (STATUS_PLANNED, 'Planned'),
  100. (STATUS_STAGED, 'Staged'),
  101. (STATUS_FAILED, 'Failed'),
  102. (STATUS_INVENTORY, 'Inventory'),
  103. (STATUS_DECOMMISSIONING, 'Decommissioning'),
  104. )
  105. #
  106. # ConsolePorts
  107. #
  108. class ConsolePortTypeChoices(ChoiceSet):
  109. TYPE_DE9 = 'de-9'
  110. TYPE_DB25 = 'db-25'
  111. TYPE_RJ11 = 'rj-11'
  112. TYPE_RJ12 = 'rj-12'
  113. TYPE_RJ45 = 'rj-45'
  114. TYPE_USB_A = 'usb-a'
  115. TYPE_USB_B = 'usb-b'
  116. TYPE_USB_C = 'usb-c'
  117. TYPE_USB_MINI_A = 'usb-mini-a'
  118. TYPE_USB_MINI_B = 'usb-mini-b'
  119. TYPE_USB_MICRO_A = 'usb-micro-a'
  120. TYPE_USB_MICRO_B = 'usb-micro-b'
  121. TYPE_OTHER = 'other'
  122. CHOICES = (
  123. ('Serial', (
  124. (TYPE_DE9, 'DE-9'),
  125. (TYPE_DB25, 'DB-25'),
  126. (TYPE_RJ11, 'RJ-11'),
  127. (TYPE_RJ12, 'RJ-12'),
  128. (TYPE_RJ45, 'RJ-45'),
  129. )),
  130. ('USB', (
  131. (TYPE_USB_A, 'USB Type A'),
  132. (TYPE_USB_B, 'USB Type B'),
  133. (TYPE_USB_C, 'USB Type C'),
  134. (TYPE_USB_MINI_A, 'USB Mini A'),
  135. (TYPE_USB_MINI_B, 'USB Mini B'),
  136. (TYPE_USB_MICRO_A, 'USB Micro A'),
  137. (TYPE_USB_MICRO_B, 'USB Micro B'),
  138. )),
  139. ('Other', (
  140. (TYPE_OTHER, 'Other'),
  141. )),
  142. )
  143. #
  144. # PowerPorts
  145. #
  146. class PowerPortTypeChoices(ChoiceSet):
  147. # IEC 60320
  148. TYPE_IEC_C6 = 'iec-60320-c6'
  149. TYPE_IEC_C8 = 'iec-60320-c8'
  150. TYPE_IEC_C14 = 'iec-60320-c14'
  151. TYPE_IEC_C16 = 'iec-60320-c16'
  152. TYPE_IEC_C20 = 'iec-60320-c20'
  153. # IEC 60309
  154. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  155. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  156. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  157. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  158. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  159. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  160. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  161. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  162. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  163. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  164. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  165. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  166. # NEMA non-locking
  167. TYPE_NEMA_115P = 'nema-1-15p'
  168. TYPE_NEMA_515P = 'nema-5-15p'
  169. TYPE_NEMA_520P = 'nema-5-20p'
  170. TYPE_NEMA_530P = 'nema-5-30p'
  171. TYPE_NEMA_550P = 'nema-5-50p'
  172. TYPE_NEMA_615P = 'nema-6-15p'
  173. TYPE_NEMA_620P = 'nema-6-20p'
  174. TYPE_NEMA_630P = 'nema-6-30p'
  175. TYPE_NEMA_650P = 'nema-6-50p'
  176. TYPE_NEMA_1030P = 'nema-10-30p'
  177. TYPE_NEMA_1050P = 'nema-10-50p'
  178. TYPE_NEMA_1420P = 'nema-14-20p'
  179. TYPE_NEMA_1430P = 'nema-14-30p'
  180. TYPE_NEMA_1450P = 'nema-14-50p'
  181. TYPE_NEMA_1460P = 'nema-14-60p'
  182. # NEMA locking
  183. TYPE_NEMA_L115P = 'nema-l1-15p'
  184. TYPE_NEMA_L515P = 'nema-l5-15p'
  185. TYPE_NEMA_L520P = 'nema-l5-20p'
  186. TYPE_NEMA_L530P = 'nema-l5-30p'
  187. TYPE_NEMA_L550P = 'nema-l5-50p'
  188. TYPE_NEMA_L615P = 'nema-l6-15p'
  189. TYPE_NEMA_L620P = 'nema-l6-20p'
  190. TYPE_NEMA_L630P = 'nema-l6-30p'
  191. TYPE_NEMA_L650P = 'nema-l6-50p'
  192. TYPE_NEMA_L1030P = 'nema-l10-30p'
  193. TYPE_NEMA_L1420P = 'nema-l14-20p'
  194. TYPE_NEMA_L1430P = 'nema-l14-30p'
  195. TYPE_NEMA_L1450P = 'nema-l14-50p'
  196. TYPE_NEMA_L1460P = 'nema-l14-60p'
  197. TYPE_NEMA_L2120P = 'nema-l21-20p'
  198. TYPE_NEMA_L2130P = 'nema-l21-30p'
  199. # California style
  200. TYPE_CS6361C = 'cs6361c'
  201. TYPE_CS6365C = 'cs6365c'
  202. TYPE_CS8165C = 'cs8165c'
  203. TYPE_CS8265C = 'cs8265c'
  204. TYPE_CS8365C = 'cs8365c'
  205. TYPE_CS8465C = 'cs8465c'
  206. # ITA/international
  207. TYPE_ITA_E = 'ita-e'
  208. TYPE_ITA_F = 'ita-f'
  209. TYPE_ITA_EF = 'ita-ef'
  210. TYPE_ITA_G = 'ita-g'
  211. TYPE_ITA_H = 'ita-h'
  212. TYPE_ITA_I = 'ita-i'
  213. TYPE_ITA_J = 'ita-j'
  214. TYPE_ITA_K = 'ita-k'
  215. TYPE_ITA_L = 'ita-l'
  216. TYPE_ITA_M = 'ita-m'
  217. TYPE_ITA_N = 'ita-n'
  218. TYPE_ITA_O = 'ita-o'
  219. CHOICES = (
  220. ('IEC 60320', (
  221. (TYPE_IEC_C6, 'C6'),
  222. (TYPE_IEC_C8, 'C8'),
  223. (TYPE_IEC_C14, 'C14'),
  224. (TYPE_IEC_C16, 'C16'),
  225. (TYPE_IEC_C20, 'C20'),
  226. )),
  227. ('IEC 60309', (
  228. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  229. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  230. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  231. (TYPE_IEC_2PE4H, '2P+E 4H'),
  232. (TYPE_IEC_2PE6H, '2P+E 6H'),
  233. (TYPE_IEC_2PE9H, '2P+E 9H'),
  234. (TYPE_IEC_3PE4H, '3P+E 4H'),
  235. (TYPE_IEC_3PE6H, '3P+E 6H'),
  236. (TYPE_IEC_3PE9H, '3P+E 9H'),
  237. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  238. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  239. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  240. )),
  241. ('NEMA (Non-locking)', (
  242. (TYPE_NEMA_115P, 'NEMA 1-15P'),
  243. (TYPE_NEMA_515P, 'NEMA 5-15P'),
  244. (TYPE_NEMA_520P, 'NEMA 5-20P'),
  245. (TYPE_NEMA_530P, 'NEMA 5-30P'),
  246. (TYPE_NEMA_550P, 'NEMA 5-50P'),
  247. (TYPE_NEMA_615P, 'NEMA 6-15P'),
  248. (TYPE_NEMA_620P, 'NEMA 6-20P'),
  249. (TYPE_NEMA_630P, 'NEMA 6-30P'),
  250. (TYPE_NEMA_650P, 'NEMA 6-50P'),
  251. (TYPE_NEMA_1030P, 'NEMA 10-30P'),
  252. (TYPE_NEMA_1050P, 'NEMA 10-50P'),
  253. (TYPE_NEMA_1420P, 'NEMA 14-20P'),
  254. (TYPE_NEMA_1430P, 'NEMA 14-30P'),
  255. (TYPE_NEMA_1450P, 'NEMA 14-50P'),
  256. (TYPE_NEMA_1460P, 'NEMA 14-60P'),
  257. )),
  258. ('NEMA (Locking)', (
  259. (TYPE_NEMA_L115P, 'NEMA L1-15P'),
  260. (TYPE_NEMA_L515P, 'NEMA L5-15P'),
  261. (TYPE_NEMA_L520P, 'NEMA L5-20P'),
  262. (TYPE_NEMA_L530P, 'NEMA L5-30P'),
  263. (TYPE_NEMA_L550P, 'NEMA L5-50P'),
  264. (TYPE_NEMA_L615P, 'NEMA L6-15P'),
  265. (TYPE_NEMA_L620P, 'NEMA L6-20P'),
  266. (TYPE_NEMA_L630P, 'NEMA L6-30P'),
  267. (TYPE_NEMA_L650P, 'NEMA L6-50P'),
  268. (TYPE_NEMA_L1030P, 'NEMA L10-30P'),
  269. (TYPE_NEMA_L1420P, 'NEMA L14-20P'),
  270. (TYPE_NEMA_L1430P, 'NEMA L14-30P'),
  271. (TYPE_NEMA_L1450P, 'NEMA L14-50P'),
  272. (TYPE_NEMA_L1460P, 'NEMA L14-60P'),
  273. (TYPE_NEMA_L2120P, 'NEMA L21-20P'),
  274. (TYPE_NEMA_L2130P, 'NEMA L21-30P'),
  275. )),
  276. ('California Style', (
  277. (TYPE_CS6361C, 'CS6361C'),
  278. (TYPE_CS6365C, 'CS6365C'),
  279. (TYPE_CS8165C, 'CS8165C'),
  280. (TYPE_CS8265C, 'CS8265C'),
  281. (TYPE_CS8365C, 'CS8365C'),
  282. (TYPE_CS8465C, 'CS8465C'),
  283. )),
  284. ('International/ITA', (
  285. (TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
  286. (TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
  287. (TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
  288. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  289. (TYPE_ITA_H, 'ITA Type H'),
  290. (TYPE_ITA_I, 'ITA Type I'),
  291. (TYPE_ITA_J, 'ITA Type J'),
  292. (TYPE_ITA_K, 'ITA Type K'),
  293. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  294. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  295. (TYPE_ITA_N, 'ITA Type N'),
  296. (TYPE_ITA_O, 'ITA Type O'),
  297. )),
  298. )
  299. #
  300. # PowerOutlets
  301. #
  302. class PowerOutletTypeChoices(ChoiceSet):
  303. # IEC 60320
  304. TYPE_IEC_C5 = 'iec-60320-c5'
  305. TYPE_IEC_C7 = 'iec-60320-c7'
  306. TYPE_IEC_C13 = 'iec-60320-c13'
  307. TYPE_IEC_C15 = 'iec-60320-c15'
  308. TYPE_IEC_C19 = 'iec-60320-c19'
  309. # IEC 60309
  310. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  311. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  312. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  313. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  314. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  315. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  316. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  317. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  318. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  319. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  320. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  321. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  322. # NEMA non-locking
  323. TYPE_NEMA_115R = 'nema-1-15r'
  324. TYPE_NEMA_515R = 'nema-5-15r'
  325. TYPE_NEMA_520R = 'nema-5-20r'
  326. TYPE_NEMA_530R = 'nema-5-30r'
  327. TYPE_NEMA_550R = 'nema-5-50r'
  328. TYPE_NEMA_615R = 'nema-6-15r'
  329. TYPE_NEMA_620R = 'nema-6-20r'
  330. TYPE_NEMA_630R = 'nema-6-30r'
  331. TYPE_NEMA_650R = 'nema-6-50r'
  332. TYPE_NEMA_1030R = 'nema-10-30r'
  333. TYPE_NEMA_1050R = 'nema-10-50r'
  334. TYPE_NEMA_1420R = 'nema-14-20r'
  335. TYPE_NEMA_1430R = 'nema-14-30r'
  336. TYPE_NEMA_1450R = 'nema-14-50r'
  337. TYPE_NEMA_1460R = 'nema-14-60r'
  338. # NEMA locking
  339. TYPE_NEMA_L115R = 'nema-l1-15r'
  340. TYPE_NEMA_L515R = 'nema-l5-15r'
  341. TYPE_NEMA_L520R = 'nema-l5-20r'
  342. TYPE_NEMA_L530R = 'nema-l5-30r'
  343. TYPE_NEMA_L550R = 'nema-l5-50r'
  344. TYPE_NEMA_L615R = 'nema-l6-15r'
  345. TYPE_NEMA_L620R = 'nema-l6-20r'
  346. TYPE_NEMA_L630R = 'nema-l6-30r'
  347. TYPE_NEMA_L650R = 'nema-l6-50r'
  348. TYPE_NEMA_L1030R = 'nema-l10-30r'
  349. TYPE_NEMA_L1420R = 'nema-l14-20r'
  350. TYPE_NEMA_L1430R = 'nema-l14-30r'
  351. TYPE_NEMA_L1450R = 'nema-l14-50r'
  352. TYPE_NEMA_L1460R = 'nema-l14-60r'
  353. TYPE_NEMA_L2120R = 'nema-l21-20r'
  354. TYPE_NEMA_L2130R = 'nema-l21-30r'
  355. # California style
  356. TYPE_CS6360C = 'CS6360C'
  357. TYPE_CS6364C = 'CS6364C'
  358. TYPE_CS8164C = 'CS8164C'
  359. TYPE_CS8264C = 'CS8264C'
  360. TYPE_CS8364C = 'CS8364C'
  361. TYPE_CS8464C = 'CS8464C'
  362. # ITA/international
  363. TYPE_ITA_E = 'ita-e'
  364. TYPE_ITA_F = 'ita-f'
  365. TYPE_ITA_G = 'ita-g'
  366. TYPE_ITA_H = 'ita-h'
  367. TYPE_ITA_I = 'ita-i'
  368. TYPE_ITA_J = 'ita-j'
  369. TYPE_ITA_K = 'ita-k'
  370. TYPE_ITA_L = 'ita-l'
  371. TYPE_ITA_M = 'ita-m'
  372. TYPE_ITA_N = 'ita-n'
  373. TYPE_ITA_O = 'ita-o'
  374. # Proprietary
  375. TYPE_HDOT_CX = 'hdot-cx'
  376. CHOICES = (
  377. ('IEC 60320', (
  378. (TYPE_IEC_C5, 'C5'),
  379. (TYPE_IEC_C7, 'C7'),
  380. (TYPE_IEC_C13, 'C13'),
  381. (TYPE_IEC_C15, 'C15'),
  382. (TYPE_IEC_C19, 'C19'),
  383. )),
  384. ('IEC 60309', (
  385. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  386. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  387. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  388. (TYPE_IEC_2PE4H, '2P+E 4H'),
  389. (TYPE_IEC_2PE6H, '2P+E 6H'),
  390. (TYPE_IEC_2PE9H, '2P+E 9H'),
  391. (TYPE_IEC_3PE4H, '3P+E 4H'),
  392. (TYPE_IEC_3PE6H, '3P+E 6H'),
  393. (TYPE_IEC_3PE9H, '3P+E 9H'),
  394. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  395. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  396. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  397. )),
  398. ('NEMA (Non-locking)', (
  399. (TYPE_NEMA_115R, 'NEMA 1-15R'),
  400. (TYPE_NEMA_515R, 'NEMA 5-15R'),
  401. (TYPE_NEMA_520R, 'NEMA 5-20R'),
  402. (TYPE_NEMA_530R, 'NEMA 5-30R'),
  403. (TYPE_NEMA_550R, 'NEMA 5-50R'),
  404. (TYPE_NEMA_615R, 'NEMA 6-15R'),
  405. (TYPE_NEMA_620R, 'NEMA 6-20R'),
  406. (TYPE_NEMA_630R, 'NEMA 6-30R'),
  407. (TYPE_NEMA_650R, 'NEMA 6-50R'),
  408. (TYPE_NEMA_1030R, 'NEMA 10-30R'),
  409. (TYPE_NEMA_1050R, 'NEMA 10-50R'),
  410. (TYPE_NEMA_1420R, 'NEMA 14-20R'),
  411. (TYPE_NEMA_1430R, 'NEMA 14-30R'),
  412. (TYPE_NEMA_1450R, 'NEMA 14-50R'),
  413. (TYPE_NEMA_1460R, 'NEMA 14-60R'),
  414. )),
  415. ('NEMA (Locking)', (
  416. (TYPE_NEMA_L115R, 'NEMA L1-15R'),
  417. (TYPE_NEMA_L515R, 'NEMA L5-15R'),
  418. (TYPE_NEMA_L520R, 'NEMA L5-20R'),
  419. (TYPE_NEMA_L530R, 'NEMA L5-30R'),
  420. (TYPE_NEMA_L550R, 'NEMA L5-50R'),
  421. (TYPE_NEMA_L615R, 'NEMA L6-15R'),
  422. (TYPE_NEMA_L620R, 'NEMA L6-20R'),
  423. (TYPE_NEMA_L630R, 'NEMA L6-30R'),
  424. (TYPE_NEMA_L650R, 'NEMA L6-50R'),
  425. (TYPE_NEMA_L1030R, 'NEMA L10-30R'),
  426. (TYPE_NEMA_L1420R, 'NEMA L14-20R'),
  427. (TYPE_NEMA_L1430R, 'NEMA L14-30R'),
  428. (TYPE_NEMA_L1450R, 'NEMA L14-50R'),
  429. (TYPE_NEMA_L1460R, 'NEMA L14-60R'),
  430. (TYPE_NEMA_L2120R, 'NEMA L21-20R'),
  431. (TYPE_NEMA_L2130R, 'NEMA L21-30R'),
  432. )),
  433. ('California Style', (
  434. (TYPE_CS6360C, 'CS6360C'),
  435. (TYPE_CS6364C, 'CS6364C'),
  436. (TYPE_CS8164C, 'CS8164C'),
  437. (TYPE_CS8264C, 'CS8264C'),
  438. (TYPE_CS8364C, 'CS8364C'),
  439. (TYPE_CS8464C, 'CS8464C'),
  440. )),
  441. ('ITA/International', (
  442. (TYPE_ITA_E, 'ITA Type E (CEE7/5)'),
  443. (TYPE_ITA_F, 'ITA Type F (CEE7/3)'),
  444. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  445. (TYPE_ITA_H, 'ITA Type H'),
  446. (TYPE_ITA_I, 'ITA Type I'),
  447. (TYPE_ITA_J, 'ITA Type J'),
  448. (TYPE_ITA_K, 'ITA Type K'),
  449. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  450. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  451. (TYPE_ITA_N, 'ITA Type N'),
  452. (TYPE_ITA_O, 'ITA Type O'),
  453. )),
  454. ('Proprietary', (
  455. (TYPE_HDOT_CX, 'HDOT Cx'),
  456. )),
  457. )
  458. class PowerOutletFeedLegChoices(ChoiceSet):
  459. FEED_LEG_A = 'A'
  460. FEED_LEG_B = 'B'
  461. FEED_LEG_C = 'C'
  462. CHOICES = (
  463. (FEED_LEG_A, 'A'),
  464. (FEED_LEG_B, 'B'),
  465. (FEED_LEG_C, 'C'),
  466. )
  467. #
  468. # Interfaces
  469. #
  470. class InterfaceTypeChoices(ChoiceSet):
  471. # Virtual
  472. TYPE_VIRTUAL = 'virtual'
  473. TYPE_LAG = 'lag'
  474. # Ethernet
  475. TYPE_100ME_FIXED = '100base-tx'
  476. TYPE_1GE_FIXED = '1000base-t'
  477. TYPE_1GE_GBIC = '1000base-x-gbic'
  478. TYPE_1GE_SFP = '1000base-x-sfp'
  479. TYPE_2GE_FIXED = '2.5gbase-t'
  480. TYPE_5GE_FIXED = '5gbase-t'
  481. TYPE_10GE_FIXED = '10gbase-t'
  482. TYPE_10GE_CX4 = '10gbase-cx4'
  483. TYPE_10GE_SFP_PLUS = '10gbase-x-sfpp'
  484. TYPE_10GE_XFP = '10gbase-x-xfp'
  485. TYPE_10GE_XENPAK = '10gbase-x-xenpak'
  486. TYPE_10GE_X2 = '10gbase-x-x2'
  487. TYPE_25GE_SFP28 = '25gbase-x-sfp28'
  488. TYPE_40GE_QSFP_PLUS = '40gbase-x-qsfpp'
  489. TYPE_50GE_QSFP28 = '50gbase-x-sfp28'
  490. TYPE_100GE_CFP = '100gbase-x-cfp'
  491. TYPE_100GE_CFP2 = '100gbase-x-cfp2'
  492. TYPE_100GE_CFP4 = '100gbase-x-cfp4'
  493. TYPE_100GE_CPAK = '100gbase-x-cpak'
  494. TYPE_100GE_QSFP28 = '100gbase-x-qsfp28'
  495. TYPE_200GE_CFP2 = '200gbase-x-cfp2'
  496. TYPE_200GE_QSFP56 = '200gbase-x-qsfp56'
  497. TYPE_400GE_QSFP_DD = '400gbase-x-qsfpdd'
  498. TYPE_400GE_OSFP = '400gbase-x-osfp'
  499. # Wireless
  500. TYPE_80211A = 'ieee802.11a'
  501. TYPE_80211G = 'ieee802.11g'
  502. TYPE_80211N = 'ieee802.11n'
  503. TYPE_80211AC = 'ieee802.11ac'
  504. TYPE_80211AD = 'ieee802.11ad'
  505. TYPE_80211AX = 'ieee802.11ax'
  506. # Cellular
  507. TYPE_GSM = 'gsm'
  508. TYPE_CDMA = 'cdma'
  509. TYPE_LTE = 'lte'
  510. # SONET
  511. TYPE_SONET_OC3 = 'sonet-oc3'
  512. TYPE_SONET_OC12 = 'sonet-oc12'
  513. TYPE_SONET_OC48 = 'sonet-oc48'
  514. TYPE_SONET_OC192 = 'sonet-oc192'
  515. TYPE_SONET_OC768 = 'sonet-oc768'
  516. TYPE_SONET_OC1920 = 'sonet-oc1920'
  517. TYPE_SONET_OC3840 = 'sonet-oc3840'
  518. # Fibrechannel
  519. TYPE_1GFC_SFP = '1gfc-sfp'
  520. TYPE_2GFC_SFP = '2gfc-sfp'
  521. TYPE_4GFC_SFP = '4gfc-sfp'
  522. TYPE_8GFC_SFP_PLUS = '8gfc-sfpp'
  523. TYPE_16GFC_SFP_PLUS = '16gfc-sfpp'
  524. TYPE_32GFC_SFP28 = '32gfc-sfp28'
  525. TYPE_128GFC_QSFP28 = '128gfc-sfp28'
  526. # InfiniBand
  527. TYPE_INFINIBAND_SDR = 'infiniband-sdr'
  528. TYPE_INFINIBAND_DDR = 'infiniband-ddr'
  529. TYPE_INFINIBAND_QDR = 'infiniband-qdr'
  530. TYPE_INFINIBAND_FDR10 = 'infiniband-fdr10'
  531. TYPE_INFINIBAND_FDR = 'infiniband-fdr'
  532. TYPE_INFINIBAND_EDR = 'infiniband-edr'
  533. TYPE_INFINIBAND_HDR = 'infiniband-hdr'
  534. TYPE_INFINIBAND_NDR = 'infiniband-ndr'
  535. TYPE_INFINIBAND_XDR = 'infiniband-xdr'
  536. # Serial
  537. TYPE_T1 = 't1'
  538. TYPE_E1 = 'e1'
  539. TYPE_T3 = 't3'
  540. TYPE_E3 = 'e3'
  541. # Stacking
  542. TYPE_STACKWISE = 'cisco-stackwise'
  543. TYPE_STACKWISE_PLUS = 'cisco-stackwise-plus'
  544. TYPE_FLEXSTACK = 'cisco-flexstack'
  545. TYPE_FLEXSTACK_PLUS = 'cisco-flexstack-plus'
  546. TYPE_JUNIPER_VCP = 'juniper-vcp'
  547. TYPE_SUMMITSTACK = 'extreme-summitstack'
  548. TYPE_SUMMITSTACK128 = 'extreme-summitstack-128'
  549. TYPE_SUMMITSTACK256 = 'extreme-summitstack-256'
  550. TYPE_SUMMITSTACK512 = 'extreme-summitstack-512'
  551. # Other
  552. TYPE_OTHER = 'other'
  553. CHOICES = (
  554. (
  555. 'Virtual interfaces',
  556. (
  557. (TYPE_VIRTUAL, 'Virtual'),
  558. (TYPE_LAG, 'Link Aggregation Group (LAG)'),
  559. ),
  560. ),
  561. (
  562. 'Ethernet (fixed)',
  563. (
  564. (TYPE_100ME_FIXED, '100BASE-TX (10/100ME)'),
  565. (TYPE_1GE_FIXED, '1000BASE-T (1GE)'),
  566. (TYPE_2GE_FIXED, '2.5GBASE-T (2.5GE)'),
  567. (TYPE_5GE_FIXED, '5GBASE-T (5GE)'),
  568. (TYPE_10GE_FIXED, '10GBASE-T (10GE)'),
  569. (TYPE_10GE_CX4, '10GBASE-CX4 (10GE)'),
  570. )
  571. ),
  572. (
  573. 'Ethernet (modular)',
  574. (
  575. (TYPE_1GE_GBIC, 'GBIC (1GE)'),
  576. (TYPE_1GE_SFP, 'SFP (1GE)'),
  577. (TYPE_10GE_SFP_PLUS, 'SFP+ (10GE)'),
  578. (TYPE_10GE_XFP, 'XFP (10GE)'),
  579. (TYPE_10GE_XENPAK, 'XENPAK (10GE)'),
  580. (TYPE_10GE_X2, 'X2 (10GE)'),
  581. (TYPE_25GE_SFP28, 'SFP28 (25GE)'),
  582. (TYPE_40GE_QSFP_PLUS, 'QSFP+ (40GE)'),
  583. (TYPE_50GE_QSFP28, 'QSFP28 (50GE)'),
  584. (TYPE_100GE_CFP, 'CFP (100GE)'),
  585. (TYPE_100GE_CFP2, 'CFP2 (100GE)'),
  586. (TYPE_200GE_CFP2, 'CFP2 (200GE)'),
  587. (TYPE_100GE_CFP4, 'CFP4 (100GE)'),
  588. (TYPE_100GE_CPAK, 'Cisco CPAK (100GE)'),
  589. (TYPE_100GE_QSFP28, 'QSFP28 (100GE)'),
  590. (TYPE_200GE_QSFP56, 'QSFP56 (200GE)'),
  591. (TYPE_400GE_QSFP_DD, 'QSFP-DD (400GE)'),
  592. (TYPE_400GE_OSFP, 'OSFP (400GE)'),
  593. )
  594. ),
  595. (
  596. 'Wireless',
  597. (
  598. (TYPE_80211A, 'IEEE 802.11a'),
  599. (TYPE_80211G, 'IEEE 802.11b/g'),
  600. (TYPE_80211N, 'IEEE 802.11n'),
  601. (TYPE_80211AC, 'IEEE 802.11ac'),
  602. (TYPE_80211AD, 'IEEE 802.11ad'),
  603. (TYPE_80211AX, 'IEEE 802.11ax'),
  604. )
  605. ),
  606. (
  607. 'Cellular',
  608. (
  609. (TYPE_GSM, 'GSM'),
  610. (TYPE_CDMA, 'CDMA'),
  611. (TYPE_LTE, 'LTE'),
  612. )
  613. ),
  614. (
  615. 'SONET',
  616. (
  617. (TYPE_SONET_OC3, 'OC-3/STM-1'),
  618. (TYPE_SONET_OC12, 'OC-12/STM-4'),
  619. (TYPE_SONET_OC48, 'OC-48/STM-16'),
  620. (TYPE_SONET_OC192, 'OC-192/STM-64'),
  621. (TYPE_SONET_OC768, 'OC-768/STM-256'),
  622. (TYPE_SONET_OC1920, 'OC-1920/STM-640'),
  623. (TYPE_SONET_OC3840, 'OC-3840/STM-1234'),
  624. )
  625. ),
  626. (
  627. 'FibreChannel',
  628. (
  629. (TYPE_1GFC_SFP, 'SFP (1GFC)'),
  630. (TYPE_2GFC_SFP, 'SFP (2GFC)'),
  631. (TYPE_4GFC_SFP, 'SFP (4GFC)'),
  632. (TYPE_8GFC_SFP_PLUS, 'SFP+ (8GFC)'),
  633. (TYPE_16GFC_SFP_PLUS, 'SFP+ (16GFC)'),
  634. (TYPE_32GFC_SFP28, 'SFP28 (32GFC)'),
  635. (TYPE_128GFC_QSFP28, 'QSFP28 (128GFC)'),
  636. )
  637. ),
  638. (
  639. 'InfiniBand',
  640. (
  641. (TYPE_INFINIBAND_SDR, 'SDR (2 Gbps)'),
  642. (TYPE_INFINIBAND_DDR, 'DDR (4 Gbps)'),
  643. (TYPE_INFINIBAND_QDR, 'QDR (8 Gbps)'),
  644. (TYPE_INFINIBAND_FDR10, 'FDR10 (10 Gbps)'),
  645. (TYPE_INFINIBAND_FDR, 'FDR (13.5 Gbps)'),
  646. (TYPE_INFINIBAND_EDR, 'EDR (25 Gbps)'),
  647. (TYPE_INFINIBAND_HDR, 'HDR (50 Gbps)'),
  648. (TYPE_INFINIBAND_NDR, 'NDR (100 Gbps)'),
  649. (TYPE_INFINIBAND_XDR, 'XDR (250 Gbps)'),
  650. )
  651. ),
  652. (
  653. 'Serial',
  654. (
  655. (TYPE_T1, 'T1 (1.544 Mbps)'),
  656. (TYPE_E1, 'E1 (2.048 Mbps)'),
  657. (TYPE_T3, 'T3 (45 Mbps)'),
  658. (TYPE_E3, 'E3 (34 Mbps)'),
  659. )
  660. ),
  661. (
  662. 'Stacking',
  663. (
  664. (TYPE_STACKWISE, 'Cisco StackWise'),
  665. (TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'),
  666. (TYPE_FLEXSTACK, 'Cisco FlexStack'),
  667. (TYPE_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'),
  668. (TYPE_JUNIPER_VCP, 'Juniper VCP'),
  669. (TYPE_SUMMITSTACK, 'Extreme SummitStack'),
  670. (TYPE_SUMMITSTACK128, 'Extreme SummitStack-128'),
  671. (TYPE_SUMMITSTACK256, 'Extreme SummitStack-256'),
  672. (TYPE_SUMMITSTACK512, 'Extreme SummitStack-512'),
  673. )
  674. ),
  675. (
  676. 'Other',
  677. (
  678. (TYPE_OTHER, 'Other'),
  679. )
  680. ),
  681. )
  682. class InterfaceModeChoices(ChoiceSet):
  683. MODE_ACCESS = 'access'
  684. MODE_TAGGED = 'tagged'
  685. MODE_TAGGED_ALL = 'tagged-all'
  686. CHOICES = (
  687. (MODE_ACCESS, 'Access'),
  688. (MODE_TAGGED, 'Tagged'),
  689. (MODE_TAGGED_ALL, 'Tagged (All)'),
  690. )
  691. #
  692. # FrontPorts/RearPorts
  693. #
  694. class PortTypeChoices(ChoiceSet):
  695. TYPE_8P8C = '8p8c'
  696. TYPE_110_PUNCH = '110-punch'
  697. TYPE_BNC = 'bnc'
  698. TYPE_MRJ21 = 'mrj21'
  699. TYPE_ST = 'st'
  700. TYPE_SC = 'sc'
  701. TYPE_SC_APC = 'sc-apc'
  702. TYPE_FC = 'fc'
  703. TYPE_LC = 'lc'
  704. TYPE_LC_APC = 'lc-apc'
  705. TYPE_MTRJ = 'mtrj'
  706. TYPE_MPO = 'mpo'
  707. TYPE_LSH = 'lsh'
  708. TYPE_LSH_APC = 'lsh-apc'
  709. CHOICES = (
  710. (
  711. 'Copper',
  712. (
  713. (TYPE_8P8C, '8P8C'),
  714. (TYPE_110_PUNCH, '110 Punch'),
  715. (TYPE_BNC, 'BNC'),
  716. (TYPE_MRJ21, 'MRJ21'),
  717. ),
  718. ),
  719. (
  720. 'Fiber Optic',
  721. (
  722. (TYPE_FC, 'FC'),
  723. (TYPE_LC, 'LC'),
  724. (TYPE_LC_APC, 'LC/APC'),
  725. (TYPE_LSH, 'LSH'),
  726. (TYPE_LSH_APC, 'LSH/APC'),
  727. (TYPE_MPO, 'MPO'),
  728. (TYPE_MTRJ, 'MTRJ'),
  729. (TYPE_SC, 'SC'),
  730. (TYPE_SC_APC, 'SC/APC'),
  731. (TYPE_ST, 'ST'),
  732. )
  733. )
  734. )
  735. #
  736. # Cables
  737. #
  738. class CableTypeChoices(ChoiceSet):
  739. TYPE_CAT3 = 'cat3'
  740. TYPE_CAT5 = 'cat5'
  741. TYPE_CAT5E = 'cat5e'
  742. TYPE_CAT6 = 'cat6'
  743. TYPE_CAT6A = 'cat6a'
  744. TYPE_CAT7 = 'cat7'
  745. TYPE_DAC_ACTIVE = 'dac-active'
  746. TYPE_DAC_PASSIVE = 'dac-passive'
  747. TYPE_MRJ21_TRUNK = 'mrj21-trunk'
  748. TYPE_COAXIAL = 'coaxial'
  749. TYPE_MMF = 'mmf'
  750. TYPE_MMF_OM1 = 'mmf-om1'
  751. TYPE_MMF_OM2 = 'mmf-om2'
  752. TYPE_MMF_OM3 = 'mmf-om3'
  753. TYPE_MMF_OM4 = 'mmf-om4'
  754. TYPE_SMF = 'smf'
  755. TYPE_SMF_OS1 = 'smf-os1'
  756. TYPE_SMF_OS2 = 'smf-os2'
  757. TYPE_AOC = 'aoc'
  758. TYPE_POWER = 'power'
  759. CHOICES = (
  760. (
  761. 'Copper', (
  762. (TYPE_CAT3, 'CAT3'),
  763. (TYPE_CAT5, 'CAT5'),
  764. (TYPE_CAT5E, 'CAT5e'),
  765. (TYPE_CAT6, 'CAT6'),
  766. (TYPE_CAT6A, 'CAT6a'),
  767. (TYPE_CAT7, 'CAT7'),
  768. (TYPE_DAC_ACTIVE, 'Direct Attach Copper (Active)'),
  769. (TYPE_DAC_PASSIVE, 'Direct Attach Copper (Passive)'),
  770. (TYPE_MRJ21_TRUNK, 'MRJ21 Trunk'),
  771. (TYPE_COAXIAL, 'Coaxial'),
  772. ),
  773. ),
  774. (
  775. 'Fiber', (
  776. (TYPE_MMF, 'Multimode Fiber'),
  777. (TYPE_MMF_OM1, 'Multimode Fiber (OM1)'),
  778. (TYPE_MMF_OM2, 'Multimode Fiber (OM2)'),
  779. (TYPE_MMF_OM3, 'Multimode Fiber (OM3)'),
  780. (TYPE_MMF_OM4, 'Multimode Fiber (OM4)'),
  781. (TYPE_SMF, 'Singlemode Fiber'),
  782. (TYPE_SMF_OS1, 'Singlemode Fiber (OS1)'),
  783. (TYPE_SMF_OS2, 'Singlemode Fiber (OS2)'),
  784. (TYPE_AOC, 'Active Optical Cabling (AOC)'),
  785. ),
  786. ),
  787. (TYPE_POWER, 'Power'),
  788. )
  789. class CableStatusChoices(ChoiceSet):
  790. STATUS_CONNECTED = 'connected'
  791. STATUS_PLANNED = 'planned'
  792. STATUS_DECOMMISSIONING = 'decommissioning'
  793. CHOICES = (
  794. (STATUS_CONNECTED, 'Connected'),
  795. (STATUS_PLANNED, 'Planned'),
  796. (STATUS_DECOMMISSIONING, 'Decommissioning'),
  797. )
  798. class CableLengthUnitChoices(ChoiceSet):
  799. UNIT_METER = 'm'
  800. UNIT_CENTIMETER = 'cm'
  801. UNIT_FOOT = 'ft'
  802. UNIT_INCH = 'in'
  803. CHOICES = (
  804. (UNIT_METER, 'Meters'),
  805. (UNIT_CENTIMETER, 'Centimeters'),
  806. (UNIT_FOOT, 'Feet'),
  807. (UNIT_INCH, 'Inches'),
  808. )
  809. #
  810. # PowerFeeds
  811. #
  812. class PowerFeedStatusChoices(ChoiceSet):
  813. STATUS_OFFLINE = 'offline'
  814. STATUS_ACTIVE = 'active'
  815. STATUS_PLANNED = 'planned'
  816. STATUS_FAILED = 'failed'
  817. CHOICES = (
  818. (STATUS_OFFLINE, 'Offline'),
  819. (STATUS_ACTIVE, 'Active'),
  820. (STATUS_PLANNED, 'Planned'),
  821. (STATUS_FAILED, 'Failed'),
  822. )
  823. class PowerFeedTypeChoices(ChoiceSet):
  824. TYPE_PRIMARY = 'primary'
  825. TYPE_REDUNDANT = 'redundant'
  826. CHOICES = (
  827. (TYPE_PRIMARY, 'Primary'),
  828. (TYPE_REDUNDANT, 'Redundant'),
  829. )
  830. class PowerFeedSupplyChoices(ChoiceSet):
  831. SUPPLY_AC = 'ac'
  832. SUPPLY_DC = 'dc'
  833. CHOICES = (
  834. (SUPPLY_AC, 'AC'),
  835. (SUPPLY_DC, 'DC'),
  836. )
  837. class PowerFeedPhaseChoices(ChoiceSet):
  838. PHASE_SINGLE = 'single-phase'
  839. PHASE_3PHASE = 'three-phase'
  840. CHOICES = (
  841. (PHASE_SINGLE, 'Single phase'),
  842. (PHASE_3PHASE, 'Three-phase'),
  843. )