choices.py 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080
  1. from django.utils.translation import gettext_lazy as _
  2. from utilities.choices import ChoiceSet
  3. #
  4. # Sites
  5. #
  6. class SiteStatusChoices(ChoiceSet):
  7. key = 'Site.status'
  8. STATUS_PLANNED = 'planned'
  9. STATUS_STAGING = 'staging'
  10. STATUS_ACTIVE = 'active'
  11. STATUS_DECOMMISSIONING = 'decommissioning'
  12. STATUS_RETIRED = 'retired'
  13. CHOICES = [
  14. (STATUS_PLANNED, _('Planned'), 'cyan'),
  15. (STATUS_STAGING, _('Staging'), 'blue'),
  16. (STATUS_ACTIVE, _('Active'), 'green'),
  17. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  18. (STATUS_RETIRED, _('Retired'), 'red'),
  19. ]
  20. #
  21. # Locations
  22. #
  23. class LocationStatusChoices(ChoiceSet):
  24. key = 'Location.status'
  25. STATUS_PLANNED = 'planned'
  26. STATUS_STAGING = 'staging'
  27. STATUS_ACTIVE = 'active'
  28. STATUS_DECOMMISSIONING = 'decommissioning'
  29. STATUS_RETIRED = 'retired'
  30. CHOICES = [
  31. (STATUS_PLANNED, 'Planned', 'cyan'),
  32. (STATUS_STAGING, 'Staging', 'blue'),
  33. (STATUS_ACTIVE, 'Active', 'green'),
  34. (STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
  35. (STATUS_RETIRED, 'Retired', 'red'),
  36. ]
  37. #
  38. # Racks
  39. #
  40. class RackFormFactorChoices(ChoiceSet):
  41. TYPE_2POST = '2-post-frame'
  42. TYPE_4POST = '4-post-frame'
  43. TYPE_CABINET = '4-post-cabinet'
  44. TYPE_WALLFRAME = 'wall-frame'
  45. TYPE_WALLFRAME_VERTICAL = 'wall-frame-vertical'
  46. TYPE_WALLCABINET = 'wall-cabinet'
  47. TYPE_WALLCABINET_VERTICAL = 'wall-cabinet-vertical'
  48. CHOICES = (
  49. (TYPE_2POST, _('2-post frame')),
  50. (TYPE_4POST, _('4-post frame')),
  51. (TYPE_CABINET, _('4-post cabinet')),
  52. (TYPE_WALLFRAME, _('Wall-mounted frame')),
  53. (TYPE_WALLFRAME_VERTICAL, _('Wall-mounted frame (vertical)')),
  54. (TYPE_WALLCABINET, _('Wall-mounted cabinet')),
  55. (TYPE_WALLCABINET_VERTICAL, _('Wall-mounted cabinet (vertical)')),
  56. )
  57. class RackWidthChoices(ChoiceSet):
  58. WIDTH_10IN = 10
  59. WIDTH_19IN = 19
  60. WIDTH_21IN = 21
  61. WIDTH_23IN = 23
  62. CHOICES = (
  63. (WIDTH_10IN, _('{n} inches').format(n=10)),
  64. (WIDTH_19IN, _('{n} inches').format(n=19)),
  65. (WIDTH_21IN, _('{n} inches').format(n=21)),
  66. (WIDTH_23IN, _('{n} inches').format(n=23)),
  67. )
  68. class RackStatusChoices(ChoiceSet):
  69. key = 'Rack.status'
  70. STATUS_RESERVED = 'reserved'
  71. STATUS_AVAILABLE = 'available'
  72. STATUS_PLANNED = 'planned'
  73. STATUS_ACTIVE = 'active'
  74. STATUS_DEPRECATED = 'deprecated'
  75. CHOICES = [
  76. (STATUS_RESERVED, _('Reserved'), 'yellow'),
  77. (STATUS_AVAILABLE, _('Available'), 'green'),
  78. (STATUS_PLANNED, _('Planned'), 'cyan'),
  79. (STATUS_ACTIVE, _('Active'), 'blue'),
  80. (STATUS_DEPRECATED, _('Deprecated'), 'red'),
  81. ]
  82. class RackDimensionUnitChoices(ChoiceSet):
  83. UNIT_MILLIMETER = 'mm'
  84. UNIT_INCH = 'in'
  85. CHOICES = (
  86. (UNIT_MILLIMETER, _('Millimeters')),
  87. (UNIT_INCH, _('Inches')),
  88. )
  89. class RackElevationDetailRenderChoices(ChoiceSet):
  90. RENDER_JSON = 'json'
  91. RENDER_SVG = 'svg'
  92. CHOICES = (
  93. (RENDER_JSON, 'json'),
  94. (RENDER_SVG, 'svg')
  95. )
  96. class RackAirflowChoices(ChoiceSet):
  97. key = 'Rack.airflow'
  98. FRONT_TO_REAR = 'front-to-rear'
  99. REAR_TO_FRONT = 'rear-to-front'
  100. CHOICES = [
  101. (FRONT_TO_REAR, _('Front to rear')),
  102. (REAR_TO_FRONT, _('Rear to front')),
  103. ]
  104. #
  105. # Rack reservations
  106. #
  107. class RackReservationStatusChoices(ChoiceSet):
  108. key = 'RackReservation.status'
  109. STATUS_PENDING = 'pending'
  110. STATUS_ACTIVE = 'active'
  111. STATUS_STALE = 'stale'
  112. CHOICES = [
  113. (STATUS_PENDING, _('Pending'), 'cyan'),
  114. (STATUS_ACTIVE, _('Active'), 'green'),
  115. (STATUS_STALE, _('Stale'), 'orange'),
  116. ]
  117. #
  118. # DeviceTypes
  119. #
  120. class SubdeviceRoleChoices(ChoiceSet):
  121. ROLE_PARENT = 'parent'
  122. ROLE_CHILD = 'child'
  123. CHOICES = (
  124. (ROLE_PARENT, _('Parent')),
  125. (ROLE_CHILD, _('Child')),
  126. )
  127. #
  128. # Devices
  129. #
  130. class DeviceFaceChoices(ChoiceSet):
  131. FACE_FRONT = 'front'
  132. FACE_REAR = 'rear'
  133. CHOICES = (
  134. (FACE_FRONT, _('Front')),
  135. (FACE_REAR, _('Rear')),
  136. )
  137. class DeviceStatusChoices(ChoiceSet):
  138. key = 'Device.status'
  139. STATUS_OFFLINE = 'offline'
  140. STATUS_ACTIVE = 'active'
  141. STATUS_PLANNED = 'planned'
  142. STATUS_STAGED = 'staged'
  143. STATUS_FAILED = 'failed'
  144. STATUS_INVENTORY = 'inventory'
  145. STATUS_DECOMMISSIONING = 'decommissioning'
  146. CHOICES = [
  147. (STATUS_OFFLINE, _('Offline'), 'gray'),
  148. (STATUS_ACTIVE, _('Active'), 'green'),
  149. (STATUS_PLANNED, _('Planned'), 'cyan'),
  150. (STATUS_STAGED, _('Staged'), 'blue'),
  151. (STATUS_FAILED, _('Failed'), 'red'),
  152. (STATUS_INVENTORY, _('Inventory'), 'purple'),
  153. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  154. ]
  155. class DeviceAirflowChoices(ChoiceSet):
  156. key = 'Device.airflow'
  157. AIRFLOW_FRONT_TO_REAR = 'front-to-rear'
  158. AIRFLOW_REAR_TO_FRONT = 'rear-to-front'
  159. AIRFLOW_LEFT_TO_RIGHT = 'left-to-right'
  160. AIRFLOW_RIGHT_TO_LEFT = 'right-to-left'
  161. AIRFLOW_SIDE_TO_REAR = 'side-to-rear'
  162. AIRFLOW_REAR_TO_SIDE = 'rear-to-side'
  163. AIRFLOW_BOTTOM_TO_TOP = 'bottom-to-top'
  164. AIRFLOW_TOP_TO_BOTTOM = 'top-to-bottom'
  165. AIRFLOW_PASSIVE = 'passive'
  166. AIRFLOW_MIXED = 'mixed'
  167. CHOICES = [
  168. (AIRFLOW_FRONT_TO_REAR, _('Front to rear')),
  169. (AIRFLOW_REAR_TO_FRONT, _('Rear to front')),
  170. (AIRFLOW_LEFT_TO_RIGHT, _('Left to right')),
  171. (AIRFLOW_RIGHT_TO_LEFT, _('Right to left')),
  172. (AIRFLOW_SIDE_TO_REAR, _('Side to rear')),
  173. (AIRFLOW_REAR_TO_SIDE, _('Rear to side')),
  174. (AIRFLOW_BOTTOM_TO_TOP, _('Bottom to top')),
  175. (AIRFLOW_TOP_TO_BOTTOM, _('Top to bottom')),
  176. (AIRFLOW_PASSIVE, _('Passive')),
  177. (AIRFLOW_MIXED, _('Mixed')),
  178. ]
  179. #
  180. # Modules
  181. #
  182. class ModuleStatusChoices(ChoiceSet):
  183. key = 'Module.status'
  184. STATUS_OFFLINE = 'offline'
  185. STATUS_ACTIVE = 'active'
  186. STATUS_PLANNED = 'planned'
  187. STATUS_STAGED = 'staged'
  188. STATUS_FAILED = 'failed'
  189. STATUS_DECOMMISSIONING = 'decommissioning'
  190. CHOICES = [
  191. (STATUS_OFFLINE, _('Offline'), 'gray'),
  192. (STATUS_ACTIVE, _('Active'), 'green'),
  193. (STATUS_PLANNED, _('Planned'), 'cyan'),
  194. (STATUS_STAGED, _('Staged'), 'blue'),
  195. (STATUS_FAILED, _('Failed'), 'red'),
  196. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  197. ]
  198. class ModuleAirflowChoices(ChoiceSet):
  199. key = 'Module.airflow'
  200. FRONT_TO_REAR = 'front-to-rear'
  201. REAR_TO_FRONT = 'rear-to-front'
  202. LEFT_TO_RIGHT = 'left-to-right'
  203. RIGHT_TO_LEFT = 'right-to-left'
  204. SIDE_TO_REAR = 'side-to-rear'
  205. PASSIVE = 'passive'
  206. CHOICES = [
  207. (FRONT_TO_REAR, _('Front to rear')),
  208. (REAR_TO_FRONT, _('Rear to front')),
  209. (LEFT_TO_RIGHT, _('Left to right')),
  210. (RIGHT_TO_LEFT, _('Right to left')),
  211. (SIDE_TO_REAR, _('Side to rear')),
  212. (PASSIVE, _('Passive')),
  213. ]
  214. #
  215. # ConsolePorts
  216. #
  217. class ConsolePortTypeChoices(ChoiceSet):
  218. TYPE_DE9 = 'de-9'
  219. TYPE_DB25 = 'db-25'
  220. TYPE_RJ11 = 'rj-11'
  221. TYPE_RJ12 = 'rj-12'
  222. TYPE_RJ45 = 'rj-45'
  223. TYPE_MINI_DIN_8 = 'mini-din-8'
  224. TYPE_USB_A = 'usb-a'
  225. TYPE_USB_B = 'usb-b'
  226. TYPE_USB_C = 'usb-c'
  227. TYPE_USB_MINI_A = 'usb-mini-a'
  228. TYPE_USB_MINI_B = 'usb-mini-b'
  229. TYPE_USB_MICRO_A = 'usb-micro-a'
  230. TYPE_USB_MICRO_B = 'usb-micro-b'
  231. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  232. TYPE_OTHER = 'other'
  233. CHOICES = (
  234. ('Serial', (
  235. (TYPE_DE9, 'DE-9'),
  236. (TYPE_DB25, 'DB-25'),
  237. (TYPE_RJ11, 'RJ-11'),
  238. (TYPE_RJ12, 'RJ-12'),
  239. (TYPE_RJ45, 'RJ-45'),
  240. (TYPE_MINI_DIN_8, 'Mini-DIN 8'),
  241. )),
  242. ('USB', (
  243. (TYPE_USB_A, 'USB Type A'),
  244. (TYPE_USB_B, 'USB Type B'),
  245. (TYPE_USB_C, 'USB Type C'),
  246. (TYPE_USB_MINI_A, 'USB Mini A'),
  247. (TYPE_USB_MINI_B, 'USB Mini B'),
  248. (TYPE_USB_MICRO_A, 'USB Micro A'),
  249. (TYPE_USB_MICRO_B, 'USB Micro B'),
  250. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  251. )),
  252. ('Other', (
  253. (TYPE_OTHER, 'Other'),
  254. )),
  255. )
  256. class ConsolePortSpeedChoices(ChoiceSet):
  257. SPEED_1200 = 1200
  258. SPEED_2400 = 2400
  259. SPEED_4800 = 4800
  260. SPEED_9600 = 9600
  261. SPEED_19200 = 19200
  262. SPEED_38400 = 38400
  263. SPEED_57600 = 57600
  264. SPEED_115200 = 115200
  265. CHOICES = (
  266. (SPEED_1200, '1200 bps'),
  267. (SPEED_2400, '2400 bps'),
  268. (SPEED_4800, '4800 bps'),
  269. (SPEED_9600, '9600 bps'),
  270. (SPEED_19200, '19.2 kbps'),
  271. (SPEED_38400, '38.4 kbps'),
  272. (SPEED_57600, '57.6 kbps'),
  273. (SPEED_115200, '115.2 kbps'),
  274. )
  275. #
  276. # PowerPorts
  277. #
  278. class PowerPortTypeChoices(ChoiceSet):
  279. # IEC 60320
  280. TYPE_IEC_C6 = 'iec-60320-c6'
  281. TYPE_IEC_C8 = 'iec-60320-c8'
  282. TYPE_IEC_C14 = 'iec-60320-c14'
  283. TYPE_IEC_C16 = 'iec-60320-c16'
  284. TYPE_IEC_C18 = 'iec-60320-c18'
  285. TYPE_IEC_C20 = 'iec-60320-c20'
  286. TYPE_IEC_C22 = 'iec-60320-c22'
  287. # IEC 60309
  288. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  289. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  290. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  291. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  292. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  293. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  294. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  295. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  296. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  297. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  298. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  299. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  300. # IEC 60906-1
  301. TYPE_IEC_60906_1 = 'iec-60906-1'
  302. TYPE_NBR_14136_10A = 'nbr-14136-10a'
  303. TYPE_NBR_14136_20A = 'nbr-14136-20a'
  304. # NEMA non-locking
  305. TYPE_NEMA_115P = 'nema-1-15p'
  306. TYPE_NEMA_515P = 'nema-5-15p'
  307. TYPE_NEMA_520P = 'nema-5-20p'
  308. TYPE_NEMA_530P = 'nema-5-30p'
  309. TYPE_NEMA_550P = 'nema-5-50p'
  310. TYPE_NEMA_615P = 'nema-6-15p'
  311. TYPE_NEMA_620P = 'nema-6-20p'
  312. TYPE_NEMA_630P = 'nema-6-30p'
  313. TYPE_NEMA_650P = 'nema-6-50p'
  314. TYPE_NEMA_1030P = 'nema-10-30p'
  315. TYPE_NEMA_1050P = 'nema-10-50p'
  316. TYPE_NEMA_1420P = 'nema-14-20p'
  317. TYPE_NEMA_1430P = 'nema-14-30p'
  318. TYPE_NEMA_1450P = 'nema-14-50p'
  319. TYPE_NEMA_1460P = 'nema-14-60p'
  320. TYPE_NEMA_1515P = 'nema-15-15p'
  321. TYPE_NEMA_1520P = 'nema-15-20p'
  322. TYPE_NEMA_1530P = 'nema-15-30p'
  323. TYPE_NEMA_1550P = 'nema-15-50p'
  324. TYPE_NEMA_1560P = 'nema-15-60p'
  325. # NEMA locking
  326. TYPE_NEMA_L115P = 'nema-l1-15p'
  327. TYPE_NEMA_L515P = 'nema-l5-15p'
  328. TYPE_NEMA_L520P = 'nema-l5-20p'
  329. TYPE_NEMA_L530P = 'nema-l5-30p'
  330. TYPE_NEMA_L550P = 'nema-l5-50p'
  331. TYPE_NEMA_L615P = 'nema-l6-15p'
  332. TYPE_NEMA_L620P = 'nema-l6-20p'
  333. TYPE_NEMA_L630P = 'nema-l6-30p'
  334. TYPE_NEMA_L650P = 'nema-l6-50p'
  335. TYPE_NEMA_L1030P = 'nema-l10-30p'
  336. TYPE_NEMA_L1420P = 'nema-l14-20p'
  337. TYPE_NEMA_L1430P = 'nema-l14-30p'
  338. TYPE_NEMA_L1450P = 'nema-l14-50p'
  339. TYPE_NEMA_L1460P = 'nema-l14-60p'
  340. TYPE_NEMA_L1520P = 'nema-l15-20p'
  341. TYPE_NEMA_L1530P = 'nema-l15-30p'
  342. TYPE_NEMA_L1550P = 'nema-l15-50p'
  343. TYPE_NEMA_L1560P = 'nema-l15-60p'
  344. TYPE_NEMA_L2120P = 'nema-l21-20p'
  345. TYPE_NEMA_L2130P = 'nema-l21-30p'
  346. TYPE_NEMA_L2220P = 'nema-l22-20p'
  347. TYPE_NEMA_L2230P = 'nema-l22-30p'
  348. # California style
  349. TYPE_CS6361C = 'cs6361c'
  350. TYPE_CS6365C = 'cs6365c'
  351. TYPE_CS8165C = 'cs8165c'
  352. TYPE_CS8265C = 'cs8265c'
  353. TYPE_CS8365C = 'cs8365c'
  354. TYPE_CS8465C = 'cs8465c'
  355. # ITA/international
  356. TYPE_ITA_C = 'ita-c'
  357. TYPE_ITA_E = 'ita-e'
  358. TYPE_ITA_F = 'ita-f'
  359. TYPE_ITA_EF = 'ita-ef'
  360. TYPE_ITA_G = 'ita-g'
  361. TYPE_ITA_H = 'ita-h'
  362. TYPE_ITA_I = 'ita-i'
  363. TYPE_ITA_J = 'ita-j'
  364. TYPE_ITA_K = 'ita-k'
  365. TYPE_ITA_L = 'ita-l'
  366. TYPE_ITA_M = 'ita-m'
  367. TYPE_ITA_N = 'ita-n'
  368. TYPE_ITA_O = 'ita-o'
  369. # USB
  370. TYPE_USB_A = 'usb-a'
  371. TYPE_USB_B = 'usb-b'
  372. TYPE_USB_C = 'usb-c'
  373. TYPE_USB_MINI_A = 'usb-mini-a'
  374. TYPE_USB_MINI_B = 'usb-mini-b'
  375. TYPE_USB_MICRO_A = 'usb-micro-a'
  376. TYPE_USB_MICRO_B = 'usb-micro-b'
  377. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  378. TYPE_USB_3_B = 'usb-3-b'
  379. TYPE_USB_3_MICROB = 'usb-3-micro-b'
  380. # Molex
  381. TYPE_MOLEX_MICRO_FIT_1X2 = 'molex-micro-fit-1x2'
  382. TYPE_MOLEX_MICRO_FIT_2X2 = 'molex-micro-fit-2x2'
  383. TYPE_MOLEX_MICRO_FIT_2X3 = 'molex-micro-fit-2x3'
  384. TYPE_MOLEX_MICRO_FIT_2X4 = 'molex-micro-fit-2x4'
  385. # Direct current (DC)
  386. TYPE_DC = 'dc-terminal'
  387. # Proprietary
  388. TYPE_SAF_D_GRID = 'saf-d-grid'
  389. TYPE_NEUTRIK_POWERCON_20A = 'neutrik-powercon-20'
  390. TYPE_NEUTRIK_POWERCON_32A = 'neutrik-powercon-32'
  391. TYPE_NEUTRIK_POWERCON_TRUE1 = 'neutrik-powercon-true1'
  392. TYPE_NEUTRIK_POWERCON_TRUE1_TOP = 'neutrik-powercon-true1-top'
  393. TYPE_UBIQUITI_SMARTPOWER = 'ubiquiti-smartpower'
  394. # Other
  395. TYPE_HARDWIRED = 'hardwired'
  396. TYPE_OTHER = 'other'
  397. CHOICES = (
  398. ('IEC 60320', (
  399. (TYPE_IEC_C6, 'C6'),
  400. (TYPE_IEC_C8, 'C8'),
  401. (TYPE_IEC_C14, 'C14'),
  402. (TYPE_IEC_C16, 'C16'),
  403. (TYPE_IEC_C18, 'C18'),
  404. (TYPE_IEC_C20, 'C20'),
  405. (TYPE_IEC_C22, 'C22'),
  406. )),
  407. ('IEC 60309', (
  408. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  409. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  410. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  411. (TYPE_IEC_2PE4H, '2P+E 4H'),
  412. (TYPE_IEC_2PE6H, '2P+E 6H'),
  413. (TYPE_IEC_2PE9H, '2P+E 9H'),
  414. (TYPE_IEC_3PE4H, '3P+E 4H'),
  415. (TYPE_IEC_3PE6H, '3P+E 6H'),
  416. (TYPE_IEC_3PE9H, '3P+E 9H'),
  417. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  418. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  419. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  420. )),
  421. ('IEC 60906-1', (
  422. (TYPE_IEC_60906_1, 'IEC 60906-1'),
  423. (TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
  424. (TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
  425. )),
  426. (_('NEMA (Non-locking)'), (
  427. (TYPE_NEMA_115P, 'NEMA 1-15P'),
  428. (TYPE_NEMA_515P, 'NEMA 5-15P'),
  429. (TYPE_NEMA_520P, 'NEMA 5-20P'),
  430. (TYPE_NEMA_530P, 'NEMA 5-30P'),
  431. (TYPE_NEMA_550P, 'NEMA 5-50P'),
  432. (TYPE_NEMA_615P, 'NEMA 6-15P'),
  433. (TYPE_NEMA_620P, 'NEMA 6-20P'),
  434. (TYPE_NEMA_630P, 'NEMA 6-30P'),
  435. (TYPE_NEMA_650P, 'NEMA 6-50P'),
  436. (TYPE_NEMA_1030P, 'NEMA 10-30P'),
  437. (TYPE_NEMA_1050P, 'NEMA 10-50P'),
  438. (TYPE_NEMA_1420P, 'NEMA 14-20P'),
  439. (TYPE_NEMA_1430P, 'NEMA 14-30P'),
  440. (TYPE_NEMA_1450P, 'NEMA 14-50P'),
  441. (TYPE_NEMA_1460P, 'NEMA 14-60P'),
  442. (TYPE_NEMA_1515P, 'NEMA 15-15P'),
  443. (TYPE_NEMA_1520P, 'NEMA 15-20P'),
  444. (TYPE_NEMA_1530P, 'NEMA 15-30P'),
  445. (TYPE_NEMA_1550P, 'NEMA 15-50P'),
  446. (TYPE_NEMA_1560P, 'NEMA 15-60P'),
  447. )),
  448. (_('NEMA (Locking)'), (
  449. (TYPE_NEMA_L115P, 'NEMA L1-15P'),
  450. (TYPE_NEMA_L515P, 'NEMA L5-15P'),
  451. (TYPE_NEMA_L520P, 'NEMA L5-20P'),
  452. (TYPE_NEMA_L530P, 'NEMA L5-30P'),
  453. (TYPE_NEMA_L550P, 'NEMA L5-50P'),
  454. (TYPE_NEMA_L615P, 'NEMA L6-15P'),
  455. (TYPE_NEMA_L620P, 'NEMA L6-20P'),
  456. (TYPE_NEMA_L630P, 'NEMA L6-30P'),
  457. (TYPE_NEMA_L650P, 'NEMA L6-50P'),
  458. (TYPE_NEMA_L1030P, 'NEMA L10-30P'),
  459. (TYPE_NEMA_L1420P, 'NEMA L14-20P'),
  460. (TYPE_NEMA_L1430P, 'NEMA L14-30P'),
  461. (TYPE_NEMA_L1450P, 'NEMA L14-50P'),
  462. (TYPE_NEMA_L1460P, 'NEMA L14-60P'),
  463. (TYPE_NEMA_L1520P, 'NEMA L15-20P'),
  464. (TYPE_NEMA_L1530P, 'NEMA L15-30P'),
  465. (TYPE_NEMA_L1550P, 'NEMA L15-50P'),
  466. (TYPE_NEMA_L1560P, 'NEMA L15-60P'),
  467. (TYPE_NEMA_L2120P, 'NEMA L21-20P'),
  468. (TYPE_NEMA_L2130P, 'NEMA L21-30P'),
  469. (TYPE_NEMA_L2220P, 'NEMA L22-20P'),
  470. (TYPE_NEMA_L2230P, 'NEMA L22-30P'),
  471. )),
  472. (_('California Style'), (
  473. (TYPE_CS6361C, 'CS6361C'),
  474. (TYPE_CS6365C, 'CS6365C'),
  475. (TYPE_CS8165C, 'CS8165C'),
  476. (TYPE_CS8265C, 'CS8265C'),
  477. (TYPE_CS8365C, 'CS8365C'),
  478. (TYPE_CS8465C, 'CS8465C'),
  479. )),
  480. (_('International/ITA'), (
  481. (TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
  482. (TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
  483. (TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
  484. (TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
  485. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  486. (TYPE_ITA_H, 'ITA Type H'),
  487. (TYPE_ITA_I, 'ITA Type I'),
  488. (TYPE_ITA_J, 'ITA Type J'),
  489. (TYPE_ITA_K, 'ITA Type K'),
  490. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  491. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  492. (TYPE_ITA_N, 'ITA Type N'),
  493. (TYPE_ITA_O, 'ITA Type O'),
  494. )),
  495. ('USB', (
  496. (TYPE_USB_A, 'USB Type A'),
  497. (TYPE_USB_B, 'USB Type B'),
  498. (TYPE_USB_C, 'USB Type C'),
  499. (TYPE_USB_MINI_A, 'USB Mini A'),
  500. (TYPE_USB_MINI_B, 'USB Mini B'),
  501. (TYPE_USB_MICRO_A, 'USB Micro A'),
  502. (TYPE_USB_MICRO_B, 'USB Micro B'),
  503. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  504. (TYPE_USB_3_B, 'USB 3.0 Type B'),
  505. (TYPE_USB_3_MICROB, 'USB 3.0 Micro B'),
  506. )),
  507. ('Molex', (
  508. (TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
  509. (TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
  510. (TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3'),
  511. (TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
  512. )),
  513. ('DC', (
  514. (TYPE_DC, 'DC Terminal'),
  515. )),
  516. (_('Proprietary'), (
  517. (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
  518. (TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
  519. (TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
  520. (TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
  521. (TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
  522. (TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
  523. )),
  524. (_('Other'), (
  525. (TYPE_HARDWIRED, 'Hardwired'),
  526. (TYPE_OTHER, 'Other'),
  527. )),
  528. )
  529. #
  530. # PowerOutlets
  531. #
  532. class PowerOutletTypeChoices(ChoiceSet):
  533. # IEC 60320
  534. TYPE_IEC_C5 = 'iec-60320-c5'
  535. TYPE_IEC_C7 = 'iec-60320-c7'
  536. TYPE_IEC_C13 = 'iec-60320-c13'
  537. TYPE_IEC_C15 = 'iec-60320-c15'
  538. TYPE_IEC_C17 = 'iec-60320-c17'
  539. TYPE_IEC_C19 = 'iec-60320-c19'
  540. TYPE_IEC_C21 = 'iec-60320-c21'
  541. # IEC 60309
  542. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  543. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  544. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  545. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  546. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  547. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  548. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  549. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  550. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  551. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  552. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  553. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  554. # IEC 60906-1
  555. TYPE_IEC_60906_1 = 'iec-60906-1'
  556. TYPE_NBR_14136_10A = 'nbr-14136-10a'
  557. TYPE_NBR_14136_20A = 'nbr-14136-20a'
  558. # NEMA non-locking
  559. TYPE_NEMA_115R = 'nema-1-15r'
  560. TYPE_NEMA_515R = 'nema-5-15r'
  561. TYPE_NEMA_520R = 'nema-5-20r'
  562. TYPE_NEMA_530R = 'nema-5-30r'
  563. TYPE_NEMA_550R = 'nema-5-50r'
  564. TYPE_NEMA_615R = 'nema-6-15r'
  565. TYPE_NEMA_620R = 'nema-6-20r'
  566. TYPE_NEMA_630R = 'nema-6-30r'
  567. TYPE_NEMA_650R = 'nema-6-50r'
  568. TYPE_NEMA_1030R = 'nema-10-30r'
  569. TYPE_NEMA_1050R = 'nema-10-50r'
  570. TYPE_NEMA_1420R = 'nema-14-20r'
  571. TYPE_NEMA_1430R = 'nema-14-30r'
  572. TYPE_NEMA_1450R = 'nema-14-50r'
  573. TYPE_NEMA_1460R = 'nema-14-60r'
  574. TYPE_NEMA_1515R = 'nema-15-15r'
  575. TYPE_NEMA_1520R = 'nema-15-20r'
  576. TYPE_NEMA_1530R = 'nema-15-30r'
  577. TYPE_NEMA_1550R = 'nema-15-50r'
  578. TYPE_NEMA_1560R = 'nema-15-60r'
  579. # NEMA locking
  580. TYPE_NEMA_L115R = 'nema-l1-15r'
  581. TYPE_NEMA_L515R = 'nema-l5-15r'
  582. TYPE_NEMA_L520R = 'nema-l5-20r'
  583. TYPE_NEMA_L530R = 'nema-l5-30r'
  584. TYPE_NEMA_L550R = 'nema-l5-50r'
  585. TYPE_NEMA_L615R = 'nema-l6-15r'
  586. TYPE_NEMA_L620R = 'nema-l6-20r'
  587. TYPE_NEMA_L630R = 'nema-l6-30r'
  588. TYPE_NEMA_L650R = 'nema-l6-50r'
  589. TYPE_NEMA_L1030R = 'nema-l10-30r'
  590. TYPE_NEMA_L1420R = 'nema-l14-20r'
  591. TYPE_NEMA_L1430R = 'nema-l14-30r'
  592. TYPE_NEMA_L1450R = 'nema-l14-50r'
  593. TYPE_NEMA_L1460R = 'nema-l14-60r'
  594. TYPE_NEMA_L1520R = 'nema-l15-20r'
  595. TYPE_NEMA_L1530R = 'nema-l15-30r'
  596. TYPE_NEMA_L1550R = 'nema-l15-50r'
  597. TYPE_NEMA_L1560R = 'nema-l15-60r'
  598. TYPE_NEMA_L2120R = 'nema-l21-20r'
  599. TYPE_NEMA_L2130R = 'nema-l21-30r'
  600. TYPE_NEMA_L2220R = 'nema-l22-20r'
  601. TYPE_NEMA_L2230R = 'nema-l22-30r'
  602. # California style
  603. TYPE_CS6360C = 'CS6360C'
  604. TYPE_CS6364C = 'CS6364C'
  605. TYPE_CS8164C = 'CS8164C'
  606. TYPE_CS8264C = 'CS8264C'
  607. TYPE_CS8364C = 'CS8364C'
  608. TYPE_CS8464C = 'CS8464C'
  609. # ITA/international
  610. TYPE_ITA_E = 'ita-e'
  611. TYPE_ITA_F = 'ita-f'
  612. TYPE_ITA_G = 'ita-g'
  613. TYPE_ITA_H = 'ita-h'
  614. TYPE_ITA_I = 'ita-i'
  615. TYPE_ITA_J = 'ita-j'
  616. TYPE_ITA_K = 'ita-k'
  617. TYPE_ITA_L = 'ita-l'
  618. TYPE_ITA_M = 'ita-m'
  619. TYPE_ITA_N = 'ita-n'
  620. TYPE_ITA_O = 'ita-o'
  621. TYPE_ITA_MULTISTANDARD = 'ita-multistandard'
  622. # USB
  623. TYPE_USB_A = 'usb-a'
  624. TYPE_USB_MICROB = 'usb-micro-b'
  625. TYPE_USB_C = 'usb-c'
  626. # Molex
  627. TYPE_MOLEX_MICRO_FIT_1X2 = 'molex-micro-fit-1x2'
  628. TYPE_MOLEX_MICRO_FIT_2X2 = 'molex-micro-fit-2x2'
  629. TYPE_MOLEX_MICRO_FIT_2X3 = 'molex-micro-fit-2x3'
  630. TYPE_MOLEX_MICRO_FIT_2X4 = 'molex-micro-fit-2x4'
  631. # Direct current (DC)
  632. TYPE_DC = 'dc-terminal'
  633. # Proprietary
  634. TYPE_EATON_C39 = 'eaton-c39'
  635. TYPE_HDOT_CX = 'hdot-cx'
  636. TYPE_SAF_D_GRID = 'saf-d-grid'
  637. TYPE_NEUTRIK_POWERCON_20A = 'neutrik-powercon-20a'
  638. TYPE_NEUTRIK_POWERCON_32A = 'neutrik-powercon-32a'
  639. TYPE_NEUTRIK_POWERCON_TRUE1 = 'neutrik-powercon-true1'
  640. TYPE_NEUTRIK_POWERCON_TRUE1_TOP = 'neutrik-powercon-true1-top'
  641. TYPE_UBIQUITI_SMARTPOWER = 'ubiquiti-smartpower'
  642. # Other
  643. TYPE_HARDWIRED = 'hardwired'
  644. TYPE_OTHER = 'other'
  645. CHOICES = (
  646. ('IEC 60320', (
  647. (TYPE_IEC_C5, 'C5'),
  648. (TYPE_IEC_C7, 'C7'),
  649. (TYPE_IEC_C13, 'C13'),
  650. (TYPE_IEC_C15, 'C15'),
  651. (TYPE_IEC_C17, 'C17'),
  652. (TYPE_IEC_C19, 'C19'),
  653. (TYPE_IEC_C21, 'C21'),
  654. )),
  655. ('IEC 60309', (
  656. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  657. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  658. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  659. (TYPE_IEC_2PE4H, '2P+E 4H'),
  660. (TYPE_IEC_2PE6H, '2P+E 6H'),
  661. (TYPE_IEC_2PE9H, '2P+E 9H'),
  662. (TYPE_IEC_3PE4H, '3P+E 4H'),
  663. (TYPE_IEC_3PE6H, '3P+E 6H'),
  664. (TYPE_IEC_3PE9H, '3P+E 9H'),
  665. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  666. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  667. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  668. )),
  669. ('IEC 60906-1', (
  670. (TYPE_IEC_60906_1, 'IEC 60906-1'),
  671. (TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
  672. (TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
  673. )),
  674. (_('NEMA (Non-locking)'), (
  675. (TYPE_NEMA_115R, 'NEMA 1-15R'),
  676. (TYPE_NEMA_515R, 'NEMA 5-15R'),
  677. (TYPE_NEMA_520R, 'NEMA 5-20R'),
  678. (TYPE_NEMA_530R, 'NEMA 5-30R'),
  679. (TYPE_NEMA_550R, 'NEMA 5-50R'),
  680. (TYPE_NEMA_615R, 'NEMA 6-15R'),
  681. (TYPE_NEMA_620R, 'NEMA 6-20R'),
  682. (TYPE_NEMA_630R, 'NEMA 6-30R'),
  683. (TYPE_NEMA_650R, 'NEMA 6-50R'),
  684. (TYPE_NEMA_1030R, 'NEMA 10-30R'),
  685. (TYPE_NEMA_1050R, 'NEMA 10-50R'),
  686. (TYPE_NEMA_1420R, 'NEMA 14-20R'),
  687. (TYPE_NEMA_1430R, 'NEMA 14-30R'),
  688. (TYPE_NEMA_1450R, 'NEMA 14-50R'),
  689. (TYPE_NEMA_1460R, 'NEMA 14-60R'),
  690. (TYPE_NEMA_1515R, 'NEMA 15-15R'),
  691. (TYPE_NEMA_1520R, 'NEMA 15-20R'),
  692. (TYPE_NEMA_1530R, 'NEMA 15-30R'),
  693. (TYPE_NEMA_1550R, 'NEMA 15-50R'),
  694. (TYPE_NEMA_1560R, 'NEMA 15-60R'),
  695. )),
  696. (_('NEMA (Locking)'), (
  697. (TYPE_NEMA_L115R, 'NEMA L1-15R'),
  698. (TYPE_NEMA_L515R, 'NEMA L5-15R'),
  699. (TYPE_NEMA_L520R, 'NEMA L5-20R'),
  700. (TYPE_NEMA_L530R, 'NEMA L5-30R'),
  701. (TYPE_NEMA_L550R, 'NEMA L5-50R'),
  702. (TYPE_NEMA_L615R, 'NEMA L6-15R'),
  703. (TYPE_NEMA_L620R, 'NEMA L6-20R'),
  704. (TYPE_NEMA_L630R, 'NEMA L6-30R'),
  705. (TYPE_NEMA_L650R, 'NEMA L6-50R'),
  706. (TYPE_NEMA_L1030R, 'NEMA L10-30R'),
  707. (TYPE_NEMA_L1420R, 'NEMA L14-20R'),
  708. (TYPE_NEMA_L1430R, 'NEMA L14-30R'),
  709. (TYPE_NEMA_L1450R, 'NEMA L14-50R'),
  710. (TYPE_NEMA_L1460R, 'NEMA L14-60R'),
  711. (TYPE_NEMA_L1520R, 'NEMA L15-20R'),
  712. (TYPE_NEMA_L1530R, 'NEMA L15-30R'),
  713. (TYPE_NEMA_L1550R, 'NEMA L15-50R'),
  714. (TYPE_NEMA_L1560R, 'NEMA L15-60R'),
  715. (TYPE_NEMA_L2120R, 'NEMA L21-20R'),
  716. (TYPE_NEMA_L2130R, 'NEMA L21-30R'),
  717. (TYPE_NEMA_L2220R, 'NEMA L22-20R'),
  718. (TYPE_NEMA_L2230R, 'NEMA L22-30R'),
  719. )),
  720. (_('California Style'), (
  721. (TYPE_CS6360C, 'CS6360C'),
  722. (TYPE_CS6364C, 'CS6364C'),
  723. (TYPE_CS8164C, 'CS8164C'),
  724. (TYPE_CS8264C, 'CS8264C'),
  725. (TYPE_CS8364C, 'CS8364C'),
  726. (TYPE_CS8464C, 'CS8464C'),
  727. )),
  728. (_('ITA/International'), (
  729. (TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
  730. (TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
  731. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  732. (TYPE_ITA_H, 'ITA Type H'),
  733. (TYPE_ITA_I, 'ITA Type I'),
  734. (TYPE_ITA_J, 'ITA Type J'),
  735. (TYPE_ITA_K, 'ITA Type K'),
  736. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  737. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  738. (TYPE_ITA_N, 'ITA Type N'),
  739. (TYPE_ITA_O, 'ITA Type O'),
  740. (TYPE_ITA_MULTISTANDARD, 'ITA Multistandard'),
  741. )),
  742. ('USB', (
  743. (TYPE_USB_A, 'USB Type A'),
  744. (TYPE_USB_MICROB, 'USB Micro B'),
  745. (TYPE_USB_C, 'USB Type C'),
  746. )),
  747. ('Molex', (
  748. (TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
  749. (TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
  750. (TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3'),
  751. (TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
  752. )),
  753. ('DC', (
  754. (TYPE_DC, 'DC Terminal'),
  755. )),
  756. (_('Proprietary'), (
  757. (TYPE_EATON_C39, 'Eaton C39'),
  758. (TYPE_HDOT_CX, 'HDOT Cx'),
  759. (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
  760. (TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
  761. (TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
  762. (TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
  763. (TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
  764. (TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
  765. )),
  766. (_('Other'), (
  767. (TYPE_HARDWIRED, 'Hardwired'),
  768. (TYPE_OTHER, 'Other'),
  769. )),
  770. )
  771. class PowerOutletFeedLegChoices(ChoiceSet):
  772. FEED_LEG_A = 'A'
  773. FEED_LEG_B = 'B'
  774. FEED_LEG_C = 'C'
  775. CHOICES = (
  776. (FEED_LEG_A, 'A'),
  777. (FEED_LEG_B, 'B'),
  778. (FEED_LEG_C, 'C'),
  779. )
  780. #
  781. # Interfaces
  782. #
  783. class InterfaceKindChoices(ChoiceSet):
  784. KIND_PHYSICAL = 'physical'
  785. KIND_VIRTUAL = 'virtual'
  786. KIND_WIRELESS = 'wireless'
  787. CHOICES = (
  788. (KIND_PHYSICAL, _('Physical')),
  789. (KIND_VIRTUAL, _('Virtual')),
  790. (KIND_WIRELESS, _('Wireless')),
  791. )
  792. class InterfaceTypeChoices(ChoiceSet):
  793. # Virtual
  794. TYPE_VIRTUAL = 'virtual'
  795. TYPE_BRIDGE = 'bridge'
  796. TYPE_LAG = 'lag'
  797. # FastEthernet
  798. TYPE_100ME_FX = '100base-fx'
  799. TYPE_100ME_LFX = '100base-lfx'
  800. TYPE_100ME_FIXED = '100base-tx' # TODO: Rename to _TX
  801. TYPE_100ME_T1 = '100base-t1'
  802. # GigabitEthernet
  803. TYPE_1GE_BX10_D = '1000base-bx10-d'
  804. TYPE_1GE_BX10_U = '1000base-bx10-u'
  805. TYPE_1GE_CWDM = '1000base-cwdm'
  806. TYPE_1GE_CX = '1000base-cx'
  807. TYPE_1GE_DWDM = '1000base-dwdm'
  808. TYPE_1GE_EX = '1000base-ex'
  809. TYPE_1GE_SX_FIXED = '1000base-sx' # TODO: Drop _FIXED suffix
  810. TYPE_1GE_LSX = '1000base-lsx'
  811. TYPE_1GE_LX_FIXED = '1000base-lx' # TODO: Drop _FIXED suffix
  812. TYPE_1GE_LX10 = '1000base-lx10'
  813. TYPE_1GE_FIXED = '1000base-t' # TODO: Rename to _T
  814. TYPE_1GE_TX_FIXED = '1000base-tx' # TODO: Drop _FIXED suffix
  815. TYPE_1GE_ZX = '1000base-zx'
  816. # 2.5/5 Gbps Ethernet
  817. TYPE_2GE_FIXED = '2.5gbase-t' # TODO: Rename to _T
  818. TYPE_5GE_FIXED = '5gbase-t' # TODO: Rename to _T
  819. # 10 Gbps Ethernet
  820. TYPE_10GE_BR_D = '10gbase-br-d'
  821. TYPE_10GE_BR_U = '10gbase-br-u'
  822. TYPE_10GE_CX4 = '10gbase-cx4'
  823. TYPE_10GE_ER = '10gbase-er'
  824. TYPE_10GE_LR = '10gbase-lr'
  825. TYPE_10GE_LRM = '10gbase-lrm'
  826. TYPE_10GE_LX4 = '10gbase-lx4'
  827. TYPE_10GE_SR = '10gbase-sr'
  828. TYPE_10GE_FIXED = '10gbase-t'
  829. TYPE_10GE_ZR = '10gbase-zr'
  830. # 25 Gbps Ethernet
  831. TYPE_25GE_CR = '25gbase-cr'
  832. TYPE_25GE_ER = '25gbase-er'
  833. TYPE_25GE_LR = '25gbase-lr'
  834. TYPE_25GE_SR = '25gbase-sr'
  835. TYPE_25GE_T = '25gbase-t'
  836. # 40 Gbps Ethernet
  837. TYPE_40GE_CR4 = '40gbase-cr4'
  838. TYPE_40GE_ER4 = '40gbase-er4'
  839. TYPE_40GE_FR4 = '40gbase-fr4'
  840. TYPE_40GE_LR4 = '40gbase-lr4'
  841. TYPE_40GE_SR4 = '40gbase-sr4'
  842. # 50 Gbps Ethernet
  843. TYPE_50GE_CR = '50gbase-cr'
  844. TYPE_50GE_ER = '50gbase-er'
  845. TYPE_50GE_FR = '50gbase-fr'
  846. TYPE_50GE_LR = '50gbase-lr'
  847. TYPE_50GE_SR = '50gbase-sr'
  848. # 100 Gbps Ethernet
  849. TYPE_100GE_CR1 = '100gbase-cr1'
  850. TYPE_100GE_CR2 = '100gbase-cr2'
  851. TYPE_100GE_CR4 = '100gbase-cr4'
  852. TYPE_100GE_CR10 = '100gbase-cr10'
  853. TYPE_100GE_CWDM4 = '100gbase-cwdm4'
  854. TYPE_100GE_DR = '100gbase-dr'
  855. TYPE_100GE_FR1 = '100gbase-fr1'
  856. TYPE_100GE_ER4 = '100gbase-er4'
  857. TYPE_100GE_LR1 = '100gbase-lr1'
  858. TYPE_100GE_LR4 = '100gbase-lr4'
  859. TYPE_100GE_SR1 = '100gbase-sr1'
  860. TYPE_100GE_SR1_2 = '100gbase-sr1.2'
  861. TYPE_100GE_SR2 = '100gbase-sr2'
  862. TYPE_100GE_SR4 = '100gbase-sr4'
  863. TYPE_100GE_SR10 = '100gbase-sr10'
  864. TYPE_100GE_ZR = '100gbase-zr'
  865. # 200 Gbps Ethernet
  866. TYPE_200GE_CR2 = '200gbase-cr2'
  867. TYPE_200GE_CR4 = '200gbase-cr4'
  868. TYPE_200GE_SR2 = '200gbase-sr2'
  869. TYPE_200GE_SR4 = '200gbase-sr4'
  870. TYPE_200GE_DR4 = '200gbase-dr4'
  871. TYPE_200GE_FR4 = '200gbase-fr4'
  872. TYPE_200GE_LR4 = '200gbase-lr4'
  873. TYPE_200GE_ER4 = '200gbase-er4'
  874. TYPE_200GE_VR2 = '200gbase-vr2'
  875. # 400 Gbps Ethernet
  876. TYPE_400GE_CR4 = '400gbase-cr4'
  877. TYPE_400GE_DR4 = '400gbase-dr4'
  878. TYPE_400GE_ER8 = '400gbase-er8'
  879. TYPE_400GE_FR4 = '400gbase-fr4'
  880. TYPE_400GE_FR8 = '400gbase-fr8'
  881. TYPE_400GE_LR4 = '400gbase-lr4'
  882. TYPE_400GE_LR8 = '400gbase-lr8'
  883. TYPE_400GE_SR4 = '400gbase-sr4'
  884. TYPE_400GE_SR4_2 = '400gbase-sr4_2'
  885. TYPE_400GE_SR8 = '400gbase-sr8'
  886. TYPE_400GE_SR16 = '400gbase-sr16'
  887. TYPE_400GE_VR4 = '400gbase-vr4'
  888. TYPE_400GE_ZR = '400gbase-zr'
  889. # 800 Gbps Ethernet
  890. TYPE_800GE_CR8 = '800gbase-cr8'
  891. TYPE_800GE_DR8 = '800gbase-dr8'
  892. TYPE_800GE_SR8 = '800gbase-sr8'
  893. TYPE_800GE_VR8 = '800gbase-vr8'
  894. # Ethernet (modular)
  895. TYPE_100ME_SFP = '100base-x-sfp'
  896. TYPE_1GE_GBIC = '1000base-x-gbic'
  897. TYPE_1GE_SFP = '1000base-x-sfp'
  898. TYPE_10GE_SFP_PLUS = '10gbase-x-sfpp'
  899. TYPE_10GE_XFP = '10gbase-x-xfp'
  900. TYPE_10GE_XENPAK = '10gbase-x-xenpak'
  901. TYPE_10GE_X2 = '10gbase-x-x2'
  902. TYPE_25GE_SFP28 = '25gbase-x-sfp28'
  903. TYPE_50GE_SFP56 = '50gbase-x-sfp56'
  904. TYPE_40GE_QSFP_PLUS = '40gbase-x-qsfpp'
  905. TYPE_50GE_QSFP28 = '50gbase-x-sfp28'
  906. TYPE_100GE_CFP = '100gbase-x-cfp'
  907. TYPE_100GE_CFP2 = '100gbase-x-cfp2'
  908. TYPE_100GE_CFP4 = '100gbase-x-cfp4'
  909. TYPE_100GE_CXP = '100gbase-x-cxp'
  910. TYPE_100GE_CPAK = '100gbase-x-cpak'
  911. TYPE_100GE_DSFP = '100gbase-x-dsfp'
  912. TYPE_100GE_SFP_DD = '100gbase-x-sfpdd'
  913. TYPE_100GE_QSFP28 = '100gbase-x-qsfp28'
  914. TYPE_100GE_QSFP_DD = '100gbase-x-qsfpdd'
  915. TYPE_200GE_CFP2 = '200gbase-x-cfp2'
  916. TYPE_200GE_QSFP56 = '200gbase-x-qsfp56'
  917. TYPE_200GE_QSFP_DD = '200gbase-x-qsfpdd'
  918. TYPE_400GE_CFP2 = '400gbase-x-cfp2'
  919. TYPE_400GE_QSFP112 = '400gbase-x-qsfp112'
  920. TYPE_400GE_QSFP_DD = '400gbase-x-qsfpdd'
  921. TYPE_400GE_OSFP = '400gbase-x-osfp'
  922. TYPE_400GE_OSFP_RHS = '400gbase-x-osfp-rhs'
  923. TYPE_400GE_CDFP = '400gbase-x-cdfp'
  924. TYPE_400GE_CFP8 = '400gbase-x-cfp8'
  925. TYPE_800GE_QSFP_DD = '800gbase-x-qsfpdd'
  926. TYPE_800GE_OSFP = '800gbase-x-osfp'
  927. # Backplane Ethernet
  928. TYPE_1GE_KX = '1000base-kx'
  929. TYPE_2GE_KX = '2.5gbase-kx'
  930. TYPE_5GE_KR = '5gbase-kr'
  931. TYPE_10GE_KR = '10gbase-kr'
  932. TYPE_10GE_KX4 = '10gbase-kx4'
  933. TYPE_25GE_KR = '25gbase-kr'
  934. TYPE_40GE_KR4 = '40gbase-kr4'
  935. TYPE_50GE_KR = '50gbase-kr'
  936. TYPE_100GE_KP4 = '100gbase-kp4'
  937. TYPE_100GE_KR2 = '100gbase-kr2'
  938. TYPE_100GE_KR4 = '100gbase-kr4'
  939. # Wireless
  940. TYPE_80211A = 'ieee802.11a'
  941. TYPE_80211G = 'ieee802.11g'
  942. TYPE_80211N = 'ieee802.11n'
  943. TYPE_80211AC = 'ieee802.11ac'
  944. TYPE_80211AD = 'ieee802.11ad'
  945. TYPE_80211AX = 'ieee802.11ax'
  946. TYPE_80211AY = 'ieee802.11ay'
  947. TYPE_80211BE = 'ieee802.11be'
  948. TYPE_802151 = 'ieee802.15.1'
  949. TYPE_802154 = 'ieee802.15.4'
  950. TYPE_OTHER_WIRELESS = 'other-wireless'
  951. # Cellular
  952. TYPE_GSM = 'gsm'
  953. TYPE_CDMA = 'cdma'
  954. TYPE_LTE = 'lte'
  955. TYPE_4G = '4g'
  956. TYPE_5G = '5g'
  957. # SONET
  958. TYPE_SONET_OC3 = 'sonet-oc3'
  959. TYPE_SONET_OC12 = 'sonet-oc12'
  960. TYPE_SONET_OC48 = 'sonet-oc48'
  961. TYPE_SONET_OC192 = 'sonet-oc192'
  962. TYPE_SONET_OC768 = 'sonet-oc768'
  963. TYPE_SONET_OC1920 = 'sonet-oc1920'
  964. TYPE_SONET_OC3840 = 'sonet-oc3840'
  965. # Fibrechannel
  966. TYPE_1GFC_SFP = '1gfc-sfp'
  967. TYPE_2GFC_SFP = '2gfc-sfp'
  968. TYPE_4GFC_SFP = '4gfc-sfp'
  969. TYPE_8GFC_SFP_PLUS = '8gfc-sfpp'
  970. TYPE_16GFC_SFP_PLUS = '16gfc-sfpp'
  971. TYPE_32GFC_SFP28 = '32gfc-sfp28'
  972. TYPE_32GFC_SFP_PLUS = '32gfc-sfpp'
  973. TYPE_64GFC_QSFP_PLUS = '64gfc-qsfpp'
  974. TYPE_64GFC_SFP_DD = '64gfc-sfpdd'
  975. TYPE_64GFC_SFP_PLUS = '64gfc-sfpp'
  976. TYPE_128GFC_QSFP28 = '128gfc-qsfp28'
  977. # InfiniBand
  978. TYPE_INFINIBAND_SDR = 'infiniband-sdr'
  979. TYPE_INFINIBAND_DDR = 'infiniband-ddr'
  980. TYPE_INFINIBAND_QDR = 'infiniband-qdr'
  981. TYPE_INFINIBAND_FDR10 = 'infiniband-fdr10'
  982. TYPE_INFINIBAND_FDR = 'infiniband-fdr'
  983. TYPE_INFINIBAND_EDR = 'infiniband-edr'
  984. TYPE_INFINIBAND_HDR = 'infiniband-hdr'
  985. TYPE_INFINIBAND_NDR = 'infiniband-ndr'
  986. TYPE_INFINIBAND_XDR = 'infiniband-xdr'
  987. # Serial
  988. TYPE_T1 = 't1'
  989. TYPE_E1 = 'e1'
  990. TYPE_T3 = 't3'
  991. TYPE_E3 = 'e3'
  992. # ATM/DSL
  993. TYPE_XDSL = 'xdsl'
  994. # Coaxial
  995. TYPE_DOCSIS = 'docsis'
  996. TYPE_MOCA = 'moca'
  997. # PON
  998. TYPE_BPON = 'bpon'
  999. TYPE_EPON = 'epon'
  1000. TYPE_10G_EPON = '10g-epon'
  1001. TYPE_GPON = 'gpon'
  1002. TYPE_XG_PON = 'xg-pon'
  1003. TYPE_XGS_PON = 'xgs-pon'
  1004. TYPE_NG_PON2 = 'ng-pon2'
  1005. TYPE_25G_PON = '25g-pon'
  1006. TYPE_50G_PON = '50g-pon'
  1007. # Stacking
  1008. TYPE_STACKWISE = 'cisco-stackwise'
  1009. TYPE_STACKWISE_PLUS = 'cisco-stackwise-plus'
  1010. TYPE_FLEXSTACK = 'cisco-flexstack'
  1011. TYPE_FLEXSTACK_PLUS = 'cisco-flexstack-plus'
  1012. TYPE_STACKWISE80 = 'cisco-stackwise-80'
  1013. TYPE_STACKWISE160 = 'cisco-stackwise-160'
  1014. TYPE_STACKWISE320 = 'cisco-stackwise-320'
  1015. TYPE_STACKWISE480 = 'cisco-stackwise-480'
  1016. TYPE_STACKWISE1T = 'cisco-stackwise-1t'
  1017. TYPE_JUNIPER_VCP = 'juniper-vcp'
  1018. TYPE_SUMMITSTACK = 'extreme-summitstack'
  1019. TYPE_SUMMITSTACK128 = 'extreme-summitstack-128'
  1020. TYPE_SUMMITSTACK256 = 'extreme-summitstack-256'
  1021. TYPE_SUMMITSTACK512 = 'extreme-summitstack-512'
  1022. # Other
  1023. TYPE_OTHER = 'other'
  1024. CHOICES = (
  1025. (
  1026. _('Virtual interfaces'),
  1027. (
  1028. (TYPE_VIRTUAL, _('Virtual')),
  1029. (TYPE_BRIDGE, _('Bridge')),
  1030. (TYPE_LAG, _('Link Aggregation Group (LAG)')),
  1031. ),
  1032. ),
  1033. (
  1034. _('FastEthernet (100 Mbps)'),
  1035. (
  1036. (TYPE_100ME_FX, '100BASE-FX (10/100ME)'),
  1037. (TYPE_100ME_LFX, '100BASE-LFX (10/100ME)'),
  1038. (TYPE_100ME_FIXED, '100BASE-TX (10/100ME)'),
  1039. (TYPE_100ME_T1, '100BASE-T1 (10/100ME)'),
  1040. ),
  1041. ),
  1042. (
  1043. _('GigabitEthernet (1 Gbps)'),
  1044. (
  1045. (TYPE_1GE_BX10_D, '1000BASE-BX10-D (1GE BiDi Down)'),
  1046. (TYPE_1GE_BX10_U, '1000BASE-BX10-U (1GE BiDi Up)'),
  1047. (TYPE_1GE_CWDM, '1000BASE-CWDM (1GE)'),
  1048. (TYPE_1GE_CX, '1000BASE-CX (1GE DAC)'),
  1049. (TYPE_1GE_DWDM, '1000BASE-DWDM (1GE)'),
  1050. (TYPE_1GE_EX, '1000BASE-EX (1GE)'),
  1051. (TYPE_1GE_LSX, '1000BASE-LSX (1GE)'),
  1052. (TYPE_1GE_LX_FIXED, '1000BASE-LX (1GE)'),
  1053. (TYPE_1GE_LX10, '1000BASE-LX10/LH (1GE)'),
  1054. (TYPE_1GE_SX_FIXED, '1000BASE-SX (1GE)'),
  1055. (TYPE_1GE_FIXED, '1000BASE-T (1GE)'),
  1056. (TYPE_1GE_TX_FIXED, '1000BASE-TX (1GE)'),
  1057. (TYPE_1GE_ZX, '1000BASE-ZX (1GE)'),
  1058. ),
  1059. ),
  1060. (
  1061. _('2.5/5 Gbps Ethernet'),
  1062. (
  1063. (TYPE_2GE_FIXED, '2.5GBASE-T (2.5GE)'),
  1064. (TYPE_5GE_FIXED, '5GBASE-T (5GE)'),
  1065. ),
  1066. ),
  1067. (
  1068. _('10 Gbps Ethernet'),
  1069. (
  1070. (TYPE_10GE_BR_D, '10GBASE-BR-D (10GE BiDi Down)'),
  1071. (TYPE_10GE_BR_U, '10GBASE-BR-U (10GE BiDi Up)'),
  1072. (TYPE_10GE_CX4, '10GBASE-CX4 (10GE DAC)'),
  1073. (TYPE_10GE_ER, '10GBASE-ER (10GE)'),
  1074. (TYPE_10GE_LR, '10GBASE-LR (10GE)'),
  1075. (TYPE_10GE_LRM, '10GBASE-LRM (10GE)'),
  1076. (TYPE_10GE_LX4, '10GBASE-LX4 (10GE)'),
  1077. (TYPE_10GE_SR, '10GBASE-SR (10GE)'),
  1078. (TYPE_10GE_FIXED, '10GBASE-T (10GE)'),
  1079. (TYPE_10GE_ZR, '10GBASE-ZR (10GE)'),
  1080. )
  1081. ),
  1082. (
  1083. _('25 Gbps Ethernet'),
  1084. (
  1085. (TYPE_25GE_CR, '25GBASE-CR (25GE DAC)'),
  1086. (TYPE_25GE_ER, '25GBASE-ER (25GE)'),
  1087. (TYPE_25GE_LR, '25GBASE-LR (25GE)'),
  1088. (TYPE_25GE_SR, '25GBASE-SR (25GE)'),
  1089. (TYPE_25GE_T, '25GBASE-T (25GE)'),
  1090. )
  1091. ),
  1092. (
  1093. _('40 Gbps Ethernet'),
  1094. (
  1095. (TYPE_40GE_CR4, '40GBASE-CR4 (40GE DAC)'),
  1096. (TYPE_40GE_ER4, '40GBASE-ER4 (40GE)'),
  1097. (TYPE_40GE_FR4, '40GBASE-FR4 (40GE)'),
  1098. (TYPE_40GE_LR4, '40GBASE-LR4 (40GE)'),
  1099. (TYPE_40GE_SR4, '40GBASE-SR4 (40GE)'),
  1100. )
  1101. ),
  1102. (
  1103. _('50 Gbps Ethernet'),
  1104. (
  1105. (TYPE_50GE_CR, '50GBASE-CR (50GE DAC)'),
  1106. (TYPE_50GE_ER, '50GBASE-ER (50GE)'),
  1107. (TYPE_50GE_FR, '50GBASE-FR (50GE)'),
  1108. (TYPE_50GE_LR, '50GBASE-LR (50GE)'),
  1109. (TYPE_50GE_SR, '50GBASE-SR (50GE)'),
  1110. )
  1111. ),
  1112. (
  1113. _('100 Gbps Ethernet'),
  1114. (
  1115. (TYPE_100GE_CR1, '100GBASE-CR1 (100GE DAC)'),
  1116. (TYPE_100GE_CR2, '100GBASE-CR2 (100GE DAC)'),
  1117. (TYPE_100GE_CR4, '100GBASE-CR4 (100GE DAC)'),
  1118. (TYPE_100GE_CR10, '100GBASE-CR10 (100GE DAC)'),
  1119. (TYPE_100GE_CWDM4, '100GBASE-CWDM4 (100GE)'),
  1120. (TYPE_100GE_DR, '100GBASE-DR (100GE)'),
  1121. (TYPE_100GE_ER4, '100GBASE-ER4 (100GE)'),
  1122. (TYPE_100GE_FR1, '100GBASE-FR1 (100GE)'),
  1123. (TYPE_100GE_LR1, '100GBASE-LR1 (100GE)'),
  1124. (TYPE_100GE_LR4, '100GBASE-LR4 (100GE)'),
  1125. (TYPE_100GE_SR1, '100GBASE-SR1 (100GE)'),
  1126. (TYPE_100GE_SR1_2, '100GBASE-SR1.2 (100GE BiDi)'),
  1127. (TYPE_100GE_SR2, '100GBASE-SR2 (100GE)'),
  1128. (TYPE_100GE_SR4, '100GBASE-SR4 (100GE)'),
  1129. (TYPE_100GE_SR10, '100GBASE-SR10 (100GE)'),
  1130. (TYPE_100GE_ZR, '100GBASE-ZR (100GE)'),
  1131. )
  1132. ),
  1133. (
  1134. _('200 Gbps Ethernet'),
  1135. (
  1136. (TYPE_200GE_CR2, '200GBASE-CR2 (200GE)'),
  1137. (TYPE_200GE_CR4, '200GBASE-CR4 (200GE)'),
  1138. (TYPE_200GE_DR4, '200GBASE-DR4 (200GE)'),
  1139. (TYPE_200GE_ER4, '200GBASE-ER4 (200GE)'),
  1140. (TYPE_200GE_FR4, '200GBASE-FR4 (200GE)'),
  1141. (TYPE_200GE_LR4, '200GBASE-LR4 (200GE)'),
  1142. (TYPE_200GE_SR2, '200GBASE-SR2 (200GE)'),
  1143. (TYPE_200GE_SR4, '200GBASE-SR4 (200GE)'),
  1144. (TYPE_200GE_VR2, '200GBASE-VR2 (200GE)'),
  1145. )
  1146. ),
  1147. (
  1148. _('400 Gbps Ethernet'),
  1149. (
  1150. (TYPE_400GE_CR4, '400GBASE-CR4 (400GE)'),
  1151. (TYPE_400GE_DR4, '400GBASE-DR4 (400GE)'),
  1152. (TYPE_400GE_ER8, '400GBASE-ER8 (400GE)'),
  1153. (TYPE_400GE_FR4, '400GBASE-FR4 (400GE)'),
  1154. (TYPE_400GE_FR8, '400GBASE-FR8 (400GE)'),
  1155. (TYPE_400GE_LR4, '400GBASE-LR4 (400GE)'),
  1156. (TYPE_400GE_LR8, '400GBASE-LR8 (400GE)'),
  1157. (TYPE_400GE_SR4, '400GBASE-SR4 (400GE)'),
  1158. (TYPE_400GE_SR4_2, '400GBASE-SR4.2 (400GE BiDi)'),
  1159. (TYPE_400GE_SR8, '400GBASE-SR8 (400GE)'),
  1160. (TYPE_400GE_SR16, '400GBASE-SR16 (400GE)'),
  1161. (TYPE_400GE_VR4, '400GBASE-VR4 (400GE)'),
  1162. (TYPE_400GE_ZR, '400GBASE-ZR (400GE)'),
  1163. )
  1164. ),
  1165. (
  1166. _('800 Gbps Ethernet'),
  1167. (
  1168. (TYPE_800GE_CR8, '800GBASE-CR8 (800GE)'),
  1169. (TYPE_800GE_DR8, '800GBASE-DR8 (800GE)'),
  1170. (TYPE_800GE_SR8, '800GBASE-SR8 (800GE)'),
  1171. (TYPE_800GE_VR8, '800GBASE-VR8 (800GE)'),
  1172. )
  1173. ),
  1174. (
  1175. _('Pluggable transceivers'),
  1176. (
  1177. (TYPE_100ME_SFP, 'SFP (100ME)'),
  1178. (TYPE_1GE_GBIC, 'GBIC (1GE)'),
  1179. (TYPE_1GE_SFP, 'SFP (1GE)'),
  1180. (TYPE_10GE_SFP_PLUS, 'SFP+ (10GE)'),
  1181. (TYPE_10GE_XENPAK, 'XENPAK (10GE)'),
  1182. (TYPE_10GE_XFP, 'XFP (10GE)'),
  1183. (TYPE_10GE_X2, 'X2 (10GE)'),
  1184. (TYPE_25GE_SFP28, 'SFP28 (25GE)'),
  1185. (TYPE_40GE_QSFP_PLUS, 'QSFP+ (40GE)'),
  1186. (TYPE_50GE_QSFP28, 'QSFP28 (50GE)'),
  1187. (TYPE_50GE_SFP56, 'SFP56 (50GE)'),
  1188. (TYPE_100GE_CFP, 'CFP (100GE)'),
  1189. (TYPE_100GE_CFP2, 'CFP2 (100GE)'),
  1190. (TYPE_100GE_CFP4, 'CFP4 (100GE)'),
  1191. (TYPE_100GE_CXP, 'CXP (100GE)'),
  1192. (TYPE_100GE_CPAK, 'Cisco CPAK (100GE)'),
  1193. (TYPE_100GE_DSFP, 'DSFP (100GE)'),
  1194. (TYPE_100GE_QSFP28, 'QSFP28 (100GE)'),
  1195. (TYPE_100GE_QSFP_DD, 'QSFP-DD (100GE)'),
  1196. (TYPE_100GE_SFP_DD, 'SFP-DD (100GE)'),
  1197. (TYPE_200GE_CFP2, 'CFP2 (200GE)'),
  1198. (TYPE_200GE_QSFP56, 'QSFP56 (200GE)'),
  1199. (TYPE_200GE_QSFP_DD, 'QSFP-DD (200GE)'),
  1200. (TYPE_400GE_QSFP112, 'QSFP112 (400GE)'),
  1201. (TYPE_400GE_QSFP_DD, 'QSFP-DD (400GE)'),
  1202. (TYPE_400GE_CDFP, 'CDFP (400GE)'),
  1203. (TYPE_400GE_CFP2, 'CFP2 (400GE)'),
  1204. (TYPE_400GE_CFP8, 'CPF8 (400GE)'),
  1205. (TYPE_400GE_OSFP, 'OSFP (400GE)'),
  1206. (TYPE_400GE_OSFP_RHS, 'OSFP-RHS (400GE)'),
  1207. (TYPE_800GE_OSFP, 'OSFP (800GE)'),
  1208. (TYPE_800GE_QSFP_DD, 'QSFP-DD (800GE)'),
  1209. )
  1210. ),
  1211. (
  1212. _('Backplane Ethernet'),
  1213. (
  1214. (TYPE_1GE_KX, '1000BASE-KX (1GE)'),
  1215. (TYPE_2GE_KX, '2.5GBASE-KX (2.5GE)'),
  1216. (TYPE_5GE_KR, '5GBASE-KR (5GE)'),
  1217. (TYPE_10GE_KR, '10GBASE-KR (10GE)'),
  1218. (TYPE_10GE_KX4, '10GBASE-KX4 (10GE)'),
  1219. (TYPE_25GE_KR, '25GBASE-KR (25GE)'),
  1220. (TYPE_40GE_KR4, '40GBASE-KR4 (40GE)'),
  1221. (TYPE_50GE_KR, '50GBASE-KR (50GE)'),
  1222. (TYPE_100GE_KP4, '100GBASE-KP4 (100GE)'),
  1223. (TYPE_100GE_KR2, '100GBASE-KR2 (100GE)'),
  1224. (TYPE_100GE_KR4, '100GBASE-KR4 (100GE)'),
  1225. )
  1226. ),
  1227. (
  1228. _('Wireless'),
  1229. (
  1230. (TYPE_80211A, 'IEEE 802.11a'),
  1231. (TYPE_80211G, 'IEEE 802.11b/g'),
  1232. (TYPE_80211N, 'IEEE 802.11n (Wi-Fi 4)'),
  1233. (TYPE_80211AC, 'IEEE 802.11ac (Wi-Fi 5)'),
  1234. (TYPE_80211AD, 'IEEE 802.11ad (WiGig)'),
  1235. (TYPE_80211AX, 'IEEE 802.11ax (Wi-Fi 6)'),
  1236. (TYPE_80211AY, 'IEEE 802.11ay (WiGig)'),
  1237. (TYPE_80211BE, 'IEEE 802.11be (Wi-Fi 7)'),
  1238. (TYPE_802151, 'IEEE 802.15.1 (Bluetooth)'),
  1239. (TYPE_802154, 'IEEE 802.15.4 (LR-WPAN)'),
  1240. (TYPE_OTHER_WIRELESS, 'Other (Wireless)'),
  1241. )
  1242. ),
  1243. (
  1244. _('Cellular'),
  1245. (
  1246. (TYPE_GSM, 'GSM'),
  1247. (TYPE_CDMA, 'CDMA'),
  1248. (TYPE_LTE, 'LTE'),
  1249. (TYPE_4G, '4G'),
  1250. (TYPE_5G, '5G'),
  1251. )
  1252. ),
  1253. (
  1254. 'SONET',
  1255. (
  1256. (TYPE_SONET_OC3, 'OC-3/STM-1'),
  1257. (TYPE_SONET_OC12, 'OC-12/STM-4'),
  1258. (TYPE_SONET_OC48, 'OC-48/STM-16'),
  1259. (TYPE_SONET_OC192, 'OC-192/STM-64'),
  1260. (TYPE_SONET_OC768, 'OC-768/STM-256'),
  1261. (TYPE_SONET_OC1920, 'OC-1920/STM-640'),
  1262. (TYPE_SONET_OC3840, 'OC-3840/STM-1234'),
  1263. )
  1264. ),
  1265. (
  1266. 'FibreChannel',
  1267. (
  1268. (TYPE_1GFC_SFP, 'SFP (1GFC)'),
  1269. (TYPE_2GFC_SFP, 'SFP (2GFC)'),
  1270. (TYPE_4GFC_SFP, 'SFP (4GFC)'),
  1271. (TYPE_8GFC_SFP_PLUS, 'SFP+ (8GFC)'),
  1272. (TYPE_16GFC_SFP_PLUS, 'SFP+ (16GFC)'),
  1273. (TYPE_32GFC_SFP28, 'SFP28 (32GFC)'),
  1274. (TYPE_32GFC_SFP_PLUS, 'SFP+ (32GFC)'),
  1275. (TYPE_64GFC_QSFP_PLUS, 'QSFP+ (64GFC)'),
  1276. (TYPE_64GFC_SFP_DD, 'SFP-DD (64GFC)'),
  1277. (TYPE_64GFC_SFP_PLUS, 'SFP+ (64GFC)'),
  1278. (TYPE_128GFC_QSFP28, 'QSFP28 (128GFC)'),
  1279. )
  1280. ),
  1281. (
  1282. 'InfiniBand',
  1283. (
  1284. (TYPE_INFINIBAND_SDR, 'SDR (2 Gbps)'),
  1285. (TYPE_INFINIBAND_DDR, 'DDR (4 Gbps)'),
  1286. (TYPE_INFINIBAND_QDR, 'QDR (8 Gbps)'),
  1287. (TYPE_INFINIBAND_FDR10, 'FDR10 (10 Gbps)'),
  1288. (TYPE_INFINIBAND_FDR, 'FDR (13.5 Gbps)'),
  1289. (TYPE_INFINIBAND_EDR, 'EDR (25 Gbps)'),
  1290. (TYPE_INFINIBAND_HDR, 'HDR (50 Gbps)'),
  1291. (TYPE_INFINIBAND_NDR, 'NDR (100 Gbps)'),
  1292. (TYPE_INFINIBAND_XDR, 'XDR (250 Gbps)'),
  1293. )
  1294. ),
  1295. (
  1296. _('Serial'),
  1297. (
  1298. (TYPE_T1, 'T1 (1.544 Mbps)'),
  1299. (TYPE_E1, 'E1 (2.048 Mbps)'),
  1300. (TYPE_T3, 'T3 (45 Mbps)'),
  1301. (TYPE_E3, 'E3 (34 Mbps)'),
  1302. )
  1303. ),
  1304. (
  1305. 'ATM',
  1306. (
  1307. (TYPE_XDSL, 'xDSL'),
  1308. )
  1309. ),
  1310. (
  1311. _('Coaxial'),
  1312. (
  1313. (TYPE_DOCSIS, 'DOCSIS'),
  1314. (TYPE_MOCA, 'MoCA'),
  1315. )
  1316. ),
  1317. (
  1318. 'PON',
  1319. (
  1320. (TYPE_BPON, 'BPON (622 Mbps / 155 Mbps)'),
  1321. (TYPE_EPON, 'EPON (1 Gbps)'),
  1322. (TYPE_10G_EPON, '10G-EPON (10 Gbps)'),
  1323. (TYPE_GPON, 'GPON (2.5 Gbps / 1.25 Gbps)'),
  1324. (TYPE_XG_PON, 'XG-PON (10 Gbps / 2.5 Gbps)'),
  1325. (TYPE_XGS_PON, 'XGS-PON (10 Gbps)'),
  1326. (TYPE_NG_PON2, 'NG-PON2 (TWDM-PON) (4x10 Gbps)'),
  1327. (TYPE_25G_PON, '25G-PON (25 Gbps)'),
  1328. (TYPE_50G_PON, '50G-PON (50 Gbps)'),
  1329. )
  1330. ),
  1331. (
  1332. _('Stacking'),
  1333. (
  1334. (TYPE_STACKWISE, 'Cisco StackWise'),
  1335. (TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'),
  1336. (TYPE_FLEXSTACK, 'Cisco FlexStack'),
  1337. (TYPE_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'),
  1338. (TYPE_STACKWISE80, 'Cisco StackWise-80'),
  1339. (TYPE_STACKWISE160, 'Cisco StackWise-160'),
  1340. (TYPE_STACKWISE320, 'Cisco StackWise-320'),
  1341. (TYPE_STACKWISE480, 'Cisco StackWise-480'),
  1342. (TYPE_STACKWISE1T, 'Cisco StackWise-1T'),
  1343. (TYPE_JUNIPER_VCP, 'Juniper VCP'),
  1344. (TYPE_SUMMITSTACK, 'Extreme SummitStack'),
  1345. (TYPE_SUMMITSTACK128, 'Extreme SummitStack-128'),
  1346. (TYPE_SUMMITSTACK256, 'Extreme SummitStack-256'),
  1347. (TYPE_SUMMITSTACK512, 'Extreme SummitStack-512'),
  1348. )
  1349. ),
  1350. (
  1351. _('Other'),
  1352. (
  1353. (TYPE_OTHER, _('Other')),
  1354. )
  1355. ),
  1356. )
  1357. class InterfaceSpeedChoices(ChoiceSet):
  1358. key = 'Interface.speed'
  1359. CHOICES = [
  1360. (10000, '10 Mbps'),
  1361. (100000, '100 Mbps'),
  1362. (1000000, '1 Gbps'),
  1363. (2500000, '2.5 Gbps'),
  1364. (5000000, '5 Gbps'),
  1365. (10000000, '10 Gbps'),
  1366. (25000000, '25 Gbps'),
  1367. (40000000, '40 Gbps'),
  1368. (100000000, '100 Gbps'),
  1369. (200000000, '200 Gbps'),
  1370. (400000000, '400 Gbps'),
  1371. ]
  1372. class InterfaceDuplexChoices(ChoiceSet):
  1373. DUPLEX_HALF = 'half'
  1374. DUPLEX_FULL = 'full'
  1375. DUPLEX_AUTO = 'auto'
  1376. CHOICES = (
  1377. (DUPLEX_HALF, _('Half')),
  1378. (DUPLEX_FULL, _('Full')),
  1379. (DUPLEX_AUTO, _('Auto')),
  1380. )
  1381. class InterfaceModeChoices(ChoiceSet):
  1382. MODE_ACCESS = 'access'
  1383. MODE_TAGGED = 'tagged'
  1384. MODE_TAGGED_ALL = 'tagged-all'
  1385. MODE_Q_IN_Q = 'q-in-q'
  1386. CHOICES = (
  1387. (MODE_ACCESS, _('Access')),
  1388. (MODE_TAGGED, _('Tagged')),
  1389. (MODE_TAGGED_ALL, _('Tagged (All)')),
  1390. (MODE_Q_IN_Q, _('Q-in-Q (802.1ad)')),
  1391. )
  1392. class InterfacePoEModeChoices(ChoiceSet):
  1393. MODE_PD = 'pd'
  1394. MODE_PSE = 'pse'
  1395. CHOICES = (
  1396. (MODE_PD, 'PD'),
  1397. (MODE_PSE, 'PSE'),
  1398. )
  1399. class InterfacePoETypeChoices(ChoiceSet):
  1400. TYPE_1_8023AF = 'type1-ieee802.3af'
  1401. TYPE_2_8023AT = 'type2-ieee802.3at'
  1402. TYPE_3_8023BT = 'type3-ieee802.3bt'
  1403. TYPE_4_8023BT = 'type4-ieee802.3bt'
  1404. PASSIVE_24V_2PAIR = 'passive-24v-2pair'
  1405. PASSIVE_24V_4PAIR = 'passive-24v-4pair'
  1406. PASSIVE_48V_2PAIR = 'passive-48v-2pair'
  1407. PASSIVE_48V_4PAIR = 'passive-48v-4pair'
  1408. CHOICES = (
  1409. (
  1410. _('IEEE Standard'),
  1411. (
  1412. (TYPE_1_8023AF, '802.3af (Type 1)'),
  1413. (TYPE_2_8023AT, '802.3at (Type 2)'),
  1414. (TYPE_3_8023BT, '802.3bt (Type 3)'),
  1415. (TYPE_4_8023BT, '802.3bt (Type 4)'),
  1416. )
  1417. ),
  1418. (
  1419. _('Passive'),
  1420. (
  1421. (PASSIVE_24V_2PAIR, _('Passive 24V (2-pair)')),
  1422. (PASSIVE_24V_4PAIR, _('Passive 24V (4-pair)')),
  1423. (PASSIVE_48V_2PAIR, _('Passive 48V (2-pair)')),
  1424. (PASSIVE_48V_4PAIR, _('Passive 48V (4-pair)')),
  1425. )
  1426. ),
  1427. )
  1428. #
  1429. # FrontPorts/RearPorts
  1430. #
  1431. class PortTypeChoices(ChoiceSet):
  1432. TYPE_8P8C = '8p8c'
  1433. TYPE_8P6C = '8p6c'
  1434. TYPE_8P4C = '8p4c'
  1435. TYPE_8P2C = '8p2c'
  1436. TYPE_6P6C = '6p6c'
  1437. TYPE_6P4C = '6p4c'
  1438. TYPE_6P2C = '6p2c'
  1439. TYPE_4P4C = '4p4c'
  1440. TYPE_4P2C = '4p2c'
  1441. TYPE_GG45 = 'gg45'
  1442. TYPE_TERA4P = 'tera-4p'
  1443. TYPE_TERA2P = 'tera-2p'
  1444. TYPE_TERA1P = 'tera-1p'
  1445. TYPE_110_PUNCH = '110-punch'
  1446. TYPE_BNC = 'bnc'
  1447. TYPE_F = 'f'
  1448. TYPE_N = 'n'
  1449. TYPE_MRJ21 = 'mrj21'
  1450. TYPE_ST = 'st'
  1451. TYPE_SC = 'sc'
  1452. TYPE_SC_PC = 'sc-pc'
  1453. TYPE_SC_UPC = 'sc-upc'
  1454. TYPE_SC_APC = 'sc-apc'
  1455. TYPE_FC = 'fc'
  1456. TYPE_FC_PC = 'fc-pc'
  1457. TYPE_FC_UPC = 'fc-upc'
  1458. TYPE_FC_APC = 'fc-apc'
  1459. TYPE_LC = 'lc'
  1460. TYPE_LC_PC = 'lc-pc'
  1461. TYPE_LC_UPC = 'lc-upc'
  1462. TYPE_LC_APC = 'lc-apc'
  1463. TYPE_MTRJ = 'mtrj'
  1464. TYPE_MPO = 'mpo'
  1465. TYPE_LSH = 'lsh'
  1466. TYPE_LSH_PC = 'lsh-pc'
  1467. TYPE_LSH_UPC = 'lsh-upc'
  1468. TYPE_LSH_APC = 'lsh-apc'
  1469. TYPE_LX5 = 'lx5'
  1470. TYPE_LX5_PC = 'lx5-pc'
  1471. TYPE_LX5_UPC = 'lx5-upc'
  1472. TYPE_LX5_APC = 'lx5-apc'
  1473. TYPE_SPLICE = 'splice'
  1474. TYPE_CS = 'cs'
  1475. TYPE_SN = 'sn'
  1476. TYPE_SMA_905 = 'sma-905'
  1477. TYPE_SMA_906 = 'sma-906'
  1478. TYPE_URM_P2 = 'urm-p2'
  1479. TYPE_URM_P4 = 'urm-p4'
  1480. TYPE_URM_P8 = 'urm-p8'
  1481. TYPE_USB_A = 'usb-a'
  1482. TYPE_USB_B = 'usb-b'
  1483. TYPE_USB_C = 'usb-c'
  1484. TYPE_USB_MINI_A = 'usb-mini-a'
  1485. TYPE_USB_MINI_B = 'usb-mini-b'
  1486. TYPE_USB_MICRO_A = 'usb-micro-a'
  1487. TYPE_USB_MICRO_B = 'usb-micro-b'
  1488. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  1489. TYPE_OTHER = 'other'
  1490. CHOICES = (
  1491. (
  1492. _('Copper'),
  1493. (
  1494. (TYPE_8P8C, '8P8C'),
  1495. (TYPE_8P6C, '8P6C'),
  1496. (TYPE_8P4C, '8P4C'),
  1497. (TYPE_8P2C, '8P2C'),
  1498. (TYPE_6P6C, '6P6C'),
  1499. (TYPE_6P4C, '6P4C'),
  1500. (TYPE_6P2C, '6P2C'),
  1501. (TYPE_4P4C, '4P4C'),
  1502. (TYPE_4P2C, '4P2C'),
  1503. (TYPE_GG45, 'GG45'),
  1504. (TYPE_TERA4P, 'TERA 4P'),
  1505. (TYPE_TERA2P, 'TERA 2P'),
  1506. (TYPE_TERA1P, 'TERA 1P'),
  1507. (TYPE_110_PUNCH, '110 Punch'),
  1508. (TYPE_BNC, 'BNC'),
  1509. (TYPE_F, 'F Connector'),
  1510. (TYPE_N, 'N Connector'),
  1511. (TYPE_MRJ21, 'MRJ21'),
  1512. ),
  1513. ),
  1514. (
  1515. _('Fiber Optic'),
  1516. (
  1517. (TYPE_FC, 'FC'),
  1518. (TYPE_FC_PC, 'FC/PC'),
  1519. (TYPE_FC_UPC, 'FC/UPC'),
  1520. (TYPE_FC_APC, 'FC/APC'),
  1521. (TYPE_LC, 'LC'),
  1522. (TYPE_LC_PC, 'LC/PC'),
  1523. (TYPE_LC_UPC, 'LC/UPC'),
  1524. (TYPE_LC_APC, 'LC/APC'),
  1525. (TYPE_LSH, 'LSH'),
  1526. (TYPE_LSH_PC, 'LSH/PC'),
  1527. (TYPE_LSH_UPC, 'LSH/UPC'),
  1528. (TYPE_LSH_APC, 'LSH/APC'),
  1529. (TYPE_LX5, 'LX.5'),
  1530. (TYPE_LX5_PC, 'LX.5/PC'),
  1531. (TYPE_LX5_UPC, 'LX.5/UPC'),
  1532. (TYPE_LX5_APC, 'LX.5/APC'),
  1533. (TYPE_MPO, 'MPO'),
  1534. (TYPE_MTRJ, 'MTRJ'),
  1535. (TYPE_SC, 'SC'),
  1536. (TYPE_SC_PC, 'SC/PC'),
  1537. (TYPE_SC_UPC, 'SC/UPC'),
  1538. (TYPE_SC_APC, 'SC/APC'),
  1539. (TYPE_ST, 'ST'),
  1540. (TYPE_CS, 'CS'),
  1541. (TYPE_SN, 'SN'),
  1542. (TYPE_SMA_905, 'SMA 905'),
  1543. (TYPE_SMA_906, 'SMA 906'),
  1544. (TYPE_URM_P2, 'URM-P2'),
  1545. (TYPE_URM_P4, 'URM-P4'),
  1546. (TYPE_URM_P8, 'URM-P8'),
  1547. (TYPE_SPLICE, 'Splice'),
  1548. ),
  1549. ),
  1550. (
  1551. _('USB'),
  1552. (
  1553. (TYPE_USB_A, 'USB Type A'),
  1554. (TYPE_USB_B, 'USB Type B'),
  1555. (TYPE_USB_C, 'USB Type C'),
  1556. (TYPE_USB_MINI_A, 'USB Mini A'),
  1557. (TYPE_USB_MINI_B, 'USB Mini B'),
  1558. (TYPE_USB_MICRO_A, 'USB Micro A'),
  1559. (TYPE_USB_MICRO_B, 'USB Micro B'),
  1560. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  1561. ),
  1562. ),
  1563. (
  1564. _('Other'),
  1565. (
  1566. (TYPE_OTHER, _('Other')),
  1567. )
  1568. )
  1569. )
  1570. #
  1571. # Cables/links
  1572. #
  1573. class CableProfileChoices(ChoiceSet):
  1574. # Singles
  1575. SINGLE_1C1P = 'single-1c1p'
  1576. SINGLE_1C2P = 'single-1c2p'
  1577. SINGLE_1C4P = 'single-1c4p'
  1578. SINGLE_1C6P = 'single-1c6p'
  1579. SINGLE_1C8P = 'single-1c8p'
  1580. SINGLE_1C12P = 'single-1c12p'
  1581. SINGLE_1C16P = 'single-1c16p'
  1582. # Trunks
  1583. TRUNK_2C1P = 'trunk-2c1p'
  1584. TRUNK_2C2P = 'trunk-2c2p'
  1585. TRUNK_2C4P = 'trunk-2c4p'
  1586. TRUNK_2C4P_SHUFFLE = 'trunk-2c4p-shuffle'
  1587. TRUNK_2C6P = 'trunk-2c6p'
  1588. TRUNK_2C8P = 'trunk-2c8p'
  1589. TRUNK_2C12P = 'trunk-2c12p'
  1590. TRUNK_4C1P = 'trunk-4c1p'
  1591. TRUNK_4C2P = 'trunk-4c2p'
  1592. TRUNK_4C4P = 'trunk-4c4p'
  1593. TRUNK_4C4P_SHUFFLE = 'trunk-4c4p-shuffle'
  1594. TRUNK_4C6P = 'trunk-4c6p'
  1595. TRUNK_4C8P = 'trunk-4c8p'
  1596. TRUNK_8C4P = 'trunk-8c4p'
  1597. # Breakouts
  1598. BREAKOUT_1C4P_4C1P = 'breakout-1c4p-4c1p'
  1599. BREAKOUT_1C6P_6C1P = 'breakout-1c6p-6c1p'
  1600. BREAKOUT_2C4P_8C1P_SHUFFLE = 'breakout-2c4p-8c1p-shuffle'
  1601. CHOICES = (
  1602. (
  1603. _('Single'),
  1604. (
  1605. (SINGLE_1C1P, _('1C1P')),
  1606. (SINGLE_1C2P, _('1C2P')),
  1607. (SINGLE_1C4P, _('1C4P')),
  1608. (SINGLE_1C6P, _('1C6P')),
  1609. (SINGLE_1C8P, _('1C8P')),
  1610. (SINGLE_1C12P, _('1C12P')),
  1611. (SINGLE_1C16P, _('1C16P')),
  1612. ),
  1613. ),
  1614. (
  1615. _('Trunk'),
  1616. (
  1617. (TRUNK_2C1P, _('2C1P trunk')),
  1618. (TRUNK_2C2P, _('2C2P trunk')),
  1619. (TRUNK_2C4P, _('2C4P trunk')),
  1620. (TRUNK_2C4P_SHUFFLE, _('2C4P trunk (shuffle)')),
  1621. (TRUNK_2C6P, _('2C6P trunk')),
  1622. (TRUNK_2C8P, _('2C8P trunk')),
  1623. (TRUNK_2C12P, _('2C12P trunk')),
  1624. (TRUNK_4C1P, _('4C1P trunk')),
  1625. (TRUNK_4C2P, _('4C2P trunk')),
  1626. (TRUNK_4C4P, _('4C4P trunk')),
  1627. (TRUNK_4C4P_SHUFFLE, _('4C4P trunk (shuffle)')),
  1628. (TRUNK_4C6P, _('4C6P trunk')),
  1629. (TRUNK_4C8P, _('4C8P trunk')),
  1630. (TRUNK_8C4P, _('8C4P trunk')),
  1631. ),
  1632. ),
  1633. (
  1634. _('Breakout'),
  1635. (
  1636. (BREAKOUT_1C4P_4C1P, _('1C4P:4C1P breakout')),
  1637. (BREAKOUT_1C6P_6C1P, _('1C6P:6C1P breakout')),
  1638. (BREAKOUT_2C4P_8C1P_SHUFFLE, _('2C4P:8C1P breakout (shuffle)')),
  1639. ),
  1640. ),
  1641. )
  1642. class CableTypeChoices(ChoiceSet):
  1643. # Copper - Twisted Pair (UTP/STP)
  1644. TYPE_CAT3 = 'cat3'
  1645. TYPE_CAT5 = 'cat5'
  1646. TYPE_CAT5E = 'cat5e'
  1647. TYPE_CAT6 = 'cat6'
  1648. TYPE_CAT6A = 'cat6a'
  1649. TYPE_CAT7 = 'cat7'
  1650. TYPE_CAT7A = 'cat7a'
  1651. TYPE_CAT8 = 'cat8'
  1652. TYPE_MRJ21_TRUNK = 'mrj21-trunk'
  1653. # Copper - Twinax (DAC)
  1654. TYPE_DAC_ACTIVE = 'dac-active'
  1655. TYPE_DAC_PASSIVE = 'dac-passive'
  1656. # Copper - Coaxial
  1657. TYPE_COAXIAL = 'coaxial'
  1658. TYPE_RG_6 = 'rg-6'
  1659. TYPE_RG_8 = 'rg-8'
  1660. TYPE_RG_11 = 'rg-11'
  1661. TYPE_RG_59 = 'rg-59'
  1662. TYPE_RG_62 = 'rg-62'
  1663. TYPE_RG_213 = 'rg-213'
  1664. TYPE_LMR_100 = 'lmr-100'
  1665. TYPE_LMR_200 = 'lmr-200'
  1666. TYPE_LMR_400 = 'lmr-400'
  1667. # Fiber Optic - Multimode
  1668. TYPE_MMF = 'mmf'
  1669. TYPE_MMF_OM1 = 'mmf-om1'
  1670. TYPE_MMF_OM2 = 'mmf-om2'
  1671. TYPE_MMF_OM3 = 'mmf-om3'
  1672. TYPE_MMF_OM4 = 'mmf-om4'
  1673. TYPE_MMF_OM5 = 'mmf-om5'
  1674. # Fiber Optic - Single-mode
  1675. TYPE_SMF = 'smf'
  1676. TYPE_SMF_OS1 = 'smf-os1'
  1677. TYPE_SMF_OS2 = 'smf-os2'
  1678. # Fiber Optic - Other
  1679. TYPE_AOC = 'aoc'
  1680. # Power
  1681. TYPE_POWER = 'power'
  1682. # USB
  1683. TYPE_USB = 'usb'
  1684. CHOICES = (
  1685. (
  1686. _('Copper - Twisted Pair (UTP/STP)'),
  1687. (
  1688. (TYPE_CAT3, 'CAT3'),
  1689. (TYPE_CAT5, 'CAT5'),
  1690. (TYPE_CAT5E, 'CAT5e'),
  1691. (TYPE_CAT6, 'CAT6'),
  1692. (TYPE_CAT6A, 'CAT6a'),
  1693. (TYPE_CAT7, 'CAT7'),
  1694. (TYPE_CAT7A, 'CAT7a'),
  1695. (TYPE_CAT8, 'CAT8'),
  1696. (TYPE_MRJ21_TRUNK, 'MRJ21 Trunk'),
  1697. ),
  1698. ),
  1699. (
  1700. _('Copper - Twinax (DAC)'),
  1701. (
  1702. (TYPE_DAC_ACTIVE, 'Direct Attach Copper (Active)'),
  1703. (TYPE_DAC_PASSIVE, 'Direct Attach Copper (Passive)'),
  1704. ),
  1705. ),
  1706. (
  1707. _('Copper - Coaxial'),
  1708. (
  1709. (TYPE_COAXIAL, 'Coaxial'),
  1710. (TYPE_RG_6, 'RG-6'),
  1711. (TYPE_RG_8, 'RG-8'),
  1712. (TYPE_RG_11, 'RG-11'),
  1713. (TYPE_RG_59, 'RG-59'),
  1714. (TYPE_RG_62, 'RG-62'),
  1715. (TYPE_RG_213, 'RG-213'),
  1716. (TYPE_LMR_100, 'LMR-100'),
  1717. (TYPE_LMR_200, 'LMR-200'),
  1718. (TYPE_LMR_400, 'LMR-400'),
  1719. ),
  1720. ),
  1721. (
  1722. _('Fiber - Multimode'),
  1723. (
  1724. (TYPE_MMF, 'Multimode Fiber'),
  1725. (TYPE_MMF_OM1, 'Multimode Fiber (OM1)'),
  1726. (TYPE_MMF_OM2, 'Multimode Fiber (OM2)'),
  1727. (TYPE_MMF_OM3, 'Multimode Fiber (OM3)'),
  1728. (TYPE_MMF_OM4, 'Multimode Fiber (OM4)'),
  1729. (TYPE_MMF_OM5, 'Multimode Fiber (OM5)'),
  1730. ),
  1731. ),
  1732. (
  1733. _('Fiber - Single-mode'),
  1734. (
  1735. (TYPE_SMF, 'Single-mode Fiber'),
  1736. (TYPE_SMF_OS1, 'Single-mode Fiber (OS1)'),
  1737. (TYPE_SMF_OS2, 'Single-mode Fiber (OS2)'),
  1738. ),
  1739. ),
  1740. (
  1741. _('Fiber - Other'),
  1742. ((TYPE_AOC, 'Active Optical Cabling (AOC)'),),
  1743. ),
  1744. (
  1745. _('Power'),
  1746. (
  1747. (TYPE_POWER, 'Power'),
  1748. ),
  1749. ),
  1750. (
  1751. _('USB'),
  1752. (
  1753. (TYPE_USB, 'USB'),
  1754. ),
  1755. ),
  1756. )
  1757. class LinkStatusChoices(ChoiceSet):
  1758. STATUS_CONNECTED = 'connected'
  1759. STATUS_PLANNED = 'planned'
  1760. STATUS_DECOMMISSIONING = 'decommissioning'
  1761. CHOICES = (
  1762. (STATUS_CONNECTED, _('Connected'), 'green'),
  1763. (STATUS_PLANNED, _('Planned'), 'blue'),
  1764. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  1765. )
  1766. class CableLengthUnitChoices(ChoiceSet):
  1767. # Metric
  1768. UNIT_KILOMETER = 'km'
  1769. UNIT_METER = 'm'
  1770. UNIT_CENTIMETER = 'cm'
  1771. # Imperial
  1772. UNIT_MILE = 'mi'
  1773. UNIT_FOOT = 'ft'
  1774. UNIT_INCH = 'in'
  1775. CHOICES = (
  1776. (UNIT_KILOMETER, _('Kilometers')),
  1777. (UNIT_METER, _('Meters')),
  1778. (UNIT_CENTIMETER, _('Centimeters')),
  1779. (UNIT_MILE, _('Miles')),
  1780. (UNIT_FOOT, _('Feet')),
  1781. (UNIT_INCH, _('Inches')),
  1782. )
  1783. #
  1784. # CableTerminations
  1785. #
  1786. class CableEndChoices(ChoiceSet):
  1787. SIDE_A = 'A'
  1788. SIDE_B = 'B'
  1789. CHOICES = (
  1790. (SIDE_A, 'A'),
  1791. (SIDE_B, 'B'),
  1792. # ('', ''),
  1793. )
  1794. #
  1795. # PowerFeeds
  1796. #
  1797. class PowerFeedStatusChoices(ChoiceSet):
  1798. key = 'PowerFeed.status'
  1799. STATUS_OFFLINE = 'offline'
  1800. STATUS_ACTIVE = 'active'
  1801. STATUS_PLANNED = 'planned'
  1802. STATUS_FAILED = 'failed'
  1803. CHOICES = [
  1804. (STATUS_OFFLINE, _('Offline'), 'gray'),
  1805. (STATUS_ACTIVE, _('Active'), 'green'),
  1806. (STATUS_PLANNED, _('Planned'), 'blue'),
  1807. (STATUS_FAILED, _('Failed'), 'red'),
  1808. ]
  1809. class PowerFeedTypeChoices(ChoiceSet):
  1810. TYPE_PRIMARY = 'primary'
  1811. TYPE_REDUNDANT = 'redundant'
  1812. CHOICES = (
  1813. (TYPE_PRIMARY, _('Primary'), 'green'),
  1814. (TYPE_REDUNDANT, _('Redundant'), 'cyan'),
  1815. )
  1816. class PowerFeedSupplyChoices(ChoiceSet):
  1817. SUPPLY_AC = 'ac'
  1818. SUPPLY_DC = 'dc'
  1819. CHOICES = (
  1820. (SUPPLY_AC, 'AC'),
  1821. (SUPPLY_DC, 'DC'),
  1822. )
  1823. class PowerFeedPhaseChoices(ChoiceSet):
  1824. PHASE_SINGLE = 'single-phase'
  1825. PHASE_3PHASE = 'three-phase'
  1826. CHOICES = (
  1827. (PHASE_SINGLE, _('Single phase')),
  1828. (PHASE_3PHASE, _('Three-phase')),
  1829. )
  1830. #
  1831. # PowerOutlets
  1832. #
  1833. class PowerOutletStatusChoices(ChoiceSet):
  1834. key = 'PowerOutlet.status'
  1835. STATUS_ENABLED = 'enabled'
  1836. STATUS_DISABLED = 'disabled'
  1837. STATUS_FAULTY = 'faulty'
  1838. CHOICES = [
  1839. (STATUS_ENABLED, _('Enabled'), 'green'),
  1840. (STATUS_DISABLED, _('Disabled'), 'red'),
  1841. (STATUS_FAULTY, _('Faulty'), 'gray'),
  1842. ]
  1843. #
  1844. # VDC
  1845. #
  1846. class VirtualDeviceContextStatusChoices(ChoiceSet):
  1847. key = 'VirtualDeviceContext.status'
  1848. STATUS_ACTIVE = 'active'
  1849. STATUS_PLANNED = 'planned'
  1850. STATUS_OFFLINE = 'offline'
  1851. CHOICES = [
  1852. (STATUS_ACTIVE, _('Active'), 'green'),
  1853. (STATUS_PLANNED, _('Planned'), 'cyan'),
  1854. (STATUS_OFFLINE, _('Offline'), 'red'),
  1855. ]
  1856. #
  1857. # InventoryItem
  1858. #
  1859. class InventoryItemStatusChoices(ChoiceSet):
  1860. key = 'InventoryItem.status'
  1861. STATUS_OFFLINE = 'offline'
  1862. STATUS_ACTIVE = 'active'
  1863. STATUS_PLANNED = 'planned'
  1864. STATUS_STAGED = 'staged'
  1865. STATUS_FAILED = 'failed'
  1866. STATUS_DECOMMISSIONING = 'decommissioning'
  1867. CHOICES = [
  1868. (STATUS_OFFLINE, _('Offline'), 'gray'),
  1869. (STATUS_ACTIVE, _('Active'), 'green'),
  1870. (STATUS_PLANNED, _('Planned'), 'cyan'),
  1871. (STATUS_STAGED, _('Staged'), 'blue'),
  1872. (STATUS_FAILED, _('Failed'), 'red'),
  1873. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  1874. ]