mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-24 16:26:09 -06:00
Add indexers for remaining models
This commit is contained in:
parent
a7cde92113
commit
19c6f95f62
@ -1,6 +1,6 @@
|
||||
from circuits import filtersets, models
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from utilities.utils import count_related
|
||||
from . import filtersets, models
|
||||
|
||||
|
||||
@register_search()
|
||||
|
@ -1,6 +1,6 @@
|
||||
from dcim import filtersets, models
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from utilities.utils import count_related
|
||||
from . import filtersets, models
|
||||
|
||||
|
||||
@register_search()
|
||||
@ -13,6 +13,28 @@ class CableIndex(SearchIndex):
|
||||
filterset = filtersets.CableFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ConsolePortIndex(SearchIndex):
|
||||
model = models.ConsolePort
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
('speed', 2000),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class ConsoleServerPortIndex(SearchIndex):
|
||||
model = models.ConsoleServerPort
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
('speed', 2000),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class DeviceIndex(SearchIndex):
|
||||
model = models.Device
|
||||
@ -35,6 +57,16 @@ class DeviceIndex(SearchIndex):
|
||||
filterset = filtersets.DeviceFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class DeviceBayIndex(SearchIndex):
|
||||
model = models.DeviceBay
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class DeviceRoleIndex(SearchIndex):
|
||||
model = models.DeviceRole
|
||||
@ -59,6 +91,43 @@ class DeviceTypeIndex(SearchIndex):
|
||||
filterset = filtersets.DeviceTypeFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class FrontPortIndex(SearchIndex):
|
||||
model = models.FrontPort
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class InterfaceIndex(SearchIndex):
|
||||
model = models.Interface
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('mac_address', 300),
|
||||
('wwn', 300),
|
||||
('description', 500),
|
||||
('mtu', 2000),
|
||||
('speed', 2000),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class InventoryItemIndex(SearchIndex):
|
||||
model = models.InventoryItem
|
||||
fields = (
|
||||
('asset_tag', 50),
|
||||
('serial', 60),
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
('part_id', 2000),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class LocationIndex(SearchIndex):
|
||||
model = models.Location
|
||||
@ -79,6 +148,16 @@ class LocationIndex(SearchIndex):
|
||||
filterset = filtersets.LocationFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ManufacturerIndex(SearchIndex):
|
||||
model = models.Manufacturer
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class ModuleIndex(SearchIndex):
|
||||
model = models.Module
|
||||
@ -95,6 +174,16 @@ class ModuleIndex(SearchIndex):
|
||||
filterset = filtersets.ModuleFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ModuleBayIndex(SearchIndex):
|
||||
model = models.ModuleBay
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class ModuleTypeIndex(SearchIndex):
|
||||
model = models.ModuleType
|
||||
@ -109,6 +198,17 @@ class ModuleTypeIndex(SearchIndex):
|
||||
filterset = filtersets.ModuleTypeFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class PlatformIndex(SearchIndex):
|
||||
model = models.Platform
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('napalm_driver', 300),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class PowerFeedIndex(SearchIndex):
|
||||
model = models.PowerFeed
|
||||
@ -120,6 +220,36 @@ class PowerFeedIndex(SearchIndex):
|
||||
filterset = filtersets.PowerFeedFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class PowerOutletIndex(SearchIndex):
|
||||
model = models.PowerOutlet
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class PowerPanelIndex(SearchIndex):
|
||||
model = models.PowerPanel
|
||||
fields = (
|
||||
('name', 100),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class PowerPortIndex(SearchIndex):
|
||||
model = models.PowerPort
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
('maximum_draw', 2000),
|
||||
('allocated_draw', 2000),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class RackIndex(SearchIndex):
|
||||
model = models.Rack
|
||||
@ -146,6 +276,26 @@ class RackReservationIndex(SearchIndex):
|
||||
filterset = filtersets.RackReservationFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class RackRoleIndex(SearchIndex):
|
||||
model = models.RackRole
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class RearPortIndex(SearchIndex):
|
||||
model = models.RearPort
|
||||
fields = (
|
||||
('name', 100),
|
||||
('label', 200),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class RegionIndex(SearchIndex):
|
||||
model = models.Region
|
||||
|
@ -1,15 +1,13 @@
|
||||
import extras.filtersets
|
||||
import extras.tables
|
||||
from extras.models import JournalEntry
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from . import filtersets, models
|
||||
|
||||
|
||||
@register_search()
|
||||
class JournalEntryIndex(SearchIndex):
|
||||
model = JournalEntry
|
||||
model = models.JournalEntry
|
||||
fields = (
|
||||
('comments', 5000),
|
||||
)
|
||||
queryset = JournalEntry.objects.prefetch_related('assigned_object', 'created_by')
|
||||
filterset = extras.filtersets.JournalEntryFilterSet
|
||||
queryset = models.JournalEntry.objects.prefetch_related('assigned_object', 'created_by')
|
||||
filterset = filtersets.JournalEntryFilterSet
|
||||
category = 'Journal'
|
||||
|
@ -1,87 +1,155 @@
|
||||
import ipam.filtersets
|
||||
import ipam.tables
|
||||
from ipam.models import ASN, VLAN, VRF, Aggregate, IPAddress, Prefix, Service
|
||||
from . import filtersets, models
|
||||
from netbox.search import SearchIndex, register_search
|
||||
|
||||
|
||||
@register_search()
|
||||
class AggregateIndex(SearchIndex):
|
||||
model = Aggregate
|
||||
model = models.Aggregate
|
||||
fields = (
|
||||
('prefix', 100),
|
||||
('description', 500),
|
||||
('date_added', 2000),
|
||||
)
|
||||
queryset = Aggregate.objects.prefetch_related('rir')
|
||||
filterset = ipam.filtersets.AggregateFilterSet
|
||||
queryset = models.Aggregate.objects.prefetch_related('rir')
|
||||
filterset = filtersets.AggregateFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ASNIndex(SearchIndex):
|
||||
model = ASN
|
||||
model = models.ASN
|
||||
fields = (
|
||||
('asn', 100),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = ASN.objects.prefetch_related('rir', 'tenant', 'tenant__group')
|
||||
filterset = ipam.filtersets.ASNFilterSet
|
||||
queryset = models.ASN.objects.prefetch_related('rir', 'tenant', 'tenant__group')
|
||||
filterset = filtersets.ASNFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class FHRPGroupIndex(SearchIndex):
|
||||
model = models.FHRPGroup
|
||||
fields = (
|
||||
('name', 100),
|
||||
('group_id', 2000),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class IPAddressIndex(SearchIndex):
|
||||
model = IPAddress
|
||||
model = models.IPAddress
|
||||
fields = (
|
||||
('address', 100),
|
||||
('dns_name', 300),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant', 'tenant__group')
|
||||
filterset = ipam.filtersets.IPAddressFilterSet
|
||||
queryset = models.IPAddress.objects.prefetch_related('vrf__tenant', 'tenant', 'tenant__group')
|
||||
filterset = filtersets.IPAddressFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class IPRangeIndex(SearchIndex):
|
||||
model = models.IPRange
|
||||
fields = (
|
||||
('start_address', 100),
|
||||
('end_address', 300),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class L2VPNIndex(SearchIndex):
|
||||
model = models.L2VPN
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class PrefixIndex(SearchIndex):
|
||||
model = Prefix
|
||||
model = models.Prefix
|
||||
fields = (
|
||||
('prefix', 100),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = Prefix.objects.prefetch_related(
|
||||
queryset = models.Prefix.objects.prefetch_related(
|
||||
'site', 'vrf__tenant', 'tenant', 'tenant__group', 'vlan', 'role'
|
||||
)
|
||||
filterset = ipam.filtersets.PrefixFilterSet
|
||||
filterset = filtersets.PrefixFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ServiceIndex(SearchIndex):
|
||||
model = Service
|
||||
class RIRIndex(SearchIndex):
|
||||
model = models.RIR
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class RoleIndex(SearchIndex):
|
||||
model = models.Role
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class RouteTargetIndex(SearchIndex):
|
||||
model = models.RouteTarget
|
||||
fields = (
|
||||
('name', 100),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = Service.objects.prefetch_related('device', 'virtual_machine')
|
||||
filterset = ipam.filtersets.ServiceFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ServiceIndex(SearchIndex):
|
||||
model = models.Service
|
||||
fields = (
|
||||
('name', 100),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = models.Service.objects.prefetch_related('device', 'virtual_machine')
|
||||
filterset = filtersets.ServiceFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class VLANIndex(SearchIndex):
|
||||
model = VLAN
|
||||
model = models.VLAN
|
||||
fields = (
|
||||
('name', 100),
|
||||
('vid', 100),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'tenant__group', 'role')
|
||||
filterset = ipam.filtersets.VLANFilterSet
|
||||
queryset = models.VLAN.objects.prefetch_related('site', 'group', 'tenant', 'tenant__group', 'role')
|
||||
filterset = filtersets.VLANFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class VLANGroupIndex(SearchIndex):
|
||||
model = models.VLANGroup
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
('max_vid', 2000),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class VRFIndex(SearchIndex):
|
||||
model = VRF
|
||||
model = models.VRF
|
||||
fields = (
|
||||
('name', 100),
|
||||
('rd', 200),
|
||||
('description', 500),
|
||||
)
|
||||
queryset = VRF.objects.prefetch_related('tenant', 'tenant__group')
|
||||
filterset = ipam.filtersets.VRFFilterSet
|
||||
queryset = models.VRF.objects.prefetch_related('tenant', 'tenant__group')
|
||||
filterset = filtersets.VRFFilterSet
|
||||
|
@ -1,13 +1,11 @@
|
||||
import tenancy.filtersets
|
||||
import tenancy.tables
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from tenancy.models import Contact, ContactAssignment, Tenant
|
||||
from utilities.utils import count_related
|
||||
from . import filtersets, models
|
||||
|
||||
|
||||
@register_search()
|
||||
class ContactIndex(SearchIndex):
|
||||
model = Contact
|
||||
model = models.Contact
|
||||
fields = (
|
||||
('name', 100),
|
||||
('title', 300),
|
||||
@ -17,20 +15,50 @@ class ContactIndex(SearchIndex):
|
||||
('link', 300),
|
||||
('comments', 5000),
|
||||
)
|
||||
queryset = Contact.objects.prefetch_related('group', 'assignments').annotate(
|
||||
assignment_count=count_related(ContactAssignment, 'contact')
|
||||
queryset = models.Contact.objects.prefetch_related('group', 'assignments').annotate(
|
||||
assignment_count=count_related(models.ContactAssignment, 'contact')
|
||||
)
|
||||
filterset = filtersets.ContactFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ContactGroupIndex(SearchIndex):
|
||||
model = models.ContactGroup
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class ContactRoleIndex(SearchIndex):
|
||||
model = models.ContactRole
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
filterset = tenancy.filtersets.ContactFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class TenantIndex(SearchIndex):
|
||||
model = Tenant
|
||||
model = models.Tenant
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
('comments', 5000),
|
||||
)
|
||||
queryset = Tenant.objects.prefetch_related('group')
|
||||
filterset = tenancy.filtersets.TenantFilterSet
|
||||
queryset = models.Tenant.objects.prefetch_related('group')
|
||||
filterset = filtersets.TenantFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class TenantGroupIndex(SearchIndex):
|
||||
model = models.TenantGroup
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
@ -1,32 +1,51 @@
|
||||
import virtualization.filtersets
|
||||
import virtualization.tables
|
||||
from dcim.models import Device
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from utilities.utils import count_related
|
||||
from virtualization.models import Cluster, VirtualMachine
|
||||
from . import filtersets, models
|
||||
|
||||
|
||||
@register_search()
|
||||
class ClusterIndex(SearchIndex):
|
||||
model = Cluster
|
||||
model = models.Cluster
|
||||
fields = (
|
||||
('name', 100),
|
||||
('comments', 5000),
|
||||
)
|
||||
queryset = Cluster.objects.prefetch_related('type', 'group').annotate(
|
||||
device_count=count_related(Device, 'cluster'), vm_count=count_related(VirtualMachine, 'cluster')
|
||||
queryset = models.Cluster.objects.prefetch_related('type', 'group').annotate(
|
||||
device_count=count_related(Device, 'cluster'),
|
||||
vm_count=count_related(models.VirtualMachine, 'cluster')
|
||||
)
|
||||
filterset = filtersets.ClusterFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class ClusterGroupIndex(SearchIndex):
|
||||
model = models.ClusterGroup
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class ClusterTypeIndex(SearchIndex):
|
||||
model = models.ClusterType
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
filterset = virtualization.filtersets.ClusterFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class VirtualMachineIndex(SearchIndex):
|
||||
model = VirtualMachine
|
||||
model = models.VirtualMachine
|
||||
fields = (
|
||||
('name', 100),
|
||||
('comments', 5000),
|
||||
)
|
||||
queryset = VirtualMachine.objects.prefetch_related(
|
||||
queryset = models.VirtualMachine.objects.prefetch_related(
|
||||
'cluster',
|
||||
'tenant',
|
||||
'tenant__group',
|
||||
@ -34,4 +53,13 @@ class VirtualMachineIndex(SearchIndex):
|
||||
'primary_ip4',
|
||||
'primary_ip6',
|
||||
)
|
||||
filterset = virtualization.filtersets.VirtualMachineFilterSet
|
||||
filterset = filtersets.VirtualMachineFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class VMInterfaceIndex(SearchIndex):
|
||||
model = models.VMInterface
|
||||
fields = (
|
||||
('name', 100),
|
||||
('description', 500),
|
||||
)
|
||||
|
@ -1,32 +1,40 @@
|
||||
import wireless.filtersets
|
||||
import wireless.tables
|
||||
from dcim.models import Interface
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from utilities.utils import count_related
|
||||
from wireless.models import WirelessLAN, WirelessLink
|
||||
from . import filtersets, models
|
||||
|
||||
|
||||
@register_search()
|
||||
class WirelessLANIndex(SearchIndex):
|
||||
model = WirelessLAN
|
||||
model = models.WirelessLAN
|
||||
fields = (
|
||||
('ssid', 100),
|
||||
('description', 500),
|
||||
('auth_psk', 2000),
|
||||
)
|
||||
queryset = WirelessLAN.objects.prefetch_related('group', 'vlan').annotate(
|
||||
queryset = models.WirelessLAN.objects.prefetch_related('group', 'vlan').annotate(
|
||||
interface_count=count_related(Interface, 'wireless_lans')
|
||||
)
|
||||
filterset = wireless.filtersets.WirelessLANFilterSet
|
||||
filterset = filtersets.WirelessLANFilterSet
|
||||
|
||||
|
||||
@register_search()
|
||||
class WirelessLANGroupIndex(SearchIndex):
|
||||
model = models.WirelessLANGroup
|
||||
fields = (
|
||||
('name', 100),
|
||||
('slug', 110),
|
||||
('description', 500),
|
||||
)
|
||||
|
||||
|
||||
@register_search()
|
||||
class WirelessLinkIndex(SearchIndex):
|
||||
model = WirelessLink
|
||||
model = models.WirelessLink
|
||||
fields = (
|
||||
('ssid', 100),
|
||||
('description', 500),
|
||||
('auth_psk', 2000),
|
||||
)
|
||||
queryset = WirelessLink.objects.prefetch_related('interface_a__device', 'interface_b__device')
|
||||
filterset = wireless.filtersets.WirelessLinkFilterSet
|
||||
queryset = models.WirelessLink.objects.prefetch_related('interface_a__device', 'interface_b__device')
|
||||
filterset = filtersets.WirelessLinkFilterSet
|
||||
|
Loading…
Reference in New Issue
Block a user