Coverage for dcim/tables/connections.py: 100%
28 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
1import django_tables2 as tables
2from django.utils.translation import gettext_lazy as _
3from django_tables2.utils import Accessor
5from dcim.models import ConsolePort, Interface, PowerPort
6from netbox.tables import BaseTable, columns
8from .devices import PathEndpointTable
10__all__ = (
11 'ConsoleConnectionTable',
12 'InterfaceConnectionTable',
13 'PowerConnectionTable',
14)
17#
18# Device connections
19#
21class ConsoleConnectionTable(PathEndpointTable):
22 device = tables.Column(
23 verbose_name=_('Device'),
24 linkify=True
25 )
26 name = tables.Column(
27 linkify=True,
28 verbose_name=_('Console Port')
29 )
30 reachable = columns.BooleanColumn(
31 accessor=Accessor('_path__is_active'),
32 verbose_name=_('Reachable')
33 )
35 class Meta(BaseTable.Meta):
36 model = ConsolePort
37 fields = ('device', 'name', 'connection', 'reachable')
40class PowerConnectionTable(PathEndpointTable):
41 device = tables.Column(
42 verbose_name=_('Device'),
43 linkify=True
44 )
45 name = tables.Column(
46 linkify=True,
47 verbose_name=_('Power Port')
48 )
49 reachable = columns.BooleanColumn(
50 accessor=Accessor('_path__is_active'),
51 verbose_name=_('Reachable')
52 )
54 class Meta(BaseTable.Meta):
55 model = PowerPort
56 fields = ('device', 'name', 'connection', 'reachable')
59class InterfaceConnectionTable(PathEndpointTable):
60 device = tables.Column(
61 verbose_name=_('Device'),
62 accessor=Accessor('device'),
63 linkify=True
64 )
65 interface = tables.Column(
66 verbose_name=_('Interface'),
67 accessor=Accessor('name'),
68 linkify=True
69 )
70 reachable = columns.BooleanColumn(
71 accessor=Accessor('_path__is_active'),
72 verbose_name=_('Reachable')
73 )
75 class Meta(BaseTable.Meta):
76 model = Interface
77 fields = ('device', 'interface', 'connection', 'reachable')