__init__.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import django_tables2 as tables
  2. from django_tables2.utils import Accessor
  3. from netbox.tables import BaseTable, columns
  4. from dcim.models import ConsolePort, Interface, PowerPort
  5. from .cables import *
  6. from .devices import *
  7. from .devicetypes import *
  8. from .modules import *
  9. from .power import *
  10. from .racks import *
  11. from .sites import *
  12. #
  13. # Device connections
  14. #
  15. class ConsoleConnectionTable(BaseTable):
  16. console_server = tables.Column(
  17. accessor=Accessor('_path__destination__device'),
  18. orderable=False,
  19. linkify=True,
  20. verbose_name='Console Server'
  21. )
  22. console_server_port = tables.Column(
  23. accessor=Accessor('_path__destination'),
  24. orderable=False,
  25. linkify=True,
  26. verbose_name='Port'
  27. )
  28. device = tables.Column(
  29. linkify=True
  30. )
  31. name = tables.Column(
  32. linkify=True,
  33. verbose_name='Console Port'
  34. )
  35. reachable = columns.BooleanColumn(
  36. accessor=Accessor('_path__is_active'),
  37. verbose_name='Reachable'
  38. )
  39. class Meta(BaseTable.Meta):
  40. model = ConsolePort
  41. fields = ('device', 'name', 'console_server', 'console_server_port', 'reachable')
  42. class PowerConnectionTable(BaseTable):
  43. pdu = tables.Column(
  44. accessor=Accessor('_path__destination__device'),
  45. orderable=False,
  46. linkify=True,
  47. verbose_name='PDU'
  48. )
  49. outlet = tables.Column(
  50. accessor=Accessor('_path__destination'),
  51. orderable=False,
  52. linkify=True,
  53. verbose_name='Outlet'
  54. )
  55. device = tables.Column(
  56. linkify=True
  57. )
  58. name = tables.Column(
  59. linkify=True,
  60. verbose_name='Power Port'
  61. )
  62. reachable = columns.BooleanColumn(
  63. accessor=Accessor('_path__is_active'),
  64. verbose_name='Reachable'
  65. )
  66. class Meta(BaseTable.Meta):
  67. model = PowerPort
  68. fields = ('device', 'name', 'pdu', 'outlet', 'reachable')
  69. class InterfaceConnectionTable(BaseTable):
  70. device_a = tables.Column(
  71. accessor=Accessor('device'),
  72. linkify=True,
  73. verbose_name='Device A'
  74. )
  75. interface_a = tables.Column(
  76. accessor=Accessor('name'),
  77. linkify=True,
  78. verbose_name='Interface A'
  79. )
  80. device_b = tables.Column(
  81. accessor=Accessor('_path__destination__device'),
  82. orderable=False,
  83. linkify=True,
  84. verbose_name='Device B'
  85. )
  86. interface_b = tables.Column(
  87. accessor=Accessor('_path__destination'),
  88. orderable=False,
  89. linkify=True,
  90. verbose_name='Interface B'
  91. )
  92. reachable = columns.BooleanColumn(
  93. accessor=Accessor('_path__is_active'),
  94. verbose_name='Reachable'
  95. )
  96. class Meta(BaseTable.Meta):
  97. model = Interface
  98. fields = ('device_a', 'interface_a', 'device_b', 'interface_b', 'reachable')