2
0

choices.py 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202
  1. from utilities.choices import ChoiceSet
  2. #
  3. # Sites
  4. #
  5. class SiteStatusChoices(ChoiceSet):
  6. key = 'dcim.Site.status'
  7. STATUS_PLANNED = 'planned'
  8. STATUS_STAGING = 'staging'
  9. STATUS_ACTIVE = 'active'
  10. STATUS_DECOMMISSIONING = 'decommissioning'
  11. STATUS_RETIRED = 'retired'
  12. CHOICES = [
  13. (STATUS_PLANNED, 'Planned', 'cyan'),
  14. (STATUS_STAGING, 'Staging', 'blue'),
  15. (STATUS_ACTIVE, 'Active', 'green'),
  16. (STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
  17. (STATUS_RETIRED, 'Retired', 'red'),
  18. ]
  19. #
  20. # Racks
  21. #
  22. class RackTypeChoices(ChoiceSet):
  23. TYPE_2POST = '2-post-frame'
  24. TYPE_4POST = '4-post-frame'
  25. TYPE_CABINET = '4-post-cabinet'
  26. TYPE_WALLFRAME = 'wall-frame'
  27. TYPE_WALLCABINET = 'wall-cabinet'
  28. CHOICES = (
  29. (TYPE_2POST, '2-post frame'),
  30. (TYPE_4POST, '4-post frame'),
  31. (TYPE_CABINET, '4-post cabinet'),
  32. (TYPE_WALLFRAME, 'Wall-mounted frame'),
  33. (TYPE_WALLCABINET, 'Wall-mounted cabinet'),
  34. )
  35. class RackWidthChoices(ChoiceSet):
  36. WIDTH_10IN = 10
  37. WIDTH_19IN = 19
  38. WIDTH_21IN = 21
  39. WIDTH_23IN = 23
  40. CHOICES = (
  41. (WIDTH_10IN, '10 inches'),
  42. (WIDTH_19IN, '19 inches'),
  43. (WIDTH_21IN, '21 inches'),
  44. (WIDTH_23IN, '23 inches'),
  45. )
  46. class RackStatusChoices(ChoiceSet):
  47. key = 'dcim.Rack.status'
  48. STATUS_RESERVED = 'reserved'
  49. STATUS_AVAILABLE = 'available'
  50. STATUS_PLANNED = 'planned'
  51. STATUS_ACTIVE = 'active'
  52. STATUS_DEPRECATED = 'deprecated'
  53. CHOICES = [
  54. (STATUS_RESERVED, 'Reserved', 'yellow'),
  55. (STATUS_AVAILABLE, 'Available', 'green'),
  56. (STATUS_PLANNED, 'Planned', 'cyan'),
  57. (STATUS_ACTIVE, 'Active', 'blue'),
  58. (STATUS_DEPRECATED, 'Deprecated', 'red'),
  59. ]
  60. class RackDimensionUnitChoices(ChoiceSet):
  61. UNIT_MILLIMETER = 'mm'
  62. UNIT_INCH = 'in'
  63. CHOICES = (
  64. (UNIT_MILLIMETER, 'Millimeters'),
  65. (UNIT_INCH, 'Inches'),
  66. )
  67. class RackElevationDetailRenderChoices(ChoiceSet):
  68. RENDER_JSON = 'json'
  69. RENDER_SVG = 'svg'
  70. CHOICES = (
  71. (RENDER_JSON, 'json'),
  72. (RENDER_SVG, 'svg')
  73. )
  74. #
  75. # DeviceTypes
  76. #
  77. class SubdeviceRoleChoices(ChoiceSet):
  78. ROLE_PARENT = 'parent'
  79. ROLE_CHILD = 'child'
  80. CHOICES = (
  81. (ROLE_PARENT, 'Parent'),
  82. (ROLE_CHILD, 'Child'),
  83. )
  84. #
  85. # Devices
  86. #
  87. class DeviceFaceChoices(ChoiceSet):
  88. FACE_FRONT = 'front'
  89. FACE_REAR = 'rear'
  90. CHOICES = (
  91. (FACE_FRONT, 'Front'),
  92. (FACE_REAR, 'Rear'),
  93. )
  94. class DeviceStatusChoices(ChoiceSet):
  95. key = 'dcim.Device.status'
  96. STATUS_OFFLINE = 'offline'
  97. STATUS_ACTIVE = 'active'
  98. STATUS_PLANNED = 'planned'
  99. STATUS_STAGED = 'staged'
  100. STATUS_FAILED = 'failed'
  101. STATUS_INVENTORY = 'inventory'
  102. STATUS_DECOMMISSIONING = 'decommissioning'
  103. CHOICES = [
  104. (STATUS_OFFLINE, 'Offline', 'gray'),
  105. (STATUS_ACTIVE, 'Active', 'green'),
  106. (STATUS_PLANNED, 'Planned', 'cyan'),
  107. (STATUS_STAGED, 'Staged', 'blue'),
  108. (STATUS_FAILED, 'Failed', 'red'),
  109. (STATUS_INVENTORY, 'Inventory', 'purple'),
  110. (STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
  111. ]
  112. class DeviceAirflowChoices(ChoiceSet):
  113. AIRFLOW_FRONT_TO_REAR = 'front-to-rear'
  114. AIRFLOW_REAR_TO_FRONT = 'rear-to-front'
  115. AIRFLOW_LEFT_TO_RIGHT = 'left-to-right'
  116. AIRFLOW_RIGHT_TO_LEFT = 'right-to-left'
  117. AIRFLOW_SIDE_TO_REAR = 'side-to-rear'
  118. AIRFLOW_PASSIVE = 'passive'
  119. CHOICES = (
  120. (AIRFLOW_FRONT_TO_REAR, 'Front to rear'),
  121. (AIRFLOW_REAR_TO_FRONT, 'Rear to front'),
  122. (AIRFLOW_LEFT_TO_RIGHT, 'Left to right'),
  123. (AIRFLOW_RIGHT_TO_LEFT, 'Right to left'),
  124. (AIRFLOW_SIDE_TO_REAR, 'Side to rear'),
  125. (AIRFLOW_PASSIVE, 'Passive'),
  126. )
  127. #
  128. # ConsolePorts
  129. #
  130. class ConsolePortTypeChoices(ChoiceSet):
  131. TYPE_DE9 = 'de-9'
  132. TYPE_DB25 = 'db-25'
  133. TYPE_RJ11 = 'rj-11'
  134. TYPE_RJ12 = 'rj-12'
  135. TYPE_RJ45 = 'rj-45'
  136. TYPE_MINI_DIN_8 = 'mini-din-8'
  137. TYPE_USB_A = 'usb-a'
  138. TYPE_USB_B = 'usb-b'
  139. TYPE_USB_C = 'usb-c'
  140. TYPE_USB_MINI_A = 'usb-mini-a'
  141. TYPE_USB_MINI_B = 'usb-mini-b'
  142. TYPE_USB_MICRO_A = 'usb-micro-a'
  143. TYPE_USB_MICRO_B = 'usb-micro-b'
  144. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  145. TYPE_OTHER = 'other'
  146. CHOICES = (
  147. ('Serial', (
  148. (TYPE_DE9, 'DE-9'),
  149. (TYPE_DB25, 'DB-25'),
  150. (TYPE_RJ11, 'RJ-11'),
  151. (TYPE_RJ12, 'RJ-12'),
  152. (TYPE_RJ45, 'RJ-45'),
  153. (TYPE_MINI_DIN_8, 'Mini-DIN 8'),
  154. )),
  155. ('USB', (
  156. (TYPE_USB_A, 'USB Type A'),
  157. (TYPE_USB_B, 'USB Type B'),
  158. (TYPE_USB_C, 'USB Type C'),
  159. (TYPE_USB_MINI_A, 'USB Mini A'),
  160. (TYPE_USB_MINI_B, 'USB Mini B'),
  161. (TYPE_USB_MICRO_A, 'USB Micro A'),
  162. (TYPE_USB_MICRO_B, 'USB Micro B'),
  163. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  164. )),
  165. ('Other', (
  166. (TYPE_OTHER, 'Other'),
  167. )),
  168. )
  169. class ConsolePortSpeedChoices(ChoiceSet):
  170. SPEED_1200 = 1200
  171. SPEED_2400 = 2400
  172. SPEED_4800 = 4800
  173. SPEED_9600 = 9600
  174. SPEED_19200 = 19200
  175. SPEED_38400 = 38400
  176. SPEED_57600 = 57600
  177. SPEED_115200 = 115200
  178. CHOICES = (
  179. (SPEED_1200, '1200 bps'),
  180. (SPEED_2400, '2400 bps'),
  181. (SPEED_4800, '4800 bps'),
  182. (SPEED_9600, '9600 bps'),
  183. (SPEED_19200, '19.2 kbps'),
  184. (SPEED_38400, '38.4 kbps'),
  185. (SPEED_57600, '57.6 kbps'),
  186. (SPEED_115200, '115.2 kbps'),
  187. )
  188. #
  189. # PowerPorts
  190. #
  191. class PowerPortTypeChoices(ChoiceSet):
  192. # IEC 60320
  193. TYPE_IEC_C6 = 'iec-60320-c6'
  194. TYPE_IEC_C8 = 'iec-60320-c8'
  195. TYPE_IEC_C14 = 'iec-60320-c14'
  196. TYPE_IEC_C16 = 'iec-60320-c16'
  197. TYPE_IEC_C20 = 'iec-60320-c20'
  198. TYPE_IEC_C22 = 'iec-60320-c22'
  199. # IEC 60309
  200. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  201. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  202. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  203. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  204. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  205. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  206. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  207. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  208. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  209. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  210. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  211. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  212. # NEMA non-locking
  213. TYPE_NEMA_115P = 'nema-1-15p'
  214. TYPE_NEMA_515P = 'nema-5-15p'
  215. TYPE_NEMA_520P = 'nema-5-20p'
  216. TYPE_NEMA_530P = 'nema-5-30p'
  217. TYPE_NEMA_550P = 'nema-5-50p'
  218. TYPE_NEMA_615P = 'nema-6-15p'
  219. TYPE_NEMA_620P = 'nema-6-20p'
  220. TYPE_NEMA_630P = 'nema-6-30p'
  221. TYPE_NEMA_650P = 'nema-6-50p'
  222. TYPE_NEMA_1030P = 'nema-10-30p'
  223. TYPE_NEMA_1050P = 'nema-10-50p'
  224. TYPE_NEMA_1420P = 'nema-14-20p'
  225. TYPE_NEMA_1430P = 'nema-14-30p'
  226. TYPE_NEMA_1450P = 'nema-14-50p'
  227. TYPE_NEMA_1460P = 'nema-14-60p'
  228. TYPE_NEMA_1515P = 'nema-15-15p'
  229. TYPE_NEMA_1520P = 'nema-15-20p'
  230. TYPE_NEMA_1530P = 'nema-15-30p'
  231. TYPE_NEMA_1550P = 'nema-15-50p'
  232. TYPE_NEMA_1560P = 'nema-15-60p'
  233. # NEMA locking
  234. TYPE_NEMA_L115P = 'nema-l1-15p'
  235. TYPE_NEMA_L515P = 'nema-l5-15p'
  236. TYPE_NEMA_L520P = 'nema-l5-20p'
  237. TYPE_NEMA_L530P = 'nema-l5-30p'
  238. TYPE_NEMA_L550P = 'nema-l5-50p'
  239. TYPE_NEMA_L615P = 'nema-l6-15p'
  240. TYPE_NEMA_L620P = 'nema-l6-20p'
  241. TYPE_NEMA_L630P = 'nema-l6-30p'
  242. TYPE_NEMA_L650P = 'nema-l6-50p'
  243. TYPE_NEMA_L1030P = 'nema-l10-30p'
  244. TYPE_NEMA_L1420P = 'nema-l14-20p'
  245. TYPE_NEMA_L1430P = 'nema-l14-30p'
  246. TYPE_NEMA_L1450P = 'nema-l14-50p'
  247. TYPE_NEMA_L1460P = 'nema-l14-60p'
  248. TYPE_NEMA_L1520P = 'nema-l15-20p'
  249. TYPE_NEMA_L1530P = 'nema-l15-30p'
  250. TYPE_NEMA_L1550P = 'nema-l15-50p'
  251. TYPE_NEMA_L1560P = 'nema-l15-60p'
  252. TYPE_NEMA_L2120P = 'nema-l21-20p'
  253. TYPE_NEMA_L2130P = 'nema-l21-30p'
  254. TYPE_NEMA_L2230P = 'nema-l22-30p'
  255. # California style
  256. TYPE_CS6361C = 'cs6361c'
  257. TYPE_CS6365C = 'cs6365c'
  258. TYPE_CS8165C = 'cs8165c'
  259. TYPE_CS8265C = 'cs8265c'
  260. TYPE_CS8365C = 'cs8365c'
  261. TYPE_CS8465C = 'cs8465c'
  262. # ITA/international
  263. TYPE_ITA_C = 'ita-c'
  264. TYPE_ITA_E = 'ita-e'
  265. TYPE_ITA_F = 'ita-f'
  266. TYPE_ITA_EF = 'ita-ef'
  267. TYPE_ITA_G = 'ita-g'
  268. TYPE_ITA_H = 'ita-h'
  269. TYPE_ITA_I = 'ita-i'
  270. TYPE_ITA_J = 'ita-j'
  271. TYPE_ITA_K = 'ita-k'
  272. TYPE_ITA_L = 'ita-l'
  273. TYPE_ITA_M = 'ita-m'
  274. TYPE_ITA_N = 'ita-n'
  275. TYPE_ITA_O = 'ita-o'
  276. # USB
  277. TYPE_USB_A = 'usb-a'
  278. TYPE_USB_B = 'usb-b'
  279. TYPE_USB_C = 'usb-c'
  280. TYPE_USB_MINI_A = 'usb-mini-a'
  281. TYPE_USB_MINI_B = 'usb-mini-b'
  282. TYPE_USB_MICRO_A = 'usb-micro-a'
  283. TYPE_USB_MICRO_B = 'usb-micro-b'
  284. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  285. TYPE_USB_3_B = 'usb-3-b'
  286. TYPE_USB_3_MICROB = 'usb-3-micro-b'
  287. # Direct current (DC)
  288. TYPE_DC = 'dc-terminal'
  289. # Proprietary
  290. TYPE_SAF_D_GRID = 'saf-d-grid'
  291. # Other
  292. TYPE_HARDWIRED = 'hardwired'
  293. CHOICES = (
  294. ('IEC 60320', (
  295. (TYPE_IEC_C6, 'C6'),
  296. (TYPE_IEC_C8, 'C8'),
  297. (TYPE_IEC_C14, 'C14'),
  298. (TYPE_IEC_C16, 'C16'),
  299. (TYPE_IEC_C20, 'C20'),
  300. (TYPE_IEC_C22, 'C22'),
  301. )),
  302. ('IEC 60309', (
  303. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  304. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  305. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  306. (TYPE_IEC_2PE4H, '2P+E 4H'),
  307. (TYPE_IEC_2PE6H, '2P+E 6H'),
  308. (TYPE_IEC_2PE9H, '2P+E 9H'),
  309. (TYPE_IEC_3PE4H, '3P+E 4H'),
  310. (TYPE_IEC_3PE6H, '3P+E 6H'),
  311. (TYPE_IEC_3PE9H, '3P+E 9H'),
  312. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  313. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  314. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  315. )),
  316. ('NEMA (Non-locking)', (
  317. (TYPE_NEMA_115P, 'NEMA 1-15P'),
  318. (TYPE_NEMA_515P, 'NEMA 5-15P'),
  319. (TYPE_NEMA_520P, 'NEMA 5-20P'),
  320. (TYPE_NEMA_530P, 'NEMA 5-30P'),
  321. (TYPE_NEMA_550P, 'NEMA 5-50P'),
  322. (TYPE_NEMA_615P, 'NEMA 6-15P'),
  323. (TYPE_NEMA_620P, 'NEMA 6-20P'),
  324. (TYPE_NEMA_630P, 'NEMA 6-30P'),
  325. (TYPE_NEMA_650P, 'NEMA 6-50P'),
  326. (TYPE_NEMA_1030P, 'NEMA 10-30P'),
  327. (TYPE_NEMA_1050P, 'NEMA 10-50P'),
  328. (TYPE_NEMA_1420P, 'NEMA 14-20P'),
  329. (TYPE_NEMA_1430P, 'NEMA 14-30P'),
  330. (TYPE_NEMA_1450P, 'NEMA 14-50P'),
  331. (TYPE_NEMA_1460P, 'NEMA 14-60P'),
  332. (TYPE_NEMA_1515P, 'NEMA 15-15P'),
  333. (TYPE_NEMA_1520P, 'NEMA 15-20P'),
  334. (TYPE_NEMA_1530P, 'NEMA 15-30P'),
  335. (TYPE_NEMA_1550P, 'NEMA 15-50P'),
  336. (TYPE_NEMA_1560P, 'NEMA 15-60P'),
  337. )),
  338. ('NEMA (Locking)', (
  339. (TYPE_NEMA_L115P, 'NEMA L1-15P'),
  340. (TYPE_NEMA_L515P, 'NEMA L5-15P'),
  341. (TYPE_NEMA_L520P, 'NEMA L5-20P'),
  342. (TYPE_NEMA_L530P, 'NEMA L5-30P'),
  343. (TYPE_NEMA_L550P, 'NEMA L5-50P'),
  344. (TYPE_NEMA_L615P, 'NEMA L6-15P'),
  345. (TYPE_NEMA_L620P, 'NEMA L6-20P'),
  346. (TYPE_NEMA_L630P, 'NEMA L6-30P'),
  347. (TYPE_NEMA_L650P, 'NEMA L6-50P'),
  348. (TYPE_NEMA_L1030P, 'NEMA L10-30P'),
  349. (TYPE_NEMA_L1420P, 'NEMA L14-20P'),
  350. (TYPE_NEMA_L1430P, 'NEMA L14-30P'),
  351. (TYPE_NEMA_L1450P, 'NEMA L14-50P'),
  352. (TYPE_NEMA_L1460P, 'NEMA L14-60P'),
  353. (TYPE_NEMA_L1520P, 'NEMA L15-20P'),
  354. (TYPE_NEMA_L1530P, 'NEMA L15-30P'),
  355. (TYPE_NEMA_L1550P, 'NEMA L15-50P'),
  356. (TYPE_NEMA_L1560P, 'NEMA L15-60P'),
  357. (TYPE_NEMA_L2120P, 'NEMA L21-20P'),
  358. (TYPE_NEMA_L2130P, 'NEMA L21-30P'),
  359. (TYPE_NEMA_L2230P, 'NEMA L22-30P'),
  360. )),
  361. ('California Style', (
  362. (TYPE_CS6361C, 'CS6361C'),
  363. (TYPE_CS6365C, 'CS6365C'),
  364. (TYPE_CS8165C, 'CS8165C'),
  365. (TYPE_CS8265C, 'CS8265C'),
  366. (TYPE_CS8365C, 'CS8365C'),
  367. (TYPE_CS8465C, 'CS8465C'),
  368. )),
  369. ('International/ITA', (
  370. (TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
  371. (TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
  372. (TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
  373. (TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
  374. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  375. (TYPE_ITA_H, 'ITA Type H'),
  376. (TYPE_ITA_I, 'ITA Type I'),
  377. (TYPE_ITA_J, 'ITA Type J'),
  378. (TYPE_ITA_K, 'ITA Type K'),
  379. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  380. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  381. (TYPE_ITA_N, 'ITA Type N'),
  382. (TYPE_ITA_O, 'ITA Type O'),
  383. )),
  384. ('USB', (
  385. (TYPE_USB_A, 'USB Type A'),
  386. (TYPE_USB_B, 'USB Type B'),
  387. (TYPE_USB_C, 'USB Type C'),
  388. (TYPE_USB_MINI_A, 'USB Mini A'),
  389. (TYPE_USB_MINI_B, 'USB Mini B'),
  390. (TYPE_USB_MICRO_A, 'USB Micro A'),
  391. (TYPE_USB_MICRO_B, 'USB Micro B'),
  392. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  393. (TYPE_USB_3_B, 'USB 3.0 Type B'),
  394. (TYPE_USB_3_MICROB, 'USB 3.0 Micro B'),
  395. )),
  396. ('DC', (
  397. (TYPE_DC, 'DC Terminal'),
  398. )),
  399. ('Proprietary', (
  400. (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
  401. )),
  402. ('Other', (
  403. (TYPE_HARDWIRED, 'Hardwired'),
  404. )),
  405. )
  406. #
  407. # PowerOutlets
  408. #
  409. class PowerOutletTypeChoices(ChoiceSet):
  410. # IEC 60320
  411. TYPE_IEC_C5 = 'iec-60320-c5'
  412. TYPE_IEC_C7 = 'iec-60320-c7'
  413. TYPE_IEC_C13 = 'iec-60320-c13'
  414. TYPE_IEC_C15 = 'iec-60320-c15'
  415. TYPE_IEC_C19 = 'iec-60320-c19'
  416. TYPE_IEC_C21 = 'iec-60320-c21'
  417. # IEC 60309
  418. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  419. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  420. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  421. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  422. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  423. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  424. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  425. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  426. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  427. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  428. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  429. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  430. # NEMA non-locking
  431. TYPE_NEMA_115R = 'nema-1-15r'
  432. TYPE_NEMA_515R = 'nema-5-15r'
  433. TYPE_NEMA_520R = 'nema-5-20r'
  434. TYPE_NEMA_530R = 'nema-5-30r'
  435. TYPE_NEMA_550R = 'nema-5-50r'
  436. TYPE_NEMA_615R = 'nema-6-15r'
  437. TYPE_NEMA_620R = 'nema-6-20r'
  438. TYPE_NEMA_630R = 'nema-6-30r'
  439. TYPE_NEMA_650R = 'nema-6-50r'
  440. TYPE_NEMA_1030R = 'nema-10-30r'
  441. TYPE_NEMA_1050R = 'nema-10-50r'
  442. TYPE_NEMA_1420R = 'nema-14-20r'
  443. TYPE_NEMA_1430R = 'nema-14-30r'
  444. TYPE_NEMA_1450R = 'nema-14-50r'
  445. TYPE_NEMA_1460R = 'nema-14-60r'
  446. TYPE_NEMA_1515R = 'nema-15-15r'
  447. TYPE_NEMA_1520R = 'nema-15-20r'
  448. TYPE_NEMA_1530R = 'nema-15-30r'
  449. TYPE_NEMA_1550R = 'nema-15-50r'
  450. TYPE_NEMA_1560R = 'nema-15-60r'
  451. # NEMA locking
  452. TYPE_NEMA_L115R = 'nema-l1-15r'
  453. TYPE_NEMA_L515R = 'nema-l5-15r'
  454. TYPE_NEMA_L520R = 'nema-l5-20r'
  455. TYPE_NEMA_L530R = 'nema-l5-30r'
  456. TYPE_NEMA_L550R = 'nema-l5-50r'
  457. TYPE_NEMA_L615R = 'nema-l6-15r'
  458. TYPE_NEMA_L620R = 'nema-l6-20r'
  459. TYPE_NEMA_L630R = 'nema-l6-30r'
  460. TYPE_NEMA_L650R = 'nema-l6-50r'
  461. TYPE_NEMA_L1030R = 'nema-l10-30r'
  462. TYPE_NEMA_L1420R = 'nema-l14-20r'
  463. TYPE_NEMA_L1430R = 'nema-l14-30r'
  464. TYPE_NEMA_L1450R = 'nema-l14-50r'
  465. TYPE_NEMA_L1460R = 'nema-l14-60r'
  466. TYPE_NEMA_L1520R = 'nema-l15-20r'
  467. TYPE_NEMA_L1530R = 'nema-l15-30r'
  468. TYPE_NEMA_L1550R = 'nema-l15-50r'
  469. TYPE_NEMA_L1560R = 'nema-l15-60r'
  470. TYPE_NEMA_L2120R = 'nema-l21-20r'
  471. TYPE_NEMA_L2130R = 'nema-l21-30r'
  472. TYPE_NEMA_L2230R = 'nema-l22-30r'
  473. # California style
  474. TYPE_CS6360C = 'CS6360C'
  475. TYPE_CS6364C = 'CS6364C'
  476. TYPE_CS8164C = 'CS8164C'
  477. TYPE_CS8264C = 'CS8264C'
  478. TYPE_CS8364C = 'CS8364C'
  479. TYPE_CS8464C = 'CS8464C'
  480. # ITA/international
  481. TYPE_ITA_E = 'ita-e'
  482. TYPE_ITA_F = 'ita-f'
  483. TYPE_ITA_G = 'ita-g'
  484. TYPE_ITA_H = 'ita-h'
  485. TYPE_ITA_I = 'ita-i'
  486. TYPE_ITA_J = 'ita-j'
  487. TYPE_ITA_K = 'ita-k'
  488. TYPE_ITA_L = 'ita-l'
  489. TYPE_ITA_M = 'ita-m'
  490. TYPE_ITA_N = 'ita-n'
  491. TYPE_ITA_O = 'ita-o'
  492. TYPE_ITA_MULTISTANDARD = 'ita-multistandard'
  493. # USB
  494. TYPE_USB_A = 'usb-a'
  495. TYPE_USB_MICROB = 'usb-micro-b'
  496. TYPE_USB_C = 'usb-c'
  497. # Direct current (DC)
  498. TYPE_DC = 'dc-terminal'
  499. # Proprietary
  500. TYPE_HDOT_CX = 'hdot-cx'
  501. TYPE_SAF_D_GRID = 'saf-d-grid'
  502. # Other
  503. TYPE_HARDWIRED = 'hardwired'
  504. CHOICES = (
  505. ('IEC 60320', (
  506. (TYPE_IEC_C5, 'C5'),
  507. (TYPE_IEC_C7, 'C7'),
  508. (TYPE_IEC_C13, 'C13'),
  509. (TYPE_IEC_C15, 'C15'),
  510. (TYPE_IEC_C19, 'C19'),
  511. (TYPE_IEC_C21, 'C21'),
  512. )),
  513. ('IEC 60309', (
  514. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  515. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  516. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  517. (TYPE_IEC_2PE4H, '2P+E 4H'),
  518. (TYPE_IEC_2PE6H, '2P+E 6H'),
  519. (TYPE_IEC_2PE9H, '2P+E 9H'),
  520. (TYPE_IEC_3PE4H, '3P+E 4H'),
  521. (TYPE_IEC_3PE6H, '3P+E 6H'),
  522. (TYPE_IEC_3PE9H, '3P+E 9H'),
  523. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  524. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  525. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  526. )),
  527. ('NEMA (Non-locking)', (
  528. (TYPE_NEMA_115R, 'NEMA 1-15R'),
  529. (TYPE_NEMA_515R, 'NEMA 5-15R'),
  530. (TYPE_NEMA_520R, 'NEMA 5-20R'),
  531. (TYPE_NEMA_530R, 'NEMA 5-30R'),
  532. (TYPE_NEMA_550R, 'NEMA 5-50R'),
  533. (TYPE_NEMA_615R, 'NEMA 6-15R'),
  534. (TYPE_NEMA_620R, 'NEMA 6-20R'),
  535. (TYPE_NEMA_630R, 'NEMA 6-30R'),
  536. (TYPE_NEMA_650R, 'NEMA 6-50R'),
  537. (TYPE_NEMA_1030R, 'NEMA 10-30R'),
  538. (TYPE_NEMA_1050R, 'NEMA 10-50R'),
  539. (TYPE_NEMA_1420R, 'NEMA 14-20R'),
  540. (TYPE_NEMA_1430R, 'NEMA 14-30R'),
  541. (TYPE_NEMA_1450R, 'NEMA 14-50R'),
  542. (TYPE_NEMA_1460R, 'NEMA 14-60R'),
  543. (TYPE_NEMA_1515R, 'NEMA 15-15R'),
  544. (TYPE_NEMA_1520R, 'NEMA 15-20R'),
  545. (TYPE_NEMA_1530R, 'NEMA 15-30R'),
  546. (TYPE_NEMA_1550R, 'NEMA 15-50R'),
  547. (TYPE_NEMA_1560R, 'NEMA 15-60R'),
  548. )),
  549. ('NEMA (Locking)', (
  550. (TYPE_NEMA_L115R, 'NEMA L1-15R'),
  551. (TYPE_NEMA_L515R, 'NEMA L5-15R'),
  552. (TYPE_NEMA_L520R, 'NEMA L5-20R'),
  553. (TYPE_NEMA_L530R, 'NEMA L5-30R'),
  554. (TYPE_NEMA_L550R, 'NEMA L5-50R'),
  555. (TYPE_NEMA_L615R, 'NEMA L6-15R'),
  556. (TYPE_NEMA_L620R, 'NEMA L6-20R'),
  557. (TYPE_NEMA_L630R, 'NEMA L6-30R'),
  558. (TYPE_NEMA_L650R, 'NEMA L6-50R'),
  559. (TYPE_NEMA_L1030R, 'NEMA L10-30R'),
  560. (TYPE_NEMA_L1420R, 'NEMA L14-20R'),
  561. (TYPE_NEMA_L1430R, 'NEMA L14-30R'),
  562. (TYPE_NEMA_L1450R, 'NEMA L14-50R'),
  563. (TYPE_NEMA_L1460R, 'NEMA L14-60R'),
  564. (TYPE_NEMA_L1520R, 'NEMA L15-20R'),
  565. (TYPE_NEMA_L1530R, 'NEMA L15-30R'),
  566. (TYPE_NEMA_L1550R, 'NEMA L15-50R'),
  567. (TYPE_NEMA_L1560R, 'NEMA L15-60R'),
  568. (TYPE_NEMA_L2120R, 'NEMA L21-20R'),
  569. (TYPE_NEMA_L2130R, 'NEMA L21-30R'),
  570. (TYPE_NEMA_L2230R, 'NEMA L22-30R'),
  571. )),
  572. ('California Style', (
  573. (TYPE_CS6360C, 'CS6360C'),
  574. (TYPE_CS6364C, 'CS6364C'),
  575. (TYPE_CS8164C, 'CS8164C'),
  576. (TYPE_CS8264C, 'CS8264C'),
  577. (TYPE_CS8364C, 'CS8364C'),
  578. (TYPE_CS8464C, 'CS8464C'),
  579. )),
  580. ('ITA/International', (
  581. (TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
  582. (TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
  583. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  584. (TYPE_ITA_H, 'ITA Type H'),
  585. (TYPE_ITA_I, 'ITA Type I'),
  586. (TYPE_ITA_J, 'ITA Type J'),
  587. (TYPE_ITA_K, 'ITA Type K'),
  588. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  589. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  590. (TYPE_ITA_N, 'ITA Type N'),
  591. (TYPE_ITA_O, 'ITA Type O'),
  592. (TYPE_ITA_MULTISTANDARD, 'ITA Multistandard'),
  593. )),
  594. ('USB', (
  595. (TYPE_USB_A, 'USB Type A'),
  596. (TYPE_USB_MICROB, 'USB Micro B'),
  597. (TYPE_USB_C, 'USB Type C'),
  598. )),
  599. ('DC', (
  600. (TYPE_DC, 'DC Terminal'),
  601. )),
  602. ('Proprietary', (
  603. (TYPE_HDOT_CX, 'HDOT Cx'),
  604. (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
  605. )),
  606. ('Other', (
  607. (TYPE_HARDWIRED, 'Hardwired'),
  608. )),
  609. )
  610. class PowerOutletFeedLegChoices(ChoiceSet):
  611. FEED_LEG_A = 'A'
  612. FEED_LEG_B = 'B'
  613. FEED_LEG_C = 'C'
  614. CHOICES = (
  615. (FEED_LEG_A, 'A'),
  616. (FEED_LEG_B, 'B'),
  617. (FEED_LEG_C, 'C'),
  618. )
  619. #
  620. # Interfaces
  621. #
  622. class InterfaceKindChoices(ChoiceSet):
  623. KIND_PHYSICAL = 'physical'
  624. KIND_VIRTUAL = 'virtual'
  625. KIND_WIRELESS = 'wireless'
  626. CHOICES = (
  627. (KIND_PHYSICAL, 'Physical'),
  628. (KIND_VIRTUAL, 'Virtual'),
  629. (KIND_WIRELESS, 'Wireless'),
  630. )
  631. class InterfaceTypeChoices(ChoiceSet):
  632. # Virtual
  633. TYPE_VIRTUAL = 'virtual'
  634. TYPE_BRIDGE = 'bridge'
  635. TYPE_LAG = 'lag'
  636. # Ethernet
  637. TYPE_100ME_FIXED = '100base-tx'
  638. TYPE_1GE_FIXED = '1000base-t'
  639. TYPE_1GE_GBIC = '1000base-x-gbic'
  640. TYPE_1GE_SFP = '1000base-x-sfp'
  641. TYPE_2GE_FIXED = '2.5gbase-t'
  642. TYPE_5GE_FIXED = '5gbase-t'
  643. TYPE_10GE_FIXED = '10gbase-t'
  644. TYPE_10GE_CX4 = '10gbase-cx4'
  645. TYPE_10GE_SFP_PLUS = '10gbase-x-sfpp'
  646. TYPE_10GE_XFP = '10gbase-x-xfp'
  647. TYPE_10GE_XENPAK = '10gbase-x-xenpak'
  648. TYPE_10GE_X2 = '10gbase-x-x2'
  649. TYPE_25GE_SFP28 = '25gbase-x-sfp28'
  650. TYPE_50GE_SFP56 = '50gbase-x-sfp56'
  651. TYPE_40GE_QSFP_PLUS = '40gbase-x-qsfpp'
  652. TYPE_50GE_QSFP28 = '50gbase-x-sfp28'
  653. TYPE_100GE_CFP = '100gbase-x-cfp'
  654. TYPE_100GE_CFP2 = '100gbase-x-cfp2'
  655. TYPE_100GE_CFP4 = '100gbase-x-cfp4'
  656. TYPE_100GE_CPAK = '100gbase-x-cpak'
  657. TYPE_100GE_QSFP28 = '100gbase-x-qsfp28'
  658. TYPE_200GE_CFP2 = '200gbase-x-cfp2'
  659. TYPE_200GE_QSFP56 = '200gbase-x-qsfp56'
  660. TYPE_400GE_QSFP_DD = '400gbase-x-qsfpdd'
  661. TYPE_400GE_OSFP = '400gbase-x-osfp'
  662. # Wireless
  663. TYPE_80211A = 'ieee802.11a'
  664. TYPE_80211G = 'ieee802.11g'
  665. TYPE_80211N = 'ieee802.11n'
  666. TYPE_80211AC = 'ieee802.11ac'
  667. TYPE_80211AD = 'ieee802.11ad'
  668. TYPE_80211AX = 'ieee802.11ax'
  669. TYPE_802151 = 'ieee802.15.1'
  670. # Cellular
  671. TYPE_GSM = 'gsm'
  672. TYPE_CDMA = 'cdma'
  673. TYPE_LTE = 'lte'
  674. # SONET
  675. TYPE_SONET_OC3 = 'sonet-oc3'
  676. TYPE_SONET_OC12 = 'sonet-oc12'
  677. TYPE_SONET_OC48 = 'sonet-oc48'
  678. TYPE_SONET_OC192 = 'sonet-oc192'
  679. TYPE_SONET_OC768 = 'sonet-oc768'
  680. TYPE_SONET_OC1920 = 'sonet-oc1920'
  681. TYPE_SONET_OC3840 = 'sonet-oc3840'
  682. # Fibrechannel
  683. TYPE_1GFC_SFP = '1gfc-sfp'
  684. TYPE_2GFC_SFP = '2gfc-sfp'
  685. TYPE_4GFC_SFP = '4gfc-sfp'
  686. TYPE_8GFC_SFP_PLUS = '8gfc-sfpp'
  687. TYPE_16GFC_SFP_PLUS = '16gfc-sfpp'
  688. TYPE_32GFC_SFP28 = '32gfc-sfp28'
  689. TYPE_64GFC_QSFP_PLUS = '64gfc-qsfpp'
  690. TYPE_128GFC_QSFP28 = '128gfc-qsfp28'
  691. # InfiniBand
  692. TYPE_INFINIBAND_SDR = 'infiniband-sdr'
  693. TYPE_INFINIBAND_DDR = 'infiniband-ddr'
  694. TYPE_INFINIBAND_QDR = 'infiniband-qdr'
  695. TYPE_INFINIBAND_FDR10 = 'infiniband-fdr10'
  696. TYPE_INFINIBAND_FDR = 'infiniband-fdr'
  697. TYPE_INFINIBAND_EDR = 'infiniband-edr'
  698. TYPE_INFINIBAND_HDR = 'infiniband-hdr'
  699. TYPE_INFINIBAND_NDR = 'infiniband-ndr'
  700. TYPE_INFINIBAND_XDR = 'infiniband-xdr'
  701. # Serial
  702. TYPE_T1 = 't1'
  703. TYPE_E1 = 'e1'
  704. TYPE_T3 = 't3'
  705. TYPE_E3 = 'e3'
  706. # ATM/DSL
  707. TYPE_XDSL = 'xdsl'
  708. # Stacking
  709. TYPE_STACKWISE = 'cisco-stackwise'
  710. TYPE_STACKWISE_PLUS = 'cisco-stackwise-plus'
  711. TYPE_FLEXSTACK = 'cisco-flexstack'
  712. TYPE_FLEXSTACK_PLUS = 'cisco-flexstack-plus'
  713. TYPE_JUNIPER_VCP = 'juniper-vcp'
  714. TYPE_SUMMITSTACK = 'extreme-summitstack'
  715. TYPE_SUMMITSTACK128 = 'extreme-summitstack-128'
  716. TYPE_SUMMITSTACK256 = 'extreme-summitstack-256'
  717. TYPE_SUMMITSTACK512 = 'extreme-summitstack-512'
  718. # Other
  719. TYPE_OTHER = 'other'
  720. CHOICES = (
  721. (
  722. 'Virtual interfaces',
  723. (
  724. (TYPE_VIRTUAL, 'Virtual'),
  725. (TYPE_BRIDGE, 'Bridge'),
  726. (TYPE_LAG, 'Link Aggregation Group (LAG)'),
  727. ),
  728. ),
  729. (
  730. 'Ethernet (fixed)',
  731. (
  732. (TYPE_100ME_FIXED, '100BASE-TX (10/100ME)'),
  733. (TYPE_1GE_FIXED, '1000BASE-T (1GE)'),
  734. (TYPE_2GE_FIXED, '2.5GBASE-T (2.5GE)'),
  735. (TYPE_5GE_FIXED, '5GBASE-T (5GE)'),
  736. (TYPE_10GE_FIXED, '10GBASE-T (10GE)'),
  737. (TYPE_10GE_CX4, '10GBASE-CX4 (10GE)'),
  738. )
  739. ),
  740. (
  741. 'Ethernet (modular)',
  742. (
  743. (TYPE_1GE_GBIC, 'GBIC (1GE)'),
  744. (TYPE_1GE_SFP, 'SFP (1GE)'),
  745. (TYPE_10GE_SFP_PLUS, 'SFP+ (10GE)'),
  746. (TYPE_10GE_XFP, 'XFP (10GE)'),
  747. (TYPE_10GE_XENPAK, 'XENPAK (10GE)'),
  748. (TYPE_10GE_X2, 'X2 (10GE)'),
  749. (TYPE_25GE_SFP28, 'SFP28 (25GE)'),
  750. (TYPE_50GE_SFP56, 'SFP56 (50GE)'),
  751. (TYPE_40GE_QSFP_PLUS, 'QSFP+ (40GE)'),
  752. (TYPE_50GE_QSFP28, 'QSFP28 (50GE)'),
  753. (TYPE_100GE_CFP, 'CFP (100GE)'),
  754. (TYPE_100GE_CFP2, 'CFP2 (100GE)'),
  755. (TYPE_200GE_CFP2, 'CFP2 (200GE)'),
  756. (TYPE_100GE_CFP4, 'CFP4 (100GE)'),
  757. (TYPE_100GE_CPAK, 'Cisco CPAK (100GE)'),
  758. (TYPE_100GE_QSFP28, 'QSFP28 (100GE)'),
  759. (TYPE_200GE_QSFP56, 'QSFP56 (200GE)'),
  760. (TYPE_400GE_QSFP_DD, 'QSFP-DD (400GE)'),
  761. (TYPE_400GE_OSFP, 'OSFP (400GE)'),
  762. )
  763. ),
  764. (
  765. 'Wireless',
  766. (
  767. (TYPE_80211A, 'IEEE 802.11a'),
  768. (TYPE_80211G, 'IEEE 802.11b/g'),
  769. (TYPE_80211N, 'IEEE 802.11n'),
  770. (TYPE_80211AC, 'IEEE 802.11ac'),
  771. (TYPE_80211AD, 'IEEE 802.11ad'),
  772. (TYPE_80211AX, 'IEEE 802.11ax'),
  773. (TYPE_802151, 'IEEE 802.15.1 (Bluetooth)'),
  774. )
  775. ),
  776. (
  777. 'Cellular',
  778. (
  779. (TYPE_GSM, 'GSM'),
  780. (TYPE_CDMA, 'CDMA'),
  781. (TYPE_LTE, 'LTE'),
  782. )
  783. ),
  784. (
  785. 'SONET',
  786. (
  787. (TYPE_SONET_OC3, 'OC-3/STM-1'),
  788. (TYPE_SONET_OC12, 'OC-12/STM-4'),
  789. (TYPE_SONET_OC48, 'OC-48/STM-16'),
  790. (TYPE_SONET_OC192, 'OC-192/STM-64'),
  791. (TYPE_SONET_OC768, 'OC-768/STM-256'),
  792. (TYPE_SONET_OC1920, 'OC-1920/STM-640'),
  793. (TYPE_SONET_OC3840, 'OC-3840/STM-1234'),
  794. )
  795. ),
  796. (
  797. 'FibreChannel',
  798. (
  799. (TYPE_1GFC_SFP, 'SFP (1GFC)'),
  800. (TYPE_2GFC_SFP, 'SFP (2GFC)'),
  801. (TYPE_4GFC_SFP, 'SFP (4GFC)'),
  802. (TYPE_8GFC_SFP_PLUS, 'SFP+ (8GFC)'),
  803. (TYPE_16GFC_SFP_PLUS, 'SFP+ (16GFC)'),
  804. (TYPE_32GFC_SFP28, 'SFP28 (32GFC)'),
  805. (TYPE_64GFC_QSFP_PLUS, 'QSFP+ (64GFC)'),
  806. (TYPE_128GFC_QSFP28, 'QSFP28 (128GFC)'),
  807. )
  808. ),
  809. (
  810. 'InfiniBand',
  811. (
  812. (TYPE_INFINIBAND_SDR, 'SDR (2 Gbps)'),
  813. (TYPE_INFINIBAND_DDR, 'DDR (4 Gbps)'),
  814. (TYPE_INFINIBAND_QDR, 'QDR (8 Gbps)'),
  815. (TYPE_INFINIBAND_FDR10, 'FDR10 (10 Gbps)'),
  816. (TYPE_INFINIBAND_FDR, 'FDR (13.5 Gbps)'),
  817. (TYPE_INFINIBAND_EDR, 'EDR (25 Gbps)'),
  818. (TYPE_INFINIBAND_HDR, 'HDR (50 Gbps)'),
  819. (TYPE_INFINIBAND_NDR, 'NDR (100 Gbps)'),
  820. (TYPE_INFINIBAND_XDR, 'XDR (250 Gbps)'),
  821. )
  822. ),
  823. (
  824. 'Serial',
  825. (
  826. (TYPE_T1, 'T1 (1.544 Mbps)'),
  827. (TYPE_E1, 'E1 (2.048 Mbps)'),
  828. (TYPE_T3, 'T3 (45 Mbps)'),
  829. (TYPE_E3, 'E3 (34 Mbps)'),
  830. )
  831. ),
  832. (
  833. 'ATM',
  834. (
  835. (TYPE_XDSL, 'xDSL'),
  836. )
  837. ),
  838. (
  839. 'Stacking',
  840. (
  841. (TYPE_STACKWISE, 'Cisco StackWise'),
  842. (TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'),
  843. (TYPE_FLEXSTACK, 'Cisco FlexStack'),
  844. (TYPE_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'),
  845. (TYPE_JUNIPER_VCP, 'Juniper VCP'),
  846. (TYPE_SUMMITSTACK, 'Extreme SummitStack'),
  847. (TYPE_SUMMITSTACK128, 'Extreme SummitStack-128'),
  848. (TYPE_SUMMITSTACK256, 'Extreme SummitStack-256'),
  849. (TYPE_SUMMITSTACK512, 'Extreme SummitStack-512'),
  850. )
  851. ),
  852. (
  853. 'Other',
  854. (
  855. (TYPE_OTHER, 'Other'),
  856. )
  857. ),
  858. )
  859. class InterfaceModeChoices(ChoiceSet):
  860. MODE_ACCESS = 'access'
  861. MODE_TAGGED = 'tagged'
  862. MODE_TAGGED_ALL = 'tagged-all'
  863. CHOICES = (
  864. (MODE_ACCESS, 'Access'),
  865. (MODE_TAGGED, 'Tagged'),
  866. (MODE_TAGGED_ALL, 'Tagged (All)'),
  867. )
  868. #
  869. # FrontPorts/RearPorts
  870. #
  871. class PortTypeChoices(ChoiceSet):
  872. TYPE_8P8C = '8p8c'
  873. TYPE_8P6C = '8p6c'
  874. TYPE_8P4C = '8p4c'
  875. TYPE_8P2C = '8p2c'
  876. TYPE_6P6C = '6p6c'
  877. TYPE_6P4C = '6p4c'
  878. TYPE_6P2C = '6p2c'
  879. TYPE_4P4C = '4p4c'
  880. TYPE_4P2C = '4p2c'
  881. TYPE_GG45 = 'gg45'
  882. TYPE_TERA4P = 'tera-4p'
  883. TYPE_TERA2P = 'tera-2p'
  884. TYPE_TERA1P = 'tera-1p'
  885. TYPE_110_PUNCH = '110-punch'
  886. TYPE_BNC = 'bnc'
  887. TYPE_F = 'f'
  888. TYPE_N = 'n'
  889. TYPE_MRJ21 = 'mrj21'
  890. TYPE_ST = 'st'
  891. TYPE_SC = 'sc'
  892. TYPE_SC_APC = 'sc-apc'
  893. TYPE_FC = 'fc'
  894. TYPE_LC = 'lc'
  895. TYPE_LC_APC = 'lc-apc'
  896. TYPE_MTRJ = 'mtrj'
  897. TYPE_MPO = 'mpo'
  898. TYPE_LSH = 'lsh'
  899. TYPE_LSH_APC = 'lsh-apc'
  900. TYPE_SPLICE = 'splice'
  901. TYPE_CS = 'cs'
  902. TYPE_SN = 'sn'
  903. TYPE_SMA_905 = 'sma-905'
  904. TYPE_SMA_906 = 'sma-906'
  905. TYPE_URM_P2 = 'urm-p2'
  906. TYPE_URM_P4 = 'urm-p4'
  907. TYPE_URM_P8 = 'urm-p8'
  908. CHOICES = (
  909. (
  910. 'Copper',
  911. (
  912. (TYPE_8P8C, '8P8C'),
  913. (TYPE_8P6C, '8P6C'),
  914. (TYPE_8P4C, '8P4C'),
  915. (TYPE_8P2C, '8P2C'),
  916. (TYPE_6P6C, '6P6C'),
  917. (TYPE_6P4C, '6P4C'),
  918. (TYPE_6P2C, '6P2C'),
  919. (TYPE_4P4C, '4P4C'),
  920. (TYPE_4P2C, '4P2C'),
  921. (TYPE_GG45, 'GG45'),
  922. (TYPE_TERA4P, 'TERA 4P'),
  923. (TYPE_TERA2P, 'TERA 2P'),
  924. (TYPE_TERA1P, 'TERA 1P'),
  925. (TYPE_110_PUNCH, '110 Punch'),
  926. (TYPE_BNC, 'BNC'),
  927. (TYPE_F, 'F Connector'),
  928. (TYPE_N, 'N Connector'),
  929. (TYPE_MRJ21, 'MRJ21'),
  930. ),
  931. ),
  932. (
  933. 'Fiber Optic',
  934. (
  935. (TYPE_FC, 'FC'),
  936. (TYPE_LC, 'LC'),
  937. (TYPE_LC_APC, 'LC/APC'),
  938. (TYPE_LSH, 'LSH'),
  939. (TYPE_LSH_APC, 'LSH/APC'),
  940. (TYPE_MPO, 'MPO'),
  941. (TYPE_MTRJ, 'MTRJ'),
  942. (TYPE_SC, 'SC'),
  943. (TYPE_SC_APC, 'SC/APC'),
  944. (TYPE_ST, 'ST'),
  945. (TYPE_CS, 'CS'),
  946. (TYPE_SN, 'SN'),
  947. (TYPE_SMA_905, 'SMA 905'),
  948. (TYPE_SMA_906, 'SMA 906'),
  949. (TYPE_URM_P2, 'URM-P2'),
  950. (TYPE_URM_P4, 'URM-P4'),
  951. (TYPE_URM_P8, 'URM-P8'),
  952. (TYPE_SPLICE, 'Splice'),
  953. )
  954. )
  955. )
  956. #
  957. # Cables/links
  958. #
  959. class CableTypeChoices(ChoiceSet):
  960. TYPE_CAT3 = 'cat3'
  961. TYPE_CAT5 = 'cat5'
  962. TYPE_CAT5E = 'cat5e'
  963. TYPE_CAT6 = 'cat6'
  964. TYPE_CAT6A = 'cat6a'
  965. TYPE_CAT7 = 'cat7'
  966. TYPE_CAT7A = 'cat7a'
  967. TYPE_CAT8 = 'cat8'
  968. TYPE_DAC_ACTIVE = 'dac-active'
  969. TYPE_DAC_PASSIVE = 'dac-passive'
  970. TYPE_MRJ21_TRUNK = 'mrj21-trunk'
  971. TYPE_COAXIAL = 'coaxial'
  972. TYPE_MMF = 'mmf'
  973. TYPE_MMF_OM1 = 'mmf-om1'
  974. TYPE_MMF_OM2 = 'mmf-om2'
  975. TYPE_MMF_OM3 = 'mmf-om3'
  976. TYPE_MMF_OM4 = 'mmf-om4'
  977. TYPE_MMF_OM5 = 'mmf-om5'
  978. TYPE_SMF = 'smf'
  979. TYPE_SMF_OS1 = 'smf-os1'
  980. TYPE_SMF_OS2 = 'smf-os2'
  981. TYPE_AOC = 'aoc'
  982. TYPE_POWER = 'power'
  983. CHOICES = (
  984. (
  985. 'Copper', (
  986. (TYPE_CAT3, 'CAT3'),
  987. (TYPE_CAT5, 'CAT5'),
  988. (TYPE_CAT5E, 'CAT5e'),
  989. (TYPE_CAT6, 'CAT6'),
  990. (TYPE_CAT6A, 'CAT6a'),
  991. (TYPE_CAT7, 'CAT7'),
  992. (TYPE_CAT7A, 'CAT7a'),
  993. (TYPE_CAT8, 'CAT8'),
  994. (TYPE_DAC_ACTIVE, 'Direct Attach Copper (Active)'),
  995. (TYPE_DAC_PASSIVE, 'Direct Attach Copper (Passive)'),
  996. (TYPE_MRJ21_TRUNK, 'MRJ21 Trunk'),
  997. (TYPE_COAXIAL, 'Coaxial'),
  998. ),
  999. ),
  1000. (
  1001. 'Fiber', (
  1002. (TYPE_MMF, 'Multimode Fiber'),
  1003. (TYPE_MMF_OM1, 'Multimode Fiber (OM1)'),
  1004. (TYPE_MMF_OM2, 'Multimode Fiber (OM2)'),
  1005. (TYPE_MMF_OM3, 'Multimode Fiber (OM3)'),
  1006. (TYPE_MMF_OM4, 'Multimode Fiber (OM4)'),
  1007. (TYPE_MMF_OM5, 'Multimode Fiber (OM5)'),
  1008. (TYPE_SMF, 'Singlemode Fiber'),
  1009. (TYPE_SMF_OS1, 'Singlemode Fiber (OS1)'),
  1010. (TYPE_SMF_OS2, 'Singlemode Fiber (OS2)'),
  1011. (TYPE_AOC, 'Active Optical Cabling (AOC)'),
  1012. ),
  1013. ),
  1014. (TYPE_POWER, 'Power'),
  1015. )
  1016. class LinkStatusChoices(ChoiceSet):
  1017. STATUS_CONNECTED = 'connected'
  1018. STATUS_PLANNED = 'planned'
  1019. STATUS_DECOMMISSIONING = 'decommissioning'
  1020. CHOICES = (
  1021. (STATUS_CONNECTED, 'Connected', 'green'),
  1022. (STATUS_PLANNED, 'Planned', 'blue'),
  1023. (STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
  1024. )
  1025. class CableLengthUnitChoices(ChoiceSet):
  1026. # Metric
  1027. UNIT_KILOMETER = 'km'
  1028. UNIT_METER = 'm'
  1029. UNIT_CENTIMETER = 'cm'
  1030. # Imperial
  1031. UNIT_MILE = 'mi'
  1032. UNIT_FOOT = 'ft'
  1033. UNIT_INCH = 'in'
  1034. CHOICES = (
  1035. (UNIT_KILOMETER, 'Kilometers'),
  1036. (UNIT_METER, 'Meters'),
  1037. (UNIT_CENTIMETER, 'Centimeters'),
  1038. (UNIT_MILE, 'Miles'),
  1039. (UNIT_FOOT, 'Feet'),
  1040. (UNIT_INCH, 'Inches'),
  1041. )
  1042. #
  1043. # PowerFeeds
  1044. #
  1045. class PowerFeedStatusChoices(ChoiceSet):
  1046. key = 'dcim.PowerFeed.status'
  1047. STATUS_OFFLINE = 'offline'
  1048. STATUS_ACTIVE = 'active'
  1049. STATUS_PLANNED = 'planned'
  1050. STATUS_FAILED = 'failed'
  1051. CHOICES = [
  1052. (STATUS_OFFLINE, 'Offline', 'gray'),
  1053. (STATUS_ACTIVE, 'Active', 'green'),
  1054. (STATUS_PLANNED, 'Planned', 'blue'),
  1055. (STATUS_FAILED, 'Failed', 'red'),
  1056. ]
  1057. class PowerFeedTypeChoices(ChoiceSet):
  1058. TYPE_PRIMARY = 'primary'
  1059. TYPE_REDUNDANT = 'redundant'
  1060. CHOICES = (
  1061. (TYPE_PRIMARY, 'Primary', 'green'),
  1062. (TYPE_REDUNDANT, 'Redundant', 'cyan'),
  1063. )
  1064. class PowerFeedSupplyChoices(ChoiceSet):
  1065. SUPPLY_AC = 'ac'
  1066. SUPPLY_DC = 'dc'
  1067. CHOICES = (
  1068. (SUPPLY_AC, 'AC'),
  1069. (SUPPLY_DC, 'DC'),
  1070. )
  1071. class PowerFeedPhaseChoices(ChoiceSet):
  1072. PHASE_SINGLE = 'single-phase'
  1073. PHASE_3PHASE = 'three-phase'
  1074. CHOICES = (
  1075. (PHASE_SINGLE, 'Single phase'),
  1076. (PHASE_3PHASE, 'Three-phase'),
  1077. )