choices.py 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619
  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. FRONT_TO_REAR = 'front-to-rear'
  98. REAR_TO_FRONT = 'rear-to-front'
  99. CHOICES = (
  100. (FRONT_TO_REAR, _('Front to rear')),
  101. (REAR_TO_FRONT, _('Rear to front')),
  102. )
  103. #
  104. # DeviceTypes
  105. #
  106. class SubdeviceRoleChoices(ChoiceSet):
  107. ROLE_PARENT = 'parent'
  108. ROLE_CHILD = 'child'
  109. CHOICES = (
  110. (ROLE_PARENT, _('Parent')),
  111. (ROLE_CHILD, _('Child')),
  112. )
  113. #
  114. # Devices
  115. #
  116. class DeviceFaceChoices(ChoiceSet):
  117. FACE_FRONT = 'front'
  118. FACE_REAR = 'rear'
  119. CHOICES = (
  120. (FACE_FRONT, _('Front')),
  121. (FACE_REAR, _('Rear')),
  122. )
  123. class DeviceStatusChoices(ChoiceSet):
  124. key = 'Device.status'
  125. STATUS_OFFLINE = 'offline'
  126. STATUS_ACTIVE = 'active'
  127. STATUS_PLANNED = 'planned'
  128. STATUS_STAGED = 'staged'
  129. STATUS_FAILED = 'failed'
  130. STATUS_INVENTORY = 'inventory'
  131. STATUS_DECOMMISSIONING = 'decommissioning'
  132. CHOICES = [
  133. (STATUS_OFFLINE, _('Offline'), 'gray'),
  134. (STATUS_ACTIVE, _('Active'), 'green'),
  135. (STATUS_PLANNED, _('Planned'), 'cyan'),
  136. (STATUS_STAGED, _('Staged'), 'blue'),
  137. (STATUS_FAILED, _('Failed'), 'red'),
  138. (STATUS_INVENTORY, _('Inventory'), 'purple'),
  139. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  140. ]
  141. class DeviceAirflowChoices(ChoiceSet):
  142. AIRFLOW_FRONT_TO_REAR = 'front-to-rear'
  143. AIRFLOW_REAR_TO_FRONT = 'rear-to-front'
  144. AIRFLOW_LEFT_TO_RIGHT = 'left-to-right'
  145. AIRFLOW_RIGHT_TO_LEFT = 'right-to-left'
  146. AIRFLOW_SIDE_TO_REAR = 'side-to-rear'
  147. AIRFLOW_PASSIVE = 'passive'
  148. AIRFLOW_MIXED = 'mixed'
  149. CHOICES = (
  150. (AIRFLOW_FRONT_TO_REAR, _('Front to rear')),
  151. (AIRFLOW_REAR_TO_FRONT, _('Rear to front')),
  152. (AIRFLOW_LEFT_TO_RIGHT, _('Left to right')),
  153. (AIRFLOW_RIGHT_TO_LEFT, _('Right to left')),
  154. (AIRFLOW_SIDE_TO_REAR, _('Side to rear')),
  155. (AIRFLOW_PASSIVE, _('Passive')),
  156. (AIRFLOW_MIXED, _('Mixed')),
  157. )
  158. #
  159. # Modules
  160. #
  161. class ModuleStatusChoices(ChoiceSet):
  162. key = 'Module.status'
  163. STATUS_OFFLINE = 'offline'
  164. STATUS_ACTIVE = 'active'
  165. STATUS_PLANNED = 'planned'
  166. STATUS_STAGED = 'staged'
  167. STATUS_FAILED = 'failed'
  168. STATUS_DECOMMISSIONING = 'decommissioning'
  169. CHOICES = [
  170. (STATUS_OFFLINE, _('Offline'), 'gray'),
  171. (STATUS_ACTIVE, _('Active'), 'green'),
  172. (STATUS_PLANNED, _('Planned'), 'cyan'),
  173. (STATUS_STAGED, _('Staged'), 'blue'),
  174. (STATUS_FAILED, _('Failed'), 'red'),
  175. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  176. ]
  177. class ModuleAirflowChoices(ChoiceSet):
  178. FRONT_TO_REAR = 'front-to-rear'
  179. REAR_TO_FRONT = 'rear-to-front'
  180. LEFT_TO_RIGHT = 'left-to-right'
  181. RIGHT_TO_LEFT = 'right-to-left'
  182. SIDE_TO_REAR = 'side-to-rear'
  183. PASSIVE = 'passive'
  184. CHOICES = (
  185. (FRONT_TO_REAR, _('Front to rear')),
  186. (REAR_TO_FRONT, _('Rear to front')),
  187. (LEFT_TO_RIGHT, _('Left to right')),
  188. (RIGHT_TO_LEFT, _('Right to left')),
  189. (SIDE_TO_REAR, _('Side to rear')),
  190. (PASSIVE, _('Passive')),
  191. )
  192. #
  193. # ConsolePorts
  194. #
  195. class ConsolePortTypeChoices(ChoiceSet):
  196. TYPE_DE9 = 'de-9'
  197. TYPE_DB25 = 'db-25'
  198. TYPE_RJ11 = 'rj-11'
  199. TYPE_RJ12 = 'rj-12'
  200. TYPE_RJ45 = 'rj-45'
  201. TYPE_MINI_DIN_8 = 'mini-din-8'
  202. TYPE_USB_A = 'usb-a'
  203. TYPE_USB_B = 'usb-b'
  204. TYPE_USB_C = 'usb-c'
  205. TYPE_USB_MINI_A = 'usb-mini-a'
  206. TYPE_USB_MINI_B = 'usb-mini-b'
  207. TYPE_USB_MICRO_A = 'usb-micro-a'
  208. TYPE_USB_MICRO_B = 'usb-micro-b'
  209. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  210. TYPE_OTHER = 'other'
  211. CHOICES = (
  212. ('Serial', (
  213. (TYPE_DE9, 'DE-9'),
  214. (TYPE_DB25, 'DB-25'),
  215. (TYPE_RJ11, 'RJ-11'),
  216. (TYPE_RJ12, 'RJ-12'),
  217. (TYPE_RJ45, 'RJ-45'),
  218. (TYPE_MINI_DIN_8, 'Mini-DIN 8'),
  219. )),
  220. ('USB', (
  221. (TYPE_USB_A, 'USB Type A'),
  222. (TYPE_USB_B, 'USB Type B'),
  223. (TYPE_USB_C, 'USB Type C'),
  224. (TYPE_USB_MINI_A, 'USB Mini A'),
  225. (TYPE_USB_MINI_B, 'USB Mini B'),
  226. (TYPE_USB_MICRO_A, 'USB Micro A'),
  227. (TYPE_USB_MICRO_B, 'USB Micro B'),
  228. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  229. )),
  230. ('Other', (
  231. (TYPE_OTHER, 'Other'),
  232. )),
  233. )
  234. class ConsolePortSpeedChoices(ChoiceSet):
  235. SPEED_1200 = 1200
  236. SPEED_2400 = 2400
  237. SPEED_4800 = 4800
  238. SPEED_9600 = 9600
  239. SPEED_19200 = 19200
  240. SPEED_38400 = 38400
  241. SPEED_57600 = 57600
  242. SPEED_115200 = 115200
  243. CHOICES = (
  244. (SPEED_1200, '1200 bps'),
  245. (SPEED_2400, '2400 bps'),
  246. (SPEED_4800, '4800 bps'),
  247. (SPEED_9600, '9600 bps'),
  248. (SPEED_19200, '19.2 kbps'),
  249. (SPEED_38400, '38.4 kbps'),
  250. (SPEED_57600, '57.6 kbps'),
  251. (SPEED_115200, '115.2 kbps'),
  252. )
  253. #
  254. # PowerPorts
  255. #
  256. class PowerPortTypeChoices(ChoiceSet):
  257. # IEC 60320
  258. TYPE_IEC_C6 = 'iec-60320-c6'
  259. TYPE_IEC_C8 = 'iec-60320-c8'
  260. TYPE_IEC_C14 = 'iec-60320-c14'
  261. TYPE_IEC_C16 = 'iec-60320-c16'
  262. TYPE_IEC_C20 = 'iec-60320-c20'
  263. TYPE_IEC_C22 = 'iec-60320-c22'
  264. # IEC 60309
  265. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  266. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  267. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  268. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  269. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  270. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  271. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  272. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  273. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  274. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  275. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  276. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  277. # IEC 60906-1
  278. TYPE_IEC_60906_1 = 'iec-60906-1'
  279. TYPE_NBR_14136_10A = 'nbr-14136-10a'
  280. TYPE_NBR_14136_20A = 'nbr-14136-20a'
  281. # NEMA non-locking
  282. TYPE_NEMA_115P = 'nema-1-15p'
  283. TYPE_NEMA_515P = 'nema-5-15p'
  284. TYPE_NEMA_520P = 'nema-5-20p'
  285. TYPE_NEMA_530P = 'nema-5-30p'
  286. TYPE_NEMA_550P = 'nema-5-50p'
  287. TYPE_NEMA_615P = 'nema-6-15p'
  288. TYPE_NEMA_620P = 'nema-6-20p'
  289. TYPE_NEMA_630P = 'nema-6-30p'
  290. TYPE_NEMA_650P = 'nema-6-50p'
  291. TYPE_NEMA_1030P = 'nema-10-30p'
  292. TYPE_NEMA_1050P = 'nema-10-50p'
  293. TYPE_NEMA_1420P = 'nema-14-20p'
  294. TYPE_NEMA_1430P = 'nema-14-30p'
  295. TYPE_NEMA_1450P = 'nema-14-50p'
  296. TYPE_NEMA_1460P = 'nema-14-60p'
  297. TYPE_NEMA_1515P = 'nema-15-15p'
  298. TYPE_NEMA_1520P = 'nema-15-20p'
  299. TYPE_NEMA_1530P = 'nema-15-30p'
  300. TYPE_NEMA_1550P = 'nema-15-50p'
  301. TYPE_NEMA_1560P = 'nema-15-60p'
  302. # NEMA locking
  303. TYPE_NEMA_L115P = 'nema-l1-15p'
  304. TYPE_NEMA_L515P = 'nema-l5-15p'
  305. TYPE_NEMA_L520P = 'nema-l5-20p'
  306. TYPE_NEMA_L530P = 'nema-l5-30p'
  307. TYPE_NEMA_L550P = 'nema-l5-50p'
  308. TYPE_NEMA_L615P = 'nema-l6-15p'
  309. TYPE_NEMA_L620P = 'nema-l6-20p'
  310. TYPE_NEMA_L630P = 'nema-l6-30p'
  311. TYPE_NEMA_L650P = 'nema-l6-50p'
  312. TYPE_NEMA_L1030P = 'nema-l10-30p'
  313. TYPE_NEMA_L1420P = 'nema-l14-20p'
  314. TYPE_NEMA_L1430P = 'nema-l14-30p'
  315. TYPE_NEMA_L1450P = 'nema-l14-50p'
  316. TYPE_NEMA_L1460P = 'nema-l14-60p'
  317. TYPE_NEMA_L1520P = 'nema-l15-20p'
  318. TYPE_NEMA_L1530P = 'nema-l15-30p'
  319. TYPE_NEMA_L1550P = 'nema-l15-50p'
  320. TYPE_NEMA_L1560P = 'nema-l15-60p'
  321. TYPE_NEMA_L2120P = 'nema-l21-20p'
  322. TYPE_NEMA_L2130P = 'nema-l21-30p'
  323. TYPE_NEMA_L2230P = 'nema-l22-30p'
  324. # California style
  325. TYPE_CS6361C = 'cs6361c'
  326. TYPE_CS6365C = 'cs6365c'
  327. TYPE_CS8165C = 'cs8165c'
  328. TYPE_CS8265C = 'cs8265c'
  329. TYPE_CS8365C = 'cs8365c'
  330. TYPE_CS8465C = 'cs8465c'
  331. # ITA/international
  332. TYPE_ITA_C = 'ita-c'
  333. TYPE_ITA_E = 'ita-e'
  334. TYPE_ITA_F = 'ita-f'
  335. TYPE_ITA_EF = 'ita-ef'
  336. TYPE_ITA_G = 'ita-g'
  337. TYPE_ITA_H = 'ita-h'
  338. TYPE_ITA_I = 'ita-i'
  339. TYPE_ITA_J = 'ita-j'
  340. TYPE_ITA_K = 'ita-k'
  341. TYPE_ITA_L = 'ita-l'
  342. TYPE_ITA_M = 'ita-m'
  343. TYPE_ITA_N = 'ita-n'
  344. TYPE_ITA_O = 'ita-o'
  345. # USB
  346. TYPE_USB_A = 'usb-a'
  347. TYPE_USB_B = 'usb-b'
  348. TYPE_USB_C = 'usb-c'
  349. TYPE_USB_MINI_A = 'usb-mini-a'
  350. TYPE_USB_MINI_B = 'usb-mini-b'
  351. TYPE_USB_MICRO_A = 'usb-micro-a'
  352. TYPE_USB_MICRO_B = 'usb-micro-b'
  353. TYPE_USB_MICRO_AB = 'usb-micro-ab'
  354. TYPE_USB_3_B = 'usb-3-b'
  355. TYPE_USB_3_MICROB = 'usb-3-micro-b'
  356. # Molex
  357. TYPE_MOLEX_MICRO_FIT_1X2 = 'molex-micro-fit-1x2'
  358. TYPE_MOLEX_MICRO_FIT_2X2 = 'molex-micro-fit-2x2'
  359. TYPE_MOLEX_MICRO_FIT_2X4 = 'molex-micro-fit-2x4'
  360. # Direct current (DC)
  361. TYPE_DC = 'dc-terminal'
  362. # Proprietary
  363. TYPE_SAF_D_GRID = 'saf-d-grid'
  364. TYPE_NEUTRIK_POWERCON_20A = 'neutrik-powercon-20'
  365. TYPE_NEUTRIK_POWERCON_32A = 'neutrik-powercon-32'
  366. TYPE_NEUTRIK_POWERCON_TRUE1 = 'neutrik-powercon-true1'
  367. TYPE_NEUTRIK_POWERCON_TRUE1_TOP = 'neutrik-powercon-true1-top'
  368. TYPE_UBIQUITI_SMARTPOWER = 'ubiquiti-smartpower'
  369. # Other
  370. TYPE_HARDWIRED = 'hardwired'
  371. TYPE_OTHER = 'other'
  372. CHOICES = (
  373. ('IEC 60320', (
  374. (TYPE_IEC_C6, 'C6'),
  375. (TYPE_IEC_C8, 'C8'),
  376. (TYPE_IEC_C14, 'C14'),
  377. (TYPE_IEC_C16, 'C16'),
  378. (TYPE_IEC_C20, 'C20'),
  379. (TYPE_IEC_C22, 'C22'),
  380. )),
  381. ('IEC 60309', (
  382. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  383. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  384. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  385. (TYPE_IEC_2PE4H, '2P+E 4H'),
  386. (TYPE_IEC_2PE6H, '2P+E 6H'),
  387. (TYPE_IEC_2PE9H, '2P+E 9H'),
  388. (TYPE_IEC_3PE4H, '3P+E 4H'),
  389. (TYPE_IEC_3PE6H, '3P+E 6H'),
  390. (TYPE_IEC_3PE9H, '3P+E 9H'),
  391. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  392. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  393. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  394. )),
  395. ('IEC 60906-1', (
  396. (TYPE_IEC_60906_1, 'IEC 60906-1'),
  397. (TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
  398. (TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
  399. )),
  400. (_('NEMA (Non-locking)'), (
  401. (TYPE_NEMA_115P, 'NEMA 1-15P'),
  402. (TYPE_NEMA_515P, 'NEMA 5-15P'),
  403. (TYPE_NEMA_520P, 'NEMA 5-20P'),
  404. (TYPE_NEMA_530P, 'NEMA 5-30P'),
  405. (TYPE_NEMA_550P, 'NEMA 5-50P'),
  406. (TYPE_NEMA_615P, 'NEMA 6-15P'),
  407. (TYPE_NEMA_620P, 'NEMA 6-20P'),
  408. (TYPE_NEMA_630P, 'NEMA 6-30P'),
  409. (TYPE_NEMA_650P, 'NEMA 6-50P'),
  410. (TYPE_NEMA_1030P, 'NEMA 10-30P'),
  411. (TYPE_NEMA_1050P, 'NEMA 10-50P'),
  412. (TYPE_NEMA_1420P, 'NEMA 14-20P'),
  413. (TYPE_NEMA_1430P, 'NEMA 14-30P'),
  414. (TYPE_NEMA_1450P, 'NEMA 14-50P'),
  415. (TYPE_NEMA_1460P, 'NEMA 14-60P'),
  416. (TYPE_NEMA_1515P, 'NEMA 15-15P'),
  417. (TYPE_NEMA_1520P, 'NEMA 15-20P'),
  418. (TYPE_NEMA_1530P, 'NEMA 15-30P'),
  419. (TYPE_NEMA_1550P, 'NEMA 15-50P'),
  420. (TYPE_NEMA_1560P, 'NEMA 15-60P'),
  421. )),
  422. (_('NEMA (Locking)'), (
  423. (TYPE_NEMA_L115P, 'NEMA L1-15P'),
  424. (TYPE_NEMA_L515P, 'NEMA L5-15P'),
  425. (TYPE_NEMA_L520P, 'NEMA L5-20P'),
  426. (TYPE_NEMA_L530P, 'NEMA L5-30P'),
  427. (TYPE_NEMA_L550P, 'NEMA L5-50P'),
  428. (TYPE_NEMA_L615P, 'NEMA L6-15P'),
  429. (TYPE_NEMA_L620P, 'NEMA L6-20P'),
  430. (TYPE_NEMA_L630P, 'NEMA L6-30P'),
  431. (TYPE_NEMA_L650P, 'NEMA L6-50P'),
  432. (TYPE_NEMA_L1030P, 'NEMA L10-30P'),
  433. (TYPE_NEMA_L1420P, 'NEMA L14-20P'),
  434. (TYPE_NEMA_L1430P, 'NEMA L14-30P'),
  435. (TYPE_NEMA_L1450P, 'NEMA L14-50P'),
  436. (TYPE_NEMA_L1460P, 'NEMA L14-60P'),
  437. (TYPE_NEMA_L1520P, 'NEMA L15-20P'),
  438. (TYPE_NEMA_L1530P, 'NEMA L15-30P'),
  439. (TYPE_NEMA_L1550P, 'NEMA L15-50P'),
  440. (TYPE_NEMA_L1560P, 'NEMA L15-60P'),
  441. (TYPE_NEMA_L2120P, 'NEMA L21-20P'),
  442. (TYPE_NEMA_L2130P, 'NEMA L21-30P'),
  443. (TYPE_NEMA_L2230P, 'NEMA L22-30P'),
  444. )),
  445. (_('California Style'), (
  446. (TYPE_CS6361C, 'CS6361C'),
  447. (TYPE_CS6365C, 'CS6365C'),
  448. (TYPE_CS8165C, 'CS8165C'),
  449. (TYPE_CS8265C, 'CS8265C'),
  450. (TYPE_CS8365C, 'CS8365C'),
  451. (TYPE_CS8465C, 'CS8465C'),
  452. )),
  453. (_('International/ITA'), (
  454. (TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
  455. (TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
  456. (TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
  457. (TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
  458. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  459. (TYPE_ITA_H, 'ITA Type H'),
  460. (TYPE_ITA_I, 'ITA Type I'),
  461. (TYPE_ITA_J, 'ITA Type J'),
  462. (TYPE_ITA_K, 'ITA Type K'),
  463. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  464. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  465. (TYPE_ITA_N, 'ITA Type N'),
  466. (TYPE_ITA_O, 'ITA Type O'),
  467. )),
  468. ('USB', (
  469. (TYPE_USB_A, 'USB Type A'),
  470. (TYPE_USB_B, 'USB Type B'),
  471. (TYPE_USB_C, 'USB Type C'),
  472. (TYPE_USB_MINI_A, 'USB Mini A'),
  473. (TYPE_USB_MINI_B, 'USB Mini B'),
  474. (TYPE_USB_MICRO_A, 'USB Micro A'),
  475. (TYPE_USB_MICRO_B, 'USB Micro B'),
  476. (TYPE_USB_MICRO_AB, 'USB Micro AB'),
  477. (TYPE_USB_3_B, 'USB 3.0 Type B'),
  478. (TYPE_USB_3_MICROB, 'USB 3.0 Micro B'),
  479. )),
  480. ('Molex', (
  481. (TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
  482. (TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
  483. (TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
  484. )),
  485. ('DC', (
  486. (TYPE_DC, 'DC Terminal'),
  487. )),
  488. (_('Proprietary'), (
  489. (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
  490. (TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
  491. (TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
  492. (TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
  493. (TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
  494. (TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
  495. )),
  496. (_('Other'), (
  497. (TYPE_HARDWIRED, 'Hardwired'),
  498. (TYPE_OTHER, 'Other'),
  499. )),
  500. )
  501. #
  502. # PowerOutlets
  503. #
  504. class PowerOutletTypeChoices(ChoiceSet):
  505. # IEC 60320
  506. TYPE_IEC_C5 = 'iec-60320-c5'
  507. TYPE_IEC_C7 = 'iec-60320-c7'
  508. TYPE_IEC_C13 = 'iec-60320-c13'
  509. TYPE_IEC_C15 = 'iec-60320-c15'
  510. TYPE_IEC_C19 = 'iec-60320-c19'
  511. TYPE_IEC_C21 = 'iec-60320-c21'
  512. # IEC 60309
  513. TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
  514. TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
  515. TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
  516. TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
  517. TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
  518. TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
  519. TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
  520. TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
  521. TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
  522. TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
  523. TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
  524. TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
  525. # IEC 60906-1
  526. TYPE_IEC_60906_1 = 'iec-60906-1'
  527. TYPE_NBR_14136_10A = 'nbr-14136-10a'
  528. TYPE_NBR_14136_20A = 'nbr-14136-20a'
  529. # NEMA non-locking
  530. TYPE_NEMA_115R = 'nema-1-15r'
  531. TYPE_NEMA_515R = 'nema-5-15r'
  532. TYPE_NEMA_520R = 'nema-5-20r'
  533. TYPE_NEMA_530R = 'nema-5-30r'
  534. TYPE_NEMA_550R = 'nema-5-50r'
  535. TYPE_NEMA_615R = 'nema-6-15r'
  536. TYPE_NEMA_620R = 'nema-6-20r'
  537. TYPE_NEMA_630R = 'nema-6-30r'
  538. TYPE_NEMA_650R = 'nema-6-50r'
  539. TYPE_NEMA_1030R = 'nema-10-30r'
  540. TYPE_NEMA_1050R = 'nema-10-50r'
  541. TYPE_NEMA_1420R = 'nema-14-20r'
  542. TYPE_NEMA_1430R = 'nema-14-30r'
  543. TYPE_NEMA_1450R = 'nema-14-50r'
  544. TYPE_NEMA_1460R = 'nema-14-60r'
  545. TYPE_NEMA_1515R = 'nema-15-15r'
  546. TYPE_NEMA_1520R = 'nema-15-20r'
  547. TYPE_NEMA_1530R = 'nema-15-30r'
  548. TYPE_NEMA_1550R = 'nema-15-50r'
  549. TYPE_NEMA_1560R = 'nema-15-60r'
  550. # NEMA locking
  551. TYPE_NEMA_L115R = 'nema-l1-15r'
  552. TYPE_NEMA_L515R = 'nema-l5-15r'
  553. TYPE_NEMA_L520R = 'nema-l5-20r'
  554. TYPE_NEMA_L530R = 'nema-l5-30r'
  555. TYPE_NEMA_L550R = 'nema-l5-50r'
  556. TYPE_NEMA_L615R = 'nema-l6-15r'
  557. TYPE_NEMA_L620R = 'nema-l6-20r'
  558. TYPE_NEMA_L630R = 'nema-l6-30r'
  559. TYPE_NEMA_L650R = 'nema-l6-50r'
  560. TYPE_NEMA_L1030R = 'nema-l10-30r'
  561. TYPE_NEMA_L1420R = 'nema-l14-20r'
  562. TYPE_NEMA_L1430R = 'nema-l14-30r'
  563. TYPE_NEMA_L1450R = 'nema-l14-50r'
  564. TYPE_NEMA_L1460R = 'nema-l14-60r'
  565. TYPE_NEMA_L1520R = 'nema-l15-20r'
  566. TYPE_NEMA_L1530R = 'nema-l15-30r'
  567. TYPE_NEMA_L1550R = 'nema-l15-50r'
  568. TYPE_NEMA_L1560R = 'nema-l15-60r'
  569. TYPE_NEMA_L2120R = 'nema-l21-20r'
  570. TYPE_NEMA_L2130R = 'nema-l21-30r'
  571. TYPE_NEMA_L2230R = 'nema-l22-30r'
  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. # ITA/international
  580. TYPE_ITA_E = 'ita-e'
  581. TYPE_ITA_F = 'ita-f'
  582. TYPE_ITA_G = 'ita-g'
  583. TYPE_ITA_H = 'ita-h'
  584. TYPE_ITA_I = 'ita-i'
  585. TYPE_ITA_J = 'ita-j'
  586. TYPE_ITA_K = 'ita-k'
  587. TYPE_ITA_L = 'ita-l'
  588. TYPE_ITA_M = 'ita-m'
  589. TYPE_ITA_N = 'ita-n'
  590. TYPE_ITA_O = 'ita-o'
  591. TYPE_ITA_MULTISTANDARD = 'ita-multistandard'
  592. # USB
  593. TYPE_USB_A = 'usb-a'
  594. TYPE_USB_MICROB = 'usb-micro-b'
  595. TYPE_USB_C = 'usb-c'
  596. # Molex
  597. TYPE_MOLEX_MICRO_FIT_1X2 = 'molex-micro-fit-1x2'
  598. TYPE_MOLEX_MICRO_FIT_2X2 = 'molex-micro-fit-2x2'
  599. TYPE_MOLEX_MICRO_FIT_2X4 = 'molex-micro-fit-2x4'
  600. # Direct current (DC)
  601. TYPE_DC = 'dc-terminal'
  602. # Proprietary
  603. TYPE_HDOT_CX = 'hdot-cx'
  604. TYPE_SAF_D_GRID = 'saf-d-grid'
  605. TYPE_NEUTRIK_POWERCON_20A = 'neutrik-powercon-20a'
  606. TYPE_NEUTRIK_POWERCON_32A = 'neutrik-powercon-32a'
  607. TYPE_NEUTRIK_POWERCON_TRUE1 = 'neutrik-powercon-true1'
  608. TYPE_NEUTRIK_POWERCON_TRUE1_TOP = 'neutrik-powercon-true1-top'
  609. TYPE_UBIQUITI_SMARTPOWER = 'ubiquiti-smartpower'
  610. # Other
  611. TYPE_HARDWIRED = 'hardwired'
  612. TYPE_OTHER = 'other'
  613. CHOICES = (
  614. ('IEC 60320', (
  615. (TYPE_IEC_C5, 'C5'),
  616. (TYPE_IEC_C7, 'C7'),
  617. (TYPE_IEC_C13, 'C13'),
  618. (TYPE_IEC_C15, 'C15'),
  619. (TYPE_IEC_C19, 'C19'),
  620. (TYPE_IEC_C21, 'C21'),
  621. )),
  622. ('IEC 60309', (
  623. (TYPE_IEC_PNE4H, 'P+N+E 4H'),
  624. (TYPE_IEC_PNE6H, 'P+N+E 6H'),
  625. (TYPE_IEC_PNE9H, 'P+N+E 9H'),
  626. (TYPE_IEC_2PE4H, '2P+E 4H'),
  627. (TYPE_IEC_2PE6H, '2P+E 6H'),
  628. (TYPE_IEC_2PE9H, '2P+E 9H'),
  629. (TYPE_IEC_3PE4H, '3P+E 4H'),
  630. (TYPE_IEC_3PE6H, '3P+E 6H'),
  631. (TYPE_IEC_3PE9H, '3P+E 9H'),
  632. (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
  633. (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
  634. (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
  635. )),
  636. ('IEC 60906-1', (
  637. (TYPE_IEC_60906_1, 'IEC 60906-1'),
  638. (TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
  639. (TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
  640. )),
  641. (_('NEMA (Non-locking)'), (
  642. (TYPE_NEMA_115R, 'NEMA 1-15R'),
  643. (TYPE_NEMA_515R, 'NEMA 5-15R'),
  644. (TYPE_NEMA_520R, 'NEMA 5-20R'),
  645. (TYPE_NEMA_530R, 'NEMA 5-30R'),
  646. (TYPE_NEMA_550R, 'NEMA 5-50R'),
  647. (TYPE_NEMA_615R, 'NEMA 6-15R'),
  648. (TYPE_NEMA_620R, 'NEMA 6-20R'),
  649. (TYPE_NEMA_630R, 'NEMA 6-30R'),
  650. (TYPE_NEMA_650R, 'NEMA 6-50R'),
  651. (TYPE_NEMA_1030R, 'NEMA 10-30R'),
  652. (TYPE_NEMA_1050R, 'NEMA 10-50R'),
  653. (TYPE_NEMA_1420R, 'NEMA 14-20R'),
  654. (TYPE_NEMA_1430R, 'NEMA 14-30R'),
  655. (TYPE_NEMA_1450R, 'NEMA 14-50R'),
  656. (TYPE_NEMA_1460R, 'NEMA 14-60R'),
  657. (TYPE_NEMA_1515R, 'NEMA 15-15R'),
  658. (TYPE_NEMA_1520R, 'NEMA 15-20R'),
  659. (TYPE_NEMA_1530R, 'NEMA 15-30R'),
  660. (TYPE_NEMA_1550R, 'NEMA 15-50R'),
  661. (TYPE_NEMA_1560R, 'NEMA 15-60R'),
  662. )),
  663. (_('NEMA (Locking)'), (
  664. (TYPE_NEMA_L115R, 'NEMA L1-15R'),
  665. (TYPE_NEMA_L515R, 'NEMA L5-15R'),
  666. (TYPE_NEMA_L520R, 'NEMA L5-20R'),
  667. (TYPE_NEMA_L530R, 'NEMA L5-30R'),
  668. (TYPE_NEMA_L550R, 'NEMA L5-50R'),
  669. (TYPE_NEMA_L615R, 'NEMA L6-15R'),
  670. (TYPE_NEMA_L620R, 'NEMA L6-20R'),
  671. (TYPE_NEMA_L630R, 'NEMA L6-30R'),
  672. (TYPE_NEMA_L650R, 'NEMA L6-50R'),
  673. (TYPE_NEMA_L1030R, 'NEMA L10-30R'),
  674. (TYPE_NEMA_L1420R, 'NEMA L14-20R'),
  675. (TYPE_NEMA_L1430R, 'NEMA L14-30R'),
  676. (TYPE_NEMA_L1450R, 'NEMA L14-50R'),
  677. (TYPE_NEMA_L1460R, 'NEMA L14-60R'),
  678. (TYPE_NEMA_L1520R, 'NEMA L15-20R'),
  679. (TYPE_NEMA_L1530R, 'NEMA L15-30R'),
  680. (TYPE_NEMA_L1550R, 'NEMA L15-50R'),
  681. (TYPE_NEMA_L1560R, 'NEMA L15-60R'),
  682. (TYPE_NEMA_L2120R, 'NEMA L21-20R'),
  683. (TYPE_NEMA_L2130R, 'NEMA L21-30R'),
  684. (TYPE_NEMA_L2230R, 'NEMA L22-30R'),
  685. )),
  686. (_('California Style'), (
  687. (TYPE_CS6360C, 'CS6360C'),
  688. (TYPE_CS6364C, 'CS6364C'),
  689. (TYPE_CS8164C, 'CS8164C'),
  690. (TYPE_CS8264C, 'CS8264C'),
  691. (TYPE_CS8364C, 'CS8364C'),
  692. (TYPE_CS8464C, 'CS8464C'),
  693. )),
  694. (_('ITA/International'), (
  695. (TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
  696. (TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
  697. (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
  698. (TYPE_ITA_H, 'ITA Type H'),
  699. (TYPE_ITA_I, 'ITA Type I'),
  700. (TYPE_ITA_J, 'ITA Type J'),
  701. (TYPE_ITA_K, 'ITA Type K'),
  702. (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
  703. (TYPE_ITA_M, 'ITA Type M (BS 546)'),
  704. (TYPE_ITA_N, 'ITA Type N'),
  705. (TYPE_ITA_O, 'ITA Type O'),
  706. (TYPE_ITA_MULTISTANDARD, 'ITA Multistandard'),
  707. )),
  708. ('USB', (
  709. (TYPE_USB_A, 'USB Type A'),
  710. (TYPE_USB_MICROB, 'USB Micro B'),
  711. (TYPE_USB_C, 'USB Type C'),
  712. )),
  713. ('Molex', (
  714. (TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
  715. (TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
  716. (TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
  717. )),
  718. ('DC', (
  719. (TYPE_DC, 'DC Terminal'),
  720. )),
  721. (_('Proprietary'), (
  722. (TYPE_HDOT_CX, 'HDOT Cx'),
  723. (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
  724. (TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
  725. (TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
  726. (TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
  727. (TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
  728. (TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
  729. )),
  730. (_('Other'), (
  731. (TYPE_HARDWIRED, 'Hardwired'),
  732. (TYPE_OTHER, 'Other'),
  733. )),
  734. )
  735. class PowerOutletFeedLegChoices(ChoiceSet):
  736. FEED_LEG_A = 'A'
  737. FEED_LEG_B = 'B'
  738. FEED_LEG_C = 'C'
  739. CHOICES = (
  740. (FEED_LEG_A, 'A'),
  741. (FEED_LEG_B, 'B'),
  742. (FEED_LEG_C, 'C'),
  743. )
  744. #
  745. # Interfaces
  746. #
  747. class InterfaceKindChoices(ChoiceSet):
  748. KIND_PHYSICAL = 'physical'
  749. KIND_VIRTUAL = 'virtual'
  750. KIND_WIRELESS = 'wireless'
  751. CHOICES = (
  752. (KIND_PHYSICAL, _('Physical')),
  753. (KIND_VIRTUAL, _('Virtual')),
  754. (KIND_WIRELESS, _('Wireless')),
  755. )
  756. class InterfaceTypeChoices(ChoiceSet):
  757. # Virtual
  758. TYPE_VIRTUAL = 'virtual'
  759. TYPE_BRIDGE = 'bridge'
  760. TYPE_LAG = 'lag'
  761. # Ethernet
  762. TYPE_100ME_FX = '100base-fx'
  763. TYPE_100ME_LFX = '100base-lfx'
  764. TYPE_100ME_FIXED = '100base-tx'
  765. TYPE_100ME_T1 = '100base-t1'
  766. TYPE_1GE_FIXED = '1000base-t'
  767. TYPE_1GE_TX_FIXED = '1000base-tx'
  768. TYPE_1GE_GBIC = '1000base-x-gbic'
  769. TYPE_1GE_SFP = '1000base-x-sfp'
  770. TYPE_2GE_FIXED = '2.5gbase-t'
  771. TYPE_5GE_FIXED = '5gbase-t'
  772. TYPE_10GE_FIXED = '10gbase-t'
  773. TYPE_10GE_CX4 = '10gbase-cx4'
  774. TYPE_10GE_SFP_PLUS = '10gbase-x-sfpp'
  775. TYPE_10GE_XFP = '10gbase-x-xfp'
  776. TYPE_10GE_XENPAK = '10gbase-x-xenpak'
  777. TYPE_10GE_X2 = '10gbase-x-x2'
  778. TYPE_25GE_SFP28 = '25gbase-x-sfp28'
  779. TYPE_50GE_SFP56 = '50gbase-x-sfp56'
  780. TYPE_40GE_QSFP_PLUS = '40gbase-x-qsfpp'
  781. TYPE_50GE_QSFP28 = '50gbase-x-sfp28'
  782. TYPE_100GE_CFP = '100gbase-x-cfp'
  783. TYPE_100GE_CFP2 = '100gbase-x-cfp2'
  784. TYPE_100GE_CFP4 = '100gbase-x-cfp4'
  785. TYPE_100GE_CXP = '100gbase-x-cxp'
  786. TYPE_100GE_CPAK = '100gbase-x-cpak'
  787. TYPE_100GE_DSFP = '100gbase-x-dsfp'
  788. TYPE_100GE_SFP_DD = '100gbase-x-sfpdd'
  789. TYPE_100GE_QSFP28 = '100gbase-x-qsfp28'
  790. TYPE_100GE_QSFP_DD = '100gbase-x-qsfpdd'
  791. TYPE_200GE_CFP2 = '200gbase-x-cfp2'
  792. TYPE_200GE_QSFP56 = '200gbase-x-qsfp56'
  793. TYPE_200GE_QSFP_DD = '200gbase-x-qsfpdd'
  794. TYPE_400GE_CFP2 = '400gbase-x-cfp2'
  795. TYPE_400GE_QSFP112 = '400gbase-x-qsfp112'
  796. TYPE_400GE_QSFP_DD = '400gbase-x-qsfpdd'
  797. TYPE_400GE_OSFP = '400gbase-x-osfp'
  798. TYPE_400GE_OSFP_RHS = '400gbase-x-osfp-rhs'
  799. TYPE_400GE_CDFP = '400gbase-x-cdfp'
  800. TYPE_400GE_CFP8 = '400gbase-x-cfp8'
  801. TYPE_800GE_QSFP_DD = '800gbase-x-qsfpdd'
  802. TYPE_800GE_OSFP = '800gbase-x-osfp'
  803. # Ethernet Backplane
  804. TYPE_1GE_KX = '1000base-kx'
  805. TYPE_2GE_KX = '2.5gbase-kx'
  806. TYPE_5GE_KR = '5gbase-kr'
  807. TYPE_10GE_KR = '10gbase-kr'
  808. TYPE_10GE_KX4 = '10gbase-kx4'
  809. TYPE_25GE_KR = '25gbase-kr'
  810. TYPE_40GE_KR4 = '40gbase-kr4'
  811. TYPE_50GE_KR = '50gbase-kr'
  812. TYPE_100GE_KP4 = '100gbase-kp4'
  813. TYPE_100GE_KR2 = '100gbase-kr2'
  814. TYPE_100GE_KR4 = '100gbase-kr4'
  815. # Wireless
  816. TYPE_80211A = 'ieee802.11a'
  817. TYPE_80211G = 'ieee802.11g'
  818. TYPE_80211N = 'ieee802.11n'
  819. TYPE_80211AC = 'ieee802.11ac'
  820. TYPE_80211AD = 'ieee802.11ad'
  821. TYPE_80211AX = 'ieee802.11ax'
  822. TYPE_80211AY = 'ieee802.11ay'
  823. TYPE_80211BE = 'ieee802.11be'
  824. TYPE_802151 = 'ieee802.15.1'
  825. TYPE_OTHER_WIRELESS = 'other-wireless'
  826. # Cellular
  827. TYPE_GSM = 'gsm'
  828. TYPE_CDMA = 'cdma'
  829. TYPE_LTE = 'lte'
  830. TYPE_4G = '4g'
  831. TYPE_5G = '5g'
  832. # SONET
  833. TYPE_SONET_OC3 = 'sonet-oc3'
  834. TYPE_SONET_OC12 = 'sonet-oc12'
  835. TYPE_SONET_OC48 = 'sonet-oc48'
  836. TYPE_SONET_OC192 = 'sonet-oc192'
  837. TYPE_SONET_OC768 = 'sonet-oc768'
  838. TYPE_SONET_OC1920 = 'sonet-oc1920'
  839. TYPE_SONET_OC3840 = 'sonet-oc3840'
  840. # Fibrechannel
  841. TYPE_1GFC_SFP = '1gfc-sfp'
  842. TYPE_2GFC_SFP = '2gfc-sfp'
  843. TYPE_4GFC_SFP = '4gfc-sfp'
  844. TYPE_8GFC_SFP_PLUS = '8gfc-sfpp'
  845. TYPE_16GFC_SFP_PLUS = '16gfc-sfpp'
  846. TYPE_32GFC_SFP28 = '32gfc-sfp28'
  847. TYPE_32GFC_SFP_PLUS = '32gfc-sfpp'
  848. TYPE_64GFC_QSFP_PLUS = '64gfc-qsfpp'
  849. TYPE_64GFC_SFP_DD = '64gfc-sfpdd'
  850. TYPE_64GFC_SFP_PLUS = '64gfc-sfpp'
  851. TYPE_128GFC_QSFP28 = '128gfc-qsfp28'
  852. # InfiniBand
  853. TYPE_INFINIBAND_SDR = 'infiniband-sdr'
  854. TYPE_INFINIBAND_DDR = 'infiniband-ddr'
  855. TYPE_INFINIBAND_QDR = 'infiniband-qdr'
  856. TYPE_INFINIBAND_FDR10 = 'infiniband-fdr10'
  857. TYPE_INFINIBAND_FDR = 'infiniband-fdr'
  858. TYPE_INFINIBAND_EDR = 'infiniband-edr'
  859. TYPE_INFINIBAND_HDR = 'infiniband-hdr'
  860. TYPE_INFINIBAND_NDR = 'infiniband-ndr'
  861. TYPE_INFINIBAND_XDR = 'infiniband-xdr'
  862. # Serial
  863. TYPE_T1 = 't1'
  864. TYPE_E1 = 'e1'
  865. TYPE_T3 = 't3'
  866. TYPE_E3 = 'e3'
  867. # ATM/DSL
  868. TYPE_XDSL = 'xdsl'
  869. # Coaxial
  870. TYPE_DOCSIS = 'docsis'
  871. # PON
  872. TYPE_BPON = 'bpon'
  873. TYPE_EPON = 'epon'
  874. TYPE_10G_EPON = '10g-epon'
  875. TYPE_GPON = 'gpon'
  876. TYPE_XG_PON = 'xg-pon'
  877. TYPE_XGS_PON = 'xgs-pon'
  878. TYPE_NG_PON2 = 'ng-pon2'
  879. TYPE_25G_PON = '25g-pon'
  880. TYPE_50G_PON = '50g-pon'
  881. # Stacking
  882. TYPE_STACKWISE = 'cisco-stackwise'
  883. TYPE_STACKWISE_PLUS = 'cisco-stackwise-plus'
  884. TYPE_FLEXSTACK = 'cisco-flexstack'
  885. TYPE_FLEXSTACK_PLUS = 'cisco-flexstack-plus'
  886. TYPE_STACKWISE80 = 'cisco-stackwise-80'
  887. TYPE_STACKWISE160 = 'cisco-stackwise-160'
  888. TYPE_STACKWISE320 = 'cisco-stackwise-320'
  889. TYPE_STACKWISE480 = 'cisco-stackwise-480'
  890. TYPE_STACKWISE1T = 'cisco-stackwise-1t'
  891. TYPE_JUNIPER_VCP = 'juniper-vcp'
  892. TYPE_SUMMITSTACK = 'extreme-summitstack'
  893. TYPE_SUMMITSTACK128 = 'extreme-summitstack-128'
  894. TYPE_SUMMITSTACK256 = 'extreme-summitstack-256'
  895. TYPE_SUMMITSTACK512 = 'extreme-summitstack-512'
  896. # Other
  897. TYPE_OTHER = 'other'
  898. CHOICES = (
  899. (
  900. _('Virtual interfaces'),
  901. (
  902. (TYPE_VIRTUAL, _('Virtual')),
  903. (TYPE_BRIDGE, _('Bridge')),
  904. (TYPE_LAG, _('Link Aggregation Group (LAG)')),
  905. ),
  906. ),
  907. (
  908. _('Ethernet (fixed)'),
  909. (
  910. (TYPE_100ME_FX, '100BASE-FX (10/100ME FIBER)'),
  911. (TYPE_100ME_LFX, '100BASE-LFX (10/100ME FIBER)'),
  912. (TYPE_100ME_FIXED, '100BASE-TX (10/100ME)'),
  913. (TYPE_100ME_T1, '100BASE-T1 (10/100ME Single Pair)'),
  914. (TYPE_1GE_FIXED, '1000BASE-T (1GE)'),
  915. (TYPE_1GE_TX_FIXED, '1000BASE-TX (1GE)'),
  916. (TYPE_2GE_FIXED, '2.5GBASE-T (2.5GE)'),
  917. (TYPE_5GE_FIXED, '5GBASE-T (5GE)'),
  918. (TYPE_10GE_FIXED, '10GBASE-T (10GE)'),
  919. (TYPE_10GE_CX4, '10GBASE-CX4 (10GE)'),
  920. )
  921. ),
  922. (
  923. _('Ethernet (modular)'),
  924. (
  925. (TYPE_1GE_GBIC, 'GBIC (1GE)'),
  926. (TYPE_1GE_SFP, 'SFP (1GE)'),
  927. (TYPE_10GE_SFP_PLUS, 'SFP+ (10GE)'),
  928. (TYPE_10GE_XFP, 'XFP (10GE)'),
  929. (TYPE_10GE_XENPAK, 'XENPAK (10GE)'),
  930. (TYPE_10GE_X2, 'X2 (10GE)'),
  931. (TYPE_25GE_SFP28, 'SFP28 (25GE)'),
  932. (TYPE_50GE_SFP56, 'SFP56 (50GE)'),
  933. (TYPE_40GE_QSFP_PLUS, 'QSFP+ (40GE)'),
  934. (TYPE_50GE_QSFP28, 'QSFP28 (50GE)'),
  935. (TYPE_100GE_CFP, 'CFP (100GE)'),
  936. (TYPE_100GE_CFP2, 'CFP2 (100GE)'),
  937. (TYPE_200GE_CFP2, 'CFP2 (200GE)'),
  938. (TYPE_400GE_CFP2, 'CFP2 (400GE)'),
  939. (TYPE_100GE_CFP4, 'CFP4 (100GE)'),
  940. (TYPE_100GE_CXP, 'CXP (100GE)'),
  941. (TYPE_100GE_CPAK, 'Cisco CPAK (100GE)'),
  942. (TYPE_100GE_DSFP, 'DSFP (100GE)'),
  943. (TYPE_100GE_SFP_DD, 'SFP-DD (100GE)'),
  944. (TYPE_100GE_QSFP28, 'QSFP28 (100GE)'),
  945. (TYPE_100GE_QSFP_DD, 'QSFP-DD (100GE)'),
  946. (TYPE_200GE_QSFP56, 'QSFP56 (200GE)'),
  947. (TYPE_200GE_QSFP_DD, 'QSFP-DD (200GE)'),
  948. (TYPE_400GE_QSFP112, 'QSFP112 (400GE)'),
  949. (TYPE_400GE_QSFP_DD, 'QSFP-DD (400GE)'),
  950. (TYPE_400GE_OSFP, 'OSFP (400GE)'),
  951. (TYPE_400GE_OSFP_RHS, 'OSFP-RHS (400GE)'),
  952. (TYPE_400GE_CDFP, 'CDFP (400GE)'),
  953. (TYPE_400GE_CFP8, 'CPF8 (400GE)'),
  954. (TYPE_800GE_QSFP_DD, 'QSFP-DD (800GE)'),
  955. (TYPE_800GE_OSFP, 'OSFP (800GE)'),
  956. )
  957. ),
  958. (
  959. _('Ethernet (backplane)'),
  960. (
  961. (TYPE_1GE_KX, '1000BASE-KX (1GE)'),
  962. (TYPE_2GE_KX, '2.5GBASE-KX (2.5GE)'),
  963. (TYPE_5GE_KR, '5GBASE-KR (5GE)'),
  964. (TYPE_10GE_KR, '10GBASE-KR (10GE)'),
  965. (TYPE_10GE_KX4, '10GBASE-KX4 (10GE)'),
  966. (TYPE_25GE_KR, '25GBASE-KR (25GE)'),
  967. (TYPE_40GE_KR4, '40GBASE-KR4 (40GE)'),
  968. (TYPE_50GE_KR, '50GBASE-KR (50GE)'),
  969. (TYPE_100GE_KP4, '100GBASE-KP4 (100GE)'),
  970. (TYPE_100GE_KR2, '100GBASE-KR2 (100GE)'),
  971. (TYPE_100GE_KR4, '100GBASE-KR4 (100GE)'),
  972. )
  973. ),
  974. (
  975. _('Wireless'),
  976. (
  977. (TYPE_80211A, 'IEEE 802.11a'),
  978. (TYPE_80211G, 'IEEE 802.11b/g'),
  979. (TYPE_80211N, 'IEEE 802.11n'),
  980. (TYPE_80211AC, 'IEEE 802.11ac'),
  981. (TYPE_80211AD, 'IEEE 802.11ad'),
  982. (TYPE_80211AX, 'IEEE 802.11ax'),
  983. (TYPE_80211AY, 'IEEE 802.11ay'),
  984. (TYPE_80211BE, 'IEEE 802.11be'),
  985. (TYPE_802151, 'IEEE 802.15.1 (Bluetooth)'),
  986. (TYPE_OTHER_WIRELESS, 'Other (Wireless)'),
  987. )
  988. ),
  989. (
  990. _('Cellular'),
  991. (
  992. (TYPE_GSM, 'GSM'),
  993. (TYPE_CDMA, 'CDMA'),
  994. (TYPE_LTE, 'LTE'),
  995. (TYPE_4G, '4G'),
  996. (TYPE_5G, '5G'),
  997. )
  998. ),
  999. (
  1000. 'SONET',
  1001. (
  1002. (TYPE_SONET_OC3, 'OC-3/STM-1'),
  1003. (TYPE_SONET_OC12, 'OC-12/STM-4'),
  1004. (TYPE_SONET_OC48, 'OC-48/STM-16'),
  1005. (TYPE_SONET_OC192, 'OC-192/STM-64'),
  1006. (TYPE_SONET_OC768, 'OC-768/STM-256'),
  1007. (TYPE_SONET_OC1920, 'OC-1920/STM-640'),
  1008. (TYPE_SONET_OC3840, 'OC-3840/STM-1234'),
  1009. )
  1010. ),
  1011. (
  1012. 'FibreChannel',
  1013. (
  1014. (TYPE_1GFC_SFP, 'SFP (1GFC)'),
  1015. (TYPE_2GFC_SFP, 'SFP (2GFC)'),
  1016. (TYPE_4GFC_SFP, 'SFP (4GFC)'),
  1017. (TYPE_8GFC_SFP_PLUS, 'SFP+ (8GFC)'),
  1018. (TYPE_16GFC_SFP_PLUS, 'SFP+ (16GFC)'),
  1019. (TYPE_32GFC_SFP28, 'SFP28 (32GFC)'),
  1020. (TYPE_32GFC_SFP_PLUS, 'SFP+ (32GFC)'),
  1021. (TYPE_64GFC_QSFP_PLUS, 'QSFP+ (64GFC)'),
  1022. (TYPE_64GFC_SFP_DD, 'SFP-DD (64GFC)'),
  1023. (TYPE_64GFC_SFP_PLUS, 'SFP+ (64GFC)'),
  1024. (TYPE_128GFC_QSFP28, 'QSFP28 (128GFC)'),
  1025. )
  1026. ),
  1027. (
  1028. 'InfiniBand',
  1029. (
  1030. (TYPE_INFINIBAND_SDR, 'SDR (2 Gbps)'),
  1031. (TYPE_INFINIBAND_DDR, 'DDR (4 Gbps)'),
  1032. (TYPE_INFINIBAND_QDR, 'QDR (8 Gbps)'),
  1033. (TYPE_INFINIBAND_FDR10, 'FDR10 (10 Gbps)'),
  1034. (TYPE_INFINIBAND_FDR, 'FDR (13.5 Gbps)'),
  1035. (TYPE_INFINIBAND_EDR, 'EDR (25 Gbps)'),
  1036. (TYPE_INFINIBAND_HDR, 'HDR (50 Gbps)'),
  1037. (TYPE_INFINIBAND_NDR, 'NDR (100 Gbps)'),
  1038. (TYPE_INFINIBAND_XDR, 'XDR (250 Gbps)'),
  1039. )
  1040. ),
  1041. (
  1042. _('Serial'),
  1043. (
  1044. (TYPE_T1, 'T1 (1.544 Mbps)'),
  1045. (TYPE_E1, 'E1 (2.048 Mbps)'),
  1046. (TYPE_T3, 'T3 (45 Mbps)'),
  1047. (TYPE_E3, 'E3 (34 Mbps)'),
  1048. )
  1049. ),
  1050. (
  1051. 'ATM',
  1052. (
  1053. (TYPE_XDSL, 'xDSL'),
  1054. )
  1055. ),
  1056. (
  1057. _('Coaxial'),
  1058. (
  1059. (TYPE_DOCSIS, 'DOCSIS'),
  1060. )
  1061. ),
  1062. (
  1063. 'PON',
  1064. (
  1065. (TYPE_BPON, 'BPON (622 Mbps / 155 Mbps)'),
  1066. (TYPE_EPON, 'EPON (1 Gbps)'),
  1067. (TYPE_10G_EPON, '10G-EPON (10 Gbps)'),
  1068. (TYPE_GPON, 'GPON (2.5 Gbps / 1.25 Gbps)'),
  1069. (TYPE_XG_PON, 'XG-PON (10 Gbps / 2.5 Gbps)'),
  1070. (TYPE_XGS_PON, 'XGS-PON (10 Gbps)'),
  1071. (TYPE_NG_PON2, 'NG-PON2 (TWDM-PON) (4x10 Gbps)'),
  1072. (TYPE_25G_PON, '25G-PON (25 Gbps)'),
  1073. (TYPE_50G_PON, '50G-PON (50 Gbps)'),
  1074. )
  1075. ),
  1076. (
  1077. _('Stacking'),
  1078. (
  1079. (TYPE_STACKWISE, 'Cisco StackWise'),
  1080. (TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'),
  1081. (TYPE_FLEXSTACK, 'Cisco FlexStack'),
  1082. (TYPE_FLEXSTACK_PLUS, 'Cisco FlexStack Plus'),
  1083. (TYPE_STACKWISE80, 'Cisco StackWise-80'),
  1084. (TYPE_STACKWISE160, 'Cisco StackWise-160'),
  1085. (TYPE_STACKWISE320, 'Cisco StackWise-320'),
  1086. (TYPE_STACKWISE480, 'Cisco StackWise-480'),
  1087. (TYPE_STACKWISE1T, 'Cisco StackWise-1T'),
  1088. (TYPE_JUNIPER_VCP, 'Juniper VCP'),
  1089. (TYPE_SUMMITSTACK, 'Extreme SummitStack'),
  1090. (TYPE_SUMMITSTACK128, 'Extreme SummitStack-128'),
  1091. (TYPE_SUMMITSTACK256, 'Extreme SummitStack-256'),
  1092. (TYPE_SUMMITSTACK512, 'Extreme SummitStack-512'),
  1093. )
  1094. ),
  1095. (
  1096. _('Other'),
  1097. (
  1098. (TYPE_OTHER, _('Other')),
  1099. )
  1100. ),
  1101. )
  1102. class InterfaceSpeedChoices(ChoiceSet):
  1103. key = 'Interface.speed'
  1104. CHOICES = [
  1105. (10000, '10 Mbps'),
  1106. (100000, '100 Mbps'),
  1107. (1000000, '1 Gbps'),
  1108. (10000000, '10 Gbps'),
  1109. (25000000, '25 Gbps'),
  1110. (40000000, '40 Gbps'),
  1111. (100000000, '100 Gbps'),
  1112. (200000000, '200 Gbps'),
  1113. (400000000, '400 Gbps'),
  1114. ]
  1115. class InterfaceDuplexChoices(ChoiceSet):
  1116. DUPLEX_HALF = 'half'
  1117. DUPLEX_FULL = 'full'
  1118. DUPLEX_AUTO = 'auto'
  1119. CHOICES = (
  1120. (DUPLEX_HALF, _('Half')),
  1121. (DUPLEX_FULL, _('Full')),
  1122. (DUPLEX_AUTO, _('Auto')),
  1123. )
  1124. class InterfaceModeChoices(ChoiceSet):
  1125. MODE_ACCESS = 'access'
  1126. MODE_TAGGED = 'tagged'
  1127. MODE_TAGGED_ALL = 'tagged-all'
  1128. CHOICES = (
  1129. (MODE_ACCESS, _('Access')),
  1130. (MODE_TAGGED, _('Tagged')),
  1131. (MODE_TAGGED_ALL, _('Tagged (All)')),
  1132. )
  1133. class InterfacePoEModeChoices(ChoiceSet):
  1134. MODE_PD = 'pd'
  1135. MODE_PSE = 'pse'
  1136. CHOICES = (
  1137. (MODE_PD, 'PD'),
  1138. (MODE_PSE, 'PSE'),
  1139. )
  1140. class InterfacePoETypeChoices(ChoiceSet):
  1141. TYPE_1_8023AF = 'type1-ieee802.3af'
  1142. TYPE_2_8023AT = 'type2-ieee802.3at'
  1143. TYPE_3_8023BT = 'type3-ieee802.3bt'
  1144. TYPE_4_8023BT = 'type4-ieee802.3bt'
  1145. PASSIVE_24V_2PAIR = 'passive-24v-2pair'
  1146. PASSIVE_24V_4PAIR = 'passive-24v-4pair'
  1147. PASSIVE_48V_2PAIR = 'passive-48v-2pair'
  1148. PASSIVE_48V_4PAIR = 'passive-48v-4pair'
  1149. CHOICES = (
  1150. (
  1151. _('IEEE Standard'),
  1152. (
  1153. (TYPE_1_8023AF, '802.3af (Type 1)'),
  1154. (TYPE_2_8023AT, '802.3at (Type 2)'),
  1155. (TYPE_3_8023BT, '802.3bt (Type 3)'),
  1156. (TYPE_4_8023BT, '802.3bt (Type 4)'),
  1157. )
  1158. ),
  1159. (
  1160. _('Passive'),
  1161. (
  1162. (PASSIVE_24V_2PAIR, _('Passive 24V (2-pair)')),
  1163. (PASSIVE_24V_4PAIR, _('Passive 24V (4-pair)')),
  1164. (PASSIVE_48V_2PAIR, _('Passive 48V (2-pair)')),
  1165. (PASSIVE_48V_4PAIR, _('Passive 48V (4-pair)')),
  1166. )
  1167. ),
  1168. )
  1169. #
  1170. # FrontPorts/RearPorts
  1171. #
  1172. class PortTypeChoices(ChoiceSet):
  1173. TYPE_8P8C = '8p8c'
  1174. TYPE_8P6C = '8p6c'
  1175. TYPE_8P4C = '8p4c'
  1176. TYPE_8P2C = '8p2c'
  1177. TYPE_6P6C = '6p6c'
  1178. TYPE_6P4C = '6p4c'
  1179. TYPE_6P2C = '6p2c'
  1180. TYPE_4P4C = '4p4c'
  1181. TYPE_4P2C = '4p2c'
  1182. TYPE_GG45 = 'gg45'
  1183. TYPE_TERA4P = 'tera-4p'
  1184. TYPE_TERA2P = 'tera-2p'
  1185. TYPE_TERA1P = 'tera-1p'
  1186. TYPE_110_PUNCH = '110-punch'
  1187. TYPE_BNC = 'bnc'
  1188. TYPE_F = 'f'
  1189. TYPE_N = 'n'
  1190. TYPE_MRJ21 = 'mrj21'
  1191. TYPE_ST = 'st'
  1192. TYPE_SC = 'sc'
  1193. TYPE_SC_PC = 'sc-pc'
  1194. TYPE_SC_UPC = 'sc-upc'
  1195. TYPE_SC_APC = 'sc-apc'
  1196. TYPE_FC = 'fc'
  1197. TYPE_LC = 'lc'
  1198. TYPE_LC_PC = 'lc-pc'
  1199. TYPE_LC_UPC = 'lc-upc'
  1200. TYPE_LC_APC = 'lc-apc'
  1201. TYPE_MTRJ = 'mtrj'
  1202. TYPE_MPO = 'mpo'
  1203. TYPE_LSH = 'lsh'
  1204. TYPE_LSH_PC = 'lsh-pc'
  1205. TYPE_LSH_UPC = 'lsh-upc'
  1206. TYPE_LSH_APC = 'lsh-apc'
  1207. TYPE_LX5 = 'lx5'
  1208. TYPE_LX5_PC = 'lx5-pc'
  1209. TYPE_LX5_UPC = 'lx5-upc'
  1210. TYPE_LX5_APC = 'lx5-apc'
  1211. TYPE_SPLICE = 'splice'
  1212. TYPE_CS = 'cs'
  1213. TYPE_SN = 'sn'
  1214. TYPE_SMA_905 = 'sma-905'
  1215. TYPE_SMA_906 = 'sma-906'
  1216. TYPE_URM_P2 = 'urm-p2'
  1217. TYPE_URM_P4 = 'urm-p4'
  1218. TYPE_URM_P8 = 'urm-p8'
  1219. TYPE_OTHER = 'other'
  1220. CHOICES = (
  1221. (
  1222. _('Copper'),
  1223. (
  1224. (TYPE_8P8C, '8P8C'),
  1225. (TYPE_8P6C, '8P6C'),
  1226. (TYPE_8P4C, '8P4C'),
  1227. (TYPE_8P2C, '8P2C'),
  1228. (TYPE_6P6C, '6P6C'),
  1229. (TYPE_6P4C, '6P4C'),
  1230. (TYPE_6P2C, '6P2C'),
  1231. (TYPE_4P4C, '4P4C'),
  1232. (TYPE_4P2C, '4P2C'),
  1233. (TYPE_GG45, 'GG45'),
  1234. (TYPE_TERA4P, 'TERA 4P'),
  1235. (TYPE_TERA2P, 'TERA 2P'),
  1236. (TYPE_TERA1P, 'TERA 1P'),
  1237. (TYPE_110_PUNCH, '110 Punch'),
  1238. (TYPE_BNC, 'BNC'),
  1239. (TYPE_F, 'F Connector'),
  1240. (TYPE_N, 'N Connector'),
  1241. (TYPE_MRJ21, 'MRJ21'),
  1242. ),
  1243. ),
  1244. (
  1245. _('Fiber Optic'),
  1246. (
  1247. (TYPE_FC, 'FC'),
  1248. (TYPE_LC, 'LC'),
  1249. (TYPE_LC_PC, 'LC/PC'),
  1250. (TYPE_LC_UPC, 'LC/UPC'),
  1251. (TYPE_LC_APC, 'LC/APC'),
  1252. (TYPE_LSH, 'LSH'),
  1253. (TYPE_LSH_PC, 'LSH/PC'),
  1254. (TYPE_LSH_UPC, 'LSH/UPC'),
  1255. (TYPE_LSH_APC, 'LSH/APC'),
  1256. (TYPE_LX5, 'LX.5'),
  1257. (TYPE_LX5_PC, 'LX.5/PC'),
  1258. (TYPE_LX5_UPC, 'LX.5/UPC'),
  1259. (TYPE_LX5_APC, 'LX.5/APC'),
  1260. (TYPE_MPO, 'MPO'),
  1261. (TYPE_MTRJ, 'MTRJ'),
  1262. (TYPE_SC, 'SC'),
  1263. (TYPE_SC_PC, 'SC/PC'),
  1264. (TYPE_SC_UPC, 'SC/UPC'),
  1265. (TYPE_SC_APC, 'SC/APC'),
  1266. (TYPE_ST, 'ST'),
  1267. (TYPE_CS, 'CS'),
  1268. (TYPE_SN, 'SN'),
  1269. (TYPE_SMA_905, 'SMA 905'),
  1270. (TYPE_SMA_906, 'SMA 906'),
  1271. (TYPE_URM_P2, 'URM-P2'),
  1272. (TYPE_URM_P4, 'URM-P4'),
  1273. (TYPE_URM_P8, 'URM-P8'),
  1274. (TYPE_SPLICE, 'Splice'),
  1275. ),
  1276. ),
  1277. (
  1278. _('Other'),
  1279. (
  1280. (TYPE_OTHER, _('Other')),
  1281. )
  1282. )
  1283. )
  1284. #
  1285. # Cables/links
  1286. #
  1287. class CableTypeChoices(ChoiceSet):
  1288. TYPE_CAT3 = 'cat3'
  1289. TYPE_CAT5 = 'cat5'
  1290. TYPE_CAT5E = 'cat5e'
  1291. TYPE_CAT6 = 'cat6'
  1292. TYPE_CAT6A = 'cat6a'
  1293. TYPE_CAT7 = 'cat7'
  1294. TYPE_CAT7A = 'cat7a'
  1295. TYPE_CAT8 = 'cat8'
  1296. TYPE_DAC_ACTIVE = 'dac-active'
  1297. TYPE_DAC_PASSIVE = 'dac-passive'
  1298. TYPE_MRJ21_TRUNK = 'mrj21-trunk'
  1299. TYPE_COAXIAL = 'coaxial'
  1300. TYPE_MMF = 'mmf'
  1301. TYPE_MMF_OM1 = 'mmf-om1'
  1302. TYPE_MMF_OM2 = 'mmf-om2'
  1303. TYPE_MMF_OM3 = 'mmf-om3'
  1304. TYPE_MMF_OM4 = 'mmf-om4'
  1305. TYPE_MMF_OM5 = 'mmf-om5'
  1306. TYPE_SMF = 'smf'
  1307. TYPE_SMF_OS1 = 'smf-os1'
  1308. TYPE_SMF_OS2 = 'smf-os2'
  1309. TYPE_AOC = 'aoc'
  1310. TYPE_POWER = 'power'
  1311. CHOICES = (
  1312. (
  1313. _('Copper'), (
  1314. (TYPE_CAT3, 'CAT3'),
  1315. (TYPE_CAT5, 'CAT5'),
  1316. (TYPE_CAT5E, 'CAT5e'),
  1317. (TYPE_CAT6, 'CAT6'),
  1318. (TYPE_CAT6A, 'CAT6a'),
  1319. (TYPE_CAT7, 'CAT7'),
  1320. (TYPE_CAT7A, 'CAT7a'),
  1321. (TYPE_CAT8, 'CAT8'),
  1322. (TYPE_DAC_ACTIVE, 'Direct Attach Copper (Active)'),
  1323. (TYPE_DAC_PASSIVE, 'Direct Attach Copper (Passive)'),
  1324. (TYPE_MRJ21_TRUNK, 'MRJ21 Trunk'),
  1325. (TYPE_COAXIAL, 'Coaxial'),
  1326. ),
  1327. ),
  1328. (
  1329. _('Fiber'), (
  1330. (TYPE_MMF, 'Multimode Fiber'),
  1331. (TYPE_MMF_OM1, 'Multimode Fiber (OM1)'),
  1332. (TYPE_MMF_OM2, 'Multimode Fiber (OM2)'),
  1333. (TYPE_MMF_OM3, 'Multimode Fiber (OM3)'),
  1334. (TYPE_MMF_OM4, 'Multimode Fiber (OM4)'),
  1335. (TYPE_MMF_OM5, 'Multimode Fiber (OM5)'),
  1336. (TYPE_SMF, 'Singlemode Fiber'),
  1337. (TYPE_SMF_OS1, 'Singlemode Fiber (OS1)'),
  1338. (TYPE_SMF_OS2, 'Singlemode Fiber (OS2)'),
  1339. (TYPE_AOC, 'Active Optical Cabling (AOC)'),
  1340. ),
  1341. ),
  1342. (TYPE_POWER, _('Power')),
  1343. )
  1344. class LinkStatusChoices(ChoiceSet):
  1345. STATUS_CONNECTED = 'connected'
  1346. STATUS_PLANNED = 'planned'
  1347. STATUS_DECOMMISSIONING = 'decommissioning'
  1348. CHOICES = (
  1349. (STATUS_CONNECTED, _('Connected'), 'green'),
  1350. (STATUS_PLANNED, _('Planned'), 'blue'),
  1351. (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
  1352. )
  1353. class CableLengthUnitChoices(ChoiceSet):
  1354. # Metric
  1355. UNIT_KILOMETER = 'km'
  1356. UNIT_METER = 'm'
  1357. UNIT_CENTIMETER = 'cm'
  1358. # Imperial
  1359. UNIT_MILE = 'mi'
  1360. UNIT_FOOT = 'ft'
  1361. UNIT_INCH = 'in'
  1362. CHOICES = (
  1363. (UNIT_KILOMETER, _('Kilometers')),
  1364. (UNIT_METER, _('Meters')),
  1365. (UNIT_CENTIMETER, _('Centimeters')),
  1366. (UNIT_MILE, _('Miles')),
  1367. (UNIT_FOOT, _('Feet')),
  1368. (UNIT_INCH, _('Inches')),
  1369. )
  1370. class WeightUnitChoices(ChoiceSet):
  1371. # Metric
  1372. UNIT_KILOGRAM = 'kg'
  1373. UNIT_GRAM = 'g'
  1374. # Imperial
  1375. UNIT_POUND = 'lb'
  1376. UNIT_OUNCE = 'oz'
  1377. CHOICES = (
  1378. (UNIT_KILOGRAM, _('Kilograms')),
  1379. (UNIT_GRAM, _('Grams')),
  1380. (UNIT_POUND, _('Pounds')),
  1381. (UNIT_OUNCE, _('Ounces')),
  1382. )
  1383. #
  1384. # CableTerminations
  1385. #
  1386. class CableEndChoices(ChoiceSet):
  1387. SIDE_A = 'A'
  1388. SIDE_B = 'B'
  1389. CHOICES = (
  1390. (SIDE_A, 'A'),
  1391. (SIDE_B, 'B'),
  1392. # ('', ''),
  1393. )
  1394. #
  1395. # PowerFeeds
  1396. #
  1397. class PowerFeedStatusChoices(ChoiceSet):
  1398. key = 'PowerFeed.status'
  1399. STATUS_OFFLINE = 'offline'
  1400. STATUS_ACTIVE = 'active'
  1401. STATUS_PLANNED = 'planned'
  1402. STATUS_FAILED = 'failed'
  1403. CHOICES = [
  1404. (STATUS_OFFLINE, _('Offline'), 'gray'),
  1405. (STATUS_ACTIVE, _('Active'), 'green'),
  1406. (STATUS_PLANNED, _('Planned'), 'blue'),
  1407. (STATUS_FAILED, _('Failed'), 'red'),
  1408. ]
  1409. class PowerFeedTypeChoices(ChoiceSet):
  1410. TYPE_PRIMARY = 'primary'
  1411. TYPE_REDUNDANT = 'redundant'
  1412. CHOICES = (
  1413. (TYPE_PRIMARY, _('Primary'), 'green'),
  1414. (TYPE_REDUNDANT, _('Redundant'), 'cyan'),
  1415. )
  1416. class PowerFeedSupplyChoices(ChoiceSet):
  1417. SUPPLY_AC = 'ac'
  1418. SUPPLY_DC = 'dc'
  1419. CHOICES = (
  1420. (SUPPLY_AC, 'AC'),
  1421. (SUPPLY_DC, 'DC'),
  1422. )
  1423. class PowerFeedPhaseChoices(ChoiceSet):
  1424. PHASE_SINGLE = 'single-phase'
  1425. PHASE_3PHASE = 'three-phase'
  1426. CHOICES = (
  1427. (PHASE_SINGLE, _('Single phase')),
  1428. (PHASE_3PHASE, _('Three-phase')),
  1429. )
  1430. #
  1431. # VDC
  1432. #
  1433. class VirtualDeviceContextStatusChoices(ChoiceSet):
  1434. key = 'VirtualDeviceContext.status'
  1435. STATUS_ACTIVE = 'active'
  1436. STATUS_PLANNED = 'planned'
  1437. STATUS_OFFLINE = 'offline'
  1438. CHOICES = [
  1439. (STATUS_ACTIVE, _('Active'), 'green'),
  1440. (STATUS_PLANNED, _('Planned'), 'cyan'),
  1441. (STATUS_OFFLINE, _('Offline'), 'red'),
  1442. ]