0082_3569_interface_fields.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. from django.db import migrations, models
  2. INTERFACE_TYPE_CHOICES = (
  3. (0, 'virtual'),
  4. (200, 'lag'),
  5. (800, '100base-tx'),
  6. (1000, '1000base-t'),
  7. (1050, '1000base-x-gbic'),
  8. (1100, '1000base-x-sfp'),
  9. (1120, '2.5gbase-t'),
  10. (1130, '5gbase-t'),
  11. (1150, '10gbase-t'),
  12. (1170, '10gbase-cx4'),
  13. (1200, '10gbase-x-sfpp'),
  14. (1300, '10gbase-x-xfp'),
  15. (1310, '10gbase-x-xenpak'),
  16. (1320, '10gbase-x-x2'),
  17. (1350, '25gbase-x-sfp28'),
  18. (1400, '40gbase-x-qsfpp'),
  19. (1420, '50gbase-x-sfp28'),
  20. (1500, '100gbase-x-cfp'),
  21. (1510, '100gbase-x-cfp2'),
  22. (1520, '100gbase-x-cfp4'),
  23. (1550, '100gbase-x-cpak'),
  24. (1600, '100gbase-x-qsfp28'),
  25. (1650, '200gbase-x-cfp2'),
  26. (1700, '200gbase-x-qsfp56'),
  27. (1750, '400gbase-x-qsfpdd'),
  28. (1800, '400gbase-x-osfp'),
  29. (2600, 'ieee802.11a'),
  30. (2610, 'ieee802.11g'),
  31. (2620, 'ieee802.11n'),
  32. (2630, 'ieee802.11ac'),
  33. (2640, 'ieee802.11ad'),
  34. (2810, 'gsm'),
  35. (2820, 'cdma'),
  36. (2830, 'lte'),
  37. (6100, 'sonet-oc3'),
  38. (6200, 'sonet-oc12'),
  39. (6300, 'sonet-oc48'),
  40. (6400, 'sonet-oc192'),
  41. (6500, 'sonet-oc768'),
  42. (6600, 'sonet-oc1920'),
  43. (6700, 'sonet-oc3840'),
  44. (3010, '1gfc-sfp'),
  45. (3020, '2gfc-sfp'),
  46. (3040, '4gfc-sfp'),
  47. (3080, '8gfc-sfpp'),
  48. (3160, '16gfc-sfpp'),
  49. (3320, '32gfc-sfp28'),
  50. (3400, '128gfc-sfp28'),
  51. (7010, 'inifiband-sdr'),
  52. (7020, 'inifiband-ddr'),
  53. (7030, 'inifiband-qdr'),
  54. (7040, 'inifiband-fdr10'),
  55. (7050, 'inifiband-fdr'),
  56. (7060, 'inifiband-edr'),
  57. (7070, 'inifiband-hdr'),
  58. (7080, 'inifiband-ndr'),
  59. (7090, 'inifiband-xdr'),
  60. (4000, 't1'),
  61. (4010, 'e1'),
  62. (4040, 't3'),
  63. (4050, 'e3'),
  64. (5000, 'cisco-stackwise'),
  65. (5050, 'cisco-stackwise-plus'),
  66. (5100, 'cisco-flexstack'),
  67. (5150, 'cisco-flexstack-plus'),
  68. (5200, 'juniper-vcp'),
  69. (5300, 'extreme-summitstack'),
  70. (5310, 'extreme-summitstack-128'),
  71. (5320, 'extreme-summitstack-256'),
  72. (5330, 'extreme-summitstack-512'),
  73. )
  74. INTERFACE_MODE_CHOICES = (
  75. (100, 'access'),
  76. (200, 'tagged'),
  77. (300, 'tagged-all'),
  78. )
  79. def interfacetemplate_type_to_slug(apps, schema_editor):
  80. InterfaceTemplate = apps.get_model('dcim', 'InterfaceTemplate')
  81. for id, slug in INTERFACE_TYPE_CHOICES:
  82. InterfaceTemplate.objects.filter(type=id).update(type=slug)
  83. def interface_type_to_slug(apps, schema_editor):
  84. Interface = apps.get_model('dcim', 'Interface')
  85. for id, slug in INTERFACE_TYPE_CHOICES:
  86. Interface.objects.filter(type=id).update(type=slug)
  87. def interface_mode_to_slug(apps, schema_editor):
  88. Interface = apps.get_model('dcim', 'Interface')
  89. for id, slug in INTERFACE_MODE_CHOICES:
  90. Interface.objects.filter(mode=id).update(mode=slug)
  91. class Migration(migrations.Migration):
  92. atomic = False
  93. dependencies = [
  94. ('dcim', '0081_3569_device_fields'),
  95. ]
  96. operations = [
  97. # InterfaceTemplate.type
  98. migrations.AlterField(
  99. model_name='interfacetemplate',
  100. name='type',
  101. field=models.CharField(max_length=50),
  102. ),
  103. migrations.RunPython(
  104. code=interfacetemplate_type_to_slug
  105. ),
  106. # Interface.type
  107. migrations.AlterField(
  108. model_name='interface',
  109. name='type',
  110. field=models.CharField(max_length=50),
  111. ),
  112. migrations.RunPython(
  113. code=interface_type_to_slug
  114. ),
  115. # Interface.mode
  116. migrations.AlterField(
  117. model_name='interface',
  118. name='mode',
  119. field=models.CharField(blank=True, default='', max_length=50),
  120. ),
  121. migrations.RunPython(
  122. code=interface_mode_to_slug
  123. ),
  124. migrations.AlterField(
  125. model_name='interface',
  126. name='mode',
  127. field=models.CharField(blank=True, max_length=50),
  128. ),
  129. ]