class DeviceRoleTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) device_count = LinkedCountColumn( viewname='dcim:device_list', url_params={'role_id': 'pk'}, verbose_name='Devices' ) vm_count = LinkedCountColumn( viewname='virtualization:virtualmachine_list', url_params={'role_id': 'pk'}, verbose_name='VMs' ) color = ColorColumn() vm_role = BooleanColumn() tags = TagColumn( url_name='dcim:devicerole_list' ) actions = ButtonsColumn(DeviceRole) class Meta(BaseTable.Meta): model = DeviceRole fields = ( 'pk', 'id', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'slug', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'actions')
class FrontPortTable(DeviceComponentTable, CableTerminationTable): device = tables.Column(linkify={ 'viewname': 'dcim:device_frontports', 'args': [Accessor('device_id')], }) rear_port_position = tables.Column(verbose_name='Position') rear_port = tables.Column(linkify=True) tags = TagColumn(url_name='dcim:frontport_list') class Meta(DeviceComponentTable.Meta): model = FrontPort fields = ( 'pk', 'device', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'mark_connected', 'cable', 'cable_color', 'cable_peer', 'tags', ) default_columns = ('pk', 'device', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description')
class InventoryItemTable(DeviceComponentTable): device = tables.Column(linkify={ 'viewname': 'dcim:device_inventory', 'args': [Accessor('device_id')], }) manufacturer = tables.Column(linkify=True) discovered = BooleanColumn() tags = TagColumn(url_name='dcim:inventoryitem_list') cable = None # Override DeviceComponentTable class Meta(BaseTable.Meta): model = InventoryItem fields = ( 'pk', 'device', 'name', 'label', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description', 'discovered', 'tags', ) default_columns = ('pk', 'device', 'name', 'label', 'manufacturer', 'part_id', 'serial', 'asset_tag')
class VMInterfaceTable(BaseInterfaceTable): pk = ToggleColumn() virtual_machine = tables.Column(linkify=True) name = tables.Column(linkify=True) parent = tables.Column(linkify=True) tags = TagColumn(url_name='virtualization:vminterface_list') class Meta(BaseTable.Meta): model = VMInterface fields = ( 'pk', 'name', 'virtual_machine', 'enabled', 'parent', 'mac_address', 'mtu', 'mode', 'description', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', ) default_columns = ('pk', 'name', 'virtual_machine', 'enabled', 'parent', 'description')
class PowerOutletTable(DeviceComponentTable, PathEndpointTable): device = tables.Column(linkify={ 'viewname': 'dcim:device_poweroutlets', 'args': [Accessor('device_id')], }) power_port = tables.Column(linkify=True) tags = TagColumn(url_name='dcim:poweroutlet_list') class Meta(DeviceComponentTable.Meta): model = PowerOutlet fields = ( 'pk', 'device', 'name', 'label', 'type', 'description', 'power_port', 'feed_leg', 'mark_connected', 'cable', 'cable_color', 'cable_peer', 'connection', 'tags', ) default_columns = ('pk', 'device', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description')
class PrefixDetailTable(PrefixTable): utilization = tables.TemplateColumn(template_code=UTILIZATION_GRAPH, orderable=False) tenant = tables.TemplateColumn(template_code=COL_TENANT) 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 DeviceTypeTable(BaseTable): pk = ToggleColumn() model = tables.Column(linkify=True, verbose_name='Device Type') is_full_depth = BooleanColumn(verbose_name='Full Depth') instance_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'device_type_id': 'pk'}, verbose_name='Instances') tags = TagColumn(url_name='dcim:devicetype_list') class Meta(BaseTable.Meta): model = DeviceType fields = ( 'pk', 'model', 'manufacturer', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', 'instance_count', 'tags', ) default_columns = ( 'pk', 'model', 'manufacturer', 'part_number', 'u_height', 'is_full_depth', 'instance_count', )
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.LinkColumn(viewname='ipam:ipaddress', args=[Accessor('nat_inside.pk')], orderable=False, verbose_name='NAT (Inside)') tenant = tables.TemplateColumn(template_code=COL_TENANT) tags = TagColumn(url_name='ipam:ipaddress_list') class Meta(IPAddressTable.Meta): fields = ( 'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'nat_inside', 'parent', 'interface', 'dns_name', 'description', 'tags', ) default_columns = ( 'pk', 'address', 'vrf', 'status', 'role', 'tenant', 'parent', 'interface', 'dns_name', 'description', )
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 TenantGroupTable(BaseTable): pk = ToggleColumn() name = MPTTColumn(linkify=True) tenant_count = LinkedCountColumn(viewname='tenancy:tenant_list', url_params={'group_id': 'pk'}, verbose_name='Tenants') tags = TagColumn(url_name='tenancy:tenantgroup_list') actions = ButtonsColumn(TenantGroup) class Meta(BaseTable.Meta): model = TenantGroup fields = ( 'pk', 'id', 'name', 'tenant_count', 'description', 'slug', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'tenant_count', 'description', 'actions')
class ContactTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) group = tables.Column(linkify=True) phone = tables.Column(linkify=linkify_phone, ) comments = MarkdownColumn() assignment_count = tables.Column(verbose_name='Assignments') tags = TagColumn(url_name='tenancy:tenant_list') class Meta(BaseTable.Meta): model = Contact fields = ( 'pk', 'name', 'group', 'title', 'phone', 'email', 'address', 'comments', 'assignment_count', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'group', 'assignment_count', 'title', 'phone', 'email')
class ServiceTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) parent = tables.Column(linkify=True, order_by=('device', 'virtual_machine')) ports = tables.TemplateColumn(template_code='{{ record.port_list }}', verbose_name='Ports') tags = TagColumn(url_name='ipam:service_list') class Meta(BaseTable.Meta): model = Service fields = ( 'pk', 'id', 'name', 'parent', 'protocol', 'ports', 'ipaddresses', 'description', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'parent', 'protocol', 'ports', 'description')
class DeviceTypeTable(BaseTable): pk = ToggleColumn() model = tables.Column(linkify=True, verbose_name='Device Type') is_full_depth = BooleanColumn(verbose_name='Full Depth') instance_count = tables.TemplateColumn( template_code=DEVICETYPE_INSTANCES_TEMPLATE, verbose_name='Instances') tags = TagColumn(url_name='dcim:devicetype_list') class Meta(BaseTable.Meta): model = DeviceType fields = ( 'pk', 'model', 'manufacturer', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', 'instance_count', 'tags', ) default_columns = ( 'pk', 'model', 'manufacturer', 'part_number', 'u_height', 'is_full_depth', 'instance_count', )
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.LinkColumn() rd = tables.Column(verbose_name='RD') tenant = tables.TemplateColumn(template_code=COL_TENANT) enforce_unique = BooleanColumn(verbose_name='Unique') import_targets = tables.TemplateColumn(template_code=VRF_TARGETS, orderable=False) export_targets = tables.TemplateColumn(template_code=VRF_TARGETS, orderable=False) tags = TagColumn(url_name='ipam:vrf_list') class Meta(BaseTable.Meta): model = VRF fields = ( 'pk', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tags', ) default_columns = ('pk', 'name', 'rd', 'tenant', 'description')
class RoleTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) prefix_count = LinkedCountColumn( viewname='ipam:prefix_list', url_params={'role_id': 'pk'}, verbose_name='Prefixes' ) iprange_count = LinkedCountColumn( viewname='ipam:iprange_list', url_params={'role_id': 'pk'}, verbose_name='IP Ranges' ) vlan_count = LinkedCountColumn( viewname='ipam:vlan_list', url_params={'role_id': 'pk'}, verbose_name='VLANs' ) tags = TagColumn( url_name='ipam:role_list' ) actions = ButtonsColumn(Role) class Meta(BaseTable.Meta): model = Role fields = ( 'pk', 'id', 'name', 'slug', 'prefix_count', 'iprange_count', 'vlan_count', 'description', 'weight', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'prefix_count', 'iprange_count', 'vlan_count', 'description', 'actions')
class IPAddressDetailTable(IPAddressTable): nat_inside = tables.Column(linkify=True, orderable=False, verbose_name='NAT (Inside)') tenant = tables.TemplateColumn(template_code=COL_TENANT) 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 RIRTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) is_private = BooleanColumn( verbose_name='Private' ) aggregate_count = LinkedCountColumn( viewname='ipam:aggregate_list', url_params={'rir_id': 'pk'}, verbose_name='Aggregates' ) tags = TagColumn( url_name='ipam:rir_list' ) actions = ButtonsColumn(RIR) class Meta(BaseTable.Meta): model = RIR fields = ( 'pk', 'id', 'name', 'slug', 'is_private', 'aggregate_count', 'description', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'is_private', 'aggregate_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' ) 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', ) default_columns = ( 'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'description', )
class InterfaceTable(DeviceComponentTable, BaseInterfaceTable): tags = TagColumn(url_name='dcim:interface_list') class Meta(DeviceComponentTable.Meta): model = Interface fields = ( 'pk', 'device', 'name', 'label', 'enabled', 'type', 'mgmt_only', 'mtu', 'mode', 'mac_address', 'description', 'cable', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', ) default_columns = ('pk', 'device', 'name', 'label', 'enabled', 'type', 'description')
class PowerPortTable(DeviceComponentTable, PathEndpointTable): device = tables.Column(linkify={ 'viewname': 'dcim:device_powerports', 'args': [Accessor('device_id')], }) tags = TagColumn(url_name='dcim:powerport_list') class Meta(DeviceComponentTable.Meta): model = PowerPort fields = ( 'pk', 'device', 'name', 'label', 'type', 'description', 'mark_connected', 'maximum_draw', 'allocated_draw', 'cable', 'cable_color', 'cable_peer', 'connection', 'tags', ) default_columns = ('pk', 'device', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
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 InterfaceTable(DeviceComponentTable, BaseInterfaceTable, PathEndpointTable): device = tables.Column(linkify={ 'viewname': 'dcim:device_interfaces', 'args': [Accessor('device_id')], }) mgmt_only = BooleanColumn() tags = TagColumn(url_name='dcim:interface_list') class Meta(DeviceComponentTable.Meta): model = Interface fields = ( 'pk', 'device', 'name', 'label', 'enabled', 'type', 'mgmt_only', 'mtu', 'mode', 'mac_address', 'description', 'mark_connected', 'cable', 'cable_color', 'cable_peer', 'connection', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', ) default_columns = ('pk', 'device', 'name', 'label', 'enabled', 'type', 'description')
class SiteTable(BaseTable): pk = ToggleColumn() name = tables.LinkColumn(order_by=('_name', )) status = tables.TemplateColumn(template_code=STATUS_LABEL) region = tables.TemplateColumn(template_code=SITE_REGION_LINK) tenant = tables.TemplateColumn(template_code=COL_TENANT) tags = TagColumn(url_name='dcim:site_list') class Meta(BaseTable.Meta): model = Site fields = ( 'pk', 'name', 'slug', 'status', 'facility', 'region', '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', 'tenant', 'asn', 'description')
class RearPortTable(DeviceComponentTable, CableTerminationTable): device = tables.Column(linkify={ 'viewname': 'dcim:device_rearports', 'args': [Accessor('device_id')], }) tags = TagColumn(url_name='dcim:rearport_list') class Meta(DeviceComponentTable.Meta): model = RearPort fields = ( 'pk', 'device', 'name', 'label', 'type', 'positions', 'description', 'mark_connected', 'cable', 'cable_color', 'cable_peer', 'tags', ) default_columns = ('pk', 'device', 'name', 'label', 'type', 'description')
class RackReservationTable(BaseTable): pk = ToggleColumn() reservation = tables.Column(accessor='pk', linkify=True) site = tables.Column(accessor=Accessor('rack__site'), linkify=True) tenant = tables.TemplateColumn(template_code=COL_TENANT) 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 CircuitTable(BaseTable): pk = ToggleColumn() cid = tables.LinkColumn(verbose_name='ID') provider = tables.LinkColumn(viewname='circuits:provider', args=[Accessor('provider.slug')]) status = tables.TemplateColumn(template_code=STATUS_LABEL) tenant = tables.TemplateColumn(template_code=COL_TENANT) a_side = tables.Column(verbose_name='A Side') z_side = tables.Column(verbose_name='Z Side') tags = TagColumn(url_name='circuits:circuit_list') class Meta(BaseTable.Meta): model = Circuit fields = ( 'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'a_side', 'z_side', 'install_date', 'commit_rate', 'description', 'tags', ) default_columns = ('pk', 'cid', 'provider', 'type', 'status', 'tenant', 'a_side', 'z_side', 'description')
class DeviceBayTable(DeviceComponentTable): device = tables.Column( linkify={ 'viewname': 'dcim:device_devicebays', 'args': [Accessor('device_id')], } ) status = tables.TemplateColumn( template_code=DEVICEBAY_STATUS, order_by=Accessor('installed_device__status') ) installed_device = tables.Column( linkify=True ) tags = TagColumn( url_name='dcim:devicebay_list' ) class Meta(DeviceComponentTable.Meta): model = DeviceBay fields = ( 'pk', 'id', 'name', 'device', 'label', 'status', 'installed_device', 'description', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device', 'label', 'status', 'installed_device', 'description')