class FHRPGroupTable(BaseTable): pk = ToggleColumn() group_id = tables.Column(linkify=True) comments = MarkdownColumn() ip_addresses = tables.TemplateColumn(template_code=IPADDRESSES, orderable=False, verbose_name='IP Addresses') interface_count = tables.Column(verbose_name='Interfaces') tags = TagColumn(url_name='ipam:fhrpgroup_list') class Meta(BaseTable.Meta): model = FHRPGroup fields = ( 'pk', 'group_id', 'protocol', 'auth_type', 'auth_key', 'description', 'ip_addresses', 'interface_count', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'group_id', 'protocol', 'auth_type', 'description', 'ip_addresses', 'interface_count')
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 SiteTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) status = ChoiceFieldColumn() region = tables.Column( linkify=True ) group = tables.Column( linkify=True ) 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', 'time_zone', 'description', 'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone', 'contact_email', 'comments', 'tags', ) default_columns = ('pk', 'name', 'status', 'facility', 'region', 'group', 'tenant', 'asn', 'description')
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 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 PowerFeedTable(CableTerminationTable): pk = ToggleColumn() name = tables.Column( linkify=True ) power_panel = tables.Column( linkify=True ) rack = tables.Column( linkify=True ) status = ChoiceFieldColumn() type = ChoiceFieldColumn() max_utilization = tables.TemplateColumn( template_code="{{ value }}%" ) available_power = tables.Column( verbose_name='Available power (VA)' ) comments = MarkdownColumn() tags = TagColumn( url_name='dcim:powerfeed_list' ) class Meta(BaseTable.Meta): model = PowerFeed fields = ( 'pk', 'id', 'name', 'power_panel', 'rack', 'status', 'type', 'supply', 'voltage', 'amperage', 'phase', 'max_utilization', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'available_power', 'comments', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'name', 'power_panel', 'rack', 'status', 'type', 'supply', 'voltage', 'amperage', 'phase', 'cable', 'link_peer', )
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 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 ProviderNetworkTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) provider = tables.Column(linkify=True) comments = MarkdownColumn() tags = TagColumn(url_name='circuits:providernetwork_list') class Meta(BaseTable.Meta): model = ProviderNetwork fields = ('pk', 'name', 'provider', 'description', 'comments', 'tags') default_columns = ('pk', 'name', 'provider', 'description')
class TenantTable(BaseTable): pk = ToggleColumn() name = tables.Column(linkify=True) comments = MarkdownColumn() tags = TagColumn(url_name='tenancy:tenant_list') class Meta(BaseTable.Meta): model = Tenant fields = ('pk', 'name', 'slug', 'group', 'description', 'comments', 'tags') default_columns = ('pk', 'name', 'group', 'description')
class JournalEntryTable(ObjectJournalTable): pk = ToggleColumn() assigned_object_type = ContentTypeColumn(verbose_name='Object type') assigned_object = tables.Column(linkify=True, orderable=False, verbose_name='Object') comments = MarkdownColumn() class Meta(BaseTable.Meta): model = JournalEntry fields = ('pk', 'created', 'created_by', 'assigned_object_type', 'assigned_object', 'kind', 'comments', 'actions')
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 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') comments = MarkdownColumn() tags = TagColumn(url_name='virtualization:cluster_list') class Meta(BaseTable.Meta): model = Cluster fields = ('pk', 'id', 'name', 'type', 'group', 'tenant', 'site', 'comments', 'device_count', 'vm_count', 'tags') default_columns = ('pk', 'name', 'type', 'group', 'tenant', 'site', 'device_count', 'vm_count')
class ProviderTable(BaseTable): pk = ToggleColumn() name = tables.Column( linkify=True ) circuit_count = tables.Column( accessor=Accessor('count_circuits'), verbose_name='Circuits' ) comments = MarkdownColumn() tags = TagColumn( url_name='circuits:provider_list' ) class Meta(BaseTable.Meta): model = Provider fields = ( 'pk', 'id', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count', 'comments', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count')
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', )