Coverage for ipam/tables/fhrp.py: 96%

26 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 _ 

3 

4from ipam.models import * 

5from netbox.tables import NetBoxTable, PrimaryModelTable, columns 

6 

7__all__ = ( 

8 'FHRPGroupAssignmentTable', 

9 'FHRPGroupTable', 

10) 

11 

12 

13IPADDRESSES = """ 

14{% for ip in value.all %} 

15 <a href="{{ ip.get_absolute_url }}">{{ ip }}</a><br /> 

16{% endfor %} 

17""" 

18 

19 

20class FHRPGroupTable(PrimaryModelTable): 

21 group_id = tables.Column( 

22 verbose_name=_('Group ID'), 

23 linkify=True 

24 ) 

25 ip_addresses = tables.TemplateColumn( 

26 template_code=IPADDRESSES, 

27 orderable=False, 

28 verbose_name=_('IP Addresses') 

29 ) 

30 member_count = tables.Column( 

31 verbose_name=_('Members') 

32 ) 

33 tags = columns.TagColumn( 

34 url_name='ipam:fhrpgroup_list' 

35 ) 

36 

37 def value_ip_addresses(self, value): 

38 return ",".join([str(obj.address) for obj in value.all()]) 

39 

40 class Meta(PrimaryModelTable.Meta): 

41 model = FHRPGroup 

42 fields = ( 

43 'pk', 'group_id', 'protocol', 'name', 'auth_type', 'auth_key', 'description', 'comments', 'ip_addresses', 

44 'member_count', 'tags', 'created', 'last_updated', 

45 ) 

46 default_columns = ( 

47 'pk', 'group_id', 'protocol', 'name', 'auth_type', 'description', 'ip_addresses', 'member_count', 

48 ) 

49 

50 

51class FHRPGroupAssignmentTable(NetBoxTable): 

52 interface_parent = tables.Column( 

53 accessor=tables.A('interface__parent_object'), 

54 linkify=True, 

55 orderable=False, 

56 verbose_name=_('Parent') 

57 ) 

58 interface = tables.Column( 

59 linkify=True, 

60 orderable=False, 

61 verbose_name=_('Interface'), 

62 ) 

63 group = tables.Column( 

64 verbose_name=_('Group'), 

65 linkify=True 

66 ) 

67 actions = columns.ActionsColumn( 

68 actions=('edit', 'delete') 

69 ) 

70 

71 class Meta(NetBoxTable.Meta): 

72 model = FHRPGroupAssignment 

73 fields = ('pk', 'group', 'interface_parent', 'interface', 'priority') 

74 exclude = ('id',)