class DeviceConsoleServerPortTable(ConsoleServerPortTable): name = tables.TemplateColumn( template_code='<i class="mdi mdi-console-network-outline"></i> ' '<a href="{{ record.get_absolute_url }}">{{ value }}</a>', order_by=Accessor('_name'), attrs={'td': { 'class': 'text-nowrap' }}) actions = ButtonsColumn(model=ConsoleServerPort, buttons=('edit', 'delete'), prepend_template=CONSOLESERVERPORT_BUTTONS) class Meta(DeviceComponentTable.Meta): model = ConsoleServerPort fields = ( 'pk', 'name', 'label', 'type', 'speed', 'description', 'mark_connected', 'cable', 'cable_color', 'cable_peer', 'connection', 'tags', 'actions', ) default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions') row_attrs = {'class': get_cabletermination_row_class}
class DeviceDeviceBayTable(DeviceBayTable): name = tables.TemplateColumn( template_code= '<i class="mdi mdi-circle{% if record.installed_device %}slice-8{% else %}outline{% endif %}' '"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>', order_by=Accessor('_name'), attrs={'td': { 'class': 'text-nowrap' }}) actions = ButtonsColumn(model=DeviceBay, buttons=('edit', 'delete'), prepend_template=DEVICEBAY_BUTTONS) class Meta(DeviceComponentTable.Meta): model = DeviceBay fields = ( 'pk', 'name', 'label', 'status', 'installed_device', 'description', 'tags', 'actions', ) default_columns = ( 'pk', 'name', 'label', 'status', 'installed_device', 'description', 'actions', )
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 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 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 VirtualMachineVMInterfaceTable(VMInterfaceTable): actions = ButtonsColumn(model=VMInterface, buttons=('edit', 'delete'), prepend_template=VMINTERFACE_BUTTONS) class Meta(BaseTable.Meta): model = VMInterface fields = ( 'pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', 'actions', ) default_columns = ( 'pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'ip_addresses', 'actions', ) row_attrs = { 'data-name': lambda record: record.name, }
class ManufacturerTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) devicetype_count = tables.Column( verbose_name='Device Types' ) inventoryitem_count = tables.Column( verbose_name='Inventory Items' ) platform_count = tables.Column( verbose_name='Platforms' ) slug = tables.Column() tags = TagColumn( url_name='dcim:manufacturer_list' ) actions = ButtonsColumn(Manufacturer) class Meta(BaseTable.Meta): model = Manufacturer fields = ( 'pk', 'id', 'name', 'devicetype_count', 'inventoryitem_count', 'platform_count', 'description', 'slug', 'actions', 'created', 'last_updated', ) default_columns = ( 'pk', 'name', 'devicetype_count', 'inventoryitem_count', 'platform_count', 'description', 'slug', '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 VLANDevicesTable(VLANMembersTable): device = tables.Column(linkify=True) actions = ButtonsColumn(Interface, buttons=['edit']) class Meta(BaseTable.Meta): model = Interface fields = ('device', 'name', 'tagged', 'actions')
class DeviceInterfaceTable(InterfaceTable): name = tables.TemplateColumn( template_code='<i class="mdi mdi-{% if iface.mgmt_only %}wrench{% elif iface.is_lag %}drag-horizontal-variant' '{% elif iface.is_virtual %}circle{% elif iface.is_wireless %}wifi{% else %}ethernet' '{% endif %}"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>', attrs={'td': {'class': 'text-nowrap'}} ) lag = tables.Column( linkify=True, verbose_name='LAG' ) actions = ButtonsColumn( model=Interface, buttons=('edit', 'delete'), prepend_template=INTERFACE_BUTTONS ) class Meta(DeviceComponentTable.Meta): model = Interface fields = ( 'pk', 'name', 'label', 'enabled', 'type', 'lag', 'mgmt_only', 'mtu', 'mode', 'mac_address', 'description', 'cable', 'cable_peer', 'connection', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', 'actions', ) default_columns = ( 'pk', 'name', 'label', 'enabled', 'type', 'lag', 'mtu', 'mode', 'description', 'ip_addresses', 'cable', 'connection', 'actions', ) row_attrs = { 'class': lambda record: record.cable.get_status_class() if record.cable else '', 'data-name': lambda record: record.name, }
class DeviceFrontPortTable(FrontPortTable): name = tables.TemplateColumn( template_code='<i class="mdi mdi-square-rounded{% if not record.cable %}-outline{% endif %}"></i> ' '<a href="{{ record.get_absolute_url }}">{{ value }}</a>', attrs={'td': {'class': 'text-nowrap'}} ) actions = ButtonsColumn( model=FrontPort, buttons=('edit', 'delete'), prepend_template=FRONTPORT_BUTTONS ) class Meta(DeviceComponentTable.Meta): model = FrontPort fields = ( 'pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'cable', 'cable_peer', 'tags', 'actions', ) default_columns = ( 'pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'cable', 'cable_peer', 'actions', ) row_attrs = { 'class': lambda record: record.cable.get_status_class() if record.cable else '' }
class DevicePowerPortTable(PowerPortTable): name = tables.TemplateColumn( template_code='<i class="mdi mdi-power-plug-outline"></i> <a href="{{ record.get_absolute_url }}">' '{{ value }}</a>', attrs={'td': {'class': 'text-nowrap'}} ) actions = ButtonsColumn( model=PowerPort, buttons=('edit', 'delete'), prepend_template=POWERPORT_BUTTONS ) class Meta(DeviceComponentTable.Meta): model = PowerPort fields = ( 'pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'cable', 'cable_peer', 'connection', 'tags', 'actions', ) default_columns = ( 'pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'cable', 'connection', 'actions', ) row_attrs = { 'class': lambda record: record.cable.get_status_class() if record.cable else '' }
class DeviceRearPortTable(RearPortTable): name = tables.TemplateColumn( template_code='<i class="mdi mdi-square-rounded{% if not record.cable %}-outline{% endif %}"></i> ' '<a href="{{ record.get_absolute_url }}">{{ value }}</a>', order_by=Accessor('_name'), attrs={'td': {'class': 'text-nowrap'}} ) actions = ButtonsColumn( model=RearPort, buttons=('edit', 'delete'), prepend_template=REARPORT_BUTTONS ) class Meta(DeviceComponentTable.Meta): model = RearPort fields = ( 'pk', 'id', 'name', 'label', 'type', 'positions', 'description', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags', 'actions', ) default_columns = ( 'pk', 'name', 'label', 'type', 'positions', 'description', 'cable', 'link_peer', 'actions', ) row_attrs = { 'class': get_cabletermination_row_class }
class VLANGroupTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) scope_type = ContentTypeColumn() scope = tables.Column( linkify=True, orderable=False ) vlan_count = LinkedCountColumn( viewname='ipam:vlan_list', url_params={'group_id': 'pk'}, verbose_name='VLANs' ) tags = TagColumn( url_name='ipam:vlangroup_list' ) actions = ButtonsColumn( model=VLANGroup, prepend_template=VLANGROUP_ADD_VLAN ) class Meta(BaseTable.Meta): model = VLANGroup fields = ( 'pk', 'id', 'name', 'scope_type', 'scope', 'vlan_count', 'slug', 'description', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'scope_type', 'scope', 'vlan_count', 'description', 'actions')
class PlatformTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) device_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'platform_id': 'pk'}, verbose_name='Devices') vm_count = LinkedCountColumn(viewname='virtualization:virtualmachine_list', url_params={'platform_id': 'pk'}, verbose_name='VMs') actions = ButtonsColumn(Platform) class Meta(BaseTable.Meta): model = Platform fields = ( 'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'slug', 'napalm_driver', 'napalm_args', 'description', 'actions', ) default_columns = ( 'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'napalm_driver', 'description', 'actions', )
class LocationTable(BaseTable): pk = ToggleColumn() name = MPTTColumn( linkify=True ) site = tables.Column( linkify=True ) 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' ) actions = ButtonsColumn( model=Location, prepend_template=LOCATION_ELEVATIONS ) class Meta(BaseTable.Meta): model = Location fields = ('pk', 'name', 'site', 'rack_count', 'device_count', 'description', 'slug', 'actions') default_columns = ('pk', 'name', 'site', 'rack_count', 'device_count', 'description', 'actions')
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 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 PlatformTable(BaseTable): pk = ToggleColumn() device_count = tables.TemplateColumn(template_code=PLATFORM_DEVICE_COUNT, verbose_name='Devices') vm_count = tables.TemplateColumn(template_code=PLATFORM_VM_COUNT, verbose_name='VMs') actions = ButtonsColumn(Platform, pk_field='slug') class Meta(BaseTable.Meta): model = Platform fields = ( 'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'slug', 'napalm_driver', 'napalm_args', 'description', 'actions', ) default_columns = ( 'pk', 'name', 'manufacturer', 'device_count', 'vm_count', 'napalm_driver', 'description', 'actions', )
class VLANVirtualMachinesTable(VLANMembersTable): virtual_machine = tables.Column(linkify=True) actions = ButtonsColumn(VMInterface, buttons=['edit']) class Meta(BaseTable.Meta): model = VMInterface fields = ('virtual_machine', 'name', 'tagged', 'actions')
class DeviceBayTemplateTable(ComponentTemplateTable): actions = ButtonsColumn(model=DeviceBayTemplate, buttons=('edit', 'delete')) class Meta(BaseTable.Meta): model = DeviceBayTemplate fields = ('pk', 'name', 'label', 'description', 'actions') empty_text = "None"
class ConsoleServerPortTemplateTable(ComponentTemplateTable): actions = ButtonsColumn(model=ConsoleServerPortTemplate, buttons=('edit', 'delete')) class Meta(ComponentTemplateTable.Meta): model = ConsoleServerPortTemplate fields = ('pk', 'name', 'label', 'type', 'description', 'actions') empty_text = "None"
class PowerPortTemplateTable(ComponentTemplateTable): actions = ButtonsColumn(model=PowerPortTemplate, buttons=('edit', 'delete')) class Meta(BaseTable.Meta): model = PowerPortTemplate fields = ('pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'actions') empty_text = "None"
class TagTable(BaseTable): pk = ToggleColumn() color = ColorColumn() actions = ButtonsColumn(Tag, pk_field='slug') class Meta(BaseTable.Meta): model = Tag fields = ('pk', 'name', 'items', 'slug', 'color', 'description', 'actions')
class DeviceBayTemplateTable(ComponentTemplateTable): actions = ButtonsColumn(model=DeviceBayTemplate, buttons=('edit', 'delete'), return_url_extra='%23tab_devicebays') class Meta(ComponentTemplateTable.Meta): model = DeviceBayTemplate fields = ('pk', 'name', 'label', 'description', 'actions') empty_text = "None"
class RearPortTemplateTable(ComponentTemplateTable): color = ColorColumn() actions = ButtonsColumn(model=RearPortTemplate, buttons=('edit', 'delete')) class Meta(ComponentTemplateTable.Meta): model = RearPortTemplate fields = ('pk', 'name', 'label', 'type', 'color', 'positions', 'description', 'actions') empty_text = "None"
class PowerOutletTemplateTable(ComponentTemplateTable): actions = ButtonsColumn(model=PowerOutletTemplate, buttons=('edit', 'delete')) class Meta(BaseTable.Meta): model = PowerOutletTemplate fields = ('pk', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'actions') empty_text = "None"
class ConsoleServerPortTemplateTable(ComponentTemplateTable): actions = ButtonsColumn(model=ConsoleServerPortTemplate, buttons=('edit', 'delete'), return_url_extra='%23tab_consoleserverports') class Meta(BaseTable.Meta): model = ConsoleServerPortTemplate fields = ('pk', 'name', 'label', 'type', 'description', 'actions') empty_text = "None"
class InterfaceTemplateTable(ComponentTemplateTable): mgmt_only = BooleanColumn(verbose_name='Management Only') actions = ButtonsColumn(model=InterfaceTemplate, buttons=('edit', 'delete')) class Meta(BaseTable.Meta): model = InterfaceTemplate fields = ('pk', 'name', 'label', 'mgmt_only', 'type', 'description', 'actions') empty_text = "None"
class FrontPortTemplateTable(ComponentTemplateTable): rear_port_position = tables.Column(verbose_name='Position') actions = ButtonsColumn(model=FrontPortTemplate, buttons=('edit', 'delete')) class Meta(BaseTable.Meta): model = FrontPortTemplate fields = ('pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'actions') empty_text = "None"