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