mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
109 lines
2.7 KiB
Python
109 lines
2.7 KiB
Python
|
import django_tables2 as tables
|
||
|
from django_tables2.utils import Accessor
|
||
|
|
||
|
from utilities.tables import BaseTable, BooleanColumn
|
||
|
from dcim.models import ConsolePort, Interface, PowerPort
|
||
|
from .cables import *
|
||
|
from .devices import *
|
||
|
from .devicetypes import *
|
||
|
from .power import *
|
||
|
from .racks import *
|
||
|
from .sites import *
|
||
|
|
||
|
|
||
|
#
|
||
|
# Device connections
|
||
|
#
|
||
|
|
||
|
class ConsoleConnectionTable(BaseTable):
|
||
|
console_server = tables.Column(
|
||
|
accessor=Accessor('_path__destination__device'),
|
||
|
orderable=False,
|
||
|
linkify=True,
|
||
|
verbose_name='Console Server'
|
||
|
)
|
||
|
console_server_port = tables.Column(
|
||
|
accessor=Accessor('_path__destination'),
|
||
|
orderable=False,
|
||
|
linkify=True,
|
||
|
verbose_name='Port'
|
||
|
)
|
||
|
device = tables.Column(
|
||
|
linkify=True
|
||
|
)
|
||
|
name = tables.Column(
|
||
|
linkify=True,
|
||
|
verbose_name='Console Port'
|
||
|
)
|
||
|
reachable = BooleanColumn(
|
||
|
accessor=Accessor('_path__is_active'),
|
||
|
verbose_name='Reachable'
|
||
|
)
|
||
|
|
||
|
class Meta(BaseTable.Meta):
|
||
|
model = ConsolePort
|
||
|
fields = ('device', 'name', 'console_server', 'console_server_port', 'reachable')
|
||
|
|
||
|
|
||
|
class PowerConnectionTable(BaseTable):
|
||
|
pdu = tables.Column(
|
||
|
accessor=Accessor('_path__destination__device'),
|
||
|
orderable=False,
|
||
|
linkify=True,
|
||
|
verbose_name='PDU'
|
||
|
)
|
||
|
outlet = tables.Column(
|
||
|
accessor=Accessor('_path__destination'),
|
||
|
orderable=False,
|
||
|
linkify=True,
|
||
|
verbose_name='Outlet'
|
||
|
)
|
||
|
device = tables.Column(
|
||
|
linkify=True
|
||
|
)
|
||
|
name = tables.Column(
|
||
|
linkify=True,
|
||
|
verbose_name='Power Port'
|
||
|
)
|
||
|
reachable = BooleanColumn(
|
||
|
accessor=Accessor('_path__is_active'),
|
||
|
verbose_name='Reachable'
|
||
|
)
|
||
|
|
||
|
class Meta(BaseTable.Meta):
|
||
|
model = PowerPort
|
||
|
fields = ('device', 'name', 'pdu', 'outlet', 'reachable')
|
||
|
|
||
|
|
||
|
class InterfaceConnectionTable(BaseTable):
|
||
|
device_a = tables.Column(
|
||
|
accessor=Accessor('device'),
|
||
|
linkify=True,
|
||
|
verbose_name='Device A'
|
||
|
)
|
||
|
interface_a = tables.Column(
|
||
|
accessor=Accessor('name'),
|
||
|
linkify=True,
|
||
|
verbose_name='Interface A'
|
||
|
)
|
||
|
device_b = tables.Column(
|
||
|
accessor=Accessor('_path__destination__device'),
|
||
|
orderable=False,
|
||
|
linkify=True,
|
||
|
verbose_name='Device B'
|
||
|
)
|
||
|
interface_b = tables.Column(
|
||
|
accessor=Accessor('_path__destination'),
|
||
|
orderable=False,
|
||
|
linkify=True,
|
||
|
verbose_name='Interface B'
|
||
|
)
|
||
|
reachable = BooleanColumn(
|
||
|
accessor=Accessor('_path__is_active'),
|
||
|
verbose_name='Reachable'
|
||
|
)
|
||
|
|
||
|
class Meta(BaseTable.Meta):
|
||
|
model = Interface
|
||
|
fields = ('device_a', 'interface_a', 'device_b', 'interface_b', 'reachable')
|