search.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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', 'site', '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. ('mac_address', 300),
  46. ('description', 500),
  47. ('mtu', 2000),
  48. )
  49. display_attrs = ('virtual_machine', 'mac_address', 'description')
  50. @register_search
  51. class VirtualDiskIndex(SearchIndex):
  52. model = models.VirtualDisk
  53. fields = (
  54. ('name', 100),
  55. ('description', 500),
  56. )
  57. display_attrs = ('virtual_machine', 'size', 'description')