nautobot 2.2.0b1__py3-none-any.whl → 2.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (425) hide show
  1. nautobot/__init__.py +31 -0
  2. nautobot/apps/api.py +1 -2
  3. nautobot/apps/utils.py +4 -0
  4. nautobot/apps/views.py +2 -0
  5. nautobot/circuits/api/urls.py +1 -2
  6. nautobot/circuits/api/views.py +0 -12
  7. nautobot/circuits/apps.py +1 -1
  8. nautobot/circuits/tests/test_filters.py +1 -1
  9. nautobot/core/api/routers.py +50 -3
  10. nautobot/core/api/utils.py +4 -0
  11. nautobot/core/api/views.py +21 -15
  12. nautobot/core/cli/__init__.py +18 -11
  13. nautobot/core/constants.py +85 -0
  14. nautobot/core/filters.py +7 -1
  15. nautobot/core/forms/widgets.py +1 -2
  16. nautobot/core/graphql/schema.py +1 -0
  17. nautobot/core/management/commands/generate_test_data.py +4 -4
  18. nautobot/core/models/__init__.py +1 -0
  19. nautobot/core/settings.py +24 -3
  20. nautobot/core/settings.yaml +20 -0
  21. nautobot/core/signals.py +1 -0
  22. nautobot/core/tables.py +2 -1
  23. nautobot/core/templates/admin/base.html +23 -94
  24. nautobot/core/templates/generic/object_retrieve.html +2 -2
  25. nautobot/core/templates/graphene/graphiql.html +18 -47
  26. nautobot/core/templates/inc/footer.html +5 -5
  27. nautobot/core/templates/inc/javascript.html +4 -4
  28. nautobot/core/templates/inc/media.html +2 -2
  29. nautobot/core/templates/inc/nav_menu.html +0 -7
  30. nautobot/core/templates/nautobot_config.py.j2 +14 -1
  31. nautobot/core/templates/rest_framework/api.html +12 -5
  32. nautobot/core/templatetags/helpers.py +2 -2
  33. nautobot/core/testing/__init__.py +1 -1
  34. nautobot/core/testing/filters.py +1 -1
  35. nautobot/core/testing/views.py +30 -0
  36. nautobot/core/tests/integration/test_view_authentication.py +68 -0
  37. nautobot/core/tests/test_api.py +13 -6
  38. nautobot/core/tests/test_csv.py +5 -4
  39. nautobot/core/tests/test_filters.py +2 -1
  40. nautobot/core/tests/test_graphql.py +4 -14
  41. nautobot/core/tests/test_navigations.py +3 -0
  42. nautobot/core/tests/test_views.py +44 -16
  43. nautobot/core/utils/data.py +1 -2
  44. nautobot/core/utils/lookup.py +126 -0
  45. nautobot/core/views/__init__.py +3 -7
  46. nautobot/core/views/generic.py +20 -6
  47. nautobot/core/views/mixins.py +7 -1
  48. nautobot/core/views/renderers.py +11 -6
  49. nautobot/dcim/api/serializers.py +4 -4
  50. nautobot/dcim/api/urls.py +2 -3
  51. nautobot/dcim/api/views.py +7 -18
  52. nautobot/dcim/apps.py +8 -4
  53. nautobot/dcim/elevations.py +5 -1
  54. nautobot/dcim/factory.py +7 -7
  55. nautobot/dcim/filters/__init__.py +16 -17
  56. nautobot/dcim/forms.py +61 -45
  57. nautobot/dcim/homepage.py +11 -3
  58. nautobot/dcim/management/commands/migrate_location_contacts.py +218 -0
  59. nautobot/dcim/migrations/0057_controller_models.py +11 -70
  60. nautobot/dcim/models/__init__.py +2 -2
  61. nautobot/dcim/models/devices.py +14 -16
  62. nautobot/dcim/models/racks.py +1 -3
  63. nautobot/dcim/navigation.py +23 -31
  64. nautobot/dcim/signals.py +6 -6
  65. nautobot/dcim/tables/__init__.py +2 -2
  66. nautobot/dcim/tables/devices.py +13 -16
  67. nautobot/dcim/tables/template_code.py +1 -1
  68. nautobot/dcim/templates/dcim/controller_create.html +70 -0
  69. nautobot/dcim/templates/dcim/controller_retrieve.html +35 -18
  70. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +88 -0
  71. nautobot/dcim/templates/dcim/device/lldp_neighbors.html +75 -43
  72. nautobot/dcim/templates/dcim/device.html +11 -3
  73. nautobot/dcim/templates/dcim/device_edit.html +1 -1
  74. nautobot/dcim/templates/dcim/devicefamily_retrieve.html +4 -0
  75. nautobot/dcim/templates/dcim/softwareimagefile_retrieve.html +1 -1
  76. nautobot/dcim/tests/test_api.py +47 -6
  77. nautobot/dcim/tests/test_filters.py +92 -81
  78. nautobot/dcim/tests/test_graphql.py +11 -1
  79. nautobot/dcim/tests/test_models.py +15 -15
  80. nautobot/dcim/tests/test_signals.py +3 -1
  81. nautobot/dcim/tests/test_views.py +24 -12
  82. nautobot/dcim/urls.py +1 -1
  83. nautobot/dcim/views.py +25 -15
  84. nautobot/extras/api/serializers.py +20 -1
  85. nautobot/extras/api/urls.py +1 -2
  86. nautobot/extras/api/views.py +0 -10
  87. nautobot/extras/apps.py +7 -0
  88. nautobot/extras/context_managers.py +15 -4
  89. nautobot/extras/filters/__init__.py +53 -2
  90. nautobot/extras/filters/customfields.py +14 -9
  91. nautobot/extras/filters/mixins.py +6 -1
  92. nautobot/extras/forms/contacts.py +7 -0
  93. nautobot/extras/health_checks.py +1 -0
  94. nautobot/extras/jobs.py +1 -0
  95. nautobot/extras/managers.py +15 -2
  96. nautobot/extras/models/contacts.py +1 -0
  97. nautobot/extras/models/customfields.py +25 -2
  98. nautobot/extras/models/datasources.py +1 -0
  99. nautobot/extras/models/mixins.py +1 -0
  100. nautobot/extras/navigation.py +71 -65
  101. nautobot/extras/plugins/__init__.py +2 -1
  102. nautobot/extras/plugins/views.py +7 -11
  103. nautobot/extras/querysets.py +1 -2
  104. nautobot/extras/secrets/providers.py +1 -0
  105. nautobot/extras/signals.py +15 -5
  106. nautobot/extras/tasks.py +70 -17
  107. nautobot/extras/tests/test_api.py +2 -4
  108. nautobot/extras/tests/test_customfields.py +72 -9
  109. nautobot/extras/tests/test_dynamicgroups.py +2 -0
  110. nautobot/extras/tests/test_filters.py +89 -4
  111. nautobot/extras/tests/test_models.py +9 -0
  112. nautobot/extras/tests/test_relationships.py +10 -1
  113. nautobot/extras/tests/test_views.py +112 -1
  114. nautobot/extras/views.py +18 -17
  115. nautobot/ipam/api/serializers.py +10 -0
  116. nautobot/ipam/api/urls.py +1 -2
  117. nautobot/ipam/api/views.py +0 -11
  118. nautobot/ipam/apps.py +3 -2
  119. nautobot/ipam/tables.py +2 -22
  120. nautobot/ipam/tests/test_graphql.py +2 -3
  121. nautobot/ipam/tests/test_tables.py +42 -0
  122. nautobot/ipam/tests/test_views.py +1 -0
  123. nautobot/ipam/views.py +9 -9
  124. nautobot/project-static/css/base.css +1 -0
  125. nautobot/project-static/docs/404.html +126 -73
  126. nautobot/project-static/docs/apps/index.html +127 -71
  127. nautobot/project-static/docs/apps/nautobot-apps.html +127 -71
  128. nautobot/project-static/docs/assets/javascripts/{bundle.8fd75fb4.min.js → bundle.bd41221c.min.js} +2 -2
  129. nautobot/project-static/docs/assets/javascripts/{bundle.8fd75fb4.min.js.map → bundle.bd41221c.min.js.map} +3 -3
  130. nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css +1 -0
  131. nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css.map +1 -0
  132. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +127 -71
  133. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +127 -71
  134. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +167 -73
  135. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +165 -72
  136. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +127 -71
  137. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +127 -71
  138. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +127 -71
  139. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +127 -71
  140. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +127 -71
  141. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +127 -71
  142. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +127 -71
  143. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +127 -71
  144. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +127 -71
  145. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +127 -71
  146. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +127 -71
  147. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +127 -71
  148. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +127 -71
  149. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +127 -71
  150. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +128 -72
  151. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +127 -71
  152. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +127 -71
  153. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +345 -71
  154. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +172 -73
  155. nautobot/project-static/docs/development/apps/api/configuration-view.html +127 -71
  156. nautobot/project-static/docs/development/apps/api/database-backend-config.html +127 -71
  157. nautobot/project-static/docs/development/apps/api/models/django-admin.html +127 -71
  158. nautobot/project-static/docs/development/apps/api/models/global-search.html +127 -71
  159. nautobot/project-static/docs/development/apps/api/models/graphql.html +127 -71
  160. nautobot/project-static/docs/development/apps/api/models/index.html +127 -71
  161. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +127 -71
  162. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +127 -71
  163. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +127 -71
  164. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +127 -71
  165. nautobot/project-static/docs/development/apps/api/platform-features/index.html +127 -71
  166. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +127 -71
  167. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +127 -71
  168. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +127 -71
  169. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +127 -71
  170. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +127 -71
  171. nautobot/project-static/docs/development/apps/api/prometheus.html +127 -71
  172. nautobot/project-static/docs/development/apps/api/setup.html +127 -71
  173. nautobot/project-static/docs/development/apps/api/testing.html +127 -71
  174. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +127 -71
  175. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +127 -71
  176. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +127 -71
  177. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +127 -71
  178. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +127 -71
  179. nautobot/project-static/docs/development/apps/api/views/base-template.html +127 -71
  180. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +141 -80
  181. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +144 -83
  182. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +127 -71
  183. nautobot/project-static/docs/development/apps/api/views/index.html +127 -71
  184. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +127 -71
  185. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +127 -71
  186. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +127 -71
  187. nautobot/project-static/docs/development/apps/api/views/notes.html +127 -71
  188. nautobot/project-static/docs/development/apps/api/views/rest-api.html +127 -71
  189. nautobot/project-static/docs/development/apps/api/views/urls.html +127 -71
  190. nautobot/project-static/docs/development/apps/index.html +127 -71
  191. nautobot/project-static/docs/development/apps/migration/code-updates.html +127 -71
  192. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +127 -71
  193. nautobot/project-static/docs/development/apps/migration/from-v1.html +127 -71
  194. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +127 -71
  195. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +127 -71
  196. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +127 -71
  197. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +127 -71
  198. nautobot/project-static/docs/development/apps/porting-from-netbox.html +127 -71
  199. nautobot/project-static/docs/development/core/application-registry.html +127 -71
  200. nautobot/project-static/docs/development/core/best-practices.html +145 -79
  201. nautobot/project-static/docs/development/core/bootstrap-ui.html +127 -71
  202. nautobot/project-static/docs/development/core/caching.html +127 -71
  203. nautobot/project-static/docs/development/core/controllers.html +141 -275
  204. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +127 -71
  205. nautobot/project-static/docs/development/core/extending-models.html +13 -8166
  206. nautobot/project-static/docs/development/core/generic-views.html +142 -86
  207. nautobot/project-static/docs/development/core/getting-started.html +146 -81
  208. nautobot/project-static/docs/development/core/homepage.html +145 -89
  209. nautobot/project-static/docs/development/core/index.html +127 -71
  210. nautobot/project-static/docs/development/core/model-checklist.html +8354 -0
  211. nautobot/project-static/docs/development/core/model-features.html +130 -74
  212. nautobot/project-static/docs/development/core/natural-keys.html +127 -71
  213. nautobot/project-static/docs/development/core/navigation-menu.html +127 -71
  214. nautobot/project-static/docs/development/core/release-checklist.html +127 -71
  215. nautobot/project-static/docs/development/core/role-internals.html +127 -71
  216. nautobot/project-static/docs/development/core/settings.html +127 -71
  217. nautobot/project-static/docs/development/core/style-guide.html +127 -71
  218. nautobot/project-static/docs/development/core/templates.html +127 -71
  219. nautobot/project-static/docs/development/core/testing.html +127 -71
  220. nautobot/project-static/docs/development/core/user-preferences.html +127 -71
  221. nautobot/project-static/docs/development/extending-models.html +3 -3
  222. nautobot/project-static/docs/development/index.html +127 -71
  223. nautobot/project-static/docs/development/jobs/index.html +128 -72
  224. nautobot/project-static/docs/development/jobs/migration/from-v1.html +127 -71
  225. nautobot/project-static/docs/index.html +126 -73
  226. nautobot/project-static/docs/models/dcim/{controllerdevicegroup.html → controllermanageddevicegroup.html} +3 -3
  227. nautobot/project-static/docs/objects.inv +0 -0
  228. nautobot/project-static/docs/release-notes/index.html +127 -71
  229. nautobot/project-static/docs/release-notes/version-1.0.html +127 -71
  230. nautobot/project-static/docs/release-notes/version-1.1.html +127 -71
  231. nautobot/project-static/docs/release-notes/version-1.2.html +127 -71
  232. nautobot/project-static/docs/release-notes/version-1.3.html +127 -71
  233. nautobot/project-static/docs/release-notes/version-1.4.html +127 -71
  234. nautobot/project-static/docs/release-notes/version-1.5.html +127 -71
  235. nautobot/project-static/docs/release-notes/version-1.6.html +127 -71
  236. nautobot/project-static/docs/release-notes/version-2.0.html +127 -71
  237. nautobot/project-static/docs/release-notes/version-2.1.html +538 -254
  238. nautobot/project-static/docs/release-notes/version-2.2.html +520 -101
  239. nautobot/project-static/docs/requirements.txt +3 -3
  240. nautobot/project-static/docs/search/search_index.json +1 -1
  241. nautobot/project-static/docs/sitemap.xml +264 -259
  242. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  243. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +127 -71
  244. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +127 -71
  245. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +127 -71
  246. nautobot/project-static/docs/user-guide/administration/configuration/index.html +127 -71
  247. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +192 -71
  248. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +127 -71
  249. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +127 -71
  250. nautobot/project-static/docs/user-guide/administration/guides/caching.html +127 -71
  251. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +127 -71
  252. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +127 -71
  253. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +127 -71
  254. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +131 -71
  255. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +127 -71
  256. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +127 -71
  257. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +130 -74
  258. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +127 -71
  259. nautobot/project-static/docs/user-guide/administration/installation/docker.html +134 -74
  260. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +127 -71
  261. nautobot/project-static/docs/user-guide/administration/installation/health-checks.html +8616 -0
  262. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +127 -71
  263. nautobot/project-static/docs/user-guide/administration/installation/index.html +127 -71
  264. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +127 -71
  265. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +127 -71
  266. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +130 -74
  267. nautobot/project-static/docs/user-guide/administration/installation/services.html +127 -71
  268. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +127 -71
  269. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +127 -71
  270. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +127 -71
  271. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +127 -71
  272. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +127 -71
  273. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +127 -71
  274. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +127 -71
  275. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +127 -71
  276. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +127 -71
  277. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +127 -71
  278. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +127 -71
  279. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +127 -71
  280. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +127 -71
  281. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +127 -71
  282. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +127 -71
  283. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +127 -71
  284. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +127 -71
  285. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +127 -71
  286. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +127 -71
  287. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +127 -71
  288. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +127 -71
  289. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +127 -71
  290. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +127 -71
  291. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +362 -79
  292. nautobot/project-static/docs/user-guide/core-data-model/dcim/{controllerdevicegroup.html → controllermanageddevicegroup.html} +210 -85
  293. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +127 -71
  294. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +127 -71
  295. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +127 -71
  296. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +127 -71
  297. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +127 -71
  298. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +127 -71
  299. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +127 -71
  300. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +127 -71
  301. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +127 -71
  302. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +127 -71
  303. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +127 -71
  304. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +127 -71
  305. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +127 -71
  306. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +127 -71
  307. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +127 -71
  308. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +127 -71
  309. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +127 -71
  310. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +127 -71
  311. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +127 -71
  312. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +127 -71
  313. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +127 -71
  314. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +127 -71
  315. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +127 -71
  316. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +127 -71
  317. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +127 -71
  318. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +127 -71
  319. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +127 -71
  320. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +127 -71
  321. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +127 -71
  322. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +127 -71
  323. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +130 -74
  324. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +127 -71
  325. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +138 -71
  326. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +138 -71
  327. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +127 -71
  328. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +127 -71
  329. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +127 -71
  330. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +127 -71
  331. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +127 -71
  332. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +127 -71
  333. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +127 -71
  334. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +127 -71
  335. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +127 -71
  336. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +127 -71
  337. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +127 -71
  338. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +127 -71
  339. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +127 -71
  340. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +127 -71
  341. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +127 -71
  342. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +127 -71
  343. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +127 -71
  344. nautobot/project-static/docs/user-guide/feature-guides/{contact-and-team.html → contacts-and-teams.html} +128 -72
  345. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +129 -73
  346. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +127 -71
  347. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +127 -71
  348. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +127 -71
  349. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +127 -71
  350. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +127 -71
  351. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +127 -71
  352. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +129 -73
  353. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +127 -71
  354. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +127 -71
  355. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +127 -71
  356. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +127 -71
  357. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +127 -71
  358. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +127 -71
  359. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +127 -71
  360. nautobot/project-static/docs/user-guide/index.html +127 -71
  361. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +127 -71
  362. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +127 -71
  363. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +127 -71
  364. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +127 -71
  365. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +127 -71
  366. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +127 -71
  367. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +127 -71
  368. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +127 -71
  369. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +127 -71
  370. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +127 -71
  371. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +127 -71
  372. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +127 -71
  373. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +127 -71
  374. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +127 -71
  375. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +127 -71
  376. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +127 -71
  377. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +127 -71
  378. nautobot/project-static/docs/user-guide/platform-functionality/note.html +127 -71
  379. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +127 -71
  380. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +127 -71
  381. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +127 -71
  382. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +127 -71
  383. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +127 -71
  384. nautobot/project-static/docs/user-guide/platform-functionality/role.html +127 -71
  385. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +127 -71
  386. nautobot/project-static/docs/user-guide/platform-functionality/status.html +127 -71
  387. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +127 -71
  388. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +127 -71
  389. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +127 -71
  390. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +127 -71
  391. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +127 -71
  392. nautobot/project-static/jquery/jquery-3.7.1.min.js +2 -0
  393. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_444444_256x240.png +0 -0
  394. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_555555_256x240.png +0 -0
  395. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_777620_256x240.png +0 -0
  396. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_777777_256x240.png +0 -0
  397. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_cc0000_256x240.png +0 -0
  398. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_ffffff_256x240.png +0 -0
  399. nautobot/project-static/jquery-ui-1.13.2/jquery-ui.min.css +7 -0
  400. nautobot/project-static/jquery-ui-1.13.2/jquery-ui.min.js +6 -0
  401. nautobot/project-static/jquery-ui-1.13.2/jquery-ui.structure.min.css +5 -0
  402. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/jquery-ui.theme.min.css +1 -1
  403. nautobot/tenancy/api/urls.py +1 -2
  404. nautobot/tenancy/api/views.py +0 -12
  405. nautobot/tenancy/tables.py +1 -1
  406. nautobot/tenancy/tests/test_views.py +1 -0
  407. nautobot/users/api/urls.py +1 -2
  408. nautobot/users/api/views.py +2 -65
  409. nautobot/users/views.py +8 -8
  410. nautobot/virtualization/api/urls.py +1 -2
  411. nautobot/virtualization/api/views.py +0 -12
  412. {nautobot-2.2.0b1.dist-info → nautobot-2.2.1.dist-info}/METADATA +24 -24
  413. {nautobot-2.2.0b1.dist-info → nautobot-2.2.1.dist-info}/RECORD +418 -412
  414. nautobot/dcim/templates/dcim/controllerdevicegroup_create.html +0 -43
  415. nautobot/project-static/docs/assets/stylesheets/main.f2e4d321.min.css +0 -1
  416. nautobot/project-static/docs/assets/stylesheets/main.f2e4d321.min.css.map +0 -1
  417. nautobot/project-static/jquery/jquery-3.6.0.min.js +0 -2
  418. nautobot/project-static/jquery-ui-1.13.1/jquery-ui.min.css +0 -7
  419. nautobot/project-static/jquery-ui-1.13.1/jquery-ui.min.js +0 -6
  420. nautobot/project-static/jquery-ui-1.13.1/jquery-ui.structure.min.css +0 -5
  421. /nautobot/dcim/templates/dcim/{controllerdevicegroup_retrieve.html → controllermanageddevicegroup_retrieve.html} +0 -0
  422. {nautobot-2.2.0b1.dist-info → nautobot-2.2.1.dist-info}/LICENSE.txt +0 -0
  423. {nautobot-2.2.0b1.dist-info → nautobot-2.2.1.dist-info}/NOTICE +0 -0
  424. {nautobot-2.2.0b1.dist-info → nautobot-2.2.1.dist-info}/WHEEL +0 -0
  425. {nautobot-2.2.0b1.dist-info → nautobot-2.2.1.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.8">
21
+ <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.16">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../assets/stylesheets/main.f2e4d321.min.css">
29
+ <link rel="stylesheet" href="../../assets/stylesheets/main.bcfcd587.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
@@ -399,16 +399,14 @@
399
399
 
400
400
 
401
401
 
402
-
403
-
404
402
 
405
403
 
406
404
 
407
- <li class="md-nav__item md-nav__item--section md-nav__item--nested">
405
+
406
+ <li class="md-nav__item md-nav__item--nested">
408
407
 
409
408
 
410
409
 
411
-
412
410
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
413
411
 
414
412
 
@@ -425,7 +423,7 @@
425
423
  </a>
426
424
 
427
425
 
428
- <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
426
+ <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
429
427
  <span class="md-nav__icon md-icon"></span>
430
428
  </label>
431
429
 
@@ -447,13 +445,14 @@
447
445
 
448
446
 
449
447
 
448
+
449
+
450
450
 
451
451
 
452
452
  <li class="md-nav__item md-nav__item--nested">
453
453
 
454
454
 
455
455
 
456
-
457
456
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
458
457
 
459
458
 
@@ -484,13 +483,14 @@
484
483
 
485
484
 
486
485
 
486
+
487
+
487
488
 
488
489
 
489
490
  <li class="md-nav__item md-nav__item--nested">
490
491
 
491
492
 
492
493
 
493
-
494
494
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_1" >
495
495
 
496
496
 
@@ -686,6 +686,27 @@
686
686
 
687
687
 
688
688
 
689
+ <li class="md-nav__item">
690
+ <a href="../../user-guide/administration/installation/health-checks.html" class="md-nav__link">
691
+
692
+
693
+ <span class="md-ellipsis">
694
+ Health Checks
695
+ </span>
696
+
697
+
698
+ </a>
699
+ </li>
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
689
710
  <li class="md-nav__item">
690
711
  <a href="../../user-guide/administration/installation/selinux-troubleshooting.html" class="md-nav__link">
691
712
 
@@ -718,13 +739,14 @@
718
739
 
719
740
 
720
741
 
742
+
743
+
721
744
 
722
745
 
723
746
  <li class="md-nav__item md-nav__item--nested">
724
747
 
725
748
 
726
749
 
727
-
728
750
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2" >
729
751
 
730
752
 
@@ -797,13 +819,14 @@
797
819
 
798
820
 
799
821
 
822
+
823
+
800
824
 
801
825
 
802
826
  <li class="md-nav__item md-nav__item--nested">
803
827
 
804
828
 
805
829
 
806
-
807
830
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2_3" >
808
831
 
809
832
 
@@ -863,13 +886,14 @@
863
886
 
864
887
 
865
888
 
889
+
890
+
866
891
 
867
892
 
868
893
  <li class="md-nav__item md-nav__item--nested">
869
894
 
870
895
 
871
896
 
872
-
873
897
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2_3_2" >
874
898
 
875
899
 
@@ -1016,13 +1040,14 @@
1016
1040
 
1017
1041
 
1018
1042
 
1043
+
1044
+
1019
1045
 
1020
1046
 
1021
1047
  <li class="md-nav__item md-nav__item--nested">
1022
1048
 
1023
1049
 
1024
1050
 
1025
-
1026
1051
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3" >
1027
1052
 
1028
1053
 
@@ -1103,13 +1128,14 @@
1103
1128
 
1104
1129
 
1105
1130
 
1131
+
1132
+
1106
1133
 
1107
1134
 
1108
1135
  <li class="md-nav__item md-nav__item--nested">
1109
1136
 
1110
1137
 
1111
1138
 
1112
-
1113
1139
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4" >
1114
1140
 
1115
1141
 
@@ -1211,13 +1237,14 @@
1211
1237
 
1212
1238
 
1213
1239
 
1240
+
1241
+
1214
1242
 
1215
1243
 
1216
1244
  <li class="md-nav__item md-nav__item--nested">
1217
1245
 
1218
1246
 
1219
1247
 
1220
-
1221
1248
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4_4" >
1222
1249
 
1223
1250
 
@@ -1327,13 +1354,14 @@
1327
1354
 
1328
1355
 
1329
1356
 
1357
+
1358
+
1330
1359
 
1331
1360
 
1332
1361
  <li class="md-nav__item md-nav__item--nested">
1333
1362
 
1334
1363
 
1335
1364
 
1336
-
1337
1365
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5" >
1338
1366
 
1339
1367
 
@@ -1414,13 +1442,14 @@
1414
1442
 
1415
1443
 
1416
1444
 
1445
+
1446
+
1417
1447
 
1418
1448
 
1419
1449
  <li class="md-nav__item md-nav__item--nested">
1420
1450
 
1421
1451
 
1422
1452
 
1423
-
1424
1453
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_6" >
1425
1454
 
1426
1455
 
@@ -1635,13 +1664,14 @@
1635
1664
 
1636
1665
 
1637
1666
 
1667
+
1668
+
1638
1669
 
1639
1670
 
1640
1671
  <li class="md-nav__item md-nav__item--nested">
1641
1672
 
1642
1673
 
1643
1674
 
1644
-
1645
1675
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
1646
1676
 
1647
1677
 
@@ -1672,13 +1702,14 @@
1672
1702
 
1673
1703
 
1674
1704
 
1705
+
1706
+
1675
1707
 
1676
1708
 
1677
1709
  <li class="md-nav__item md-nav__item--nested">
1678
1710
 
1679
1711
 
1680
1712
 
1681
-
1682
1713
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2_1" >
1683
1714
 
1684
1715
 
@@ -1891,7 +1922,7 @@
1891
1922
 
1892
1923
 
1893
1924
  <li class="md-nav__item">
1894
- <a href="../../user-guide/feature-guides/contact-and-team.html" class="md-nav__link">
1925
+ <a href="../../user-guide/feature-guides/contacts-and-teams.html" class="md-nav__link">
1895
1926
 
1896
1927
 
1897
1928
  <span class="md-ellipsis">
@@ -2048,13 +2079,14 @@
2048
2079
 
2049
2080
 
2050
2081
 
2082
+
2083
+
2051
2084
 
2052
2085
 
2053
2086
  <li class="md-nav__item md-nav__item--nested">
2054
2087
 
2055
2088
 
2056
2089
 
2057
-
2058
2090
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
2059
2091
 
2060
2092
 
@@ -2085,13 +2117,14 @@
2085
2117
 
2086
2118
 
2087
2119
 
2120
+
2121
+
2088
2122
 
2089
2123
 
2090
2124
  <li class="md-nav__item md-nav__item--nested">
2091
2125
 
2092
2126
 
2093
2127
 
2094
-
2095
2128
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_1" >
2096
2129
 
2097
2130
 
@@ -2151,13 +2184,14 @@
2151
2184
 
2152
2185
 
2153
2186
 
2187
+
2188
+
2154
2189
 
2155
2190
 
2156
2191
  <li class="md-nav__item md-nav__item--nested">
2157
2192
 
2158
2193
 
2159
2194
 
2160
-
2161
2195
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_2" >
2162
2196
 
2163
2197
 
@@ -2301,13 +2335,14 @@
2301
2335
 
2302
2336
 
2303
2337
 
2338
+
2339
+
2304
2340
 
2305
2341
 
2306
2342
  <li class="md-nav__item md-nav__item--nested">
2307
2343
 
2308
2344
 
2309
2345
 
2310
-
2311
2346
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3" >
2312
2347
 
2313
2348
 
@@ -2485,13 +2520,14 @@
2485
2520
 
2486
2521
 
2487
2522
 
2523
+
2524
+
2488
2525
 
2489
2526
 
2490
2527
  <li class="md-nav__item md-nav__item--nested">
2491
2528
 
2492
2529
 
2493
2530
 
2494
-
2495
2531
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_8" >
2496
2532
 
2497
2533
 
@@ -2706,13 +2742,14 @@
2706
2742
 
2707
2743
 
2708
2744
 
2745
+
2746
+
2709
2747
 
2710
2748
 
2711
2749
  <li class="md-nav__item md-nav__item--nested">
2712
2750
 
2713
2751
 
2714
2752
 
2715
-
2716
2753
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_9" >
2717
2754
 
2718
2755
 
@@ -3156,11 +3193,11 @@
3156
3193
 
3157
3194
 
3158
3195
  <li class="md-nav__item">
3159
- <a href="../../user-guide/core-data-model/dcim/controllerdevicegroup.html" class="md-nav__link">
3196
+ <a href="../../user-guide/core-data-model/dcim/controllermanageddevicegroup.html" class="md-nav__link">
3160
3197
 
3161
3198
 
3162
3199
  <span class="md-ellipsis">
3163
- Controller Device Group
3200
+ Controller Managed Device Group
3164
3201
  </span>
3165
3202
 
3166
3203
 
@@ -3187,13 +3224,14 @@
3187
3224
 
3188
3225
 
3189
3226
 
3227
+
3228
+
3190
3229
 
3191
3230
 
3192
3231
  <li class="md-nav__item md-nav__item--nested">
3193
3232
 
3194
3233
 
3195
3234
 
3196
-
3197
3235
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
3198
3236
 
3199
3237
 
@@ -3316,13 +3354,14 @@
3316
3354
 
3317
3355
 
3318
3356
 
3357
+
3358
+
3319
3359
 
3320
3360
 
3321
3361
  <li class="md-nav__item md-nav__item--nested">
3322
3362
 
3323
3363
 
3324
3364
 
3325
-
3326
3365
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_5" >
3327
3366
 
3328
3367
 
@@ -3550,13 +3589,14 @@
3550
3589
 
3551
3590
 
3552
3591
 
3592
+
3593
+
3553
3594
 
3554
3595
 
3555
3596
  <li class="md-nav__item md-nav__item--nested">
3556
3597
 
3557
3598
 
3558
3599
 
3559
-
3560
3600
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_6" >
3561
3601
 
3562
3602
 
@@ -3637,13 +3677,14 @@
3637
3677
 
3638
3678
 
3639
3679
 
3680
+
3681
+
3640
3682
 
3641
3683
 
3642
3684
  <li class="md-nav__item md-nav__item--nested">
3643
3685
 
3644
3686
 
3645
3687
 
3646
-
3647
3688
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_7" >
3648
3689
 
3649
3690
 
@@ -3795,13 +3836,14 @@
3795
3836
 
3796
3837
 
3797
3838
 
3839
+
3840
+
3798
3841
 
3799
3842
 
3800
3843
  <li class="md-nav__item md-nav__item--nested">
3801
3844
 
3802
3845
 
3803
3846
 
3804
-
3805
3847
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
3806
3848
 
3807
3849
 
@@ -4000,13 +4042,14 @@
4000
4042
 
4001
4043
 
4002
4044
 
4045
+
4046
+
4003
4047
 
4004
4048
 
4005
4049
  <li class="md-nav__item md-nav__item--nested">
4006
4050
 
4007
4051
 
4008
4052
 
4009
-
4010
4053
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_9" >
4011
4054
 
4012
4055
 
@@ -4095,13 +4138,14 @@
4095
4138
 
4096
4139
 
4097
4140
 
4141
+
4142
+
4098
4143
 
4099
4144
 
4100
4145
  <li class="md-nav__item md-nav__item--nested">
4101
4146
 
4102
4147
 
4103
4148
 
4104
-
4105
4149
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_11" >
4106
4150
 
4107
4151
 
@@ -4295,13 +4339,14 @@
4295
4339
 
4296
4340
 
4297
4341
 
4342
+
4343
+
4298
4344
 
4299
4345
 
4300
4346
  <li class="md-nav__item md-nav__item--nested">
4301
4347
 
4302
4348
 
4303
4349
 
4304
-
4305
4350
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_15" >
4306
4351
 
4307
4352
 
@@ -4516,13 +4561,14 @@
4516
4561
 
4517
4562
 
4518
4563
 
4564
+
4565
+
4519
4566
 
4520
4567
 
4521
4568
  <li class="md-nav__item md-nav__item--nested">
4522
4569
 
4523
4570
 
4524
4571
 
4525
-
4526
4572
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_21" >
4527
4573
 
4528
4574
 
@@ -4641,16 +4687,17 @@
4641
4687
 
4642
4688
 
4643
4689
 
4644
-
4645
-
4690
+
4691
+
4692
+
4646
4693
 
4647
4694
 
4695
+
4648
4696
 
4649
4697
  <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
4650
4698
 
4651
4699
 
4652
4700
 
4653
-
4654
4701
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
4655
4702
 
4656
4703
 
@@ -4689,13 +4736,14 @@
4689
4736
 
4690
4737
 
4691
4738
 
4739
+
4740
+
4692
4741
 
4693
4742
 
4694
4743
  <li class="md-nav__item md-nav__item--nested">
4695
4744
 
4696
4745
 
4697
4746
 
4698
-
4699
4747
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1" >
4700
4748
 
4701
4749
 
@@ -4763,13 +4811,14 @@
4763
4811
 
4764
4812
 
4765
4813
 
4814
+
4815
+
4766
4816
 
4767
4817
 
4768
4818
  <li class="md-nav__item md-nav__item--nested">
4769
4819
 
4770
4820
 
4771
4821
 
4772
-
4773
4822
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" >
4774
4823
 
4775
4824
 
@@ -4850,13 +4899,14 @@
4850
4899
 
4851
4900
 
4852
4901
 
4902
+
4903
+
4853
4904
 
4854
4905
 
4855
4906
  <li class="md-nav__item md-nav__item--nested">
4856
4907
 
4857
4908
 
4858
4909
 
4859
-
4860
4910
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_3" >
4861
4911
 
4862
4912
 
@@ -4966,13 +5016,14 @@
4966
5016
 
4967
5017
 
4968
5018
 
5019
+
5020
+
4969
5021
 
4970
5022
 
4971
5023
  <li class="md-nav__item md-nav__item--nested">
4972
5024
 
4973
5025
 
4974
5026
 
4975
-
4976
5027
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4" >
4977
5028
 
4978
5029
 
@@ -5158,13 +5209,14 @@
5158
5209
 
5159
5210
 
5160
5211
 
5212
+
5213
+
5161
5214
 
5162
5215
 
5163
5216
  <li class="md-nav__item md-nav__item--nested">
5164
5217
 
5165
5218
 
5166
5219
 
5167
-
5168
5220
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4_8" >
5169
5221
 
5170
5222
 
@@ -5274,13 +5326,14 @@
5274
5326
 
5275
5327
 
5276
5328
 
5329
+
5330
+
5277
5331
 
5278
5332
 
5279
5333
  <li class="md-nav__item md-nav__item--nested">
5280
5334
 
5281
5335
 
5282
5336
 
5283
-
5284
5337
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_5" >
5285
5338
 
5286
5339
 
@@ -5537,13 +5590,14 @@
5537
5590
 
5538
5591
 
5539
5592
 
5593
+
5594
+
5540
5595
 
5541
5596
 
5542
5597
  <li class="md-nav__item md-nav__item--nested">
5543
5598
 
5544
5599
 
5545
5600
 
5546
-
5547
5601
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_6" >
5548
5602
 
5549
5603
 
@@ -5716,13 +5770,14 @@
5716
5770
 
5717
5771
 
5718
5772
 
5773
+
5774
+
5719
5775
 
5720
5776
 
5721
5777
  <li class="md-nav__item md-nav__item--nested">
5722
5778
 
5723
5779
 
5724
5780
 
5725
-
5726
5781
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_8" >
5727
5782
 
5728
5783
 
@@ -6244,13 +6299,14 @@
6244
6299
 
6245
6300
 
6246
6301
 
6302
+
6303
+
6247
6304
 
6248
6305
 
6249
6306
  <li class="md-nav__item md-nav__item--nested">
6250
6307
 
6251
6308
 
6252
6309
 
6253
-
6254
6310
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9" >
6255
6311
 
6256
6312
 
@@ -6344,13 +6400,14 @@
6344
6400
 
6345
6401
 
6346
6402
 
6403
+
6404
+
6347
6405
 
6348
6406
 
6349
6407
  <li class="md-nav__item md-nav__item--nested">
6350
6408
 
6351
6409
 
6352
6410
 
6353
-
6354
6411
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_4" >
6355
6412
 
6356
6413
 
@@ -6481,13 +6538,14 @@
6481
6538
 
6482
6539
 
6483
6540
 
6541
+
6542
+
6484
6543
 
6485
6544
 
6486
6545
  <li class="md-nav__item md-nav__item--nested">
6487
6546
 
6488
6547
 
6489
6548
 
6490
-
6491
6549
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
6492
6550
 
6493
6551
 
@@ -6557,13 +6615,14 @@
6557
6615
 
6558
6616
 
6559
6617
 
6618
+
6619
+
6560
6620
 
6561
6621
 
6562
6622
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
6563
6623
 
6564
6624
 
6565
6625
 
6566
-
6567
6626
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" checked>
6568
6627
 
6569
6628
 
@@ -7318,11 +7377,11 @@
7318
7377
 
7319
7378
 
7320
7379
  <li class="md-nav__item">
7321
- <a href="extending-models.html" class="md-nav__link">
7380
+ <a href="generic-views.html" class="md-nav__link">
7322
7381
 
7323
7382
 
7324
7383
  <span class="md-ellipsis">
7325
- Extending Models
7384
+ Generic Views
7326
7385
  </span>
7327
7386
 
7328
7387
 
@@ -7339,11 +7398,11 @@
7339
7398
 
7340
7399
 
7341
7400
  <li class="md-nav__item">
7342
- <a href="generic-views.html" class="md-nav__link">
7401
+ <a href="homepage.html" class="md-nav__link">
7343
7402
 
7344
7403
 
7345
7404
  <span class="md-ellipsis">
7346
- Generic Views
7405
+ Home Page Panels
7347
7406
  </span>
7348
7407
 
7349
7408
 
@@ -7360,11 +7419,11 @@
7360
7419
 
7361
7420
 
7362
7421
  <li class="md-nav__item">
7363
- <a href="homepage.html" class="md-nav__link">
7422
+ <a href="model-checklist.html" class="md-nav__link">
7364
7423
 
7365
7424
 
7366
7425
  <span class="md-ellipsis">
7367
- Home Page Panels
7426
+ Model Development Checklist
7368
7427
  </span>
7369
7428
 
7370
7429
 
@@ -7587,16 +7646,14 @@
7587
7646
 
7588
7647
 
7589
7648
 
7590
-
7591
-
7592
7649
 
7593
7650
 
7594
7651
 
7595
- <li class="md-nav__item md-nav__item--section md-nav__item--nested">
7652
+
7653
+ <li class="md-nav__item md-nav__item--nested">
7596
7654
 
7597
7655
 
7598
7656
 
7599
-
7600
7657
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
7601
7658
 
7602
7659
 
@@ -7613,7 +7670,7 @@
7613
7670
  </a>
7614
7671
 
7615
7672
 
7616
- <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
7673
+ <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
7617
7674
  <span class="md-nav__icon md-icon"></span>
7618
7675
  </label>
7619
7676
 
@@ -7852,16 +7909,14 @@
7852
7909
 
7853
7910
 
7854
7911
 
7855
-
7856
-
7857
7912
 
7858
7913
 
7859
7914
 
7860
- <li class="md-nav__item md-nav__item--section md-nav__item--nested">
7915
+
7916
+ <li class="md-nav__item md-nav__item--nested">
7861
7917
 
7862
7918
 
7863
7919
 
7864
-
7865
7920
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
7866
7921
 
7867
7922
 
@@ -7878,7 +7933,7 @@
7878
7933
  </a>
7879
7934
 
7880
7935
 
7881
- <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
7936
+ <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
7882
7937
  <span class="md-nav__icon md-icon"></span>
7883
7938
  </label>
7884
7939
 
@@ -7900,13 +7955,14 @@
7900
7955
 
7901
7956
 
7902
7957
 
7958
+
7959
+
7903
7960
 
7904
7961
 
7905
7962
  <li class="md-nav__item md-nav__item--nested">
7906
7963
 
7907
7964
 
7908
7965
 
7909
-
7910
7966
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" >
7911
7967
 
7912
7968
 
@@ -9244,7 +9300,9 @@
9244
9300
  <li><code>--keepdb</code> - Save and reuse the initialized test database between test runs. Can significantly improve the initial startup time of the test suite after your first test run. <strong>Do not use if you're actively making changes to model definitions or migrations.</strong></li>
9245
9301
  <li><code>--label &lt;module.path&gt;</code> - Only run the specific subset of tests. Can be broad (<code>--label nautobot.core.tests</code>) or specific (<code>--label nautobot.core.tests.test_graphql.GraphQLQueryTestCase</code>).</li>
9246
9302
  <li><code>--no-buffer</code> - Allow stdout/stderr output from the test to be seen in your terminal, instead of being hidden. <strong>If you're debugging code with <code>breakpoint()</code>, you should use this option, as otherwise you'll never see the breakpoint happen.</strong></li>
9247
- <li><code>--parallel</code> - Split the tests across multiple parallel subprocesses. Can greatly reduce the runtime of the entire test suite when used.</li>
9303
+ <li><code>--parallel</code> - Split the tests across multiple parallel subprocesses. Can greatly reduce the runtime of the entire test suite when used. Auto-detects the number of workers if not specified with <code>--parallel-workers</code>.</li>
9304
+ <li><code>--parallel-workers</code> - Specify the number of workers to use when running tests in parallel. Implies <code>--parallel</code>.</li>
9305
+ <li><code>--pattern</code> - Only run tests which match the given substring. Can be used multiple times.</li>
9248
9306
  <li><code>--skip-docs-build</code> - Skip building/rebuilding the static Nautobot documentation before running the test. Saves some time on reruns when you haven't changed the documentation source files.</li>
9249
9307
  <li><code>--verbose</code> - Run tests more verbosely, including describing each test case as it is run.</li>
9250
9308
  </ul>
@@ -9252,13 +9310,20 @@
9252
9310
  <p>In general, when you first run the Nautobot tests in your local copy of the repository, we'd recommend:</p>
9253
9311
  <div class="highlight"><pre><span></span><code><a id="__codelineno-43-1" name="__codelineno-43-1" href="#__codelineno-43-1"></a>invoke unittest --cache-test-fixtures --keepdb --parallel
9254
9312
  </code></pre></div>
9313
+ <p>When there are too many cores on the testing machine, you can limit the number of parallel workers:</p>
9314
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a>invoke unittest --cache-test-fixtures --keepdb --parallel-workers 4
9315
+ </code></pre></div>
9255
9316
  <p>On subsequent reruns, you can add the other performance-related options:</p>
9256
- <div class="highlight"><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a>invoke unittest --cache-test-fixtures --keepdb --parallel --skip-docs-build
9257
- <a id="__codelineno-44-2" name="__codelineno-44-2" href="#__codelineno-44-2"></a>invoke unittest --cache-test-fixtures --keepdb --parallel --skip-docs-build --label nautobot.core.tests
9317
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a>invoke unittest --cache-test-fixtures --keepdb --parallel --skip-docs-build
9318
+ <a id="__codelineno-45-2" name="__codelineno-45-2" href="#__codelineno-45-2"></a>invoke unittest --cache-test-fixtures --keepdb --parallel --skip-docs-build --label nautobot.core.tests
9258
9319
  </code></pre></div>
9259
9320
  <p>When switching between significantly different branches of the code base (e.g. <code>main</code> vs <code>develop</code> vs <code>next</code>), you'll need to remove the cached test factory data, and for once omit the <code>--keepdb</code> option so that the test database can be destroyed and recreated appropriately:</p>
9260
- <div class="highlight"><pre><span></span><code><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a>rm development/factory_dump.json
9261
- <a id="__codelineno-45-2" name="__codelineno-45-2" href="#__codelineno-45-2"></a>invoke unittest --cache-test-fixtures --parallel
9321
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a>rm development/factory_dump.json
9322
+ <a id="__codelineno-46-2" name="__codelineno-46-2" href="#__codelineno-46-2"></a>invoke unittest --cache-test-fixtures --parallel
9323
+ </code></pre></div>
9324
+ <p>To limit the test to a specific pattern or label, you can use the <code>--label</code> and <code>--pattern</code> options:</p>
9325
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a>invoke unittest --cache-test-fixtures --keepdb --verbose --skip-docs-build --label nautobot.core.tests.dcim.test_views.DeviceTestCase
9326
+ <a id="__codelineno-47-2" name="__codelineno-47-2" href="#__codelineno-47-2"></a>invoke unittest --cache-test-fixtures --keepdb --verbose --skip-docs-build --pattern Controller
9262
9327
  </code></pre></div>
9263
9328
  <h4 id="integration-tests">Integration Tests<a class="headerlink" href="#integration-tests" title="Permanent link">&para;</a></h4>
9264
9329
  <p>Integration tests are automated tests written and run to ensure that the Nautobot application behaves as expected when being used as it would be in practice. By contrast to unit tests, where individual units of code are being tested, integration tests rely upon the server code actually running, and web UI clients or API clients to make real connections to the service to exercise actual workflows, such as navigating to the login page, filling out the username/passwords fields, and clicking the "Log In" button.</p>
@@ -9463,8 +9528,8 @@
9463
9528
  </table>
9464
9529
  <h2 id="submitting-pull-requests">Submitting Pull Requests<a class="headerlink" href="#submitting-pull-requests" title="Permanent link">&para;</a></h2>
9465
9530
  <p>Once you're happy with your work and have verified that all tests pass, commit your changes and push it upstream to your fork. Always provide descriptive (but not excessively verbose) commit messages. When working on a specific issue, be sure to reference it.</p>
9466
- <div class="highlight"><pre><span></span><code><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a>git commit -m &quot;Closes #1234: Add IPv5 support&quot;
9467
- <a id="__codelineno-46-2" name="__codelineno-46-2" href="#__codelineno-46-2"></a>git push origin
9531
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a>git commit -m &quot;Closes #1234: Add IPv5 support&quot;
9532
+ <a id="__codelineno-48-2" name="__codelineno-48-2" href="#__codelineno-48-2"></a>git push origin
9468
9533
  </code></pre></div>
9469
9534
  <p>Once your fork has the new commit, submit a <a href="https://github.com/nautobot/nautobot/compare">pull request</a> to the Nautobot repo to propose the changes. Be sure to provide a detailed accounting of the changes being made and the reasons for doing so.</p>
9470
9535
  <p>Once submitted, a maintainer will review your pull request and either merge it or request changes. If changes are needed, you can make them via new commits to your fork: The pull request will update automatically.</p>
@@ -9476,11 +9541,11 @@
9476
9541
  <p>Below are common issues you might encounter in your development environment and how to address them.</p>
9477
9542
  <h3 id="fatal-sorry-too-many-clients-already">FATAL: sorry, too many clients already<a class="headerlink" href="#fatal-sorry-too-many-clients-already" title="Permanent link">&para;</a></h3>
9478
9543
  <p>When using <code>nautobot-server runserver</code> to do development you might run into a traceback that looks something like this:</p>
9479
- <div class="highlight"><pre><span></span><code><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a>Exception Type: OperationalError at /extras/tags/
9480
- <a id="__codelineno-47-2" name="__codelineno-47-2" href="#__codelineno-47-2"></a>Exception Value: FATAL: sorry, too many clients already
9544
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-49-1" name="__codelineno-49-1" href="#__codelineno-49-1"></a>Exception Type: OperationalError at /extras/tags/
9545
+ <a id="__codelineno-49-2" name="__codelineno-49-2" href="#__codelineno-49-2"></a>Exception Value: FATAL: sorry, too many clients already
9481
9546
  </code></pre></div>
9482
9547
  <p>The <code>runserver</code> development server is multi-threaded by default, which means that every request is creating its own connection. If you are doing some local testing or development that is resulting in a lot of connections to the database, pass <code>--nothreading</code> to the runserver command to disable threading:</p>
9483
- <div class="highlight"><pre><span></span><code><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a>nautobot-server runserver --nothreading
9548
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-50-1" name="__codelineno-50-1" href="#__codelineno-50-1"></a>nautobot-server runserver --nothreading
9484
9549
  </code></pre></div>
9485
9550
 
9486
9551
 
@@ -9626,9 +9691,9 @@
9626
9691
  <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.copy", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9627
9692
 
9628
9693
 
9629
- <script src="../../assets/javascripts/bundle.8fd75fb4.min.js"></script>
9694
+ <script src="../../assets/javascripts/bundle.bd41221c.min.js"></script>
9630
9695
 
9631
- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
9696
+ <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9632
9697
 
9633
9698
 
9634
9699
  </body>