search.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from netbox.search import SearchIndex, register_search
  2. from . import models
  3. @register_search
  4. class ClusterIndex(SearchIndex):
  5. model = models.Cluster
  6. fields = (
  7. ('name', 100),
  8. ('description', 500),
  9. ('comments', 5000),
  10. )
  11. display_attrs = ('type', 'group', 'status', 'tenant', 'scope', 'description')
  12. @register_search
  13. class ClusterGroupIndex(SearchIndex):
  14. model = models.ClusterGroup
  15. fields = (
  16. ('name', 100),
  17. ('slug', 110),
  18. ('description', 500),
  19. )
  20. display_attrs = ('description',)
  21. @register_search
  22. class ClusterTypeIndex(SearchIndex):
  23. model = models.ClusterType
  24. fields = (
  25. ('name', 100),
  26. ('slug', 110),
  27. ('description', 500),
  28. )
  29. display_attrs = ('description',)
  30. @register_search
  31. class VirtualMachineIndex(SearchIndex):
  32. model = models.VirtualMachine
  33. fields = (
  34. ('serial', 60),
  35. ('name', 100),
  36. ('description', 500),
  37. ('comments', 5000),
  38. )
  39. display_attrs = ('site', 'cluster', 'device', 'tenant', 'platform', 'status', 'serial', 'role', 'description')
  40. @register_search
  41. class VMInterfaceIndex(SearchIndex):
  42. model = models.VMInterface
  43. fields = (
  44. ('name', 100),
  45. ('description', 500),
  46. ('mtu', 2000),
  47. )
  48. display_attrs = ('virtual_machine', 'description')
  49. @register_search
  50. class VirtualDiskIndex(SearchIndex):
  51. model = models.VirtualDisk
  52. fields = (
  53. ('name', 100),
  54. ('description', 500),
  55. )
  56. display_attrs = ('virtual_machine', 'size', 'description')