search.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. from netbox.search import SearchIndex, register_search
  2. from . import models
  3. @register_search
  4. class CableIndex(SearchIndex):
  5. model = models.Cable
  6. fields = (
  7. ('label', 100),
  8. ('description', 500),
  9. ('comments', 5000),
  10. )
  11. @register_search
  12. class ConsolePortIndex(SearchIndex):
  13. model = models.ConsolePort
  14. fields = (
  15. ('name', 100),
  16. ('label', 200),
  17. ('description', 500),
  18. ('speed', 2000),
  19. )
  20. @register_search
  21. class ConsoleServerPortIndex(SearchIndex):
  22. model = models.ConsoleServerPort
  23. fields = (
  24. ('name', 100),
  25. ('label', 200),
  26. ('description', 500),
  27. ('speed', 2000),
  28. )
  29. @register_search
  30. class DeviceIndex(SearchIndex):
  31. model = models.Device
  32. fields = (
  33. ('asset_tag', 50),
  34. ('serial', 60),
  35. ('name', 100),
  36. ('description', 500),
  37. ('comments', 5000),
  38. )
  39. @register_search
  40. class DeviceBayIndex(SearchIndex):
  41. model = models.DeviceBay
  42. fields = (
  43. ('name', 100),
  44. ('label', 200),
  45. ('description', 500),
  46. )
  47. @register_search
  48. class DeviceRoleIndex(SearchIndex):
  49. model = models.DeviceRole
  50. fields = (
  51. ('name', 100),
  52. ('slug', 110),
  53. ('description', 500),
  54. )
  55. @register_search
  56. class DeviceTypeIndex(SearchIndex):
  57. model = models.DeviceType
  58. fields = (
  59. ('model', 100),
  60. ('part_number', 200),
  61. ('description', 500),
  62. ('comments', 5000),
  63. )
  64. @register_search
  65. class FrontPortIndex(SearchIndex):
  66. model = models.FrontPort
  67. fields = (
  68. ('name', 100),
  69. ('label', 200),
  70. ('description', 500),
  71. )
  72. @register_search
  73. class InterfaceIndex(SearchIndex):
  74. model = models.Interface
  75. fields = (
  76. ('name', 100),
  77. ('label', 200),
  78. ('mac_address', 300),
  79. ('wwn', 300),
  80. ('description', 500),
  81. ('mtu', 2000),
  82. ('speed', 2000),
  83. )
  84. @register_search
  85. class InventoryItemIndex(SearchIndex):
  86. model = models.InventoryItem
  87. fields = (
  88. ('asset_tag', 50),
  89. ('serial', 60),
  90. ('name', 100),
  91. ('label', 200),
  92. ('description', 500),
  93. ('part_id', 2000),
  94. )
  95. @register_search
  96. class LocationIndex(SearchIndex):
  97. model = models.Location
  98. fields = (
  99. ('name', 100),
  100. ('slug', 110),
  101. ('description', 500),
  102. )
  103. @register_search
  104. class ManufacturerIndex(SearchIndex):
  105. model = models.Manufacturer
  106. fields = (
  107. ('name', 100),
  108. ('slug', 110),
  109. ('description', 500),
  110. )
  111. @register_search
  112. class ModuleIndex(SearchIndex):
  113. model = models.Module
  114. fields = (
  115. ('asset_tag', 50),
  116. ('serial', 60),
  117. ('description', 500),
  118. ('comments', 5000),
  119. )
  120. @register_search
  121. class ModuleBayIndex(SearchIndex):
  122. model = models.ModuleBay
  123. fields = (
  124. ('name', 100),
  125. ('label', 200),
  126. ('description', 500),
  127. )
  128. @register_search
  129. class ModuleTypeIndex(SearchIndex):
  130. model = models.ModuleType
  131. fields = (
  132. ('model', 100),
  133. ('part_number', 200),
  134. ('description', 500),
  135. ('comments', 5000),
  136. )
  137. @register_search
  138. class PlatformIndex(SearchIndex):
  139. model = models.Platform
  140. fields = (
  141. ('name', 100),
  142. ('slug', 110),
  143. ('description', 500),
  144. )
  145. @register_search
  146. class PowerFeedIndex(SearchIndex):
  147. model = models.PowerFeed
  148. fields = (
  149. ('name', 100),
  150. ('description', 500),
  151. ('comments', 5000),
  152. )
  153. @register_search
  154. class PowerOutletIndex(SearchIndex):
  155. model = models.PowerOutlet
  156. fields = (
  157. ('name', 100),
  158. ('label', 200),
  159. ('description', 500),
  160. )
  161. @register_search
  162. class PowerPanelIndex(SearchIndex):
  163. model = models.PowerPanel
  164. fields = (
  165. ('name', 100),
  166. ('description', 500),
  167. ('comments', 5000),
  168. )
  169. @register_search
  170. class PowerPortIndex(SearchIndex):
  171. model = models.PowerPort
  172. fields = (
  173. ('name', 100),
  174. ('label', 200),
  175. ('description', 500),
  176. ('maximum_draw', 2000),
  177. ('allocated_draw', 2000),
  178. )
  179. @register_search
  180. class RackIndex(SearchIndex):
  181. model = models.Rack
  182. fields = (
  183. ('asset_tag', 50),
  184. ('serial', 60),
  185. ('name', 100),
  186. ('facility_id', 200),
  187. ('description', 500),
  188. ('comments', 5000),
  189. )
  190. @register_search
  191. class RackReservationIndex(SearchIndex):
  192. model = models.RackReservation
  193. fields = (
  194. ('description', 500),
  195. ('comments', 5000),
  196. )
  197. @register_search
  198. class RackRoleIndex(SearchIndex):
  199. model = models.RackRole
  200. fields = (
  201. ('name', 100),
  202. ('slug', 110),
  203. ('description', 500),
  204. )
  205. @register_search
  206. class RearPortIndex(SearchIndex):
  207. model = models.RearPort
  208. fields = (
  209. ('name', 100),
  210. ('label', 200),
  211. ('description', 500),
  212. )
  213. @register_search
  214. class RegionIndex(SearchIndex):
  215. model = models.Region
  216. fields = (
  217. ('name', 100),
  218. ('slug', 110),
  219. ('description', 500),
  220. )
  221. @register_search
  222. class SiteIndex(SearchIndex):
  223. model = models.Site
  224. fields = (
  225. ('name', 100),
  226. ('facility', 100),
  227. ('slug', 110),
  228. ('description', 500),
  229. ('physical_address', 2000),
  230. ('shipping_address', 2000),
  231. ('comments', 5000),
  232. )
  233. @register_search
  234. class SiteGroupIndex(SearchIndex):
  235. model = models.SiteGroup
  236. fields = (
  237. ('name', 100),
  238. ('slug', 110),
  239. ('description', 500),
  240. )
  241. @register_search
  242. class VirtualChassisIndex(SearchIndex):
  243. model = models.VirtualChassis
  244. fields = (
  245. ('name', 100),
  246. ('domain', 300),
  247. ('description', 500),
  248. ('comments', 5000),
  249. )
  250. @register_search
  251. class VirtualDeviceContextIndex(SearchIndex):
  252. model = models.VirtualDeviceContext
  253. fields = (
  254. ('name', 100),
  255. ('identifier', 300),
  256. ('description', 500),
  257. ('comments', 5000),
  258. )