search.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. ('comments', 5000),
  20. )
  21. display_attrs = ('description',)
  22. @register_search
  23. class ClusterTypeIndex(SearchIndex):
  24. model = models.ClusterType
  25. fields = (
  26. ('name', 100),
  27. ('slug', 110),
  28. ('description', 500),
  29. ('comments', 5000),
  30. )
  31. display_attrs = ('description',)
  32. @register_search
  33. class VirtualMachineTypeIndex(SearchIndex):
  34. model = models.VirtualMachineType
  35. fields = (
  36. ('name', 100),
  37. ('slug', 110),
  38. ('description', 500),
  39. ('comments', 5000),
  40. )
  41. display_attrs = ('default_platform', 'default_vcpus', 'default_memory', 'description')
  42. @register_search
  43. class VirtualMachineIndex(SearchIndex):
  44. model = models.VirtualMachine
  45. fields = (
  46. ('serial', 60),
  47. ('name', 100),
  48. ('description', 500),
  49. ('comments', 5000),
  50. )
  51. display_attrs = ('site', 'cluster', 'device', 'tenant', 'platform', 'status', 'serial', 'role', 'description')
  52. @register_search
  53. class VMInterfaceIndex(SearchIndex):
  54. model = models.VMInterface
  55. fields = (
  56. ('name', 100),
  57. ('description', 500),
  58. ('mtu', 2000),
  59. )
  60. display_attrs = ('virtual_machine', 'description')
  61. @register_search
  62. class VirtualDiskIndex(SearchIndex):
  63. model = models.VirtualDisk
  64. fields = (
  65. ('name', 100),
  66. ('description', 500),
  67. )
  68. display_attrs = ('virtual_machine', 'size', 'description')