search.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. from netbox.search import SearchIndex, register_search
  2. from . import models
  3. @register_search
  4. class CircuitIndex(SearchIndex):
  5. model = models.Circuit
  6. fields = (
  7. ('cid', 100),
  8. ('description', 500),
  9. ('comments', 5000),
  10. )
  11. display_attrs = ('provider', 'provider_account', 'type', 'status', 'tenant', 'description')
  12. @register_search
  13. class CircuitGroupIndex(SearchIndex):
  14. model = models.CircuitGroup
  15. fields = (
  16. ('name', 100),
  17. ('slug', 110),
  18. ('description', 500),
  19. )
  20. display_attrs = ('description',)
  21. @register_search
  22. class CircuitTerminationIndex(SearchIndex):
  23. model = models.CircuitTermination
  24. fields = (
  25. ('xconnect_id', 300),
  26. ('pp_info', 300),
  27. ('description', 500),
  28. ('port_speed', 2000),
  29. ('upstream_speed', 2000),
  30. )
  31. display_attrs = ('circuit', 'site', 'provider_network', 'description')
  32. @register_search
  33. class CircuitTypeIndex(SearchIndex):
  34. model = models.CircuitType
  35. fields = (
  36. ('name', 100),
  37. ('slug', 110),
  38. ('description', 500),
  39. )
  40. display_attrs = ('description',)
  41. @register_search
  42. class ProviderIndex(SearchIndex):
  43. model = models.Provider
  44. fields = (
  45. ('name', 100),
  46. ('description', 500),
  47. ('comments', 5000),
  48. )
  49. display_attrs = ('description',)
  50. @register_search
  51. class ProviderAccountIndex(SearchIndex):
  52. model = models.ProviderAccount
  53. fields = (
  54. ('name', 100),
  55. ('account', 200),
  56. ('comments', 5000),
  57. )
  58. display_attrs = ('provider', 'account', 'description')
  59. @register_search
  60. class ProviderNetworkIndex(SearchIndex):
  61. model = models.ProviderNetwork
  62. fields = (
  63. ('name', 100),
  64. ('service_id', 200),
  65. ('description', 500),
  66. ('comments', 5000),
  67. )
  68. display_attrs = ('provider', 'service_id', 'description')
  69. @register_search
  70. class VirtualCircuitIndex(SearchIndex):
  71. model = models.VirtualCircuit
  72. fields = (
  73. ('cid', 100),
  74. ('description', 500),
  75. ('comments', 5000),
  76. )
  77. display_attrs = ('provider', 'provider_network', 'provider_account', 'status', 'tenant', 'description')
  78. @register_search
  79. class VirtualCircuitTerminationIndex(SearchIndex):
  80. model = models.VirtualCircuitTermination
  81. fields = (
  82. ('description', 500),
  83. )
  84. display_attrs = ('virtual_circuit', 'role', 'description')