choices.py 43 KB

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