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

1import django_tables2 as tables 

2from django.utils.translation import gettext_lazy as _ 

3from django_tables2.utils import Accessor 

4 

5from dcim.models import ConsolePort, Interface, PowerPort 

6from netbox.tables import BaseTable, columns 

7 

8from .devices import PathEndpointTable 

9 

10__all__ = ( 

11 'ConsoleConnectionTable', 

12 'InterfaceConnectionTable', 

13 'PowerConnectionTable', 

14) 

15 

16 

17# 

18# Device connections 

19# 

20 

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 ) 

34 

35 class Meta(BaseTable.Meta): 

36 model = ConsolePort 

37 fields = ('device', 'name', 'connection', 'reachable') 

38 

39 

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 ) 

53 

54 class Meta(BaseTable.Meta): 

55 model = PowerPort 

56 fields = ('device', 'name', 'connection', 'reachable') 

57 

58 

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 ) 

74 

75 class Meta(BaseTable.Meta): 

76 model = Interface 

77 fields = ('device', 'interface', 'connection', 'reachable')