1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Add assigned IP addresses and VLANs to interface tables

This commit is contained in:
Jeremy Stretch
2020-07-13 16:18:17 -04:00
parent 013a2a35e0
commit 9f7ed25e74
2 changed files with 34 additions and 4 deletions

View File

@ -109,6 +109,18 @@ POWERPANEL_POWERFEED_COUNT = """
<a href="{% url 'dcim:powerfeed_list' %}?power_panel_id={{ record.pk }}">{{ value }}</a>
"""
INTERFACE_IPADDRESSES = """
{% for ip in record.ip_addresses.unrestricted %}
<a href="{{ ip.get_absolute_url }}">{{ ip }}</a><br />
{% endfor %}
"""
INTERFACE_TAGGED_VLANS = """
{% for vlan in record.tagged_vlans.unrestricted %}
<a href="{{ vlan.get_absolute_url }}">{{ vlan }}</a><br />
{% endfor %}
"""
#
# Regions
@ -711,13 +723,28 @@ class PowerOutletTable(DeviceComponentTable):
default_columns = ('pk', 'device', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description')
class InterfaceTable(DeviceComponentTable):
class BaseInterfaceTable(BaseTable):
enabled = BooleanColumn()
ip_addresses = tables.TemplateColumn(
template_code=INTERFACE_IPADDRESSES,
orderable=False,
verbose_name='IP Addresses'
)
untagged_vlan = tables.Column(linkify=True)
tagged_vlans = tables.TemplateColumn(
template_code=INTERFACE_TAGGED_VLANS,
orderable=False,
verbose_name='Tagged VLANs'
)
class InterfaceTable(DeviceComponentTable, BaseInterfaceTable):
class Meta(DeviceComponentTable.Meta):
model = Interface
fields = (
'pk', 'device', 'name', 'label', 'enabled', 'type', 'mgmt_only', 'mtu', 'mode', 'description', 'cable',
'ip_addresses', 'untagged_vlan', 'tagged_vlans',
)
default_columns = ('pk', 'device', 'name', 'label', 'enabled', 'type', 'description')

View File

@ -1,6 +1,7 @@
import django_tables2 as tables
from django_tables2.utils import Accessor
from dcim.tables import BaseInterfaceTable
from tenancy.tables import COL_TENANT
from utilities.tables import BaseTable, BooleanColumn, ButtonsColumn, ColoredLabelColumn, TagColumn, ToggleColumn
from .models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface
@ -146,9 +147,8 @@ class VirtualMachineDetailTable(VirtualMachineTable):
# VM components
#
class VMInterfaceTable(BaseTable):
class VMInterfaceTable(BaseInterfaceTable):
pk = ToggleColumn()
enabled = BooleanColumn()
virtual_machine = tables.LinkColumn()
name = tables.Column(
linkify=True
@ -156,5 +156,8 @@ class VMInterfaceTable(BaseTable):
class Meta(BaseTable.Meta):
model = VMInterface
fields = ('pk', 'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description')
fields = (
'pk', 'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description', 'ip_addresses',
'untagged_vlan', 'tagged_vlans',
)
default_columns = ('pk', 'virtual_machine', 'name', 'enabled', 'description')