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') 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', 'vlan_count', 'description', 'weight', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'prefix_count', '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 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 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 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 RoleTable(BaseTable): pk = ToggleColumn() prefix_count = LinkedCountColumn(viewname='ipam:prefix_list', url_params={'role': 'slug'}, verbose_name='Prefixes') vlan_count = LinkedCountColumn(viewname='ipam:vlan_list', url_params={'role': 'slug'}, verbose_name='VLANs') actions = ButtonsColumn(Role, pk_field='slug') class Meta(BaseTable.Meta): model = Role fields = ('pk', 'name', 'slug', 'prefix_count', 'vlan_count', 'description', 'weight', 'actions') default_columns = ('pk', 'name', 'prefix_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 DeviceTypeTable(BaseTable): pk = ToggleColumn() model = tables.Column( linkify=True, verbose_name='Device Type' ) manufacturer = tables.Column( linkify=True ) is_full_depth = BooleanColumn( verbose_name='Full Depth' ) instance_count = LinkedCountColumn( viewname='dcim:device_list', url_params={'device_type_id': 'pk'}, verbose_name='Instances' ) comments = MarkdownColumn() tags = TagColumn( url_name='dcim:devicetype_list' ) class Meta(BaseTable.Meta): model = DeviceType fields = ( 'pk', 'id', 'model', 'manufacturer', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', 'airflow', 'comments', 'instance_count', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'model', 'manufacturer', 'part_number', 'u_height', 'is_full_depth', 'instance_count', )
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 DeviceRoleTable(BaseTable): pk = ToggleColumn() device_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'role': 'slug'}, verbose_name='Devices') vm_count = LinkedCountColumn(viewname='virtualization:virtualmachine_list', url_params={'role': 'slug'}, verbose_name='VMs') color = ColorColumn() vm_role = BooleanColumn() actions = ButtonsColumn(DeviceRole, pk_field='slug') class Meta(BaseTable.Meta): model = DeviceRole fields = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', 'description', 'slug', 'actions') default_columns = ('pk', 'name', 'device_count', 'vm_count', 'color', 'vm_role', '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' ) 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 ClusterTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) tenant = tables.Column(linkify=True) site = tables.Column(linkify=True) device_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'cluster_id': 'pk'}, verbose_name='Devices') vm_count = LinkedCountColumn(viewname='virtualization:virtualmachine_list', url_params={'cluster_id': 'pk'}, verbose_name='VMs') tags = TagColumn(url_name='virtualization:cluster_list') class Meta(BaseTable.Meta): model = Cluster fields = ('pk', 'name', 'type', 'group', 'tenant', 'site', 'device_count', 'vm_count', 'tags') default_columns = ('pk', 'name', 'type', 'group', 'tenant', 'site', 'device_count', 'vm_count')
class PowerPanelTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) site = tables.Column(linkify=True) powerfeed_count = LinkedCountColumn(viewname='dcim:powerfeed_list', url_params={'power_panel_id': 'pk'}, verbose_name='Feeds') tags = TagColumn(url_name='dcim:powerpanel_list') class Meta(BaseTable.Meta): model = PowerPanel fields = ('pk', 'name', 'site', 'location', 'powerfeed_count', 'tags') default_columns = ('pk', 'name', 'site', 'location', 'powerfeed_count')
class VirtualChassisTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) master = tables.Column(linkify=True) member_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'virtual_chassis_id': 'pk'}, verbose_name='Members') tags = TagColumn(url_name='dcim:virtualchassis_list') class Meta(BaseTable.Meta): model = VirtualChassis fields = ('pk', 'name', 'domain', 'master', 'member_count', 'tags') default_columns = ('pk', 'name', 'domain', 'master', 'member_count')
class SiteGroupTable(BaseTable): pk = ToggleColumn() name = MPTTColumn(linkify=True) site_count = LinkedCountColumn(viewname='dcim:site_list', url_params={'group_id': 'pk'}, verbose_name='Sites') actions = ButtonsColumn(SiteGroup) class Meta(BaseTable.Meta): model = SiteGroup fields = ('pk', 'name', 'slug', 'site_count', 'description', 'actions') default_columns = ('pk', 'name', 'site_count', 'description', 'actions')
class SecretRoleTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) secret_count = LinkedCountColumn(viewname='secrets:secret_list', url_params={'role_id': 'pk'}, verbose_name='Secrets') actions = ButtonsColumn(SecretRole) class Meta(BaseTable.Meta): model = SecretRole fields = ('pk', 'name', 'secret_count', 'description', 'slug', 'actions') default_columns = ('pk', 'name', 'secret_count', 'description', 'actions')
class TenantGroupTable(BaseTable): pk = ToggleColumn() name = tables.TemplateColumn(template_code=MPTT_LINK, orderable=False) tenant_count = LinkedCountColumn(viewname='tenancy:tenant_list', url_params={'group': 'slug'}, verbose_name='Tenants') actions = ButtonsColumn(TenantGroup, pk_field='slug') class Meta(BaseTable.Meta): model = TenantGroup fields = ('pk', 'name', 'tenant_count', 'description', 'slug', 'actions') default_columns = ('pk', 'name', 'tenant_count', 'description', 'actions')
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 RIRTable(BaseTable): pk = ToggleColumn() name = tables.LinkColumn() is_private = BooleanColumn(verbose_name='Private') aggregate_count = LinkedCountColumn(viewname='ipam:aggregate_list', url_params={'rir': 'slug'}, verbose_name='Aggregates') actions = ButtonsColumn(RIR, pk_field='slug') class Meta(BaseTable.Meta): model = RIR fields = ('pk', 'name', 'slug', 'is_private', 'aggregate_count', 'description', 'actions') default_columns = ('pk', 'name', 'is_private', 'aggregate_count', 'description', 'actions')
class RegionTable(BaseTable): pk = ToggleColumn() name = MPTTColumn(linkify=True) site_count = LinkedCountColumn(viewname='dcim:site_list', url_params={'region_id': 'pk'}, verbose_name='Sites') tags = TagColumn(url_name='dcim:region_list') actions = ButtonsColumn(Region) class Meta(BaseTable.Meta): model = Region fields = ('pk', 'id', 'name', 'slug', 'site_count', 'description', 'tags', 'actions', 'created', 'last_updated') default_columns = ('pk', 'name', 'site_count', 'description', 'actions')
class PowerPanelTable(BaseTable): pk = ToggleColumn() name = tables.LinkColumn() site = tables.LinkColumn(viewname='dcim:site', args=[Accessor('site__slug')]) powerfeed_count = LinkedCountColumn(viewname='dcim:powerfeed_list', url_params={'power_panel_id': 'pk'}, verbose_name='Feeds') tags = TagColumn(url_name='dcim:powerpanel_list') class Meta(BaseTable.Meta): model = PowerPanel fields = ('pk', 'name', 'site', 'rack_group', 'powerfeed_count', 'tags') default_columns = ('pk', 'name', 'site', 'rack_group', 'powerfeed_count')
class VLANGroupTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) site = tables.LinkColumn(viewname='dcim:site', args=[Accessor('site__slug')]) vlan_count = LinkedCountColumn(viewname='ipam:vlan_list', url_params={'group': 'slug'}, verbose_name='VLANs') actions = ButtonsColumn(model=VLANGroup, prepend_template=VLANGROUP_ADD_VLAN) class Meta(BaseTable.Meta): model = VLANGroup fields = ('pk', 'name', 'site', 'vlan_count', 'slug', 'description', 'actions') default_columns = ('pk', 'name', 'site', 'vlan_count', 'description', 'actions')
class RackDetailTable(RackTable): device_count = LinkedCountColumn(viewname='dcim:device_list', url_params={'rack_id': 'pk'}, verbose_name='Devices') get_utilization = tables.TemplateColumn(template_code=UTILIZATION_GRAPH, orderable=False, verbose_name='Space') get_power_utilization = tables.TemplateColumn( template_code=UTILIZATION_GRAPH, orderable=False, verbose_name='Power') tags = TagColumn(url_name='dcim:rack_list') class Meta(RackTable.Meta): fields = ( 'pk', 'name', 'site', 'group', 'status', 'facility_id', 'tenant', 'role', 'serial', 'asset_tag', 'type', 'width', 'u_height', 'device_count', 'get_utilization', 'get_power_utilization', 'tags', ) default_columns = ( 'pk', 'name', 'site', 'group', 'status', 'facility_id', 'tenant', 'role', 'u_height', 'device_count', 'get_utilization', 'get_power_utilization', )
class WirelessLANGroupTable(BaseTable): pk = ToggleColumn() name = MPTTColumn( linkify=True ) wirelesslan_count = LinkedCountColumn( viewname='wireless:wirelesslan_list', url_params={'group_id': 'pk'}, verbose_name='Wireless LANs' ) tags = TagColumn( url_name='wireless:wirelesslangroup_list' ) actions = ButtonsColumn(WirelessLANGroup) class Meta(BaseTable.Meta): model = WirelessLANGroup fields = ( 'pk', 'name', 'wirelesslan_count', 'description', 'slug', 'tags', 'actions', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'wirelesslan_count', 'description', 'actions')