class PrefixTable(BaseTable): pk = ToggleColumn() prefix = tables.TemplateColumn(template_code=PREFIX_LINK, attrs={'td': { 'class': 'text-nowrap' }}) status = ChoiceFieldColumn(default=AVAILABLE_LABEL) vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') tenant = TenantColumn() site = tables.Column(linkify=True) vlan = tables.Column(linkify=True, verbose_name='VLAN') role = tables.TemplateColumn(template_code=PREFIX_ROLE_LINK) is_pool = BooleanColumn(verbose_name='Pool') class Meta(BaseTable.Meta): model = Prefix fields = ( 'pk', 'prefix', 'status', 'children', 'vrf', 'tenant', 'site', 'vlan', 'role', 'is_pool', 'description', ) default_columns = ('pk', 'prefix', 'status', 'vrf', 'tenant', 'site', 'vlan', 'role', 'description') row_attrs = { 'class': lambda record: 'success' if not record.pk else '', }
class SiteTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) status = ChoiceFieldColumn() region = tables.Column( linkify=True ) group = tables.Column( linkify=True ) asn_count = LinkedCountColumn( accessor=tables.A('asns.count'), viewname='ipam:asn_list', url_params={'site_id': 'pk'}, verbose_name='ASNs' ) tenant = TenantColumn() comments = MarkdownColumn() tags = TagColumn( url_name='dcim:site_list' ) class Meta(BaseTable.Meta): model = Site fields = ( 'pk', 'id', 'name', 'slug', 'status', 'facility', 'region', 'group', 'tenant', 'asn_count', 'time_zone', 'description', 'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone', 'contact_email', 'comments', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'status', 'facility', 'region', 'group', 'tenant', 'description')
class AggregateTable(BaseTable): pk = ToggleColumn() prefix = tables.Column( linkify=True, verbose_name='Aggregate' ) tenant = TenantColumn() date_added = tables.DateColumn( format="Y-m-d", verbose_name='Added' ) child_count = tables.Column( verbose_name='Prefixes' ) utilization = UtilizationColumn( accessor='get_utilization', orderable=False ) tags = TagColumn( url_name='ipam:aggregate_list' ) class Meta(BaseTable.Meta): model = Aggregate fields = ( 'pk', 'id', 'prefix', 'rir', 'tenant', 'child_count', 'utilization', 'date_added', 'description', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'prefix', 'rir', 'tenant', 'child_count', 'utilization', 'date_added', 'description')
class VRFTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) rd = tables.Column(verbose_name='RD') tenant = TenantColumn() enforce_unique = BooleanColumn(verbose_name='Unique') import_targets = TemplateColumn(template_code=VRF_TARGETS, orderable=False) export_targets = TemplateColumn(template_code=VRF_TARGETS, orderable=False) tags = TagColumn(url_name='ipam:vrf_list') class Meta(BaseTable.Meta): model = VRF fields = ( 'pk', 'id', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tags', ) default_columns = ('pk', 'name', 'rd', 'tenant', 'description')
class IPAddressTable(BaseTable): pk = ToggleColumn() address = tables.TemplateColumn(template_code=IPADDRESS_LINK, verbose_name='IP Address') vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') status = ChoiceFieldColumn(default=AVAILABLE_LABEL) role = ChoiceFieldColumn() tenant = TenantColumn() assigned_object = tables.Column(linkify=True, orderable=False, verbose_name='Interface') assigned_object_parent = tables.Column(accessor='assigned_object__parent', linkify=True, orderable=False, verbose_name='Interface Parent') class Meta(BaseTable.Meta): model = IPAddress fields = ( 'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'assigned_object', 'assigned_object_parent', 'dns_name', 'description', ) row_attrs = { 'class': lambda record: 'success' if not isinstance(record, IPAddress) else '', }
class SiteTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) status = ChoiceFieldColumn() region = tables.Column(linkify=True) group = tables.Column(linkify=True) tenant = TenantColumn() tags = TagColumn(url_name='dcim:site_list') class Meta(BaseTable.Meta): model = Site fields = ( 'pk', 'name', 'slug', 'status', 'facility', 'region', 'group', 'tenant', 'asn', 'time_zone', 'description', 'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone', 'contact_email', 'tags', ) default_columns = ('pk', 'name', 'status', 'facility', 'region', 'group', 'tenant', 'asn', 'description')
class ASNTable(BaseTable): pk = ToggleColumn() asn = tables.Column( linkify=True ) asn_asdot = tables.Column( accessor=tables.A('asn_asdot'), linkify=True, verbose_name='ASDOT' ) site_count = LinkedCountColumn( viewname='dcim:site_list', url_params={'asn_id': 'pk'}, verbose_name='Sites' ) tenant = TenantColumn() tags = TagColumn( url_name='ipam:asn_list' ) actions = ButtonsColumn(ASN) class Meta(BaseTable.Meta): model = ASN fields = ( 'pk', 'asn', 'asn_asdot', 'rir', 'site_count', 'tenant', 'description', 'actions', 'created', 'last_updated', 'tags', ) default_columns = ('pk', 'asn', 'rir', 'site_count', 'sites', 'description', 'tenant', 'actions')
class IPAddressDetailTable(IPAddressTable): nat_inside = tables.Column(linkify=True, orderable=False, verbose_name='NAT (Inside)') tenant = TenantColumn() assigned = BooleanColumn(accessor='assigned_object_id', verbose_name='Assigned') tags = TagColumn(url_name='ipam:ipaddress_list') class Meta(IPAddressTable.Meta): fields = ( 'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'nat_inside', 'assigned', 'dns_name', 'description', 'tags', ) default_columns = ( 'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'assigned', 'dns_name', 'description', )
class RackReservationTable(BaseTable): pk = ToggleColumn() reservation = tables.Column(accessor='pk', linkify=True) site = tables.Column(accessor=Accessor('rack__site'), linkify=True) tenant = TenantColumn() rack = tables.Column(linkify=True) unit_list = tables.Column(orderable=False, verbose_name='Units') tags = TagColumn(url_name='dcim:rackreservation_list') actions = ButtonsColumn(RackReservation) class Meta(BaseTable.Meta): model = RackReservation fields = ( 'pk', 'reservation', 'site', 'rack', 'unit_list', 'user', 'created', 'tenant', 'description', 'tags', 'actions', ) default_columns = ( 'pk', 'reservation', 'site', 'rack', 'unit_list', 'user', 'description', 'actions', )
class RackTable(BaseTable): pk = ToggleColumn() name = tables.Column(order_by=('_name', ), linkify=True) location = tables.Column(linkify=True) site = tables.Column(linkify=True) tenant = TenantColumn() status = ChoiceFieldColumn() role = ColoredLabelColumn() u_height = tables.TemplateColumn(template_code="{{ record.u_height }}U", verbose_name='Height') class Meta(BaseTable.Meta): model = Rack fields = ( 'pk', 'name', 'site', 'location', 'status', 'facility_id', 'tenant', 'role', 'serial', 'asset_tag', 'type', 'width', 'u_height', ) default_columns = ('pk', 'name', 'site', 'location', 'status', 'facility_id', 'tenant', 'role', 'u_height')
class LocationTable(BaseTable): pk = ToggleColumn() name = MPTTColumn(linkify=True) site = tables.Column(linkify=True) tenant = TenantColumn() rack_count = LinkedCountColumn(viewname='dcim:rack_list', url_params={'location_id': 'pk'}, verbose_name='Racks') device_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'location_id': 'pk'}, verbose_name='Devices') tags = TagColumn(url_name='dcim:location_list') actions = ButtonsColumn(model=Location, prepend_template=LOCATION_ELEVATIONS) class Meta(BaseTable.Meta): model = Location fields = ( 'pk', 'id', 'name', 'site', 'tenant', 'rack_count', 'device_count', 'description', 'slug', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'site', 'tenant', 'rack_count', 'device_count', 'description', 'actions')
class CircuitTable(BaseTable): pk = ToggleColumn() cid = tables.Column( linkify=True, verbose_name='Circuit ID' ) provider = tables.Column( linkify=True ) status = ChoiceFieldColumn() tenant = TenantColumn() termination_a = tables.TemplateColumn( template_code=CIRCUITTERMINATION_LINK, verbose_name='Side A' ) termination_z = tables.TemplateColumn( template_code=CIRCUITTERMINATION_LINK, verbose_name='Side Z' ) commit_rate = CommitRateColumn() comments = MarkdownColumn() tags = TagColumn( url_name='circuits:circuit_list' ) class Meta(BaseTable.Meta): model = Circuit fields = ( 'pk', 'id', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'install_date', 'commit_rate', 'description', 'comments', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'description', )
class IPRangeTable(BaseTable): pk = ToggleColumn() start_address = tables.Column(linkify=True) vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') status = ChoiceFieldColumn(default=AVAILABLE_LABEL) role = tables.Column(linkify=True) tenant = TenantColumn() class Meta(BaseTable.Meta): model = IPRange fields = ( 'pk', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description', ) default_columns = ( 'pk', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description', ) row_attrs = { 'class': lambda record: 'success' if not record.pk else '', }
class InterfaceVLANTable(BaseTable): """ List VLANs assigned to a specific Interface. """ vid = tables.Column( linkify=True, verbose_name='ID' ) tagged = BooleanColumn() site = tables.Column( linkify=True ) group = tables.Column( accessor=Accessor('group__name'), verbose_name='Group' ) tenant = TenantColumn() status = ChoiceFieldColumn() role = tables.Column( linkify=True ) class Meta(BaseTable.Meta): model = VLAN fields = ('vid', 'tagged', 'site', 'group', 'name', 'tenant', 'status', 'role', 'description') exclude = ('id', ) def __init__(self, interface, *args, **kwargs): self.interface = interface super().__init__(*args, **kwargs)
class PrefixDetailTable(PrefixTable): utilization = UtilizationColumn(accessor='get_utilization', orderable=False) tenant = TenantColumn() tags = TagColumn(url_name='ipam:prefix_list') class Meta(PrefixTable.Meta): fields = ( 'pk', 'prefix', 'status', 'children', 'vrf', 'utilization', 'tenant', 'site', 'vlan', 'role', 'is_pool', 'description', 'tags', ) default_columns = ( 'pk', 'prefix', 'status', 'children', 'vrf', 'utilization', 'tenant', 'site', 'vlan', 'role', 'description', )
class IPAddressTable(BaseTable): pk = ToggleColumn() address = tables.TemplateColumn(template_code=IPADDRESS_LINK, verbose_name='IP Address') vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') status = ChoiceFieldColumn(default=AVAILABLE_LABEL) role = ChoiceFieldColumn() tenant = TenantColumn() assigned_object = tables.Column(linkify=True, orderable=False, verbose_name='Interface') assigned_object_parent = tables.Column( accessor='assigned_object.parent_object', linkify=True, orderable=False, verbose_name='Device/VM') nat_inside = tables.Column(linkify=True, orderable=False, verbose_name='NAT (Inside)') assigned = BooleanColumn(accessor='assigned_object_id', linkify=True, verbose_name='Assigned') tags = TagColumn(url_name='ipam:ipaddress_list') class Meta(BaseTable.Meta): model = IPAddress fields = ( 'pk', 'id', 'address', 'vrf', 'status', 'role', 'tenant', 'nat_inside', 'assigned', 'dns_name', 'description', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'assigned', 'dns_name', 'description', ) row_attrs = { 'class': lambda record: 'success' if not isinstance(record, IPAddress) else '', }
class CableTable(BaseTable): pk = ToggleColumn() termination_a_parent = tables.TemplateColumn( template_code=CABLE_TERMINATION_PARENT, accessor=Accessor('termination_a'), orderable=False, verbose_name='Side A') termination_a = tables.Column(accessor=Accessor('termination_a'), orderable=False, linkify=True, verbose_name='Termination A') termination_b_parent = tables.TemplateColumn( template_code=CABLE_TERMINATION_PARENT, accessor=Accessor('termination_b'), orderable=False, verbose_name='Side B') termination_b = tables.Column(accessor=Accessor('termination_b'), orderable=False, linkify=True, verbose_name='Termination B') status = ChoiceFieldColumn() tenant = TenantColumn() length = TemplateColumn(template_code=CABLE_LENGTH, order_by=('_abs_length', 'length_unit')) color = ColorColumn() tags = TagColumn(url_name='dcim:cable_list') class Meta(BaseTable.Meta): model = Cable fields = ( 'pk', 'id', 'label', 'termination_a_parent', 'termination_a', 'termination_b_parent', 'termination_b', 'status', 'type', 'tenant', 'color', 'length', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'id', 'label', 'termination_a_parent', 'termination_a', 'termination_b_parent', 'termination_b', 'status', 'type', )
class AggregateTable(BaseTable): pk = ToggleColumn() prefix = tables.Column(linkify=True, verbose_name='Aggregate') tenant = TenantColumn() date_added = tables.DateColumn(format="Y-m-d", verbose_name='Added') class Meta(BaseTable.Meta): model = Aggregate fields = ('pk', 'prefix', 'rir', 'tenant', 'date_added', 'description')
class RackTable(BaseTable): pk = ToggleColumn() name = tables.Column( order_by=('_name',), linkify=True ) location = tables.Column( linkify=True ) site = tables.Column( linkify=True ) tenant = TenantColumn() status = ChoiceFieldColumn() role = ColoredLabelColumn() u_height = tables.TemplateColumn( template_code="{{ record.u_height }}U", verbose_name='Height' ) comments = MarkdownColumn() device_count = LinkedCountColumn( viewname='dcim:device_list', url_params={'rack_id': 'pk'}, verbose_name='Devices' ) get_utilization = UtilizationColumn( orderable=False, verbose_name='Space' ) get_power_utilization = UtilizationColumn( orderable=False, verbose_name='Power' ) tags = TagColumn( url_name='dcim:rack_list' ) outer_width = tables.TemplateColumn( template_code="{{ record.outer_width }} {{ record.outer_unit }}", verbose_name='Outer Width' ) outer_depth = tables.TemplateColumn( template_code="{{ record.outer_depth }} {{ record.outer_unit }}", verbose_name='Outer Depth' ) class Meta(BaseTable.Meta): model = Rack fields = ( 'pk', 'id', 'name', 'site', 'location', 'status', 'facility_id', 'tenant', 'role', 'serial', 'asset_tag', 'type', 'width', 'outer_width', 'outer_depth', 'u_height', 'comments', 'device_count', 'get_utilization', 'get_power_utilization', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'name', 'site', 'location', 'status', 'facility_id', 'tenant', 'role', 'u_height', 'device_count', 'get_utilization', )
class RouteTargetTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) tenant = TenantColumn() tags = TagColumn(url_name='ipam:vrf_list') class Meta(BaseTable.Meta): model = RouteTarget fields = ('pk', 'id', 'name', 'tenant', 'description', 'tags') default_columns = ('pk', 'name', 'tenant', 'description')
class VLANDetailTable(VLANTable): prefixes = tables.TemplateColumn(template_code=VLAN_PREFIXES, orderable=False, verbose_name='Prefixes') tenant = TenantColumn() tags = TagColumn(url_name='ipam:vlan_list') class Meta(VLANTable.Meta): fields = ('pk', 'vid', 'site', 'group', 'name', 'prefixes', 'tenant', 'status', 'role', 'description', 'tags') default_columns = ('pk', 'vid', 'site', 'group', 'name', 'prefixes', 'tenant', 'status', 'role', 'description')
class VirtualMachineTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) status = ChoiceFieldColumn() cluster = tables.Column(linkify=True) role = ColoredLabelColumn() tenant = TenantColumn() class Meta(BaseTable.Meta): model = VirtualMachine fields = ('pk', 'name', 'status', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk')
class InterfaceIPAddressTable(BaseTable): """ List IP addresses assigned to a specific Interface. """ address = tables.Column(linkify=True, verbose_name='IP Address') vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') status = ChoiceFieldColumn() tenant = TenantColumn() actions = ButtonsColumn(model=IPAddress) class Meta(BaseTable.Meta): model = IPAddress fields = ('address', 'vrf', 'status', 'role', 'tenant', 'description')
class DeviceImportTable(BaseTable): name = tables.TemplateColumn(template_code=DEVICE_LINK) status = ChoiceFieldColumn() tenant = TenantColumn() site = tables.Column(linkify=True) rack = tables.Column(linkify=True) device_role = tables.Column(verbose_name='Role') device_type = tables.Column(verbose_name='Type') class Meta(BaseTable.Meta): model = Device fields = ('name', 'status', 'tenant', 'site', 'rack', 'position', 'device_role', 'device_type') empty_text = False
class PrefixTable(BaseTable): pk = ToggleColumn() prefix = tables.TemplateColumn(template_code=PREFIX_LINK, attrs={'td': { 'class': 'text-nowrap' }}) prefix_flat = tables.Column(accessor=Accessor('prefix'), linkify=True, verbose_name='Prefix (Flat)') depth = tables.Column(accessor=Accessor('_depth'), verbose_name='Depth') children = LinkedCountColumn(accessor=Accessor('_children'), viewname='ipam:prefix_list', url_params={ 'vrf_id': 'vrf_id', 'within': 'prefix', }, verbose_name='Children') status = ChoiceFieldColumn(default=AVAILABLE_LABEL) vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') tenant = TenantColumn() site = tables.Column(linkify=True) vlan = tables.Column(linkify=True, verbose_name='VLAN') role = tables.TemplateColumn(template_code=PREFIX_ROLE_LINK) is_pool = BooleanColumn(verbose_name='Pool') mark_utilized = BooleanColumn(verbose_name='Marked Utilized') class Meta(BaseTable.Meta): model = Prefix fields = ( 'pk', 'prefix', 'prefix_flat', 'status', 'depth', 'children', 'vrf', 'tenant', 'site', 'vlan', 'role', 'is_pool', 'mark_utilized', 'description', ) default_columns = ('pk', 'prefix', 'status', 'vrf', 'tenant', 'site', 'vlan', 'role', 'description') row_attrs = { 'class': lambda record: 'success' if not record.pk else '', }
class VirtualMachineTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) status = ChoiceFieldColumn() cluster = tables.Column(linkify=True) role = ColoredLabelColumn() tenant = TenantColumn() comments = MarkdownColumn() primary_ip4 = tables.Column(linkify=True, verbose_name='IPv4 Address') primary_ip6 = tables.Column(linkify=True, verbose_name='IPv6 Address') primary_ip = tables.Column(linkify=True, order_by=PRIMARY_IP_ORDERING, verbose_name='IP Address') tags = TagColumn(url_name='virtualization:virtualmachine_list') class Meta(BaseTable.Meta): model = VirtualMachine fields = ( 'pk', 'id', 'name', 'status', 'cluster', 'role', 'tenant', 'platform', 'vcpus', 'memory', 'disk', 'primary_ip4', 'primary_ip6', 'primary_ip', 'comments', 'tags', ) default_columns = ( 'pk', 'name', 'status', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip', )
class VLANTable(BaseTable): pk = ToggleColumn() vid = tables.TemplateColumn(template_code=VLAN_LINK, verbose_name='ID') site = tables.Column(linkify=True) group = tables.Column(linkify=True) tenant = TenantColumn() status = ChoiceFieldColumn(default=AVAILABLE_LABEL) role = tables.TemplateColumn(template_code=VLAN_ROLE_LINK) class Meta(BaseTable.Meta): model = VLAN fields = ('pk', 'vid', 'site', 'group', 'name', 'tenant', 'status', 'role', 'description') row_attrs = { 'class': lambda record: 'success' if not isinstance(record, VLAN) else '', }
class IPRangeTable(BaseTable): pk = ToggleColumn() start_address = tables.Column(linkify=True) vrf = tables.TemplateColumn(template_code=VRF_LINK, verbose_name='VRF') status = ChoiceFieldColumn(default=AVAILABLE_LABEL) role = tables.Column(linkify=True) tenant = TenantColumn() utilization = UtilizationColumn(accessor='utilization', orderable=False) tags = TagColumn(url_name='ipam:iprange_list') class Meta(BaseTable.Meta): model = IPRange fields = ( 'pk', 'id', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description', 'utilization', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'start_address', 'end_address', 'size', 'vrf', 'status', 'role', 'tenant', 'description', ) row_attrs = { 'class': lambda record: 'success' if not record.pk else '', }
class VLANTable(BaseTable): pk = ToggleColumn() vid = tables.TemplateColumn( template_code=VLAN_LINK, verbose_name='VID' ) name = tables.Column( linkify=True ) site = tables.Column( linkify=True ) group = tables.Column( linkify=True ) tenant = TenantColumn() status = ChoiceFieldColumn( default=AVAILABLE_LABEL ) role = tables.Column( linkify=True ) prefixes = TemplateColumn( template_code=VLAN_PREFIXES, orderable=False, verbose_name='Prefixes' ) tags = TagColumn( url_name='ipam:vlan_list' ) class Meta(BaseTable.Meta): model = VLAN fields = ( 'pk', 'id', 'vid', 'name', 'site', 'group', 'prefixes', 'tenant', 'status', 'role', 'description', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'vid', 'name', 'site', 'group', 'prefixes', 'tenant', 'status', 'role', 'description') row_attrs = { 'class': lambda record: 'success' if not isinstance(record, VLAN) else '', }
class DeviceTable(BaseTable): pk = ToggleColumn() name = tables.TemplateColumn(order_by=('_name', ), template_code=DEVICE_LINK) status = ChoiceFieldColumn() tenant = TenantColumn() site = tables.Column(linkify=True) location = tables.Column(linkify=True) rack = tables.Column(linkify=True) device_role = ColoredLabelColumn(verbose_name='Role') manufacturer = tables.Column( accessor=Accessor('device_type__manufacturer'), linkify=True) device_type = tables.Column(linkify=True, verbose_name='Type') if settings.PREFER_IPV4: primary_ip = tables.Column(linkify=True, order_by=('primary_ip4', 'primary_ip6'), verbose_name='IP Address') else: primary_ip = tables.Column(linkify=True, order_by=('primary_ip6', 'primary_ip4'), verbose_name='IP Address') primary_ip4 = tables.Column(linkify=True, verbose_name='IPv4 Address') primary_ip6 = tables.Column(linkify=True, verbose_name='IPv6 Address') cluster = tables.Column(linkify=True) virtual_chassis = tables.Column(linkify=True) vc_position = tables.Column(verbose_name='VC Position') vc_priority = tables.Column(verbose_name='VC Priority') comments = MarkdownColumn() tags = TagColumn(url_name='dcim:device_list') class Meta(BaseTable.Meta): model = Device fields = ( 'pk', 'name', 'status', 'tenant', 'device_role', 'manufacturer', 'device_type', 'platform', 'serial', 'asset_tag', 'site', 'location', 'rack', 'position', 'face', 'primary_ip', 'primary_ip4', 'primary_ip6', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', 'comments', 'tags', ) default_columns = ( 'pk', 'name', 'status', 'tenant', 'site', 'location', 'rack', 'device_role', 'manufacturer', 'device_type', 'primary_ip', )