nautobot 2.2.2__py3-none-any.whl → 2.2.4__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 (362) hide show
  1. nautobot/apps/jobs.py +2 -0
  2. nautobot/core/api/utils.py +12 -9
  3. nautobot/core/apps/__init__.py +2 -2
  4. nautobot/core/celery/__init__.py +79 -68
  5. nautobot/core/celery/backends.py +9 -1
  6. nautobot/core/celery/control.py +4 -7
  7. nautobot/core/celery/schedulers.py +4 -2
  8. nautobot/core/celery/task.py +78 -5
  9. nautobot/core/graphql/schema.py +2 -1
  10. nautobot/core/jobs/__init__.py +2 -1
  11. nautobot/core/settings.py +6 -4
  12. nautobot/core/settings.yaml +51 -16
  13. nautobot/core/templates/admin/base.html +2 -2
  14. nautobot/core/templates/base_django.html +2 -2
  15. nautobot/core/templates/buttons/export.html +47 -47
  16. nautobot/core/templates/generic/object_list.html +3 -3
  17. nautobot/core/templates/inc/javascript.html +3 -0
  18. nautobot/core/templates/inc/media.html +3 -0
  19. nautobot/core/templates/login.html +2 -2
  20. nautobot/core/templates/nautobot_config.py.j2 +2 -0
  21. nautobot/core/templatetags/helpers.py +66 -9
  22. nautobot/core/testing/__init__.py +6 -1
  23. nautobot/core/testing/api.py +12 -13
  24. nautobot/core/testing/mixins.py +2 -2
  25. nautobot/core/testing/views.py +50 -51
  26. nautobot/core/tests/test_api.py +23 -2
  27. nautobot/core/tests/test_jobs.py +79 -2
  28. nautobot/core/tests/test_templatetags_helpers.py +32 -0
  29. nautobot/core/tests/test_views.py +52 -0
  30. nautobot/core/tests/test_views_utils.py +22 -1
  31. nautobot/core/utils/module_loading.py +89 -0
  32. nautobot/core/views/mixins.py +4 -0
  33. nautobot/core/views/utils.py +3 -2
  34. nautobot/dcim/choices.py +14 -0
  35. nautobot/dcim/forms.py +51 -1
  36. nautobot/dcim/models/device_components.py +9 -5
  37. nautobot/dcim/templates/dcim/location.html +32 -13
  38. nautobot/dcim/templates/dcim/location_migrate_data_to_contact.html +102 -0
  39. nautobot/dcim/tests/test_views.py +376 -55
  40. nautobot/dcim/urls.py +5 -0
  41. nautobot/dcim/views.py +172 -21
  42. nautobot/extras/api/serializers.py +17 -6
  43. nautobot/extras/api/views.py +21 -10
  44. nautobot/extras/constants.py +3 -3
  45. nautobot/extras/datasources/git.py +47 -58
  46. nautobot/extras/forms/forms.py +3 -1
  47. nautobot/extras/jobs.py +79 -146
  48. nautobot/extras/models/datasources.py +0 -2
  49. nautobot/extras/models/jobs.py +36 -18
  50. nautobot/extras/plugins/__init__.py +1 -20
  51. nautobot/extras/signals.py +6 -9
  52. nautobot/extras/test_jobs/__init__.py +8 -0
  53. nautobot/extras/test_jobs/dry_run.py +3 -2
  54. nautobot/extras/test_jobs/fail.py +43 -0
  55. nautobot/extras/test_jobs/ipaddress_vars.py +40 -1
  56. nautobot/extras/test_jobs/jobs_module/__init__.py +5 -0
  57. nautobot/extras/test_jobs/jobs_module/jobs_submodule/__init__.py +1 -0
  58. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +6 -0
  59. nautobot/extras/test_jobs/pass.py +40 -0
  60. nautobot/extras/test_jobs/relative_import.py +11 -0
  61. nautobot/extras/tests/test_api.py +3 -0
  62. nautobot/extras/tests/test_context_managers.py +18 -0
  63. nautobot/extras/tests/test_datasources.py +125 -118
  64. nautobot/extras/tests/test_job_variables.py +57 -15
  65. nautobot/extras/tests/test_jobs.py +135 -1
  66. nautobot/extras/tests/test_models.py +26 -19
  67. nautobot/extras/tests/test_plugins.py +1 -3
  68. nautobot/extras/tests/test_views.py +2 -4
  69. nautobot/extras/utils.py +2 -1
  70. nautobot/extras/views.py +82 -116
  71. nautobot/ipam/api/views.py +8 -1
  72. nautobot/ipam/graphql/types.py +11 -0
  73. nautobot/ipam/mixins.py +32 -0
  74. nautobot/ipam/models.py +2 -1
  75. nautobot/ipam/querysets.py +6 -1
  76. nautobot/ipam/tests/test_models.py +82 -0
  77. nautobot/ipam/views.py +6 -6
  78. nautobot/project-static/docs/404.html +107 -51
  79. nautobot/project-static/docs/apps/index.html +107 -51
  80. nautobot/project-static/docs/apps/nautobot-apps.html +107 -51
  81. nautobot/project-static/docs/assets/_mkdocstrings.css +6 -1
  82. nautobot/project-static/docs/assets/extra.css +11 -0
  83. nautobot/project-static/docs/assets/javascripts/bundle.3220b9d7.min.js +29 -0
  84. nautobot/project-static/docs/assets/javascripts/bundle.3220b9d7.min.js.map +7 -0
  85. nautobot/project-static/docs/assets/stylesheets/main.66ac8b77.min.css +1 -0
  86. nautobot/project-static/docs/assets/stylesheets/main.66ac8b77.min.css.map +1 -0
  87. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +107 -51
  88. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +107 -51
  89. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +108 -52
  90. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +107 -51
  91. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +107 -51
  92. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +107 -51
  93. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +107 -51
  94. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +107 -51
  95. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +107 -51
  96. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +107 -51
  97. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +107 -51
  98. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +107 -51
  99. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +107 -51
  100. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +287 -262
  101. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +107 -51
  102. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +107 -51
  103. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +107 -51
  104. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +107 -51
  105. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +107 -51
  106. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +107 -51
  107. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +107 -51
  108. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +107 -51
  109. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +107 -51
  110. nautobot/project-static/docs/development/apps/api/configuration-view.html +110 -54
  111. nautobot/project-static/docs/development/apps/api/database-backend-config.html +110 -54
  112. nautobot/project-static/docs/development/apps/api/models/django-admin.html +107 -51
  113. nautobot/project-static/docs/development/apps/api/models/global-search.html +110 -54
  114. nautobot/project-static/docs/development/apps/api/models/graphql.html +113 -57
  115. nautobot/project-static/docs/development/apps/api/models/index.html +107 -51
  116. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +113 -57
  117. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +107 -51
  118. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +110 -54
  119. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +107 -51
  120. nautobot/project-static/docs/development/apps/api/platform-features/index.html +107 -51
  121. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +110 -54
  122. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +111 -55
  123. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +110 -54
  124. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +110 -54
  125. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +107 -51
  126. nautobot/project-static/docs/development/apps/api/prometheus.html +110 -54
  127. nautobot/project-static/docs/development/apps/api/setup.html +107 -51
  128. nautobot/project-static/docs/development/apps/api/testing.html +113 -57
  129. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +110 -54
  130. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +110 -54
  131. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +107 -51
  132. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +107 -51
  133. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +113 -57
  134. nautobot/project-static/docs/development/apps/api/views/base-template.html +107 -51
  135. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +110 -54
  136. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +107 -51
  137. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +110 -54
  138. nautobot/project-static/docs/development/apps/api/views/index.html +107 -51
  139. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +113 -57
  140. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +122 -66
  141. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +110 -54
  142. nautobot/project-static/docs/development/apps/api/views/notes.html +110 -54
  143. nautobot/project-static/docs/development/apps/api/views/rest-api.html +107 -51
  144. nautobot/project-static/docs/development/apps/api/views/urls.html +107 -51
  145. nautobot/project-static/docs/development/apps/index.html +128 -72
  146. nautobot/project-static/docs/development/apps/migration/code-updates.html +107 -51
  147. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +107 -51
  148. nautobot/project-static/docs/development/apps/migration/from-v1.html +107 -51
  149. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +107 -51
  150. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +107 -51
  151. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +107 -51
  152. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +107 -51
  153. nautobot/project-static/docs/development/apps/porting-from-netbox.html +110 -54
  154. nautobot/project-static/docs/development/core/application-registry.html +242 -144
  155. nautobot/project-static/docs/development/core/best-practices.html +122 -66
  156. nautobot/project-static/docs/development/core/bootstrap-ui.html +107 -51
  157. nautobot/project-static/docs/development/core/caching.html +107 -51
  158. nautobot/project-static/docs/development/core/controllers.html +107 -51
  159. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +113 -57
  160. nautobot/project-static/docs/development/core/generic-views.html +110 -54
  161. nautobot/project-static/docs/development/core/getting-started.html +135 -79
  162. nautobot/project-static/docs/development/core/homepage.html +110 -54
  163. nautobot/project-static/docs/development/core/index.html +107 -51
  164. nautobot/project-static/docs/development/core/model-checklist.html +156 -52
  165. nautobot/project-static/docs/development/core/model-features.html +108 -52
  166. nautobot/project-static/docs/development/core/natural-keys.html +110 -54
  167. nautobot/project-static/docs/development/core/navigation-menu.html +107 -51
  168. nautobot/project-static/docs/development/core/release-checklist.html +107 -51
  169. nautobot/project-static/docs/development/core/role-internals.html +107 -51
  170. nautobot/project-static/docs/development/core/settings.html +107 -51
  171. nautobot/project-static/docs/development/core/style-guide.html +110 -54
  172. nautobot/project-static/docs/development/core/templates.html +113 -57
  173. nautobot/project-static/docs/development/core/testing.html +125 -69
  174. nautobot/project-static/docs/development/core/user-preferences.html +107 -51
  175. nautobot/project-static/docs/development/index.html +107 -51
  176. nautobot/project-static/docs/development/jobs/index.html +504 -172
  177. nautobot/project-static/docs/development/jobs/migration/from-v1.html +111 -55
  178. nautobot/project-static/docs/docker/index.html +3 -3
  179. nautobot/project-static/docs/index.html +125 -69
  180. nautobot/project-static/docs/installation/selinux-troubleshooting.html +3 -3
  181. nautobot/project-static/docs/objects.inv +0 -0
  182. nautobot/project-static/docs/release-notes/index.html +107 -51
  183. nautobot/project-static/docs/release-notes/version-1.0.html +107 -51
  184. nautobot/project-static/docs/release-notes/version-1.1.html +107 -51
  185. nautobot/project-static/docs/release-notes/version-1.2.html +107 -51
  186. nautobot/project-static/docs/release-notes/version-1.3.html +107 -51
  187. nautobot/project-static/docs/release-notes/version-1.4.html +107 -51
  188. nautobot/project-static/docs/release-notes/version-1.5.html +116 -60
  189. nautobot/project-static/docs/release-notes/version-1.6.html +107 -51
  190. nautobot/project-static/docs/release-notes/version-2.0.html +110 -54
  191. nautobot/project-static/docs/release-notes/version-2.1.html +107 -51
  192. nautobot/project-static/docs/release-notes/version-2.2.html +500 -114
  193. nautobot/project-static/docs/requirements.txt +2 -2
  194. nautobot/project-static/docs/search/search_index.json +1 -1
  195. nautobot/project-static/docs/sitemap.xml +262 -262
  196. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  197. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +107 -51
  198. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +107 -51
  199. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +107 -51
  200. nautobot/project-static/docs/user-guide/administration/configuration/index.html +107 -51
  201. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +251 -164
  202. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +113 -57
  203. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +107 -51
  204. nautobot/project-static/docs/user-guide/administration/guides/caching.html +113 -57
  205. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +107 -51
  206. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +107 -51
  207. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +107 -51
  208. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +113 -57
  209. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +107 -51
  210. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +107 -51
  211. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +107 -51
  212. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +171 -112
  213. nautobot/project-static/docs/user-guide/administration/installation/docker.html +13 -8626
  214. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +117 -61
  215. nautobot/project-static/docs/user-guide/administration/installation/health-checks.html +13 -8614
  216. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +252 -165
  217. nautobot/project-static/docs/user-guide/administration/installation/index.html +165 -192
  218. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +411 -691
  219. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +248 -229
  220. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +13 -8118
  221. nautobot/project-static/docs/user-guide/administration/installation/services.html +350 -240
  222. nautobot/project-static/docs/user-guide/administration/installation-extras/docker.html +8684 -0
  223. nautobot/project-static/docs/user-guide/administration/installation-extras/health-checks.html +8672 -0
  224. nautobot/project-static/docs/user-guide/administration/installation-extras/selinux-troubleshooting.html +8176 -0
  225. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +110 -54
  226. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +110 -54
  227. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +155 -99
  228. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +107 -51
  229. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +109 -53
  230. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +107 -51
  231. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +107 -51
  232. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +107 -51
  233. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +107 -51
  234. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +107 -51
  235. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +107 -51
  236. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +117 -58
  237. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +113 -57
  238. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +107 -51
  239. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +107 -51
  240. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +107 -51
  241. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +107 -51
  242. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +110 -54
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +107 -51
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +110 -54
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +110 -54
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +110 -54
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +110 -54
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +107 -51
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +107 -51
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +113 -57
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +110 -54
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +110 -54
  253. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +110 -54
  254. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +110 -54
  255. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +116 -60
  256. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +110 -54
  257. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +110 -54
  258. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +119 -63
  259. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +110 -54
  260. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +110 -54
  261. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +113 -57
  262. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +113 -57
  263. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +113 -57
  264. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +107 -51
  265. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +113 -57
  266. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +107 -51
  267. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +110 -54
  268. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +110 -54
  269. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +107 -51
  270. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +110 -54
  271. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +110 -54
  272. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +107 -51
  273. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +107 -51
  274. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +107 -51
  275. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +110 -54
  276. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +110 -54
  277. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +110 -54
  278. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +110 -54
  279. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +107 -51
  280. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +113 -57
  281. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +110 -54
  282. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +110 -54
  283. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +110 -54
  284. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +125 -69
  285. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +113 -57
  286. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +128 -72
  287. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +110 -54
  288. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +107 -51
  289. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +110 -54
  290. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +227 -60
  291. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +107 -51
  292. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +113 -57
  293. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +107 -51
  294. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +110 -54
  295. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +107 -51
  296. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +107 -51
  297. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +107 -51
  298. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +107 -51
  299. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +113 -57
  300. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +113 -57
  301. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +107 -51
  302. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +113 -57
  303. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +107 -51
  304. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +107 -51
  305. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +107 -51
  306. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +107 -51
  307. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +107 -51
  308. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +107 -51
  309. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +107 -51
  310. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +107 -51
  311. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +107 -51
  312. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +110 -54
  313. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +113 -57
  314. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +107 -51
  315. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +110 -54
  316. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +107 -51
  317. nautobot/project-static/docs/user-guide/index.html +109 -53
  318. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +107 -51
  319. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +113 -57
  320. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +128 -72
  321. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +107 -51
  322. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +125 -69
  323. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +107 -51
  324. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +110 -54
  325. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +125 -69
  326. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +110 -54
  327. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +107 -51
  328. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +107 -51
  329. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +143 -100
  330. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +113 -57
  331. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +113 -57
  332. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +110 -54
  333. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +123 -67
  334. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +107 -51
  335. nautobot/project-static/docs/user-guide/platform-functionality/note.html +110 -54
  336. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +116 -60
  337. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +110 -54
  338. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +131 -75
  339. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +149 -93
  340. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +110 -54
  341. nautobot/project-static/docs/user-guide/platform-functionality/role.html +107 -51
  342. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +116 -60
  343. nautobot/project-static/docs/user-guide/platform-functionality/status.html +119 -63
  344. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +110 -54
  345. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +137 -81
  346. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +110 -54
  347. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +107 -51
  348. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +110 -54
  349. nautobot/project-static/js/forms.js +18 -11
  350. nautobot/tenancy/views.py +2 -6
  351. nautobot/virtualization/views.py +5 -9
  352. {nautobot-2.2.2.dist-info → nautobot-2.2.4.dist-info}/METADATA +4 -4
  353. {nautobot-2.2.2.dist-info → nautobot-2.2.4.dist-info}/RECORD +357 -348
  354. nautobot/extras/test_jobs/job_variables.py +0 -93
  355. nautobot/project-static/docs/assets/javascripts/bundle.bd41221c.min.js +0 -29
  356. nautobot/project-static/docs/assets/javascripts/bundle.bd41221c.min.js.map +0 -7
  357. nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css +0 -1
  358. nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css.map +0 -1
  359. {nautobot-2.2.2.dist-info → nautobot-2.2.4.dist-info}/LICENSE.txt +0 -0
  360. {nautobot-2.2.2.dist-info → nautobot-2.2.4.dist-info}/NOTICE +0 -0
  361. {nautobot-2.2.2.dist-info → nautobot-2.2.4.dist-info}/WHEEL +0 -0
  362. {nautobot-2.2.2.dist-info → nautobot-2.2.4.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.16">
21
+ <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.18">
22
22
 
23
23
 
24
24
 
@@ -26,12 +26,20 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.bcfcd587.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.66ac8b77.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
33
33
 
34
34
 
35
+
36
+
37
+
38
+
39
+
40
+
41
+ <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0h-32zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1z"/></svg>');}</style>
42
+
35
43
 
36
44
 
37
45
 
@@ -200,7 +208,7 @@
200
208
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
201
209
  <div class="md-source__icon md-icon">
202
210
 
203
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
211
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
204
212
  </div>
205
213
  <div class="md-source__repository">
206
214
  GitHub
@@ -360,7 +368,7 @@
360
368
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
361
369
  <div class="md-source__icon md-icon">
362
370
 
363
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
371
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
364
372
  </div>
365
373
  <div class="md-source__repository">
366
374
  GitHub
@@ -523,7 +531,7 @@
523
531
 
524
532
 
525
533
  <span class="md-ellipsis">
526
- Prerequisites
534
+ Getting Started
527
535
  </span>
528
536
 
529
537
 
@@ -624,11 +632,11 @@
624
632
 
625
633
 
626
634
  <li class="md-nav__item">
627
- <a href="../../../user-guide/administration/installation/external-authentication.html" class="md-nav__link">
635
+ <a href="../../../user-guide/administration/installation/app-install.html" class="md-nav__link">
628
636
 
629
637
 
630
638
  <span class="md-ellipsis">
631
- External Authentication (Optional)
639
+ Installing and Using Apps
632
640
  </span>
633
641
 
634
642
 
@@ -645,11 +653,11 @@
645
653
 
646
654
 
647
655
  <li class="md-nav__item">
648
- <a href="../../../user-guide/administration/installation/app-install.html" class="md-nav__link">
656
+ <a href="../../../user-guide/administration/installation/external-authentication.html" class="md-nav__link">
649
657
 
650
658
 
651
659
  <span class="md-ellipsis">
652
- Installing and Using Plugins
660
+ External Authentication (Optional)
653
661
  </span>
654
662
 
655
663
 
@@ -659,6 +667,52 @@
659
667
 
660
668
 
661
669
 
670
+ </ul>
671
+ </nav>
672
+
673
+ </li>
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+ <li class="md-nav__item md-nav__item--nested">
692
+
693
+
694
+
695
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2" >
696
+
697
+
698
+ <label class="md-nav__link" for="__nav_2_1_2" id="__nav_2_1_2_label" tabindex="0">
699
+
700
+
701
+ <span class="md-ellipsis">
702
+ Installation Extras
703
+ </span>
704
+
705
+
706
+ <span class="md-nav__icon md-icon"></span>
707
+ </label>
708
+
709
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_2_label" aria-expanded="false">
710
+ <label class="md-nav__title" for="__nav_2_1_2">
711
+ <span class="md-nav__icon md-icon"></span>
712
+ Installation Extras
713
+ </label>
714
+ <ul class="md-nav__list" data-md-scrollfix>
715
+
662
716
 
663
717
 
664
718
 
@@ -666,7 +720,7 @@
666
720
 
667
721
 
668
722
  <li class="md-nav__item">
669
- <a href="../../../user-guide/administration/installation/docker.html" class="md-nav__link">
723
+ <a href="../../../user-guide/administration/installation-extras/docker.html" class="md-nav__link">
670
724
 
671
725
 
672
726
  <span class="md-ellipsis">
@@ -687,7 +741,7 @@
687
741
 
688
742
 
689
743
  <li class="md-nav__item">
690
- <a href="../../../user-guide/administration/installation/health-checks.html" class="md-nav__link">
744
+ <a href="../../../user-guide/administration/installation-extras/health-checks.html" class="md-nav__link">
691
745
 
692
746
 
693
747
  <span class="md-ellipsis">
@@ -708,7 +762,7 @@
708
762
 
709
763
 
710
764
  <li class="md-nav__item">
711
- <a href="../../../user-guide/administration/installation/selinux-troubleshooting.html" class="md-nav__link">
765
+ <a href="../../../user-guide/administration/installation-extras/selinux-troubleshooting.html" class="md-nav__link">
712
766
 
713
767
 
714
768
  <span class="md-ellipsis">
@@ -747,10 +801,10 @@
747
801
 
748
802
 
749
803
 
750
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2" >
804
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3" >
751
805
 
752
806
 
753
- <label class="md-nav__link" for="__nav_2_1_2" id="__nav_2_1_2_label" tabindex="0">
807
+ <label class="md-nav__link" for="__nav_2_1_3" id="__nav_2_1_3_label" tabindex="0">
754
808
 
755
809
 
756
810
  <span class="md-ellipsis">
@@ -761,8 +815,8 @@
761
815
  <span class="md-nav__icon md-icon"></span>
762
816
  </label>
763
817
 
764
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_2_label" aria-expanded="false">
765
- <label class="md-nav__title" for="__nav_2_1_2">
818
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_3_label" aria-expanded="false">
819
+ <label class="md-nav__title" for="__nav_2_1_3">
766
820
  <span class="md-nav__icon md-icon"></span>
767
821
  Upgrading
768
822
  </label>
@@ -827,7 +881,7 @@
827
881
 
828
882
 
829
883
 
830
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2_3" >
884
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3_3" >
831
885
 
832
886
 
833
887
 
@@ -843,14 +897,14 @@
843
897
  </a>
844
898
 
845
899
 
846
- <label class="md-nav__link " for="__nav_2_1_2_3" id="__nav_2_1_2_3_label" tabindex="0">
900
+ <label class="md-nav__link " for="__nav_2_1_3_3" id="__nav_2_1_3_3_label" tabindex="0">
847
901
  <span class="md-nav__icon md-icon"></span>
848
902
  </label>
849
903
 
850
904
  </div>
851
905
 
852
- <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_1_2_3_label" aria-expanded="false">
853
- <label class="md-nav__title" for="__nav_2_1_2_3">
906
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_1_3_3_label" aria-expanded="false">
907
+ <label class="md-nav__title" for="__nav_2_1_3_3">
854
908
  <span class="md-nav__icon md-icon"></span>
855
909
  Upgrading Nautobot from v1.X to v2.0
856
910
  </label>
@@ -894,7 +948,7 @@
894
948
 
895
949
 
896
950
 
897
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2_3_2" >
951
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3_3_2" >
898
952
 
899
953
 
900
954
 
@@ -910,14 +964,14 @@
910
964
  </a>
911
965
 
912
966
 
913
- <label class="md-nav__link " for="__nav_2_1_2_3_2" id="__nav_2_1_2_3_2_label" tabindex="0">
967
+ <label class="md-nav__link " for="__nav_2_1_3_3_2" id="__nav_2_1_3_3_2_label" tabindex="0">
914
968
  <span class="md-nav__icon md-icon"></span>
915
969
  </label>
916
970
 
917
971
  </div>
918
972
 
919
- <nav class="md-nav" data-md-level="5" aria-labelledby="__nav_2_1_2_3_2_label" aria-expanded="false">
920
- <label class="md-nav__title" for="__nav_2_1_2_3_2">
973
+ <nav class="md-nav" data-md-level="5" aria-labelledby="__nav_2_1_3_3_2_label" aria-expanded="false">
974
+ <label class="md-nav__title" for="__nav_2_1_3_3_2">
921
975
  <span class="md-nav__icon md-icon"></span>
922
976
  IPAM Migration Guide
923
977
  </label>
@@ -1048,10 +1102,10 @@
1048
1102
 
1049
1103
 
1050
1104
 
1051
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3" >
1105
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4" >
1052
1106
 
1053
1107
 
1054
- <label class="md-nav__link" for="__nav_2_1_3" id="__nav_2_1_3_label" tabindex="0">
1108
+ <label class="md-nav__link" for="__nav_2_1_4" id="__nav_2_1_4_label" tabindex="0">
1055
1109
 
1056
1110
 
1057
1111
  <span class="md-ellipsis">
@@ -1062,8 +1116,8 @@
1062
1116
  <span class="md-nav__icon md-icon"></span>
1063
1117
  </label>
1064
1118
 
1065
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_3_label" aria-expanded="false">
1066
- <label class="md-nav__title" for="__nav_2_1_3">
1119
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_4_label" aria-expanded="false">
1120
+ <label class="md-nav__title" for="__nav_2_1_4">
1067
1121
  <span class="md-nav__icon md-icon"></span>
1068
1122
  Migration
1069
1123
  </label>
@@ -1136,7 +1190,7 @@
1136
1190
 
1137
1191
 
1138
1192
 
1139
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4" >
1193
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5" >
1140
1194
 
1141
1195
 
1142
1196
 
@@ -1152,14 +1206,14 @@
1152
1206
  </a>
1153
1207
 
1154
1208
 
1155
- <label class="md-nav__link " for="__nav_2_1_4" id="__nav_2_1_4_label" tabindex="0">
1209
+ <label class="md-nav__link " for="__nav_2_1_5" id="__nav_2_1_5_label" tabindex="0">
1156
1210
  <span class="md-nav__icon md-icon"></span>
1157
1211
  </label>
1158
1212
 
1159
1213
  </div>
1160
1214
 
1161
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_4_label" aria-expanded="false">
1162
- <label class="md-nav__title" for="__nav_2_1_4">
1215
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_5_label" aria-expanded="false">
1216
+ <label class="md-nav__title" for="__nav_2_1_5">
1163
1217
  <span class="md-nav__icon md-icon"></span>
1164
1218
  Configuration
1165
1219
  </label>
@@ -1245,10 +1299,10 @@
1245
1299
 
1246
1300
 
1247
1301
 
1248
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4_4" >
1302
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5_4" >
1249
1303
 
1250
1304
 
1251
- <label class="md-nav__link" for="__nav_2_1_4_4" id="__nav_2_1_4_4_label" tabindex="0">
1305
+ <label class="md-nav__link" for="__nav_2_1_5_4" id="__nav_2_1_5_4_label" tabindex="0">
1252
1306
 
1253
1307
 
1254
1308
  <span class="md-ellipsis">
@@ -1259,8 +1313,8 @@
1259
1313
  <span class="md-nav__icon md-icon"></span>
1260
1314
  </label>
1261
1315
 
1262
- <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_1_4_4_label" aria-expanded="false">
1263
- <label class="md-nav__title" for="__nav_2_1_4_4">
1316
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_1_5_4_label" aria-expanded="false">
1317
+ <label class="md-nav__title" for="__nav_2_1_5_4">
1264
1318
  <span class="md-nav__icon md-icon"></span>
1265
1319
  External Authentication
1266
1320
  </label>
@@ -1362,10 +1416,10 @@
1362
1416
 
1363
1417
 
1364
1418
 
1365
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5" >
1419
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_6" >
1366
1420
 
1367
1421
 
1368
- <label class="md-nav__link" for="__nav_2_1_5" id="__nav_2_1_5_label" tabindex="0">
1422
+ <label class="md-nav__link" for="__nav_2_1_6" id="__nav_2_1_6_label" tabindex="0">
1369
1423
 
1370
1424
 
1371
1425
  <span class="md-ellipsis">
@@ -1376,8 +1430,8 @@
1376
1430
  <span class="md-nav__icon md-icon"></span>
1377
1431
  </label>
1378
1432
 
1379
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_5_label" aria-expanded="false">
1380
- <label class="md-nav__title" for="__nav_2_1_5">
1433
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_6_label" aria-expanded="false">
1434
+ <label class="md-nav__title" for="__nav_2_1_6">
1381
1435
  <span class="md-nav__icon md-icon"></span>
1382
1436
  Tools
1383
1437
  </label>
@@ -1450,10 +1504,10 @@
1450
1504
 
1451
1505
 
1452
1506
 
1453
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_6" >
1507
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_7" >
1454
1508
 
1455
1509
 
1456
- <label class="md-nav__link" for="__nav_2_1_6" id="__nav_2_1_6_label" tabindex="0">
1510
+ <label class="md-nav__link" for="__nav_2_1_7" id="__nav_2_1_7_label" tabindex="0">
1457
1511
 
1458
1512
 
1459
1513
  <span class="md-ellipsis">
@@ -1464,8 +1518,8 @@
1464
1518
  <span class="md-nav__icon md-icon"></span>
1465
1519
  </label>
1466
1520
 
1467
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_6_label" aria-expanded="false">
1468
- <label class="md-nav__title" for="__nav_2_1_6">
1521
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_7_label" aria-expanded="false">
1522
+ <label class="md-nav__title" for="__nav_2_1_7">
1469
1523
  <span class="md-nav__icon md-icon"></span>
1470
1524
  Guides
1471
1525
  </label>
@@ -6154,15 +6208,6 @@
6154
6208
  </span>
6155
6209
  </a>
6156
6210
 
6157
- </li>
6158
-
6159
- <li class="md-nav__item">
6160
- <a href="#nautobot.apps.jobs.BaseJob.apply" class="md-nav__link">
6161
- <span class="md-ellipsis">
6162
- apply
6163
- </span>
6164
- </a>
6165
-
6166
6211
  </li>
6167
6212
 
6168
6213
  <li class="md-nav__item">
@@ -6217,15 +6262,6 @@
6217
6262
  </span>
6218
6263
  </a>
6219
6264
 
6220
- </li>
6221
-
6222
- <li class="md-nav__item">
6223
- <a href="#nautobot.apps.jobs.BaseJob.clear_cache" class="md-nav__link">
6224
- <span class="md-ellipsis">
6225
- clear_cache
6226
- </span>
6227
- </a>
6228
-
6229
6265
  </li>
6230
6266
 
6231
6267
  <li class="md-nav__item">
@@ -6247,27 +6283,27 @@
6247
6283
  </li>
6248
6284
 
6249
6285
  <li class="md-nav__item">
6250
- <a href="#nautobot.apps.jobs.BaseJob.load_json" class="md-nav__link">
6286
+ <a href="#nautobot.apps.jobs.BaseJob.file_path" class="md-nav__link">
6251
6287
  <span class="md-ellipsis">
6252
- load_json
6288
+ file_path
6253
6289
  </span>
6254
6290
  </a>
6255
6291
 
6256
6292
  </li>
6257
6293
 
6258
6294
  <li class="md-nav__item">
6259
- <a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="md-nav__link">
6295
+ <a href="#nautobot.apps.jobs.BaseJob.load_json" class="md-nav__link">
6260
6296
  <span class="md-ellipsis">
6261
- load_yaml
6297
+ load_json
6262
6298
  </span>
6263
6299
  </a>
6264
6300
 
6265
6301
  </li>
6266
6302
 
6267
6303
  <li class="md-nav__item">
6268
- <a href="#nautobot.apps.jobs.BaseJob.on_bound" class="md-nav__link">
6304
+ <a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="md-nav__link">
6269
6305
  <span class="md-ellipsis">
6270
- on_bound
6306
+ load_yaml
6271
6307
  </span>
6272
6308
  </a>
6273
6309
 
@@ -6319,27 +6355,27 @@
6319
6355
  </li>
6320
6356
 
6321
6357
  <li class="md-nav__item">
6322
- <a href="#nautobot.apps.jobs.BaseJob.run" class="md-nav__link">
6358
+ <a href="#nautobot.apps.jobs.BaseJob.registered_name" class="md-nav__link">
6323
6359
  <span class="md-ellipsis">
6324
- run
6360
+ registered_name
6325
6361
  </span>
6326
6362
  </a>
6327
6363
 
6328
6364
  </li>
6329
6365
 
6330
6366
  <li class="md-nav__item">
6331
- <a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="md-nav__link">
6367
+ <a href="#nautobot.apps.jobs.BaseJob.run" class="md-nav__link">
6332
6368
  <span class="md-ellipsis">
6333
- serialize_data
6369
+ run
6334
6370
  </span>
6335
6371
  </a>
6336
6372
 
6337
6373
  </li>
6338
6374
 
6339
6375
  <li class="md-nav__item">
6340
- <a href="#nautobot.apps.jobs.BaseJob.shadow_name" class="md-nav__link">
6376
+ <a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="md-nav__link">
6341
6377
  <span class="md-ellipsis">
6342
- shadow_name
6378
+ serialize_data
6343
6379
  </span>
6344
6380
  </a>
6345
6381
 
@@ -6636,6 +6672,15 @@
6636
6672
  </span>
6637
6673
  </a>
6638
6674
 
6675
+ </li>
6676
+
6677
+ <li class="md-nav__item">
6678
+ <a href="#nautobot.apps.jobs.get_jobs" class="md-nav__link">
6679
+ <span class="md-ellipsis">
6680
+ get_jobs
6681
+ </span>
6682
+ </a>
6683
+
6639
6684
  </li>
6640
6685
 
6641
6686
  <li class="md-nav__item">
@@ -8310,15 +8355,6 @@
8310
8355
  </span>
8311
8356
  </a>
8312
8357
 
8313
- </li>
8314
-
8315
- <li class="md-nav__item">
8316
- <a href="#nautobot.apps.jobs.BaseJob.apply" class="md-nav__link">
8317
- <span class="md-ellipsis">
8318
- apply
8319
- </span>
8320
- </a>
8321
-
8322
8358
  </li>
8323
8359
 
8324
8360
  <li class="md-nav__item">
@@ -8373,15 +8409,6 @@
8373
8409
  </span>
8374
8410
  </a>
8375
8411
 
8376
- </li>
8377
-
8378
- <li class="md-nav__item">
8379
- <a href="#nautobot.apps.jobs.BaseJob.clear_cache" class="md-nav__link">
8380
- <span class="md-ellipsis">
8381
- clear_cache
8382
- </span>
8383
- </a>
8384
-
8385
8412
  </li>
8386
8413
 
8387
8414
  <li class="md-nav__item">
@@ -8403,27 +8430,27 @@
8403
8430
  </li>
8404
8431
 
8405
8432
  <li class="md-nav__item">
8406
- <a href="#nautobot.apps.jobs.BaseJob.load_json" class="md-nav__link">
8433
+ <a href="#nautobot.apps.jobs.BaseJob.file_path" class="md-nav__link">
8407
8434
  <span class="md-ellipsis">
8408
- load_json
8435
+ file_path
8409
8436
  </span>
8410
8437
  </a>
8411
8438
 
8412
8439
  </li>
8413
8440
 
8414
8441
  <li class="md-nav__item">
8415
- <a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="md-nav__link">
8442
+ <a href="#nautobot.apps.jobs.BaseJob.load_json" class="md-nav__link">
8416
8443
  <span class="md-ellipsis">
8417
- load_yaml
8444
+ load_json
8418
8445
  </span>
8419
8446
  </a>
8420
8447
 
8421
8448
  </li>
8422
8449
 
8423
8450
  <li class="md-nav__item">
8424
- <a href="#nautobot.apps.jobs.BaseJob.on_bound" class="md-nav__link">
8451
+ <a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="md-nav__link">
8425
8452
  <span class="md-ellipsis">
8426
- on_bound
8453
+ load_yaml
8427
8454
  </span>
8428
8455
  </a>
8429
8456
 
@@ -8475,27 +8502,27 @@
8475
8502
  </li>
8476
8503
 
8477
8504
  <li class="md-nav__item">
8478
- <a href="#nautobot.apps.jobs.BaseJob.run" class="md-nav__link">
8505
+ <a href="#nautobot.apps.jobs.BaseJob.registered_name" class="md-nav__link">
8479
8506
  <span class="md-ellipsis">
8480
- run
8507
+ registered_name
8481
8508
  </span>
8482
8509
  </a>
8483
8510
 
8484
8511
  </li>
8485
8512
 
8486
8513
  <li class="md-nav__item">
8487
- <a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="md-nav__link">
8514
+ <a href="#nautobot.apps.jobs.BaseJob.run" class="md-nav__link">
8488
8515
  <span class="md-ellipsis">
8489
- serialize_data
8516
+ run
8490
8517
  </span>
8491
8518
  </a>
8492
8519
 
8493
8520
  </li>
8494
8521
 
8495
8522
  <li class="md-nav__item">
8496
- <a href="#nautobot.apps.jobs.BaseJob.shadow_name" class="md-nav__link">
8523
+ <a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="md-nav__link">
8497
8524
  <span class="md-ellipsis">
8498
- shadow_name
8525
+ serialize_data
8499
8526
  </span>
8500
8527
  </a>
8501
8528
 
@@ -8792,6 +8819,15 @@
8792
8819
  </span>
8793
8820
  </a>
8794
8821
 
8822
+ </li>
8823
+
8824
+ <li class="md-nav__item">
8825
+ <a href="#nautobot.apps.jobs.get_jobs" class="md-nav__link">
8826
+ <span class="md-ellipsis">
8827
+ get_jobs
8828
+ </span>
8829
+ </a>
8830
+
8795
8831
  </li>
8796
8832
 
8797
8833
  <li class="md-nav__item">
@@ -8876,8 +8912,6 @@
8876
8912
 
8877
8913
 
8878
8914
  <div class="doc doc-contents ">
8879
- <p class="doc doc-class-bases">
8880
- Bases: <code><span title="nautobot.core.celery.task.Task">Task</span></code></p>
8881
8915
 
8882
8916
 
8883
8917
  <p>Base model for jobs.</p>
@@ -9079,25 +9113,6 @@ with shared functionality; if no such sharing is required, use Job class instead
9079
9113
 
9080
9114
 
9081
9115
 
9082
- <h3 id="nautobot.apps.jobs.BaseJob.apply" class="doc doc-heading">
9083
- <code class="highlight language-python"><span class="n">apply</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">link</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">link_error</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">task_id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">retries</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">throw</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">logfile</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">loglevel</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">options</span><span class="p">)</span></code>
9084
-
9085
- <a href="#nautobot.apps.jobs.BaseJob.apply" class="headerlink" title="Permanent link">&para;</a></h3>
9086
-
9087
-
9088
- <div class="doc doc-contents ">
9089
-
9090
- <p>Fix celery's apply method to propagate options to the task result</p>
9091
-
9092
- </div>
9093
-
9094
- </div>
9095
-
9096
-
9097
- <div class="doc doc-object doc-function">
9098
-
9099
-
9100
-
9101
9116
  <h3 id="nautobot.apps.jobs.BaseJob.as_form" class="doc doc-heading">
9102
9117
  <code class="highlight language-python"><span class="n">as_form</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">initial</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">approval_view</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
9103
9118
 
@@ -9311,26 +9326,6 @@ during a approval review workflow.</p>
9311
9326
 
9312
9327
 
9313
9328
 
9314
- <h3 id="nautobot.apps.jobs.BaseJob.clear_cache" class="doc doc-heading">
9315
- <code class="highlight language-python"><span class="n">clear_cache</span><span class="p">()</span></code>
9316
-
9317
- <a href="#nautobot.apps.jobs.BaseJob.clear_cache" class="headerlink" title="Permanent link">&para;</a></h3>
9318
-
9319
-
9320
- <div class="doc doc-contents ">
9321
-
9322
- <p>Clear all cached properties on this instance without accessing them. This is required because
9323
- celery reuses task instances for multiple runs.</p>
9324
-
9325
- </div>
9326
-
9327
- </div>
9328
-
9329
-
9330
- <div class="doc doc-object doc-function">
9331
-
9332
-
9333
-
9334
9329
  <h3 id="nautobot.apps.jobs.BaseJob.create_file" class="doc doc-heading">
9335
9330
  <code class="highlight language-python"><span class="n">create_file</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span></code>
9336
9331
 
@@ -9470,15 +9465,15 @@ path would consider this a failure of the job execution, as described in <code>n
9470
9465
 
9471
9466
 
9472
9467
 
9473
- <h3 id="nautobot.apps.jobs.BaseJob.load_json" class="doc doc-heading">
9474
- <code class="highlight language-python"><span class="n">load_json</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span></code>
9468
+ <h3 id="nautobot.apps.jobs.BaseJob.file_path" class="doc doc-heading">
9469
+ <code class="highlight language-python"><span class="n">file_path</span><span class="p">()</span></code>
9475
9470
 
9476
- <a href="#nautobot.apps.jobs.BaseJob.load_json" class="headerlink" title="Permanent link">&para;</a></h3>
9471
+ <a href="#nautobot.apps.jobs.BaseJob.file_path" class="headerlink" title="Permanent link">&para;</a></h3>
9477
9472
 
9478
9473
 
9479
9474
  <div class="doc doc-contents ">
9480
9475
 
9481
- <p>Return data from a JSON file</p>
9476
+ <p>Deprecated as of Nautobot 2.2.3.</p>
9482
9477
 
9483
9478
  </div>
9484
9479
 
@@ -9489,15 +9484,15 @@ path would consider this a failure of the job execution, as described in <code>n
9489
9484
 
9490
9485
 
9491
9486
 
9492
- <h3 id="nautobot.apps.jobs.BaseJob.load_yaml" class="doc doc-heading">
9493
- <code class="highlight language-python"><span class="n">load_yaml</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span></code>
9487
+ <h3 id="nautobot.apps.jobs.BaseJob.load_json" class="doc doc-heading">
9488
+ <code class="highlight language-python"><span class="n">load_json</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span></code>
9494
9489
 
9495
- <a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="headerlink" title="Permanent link">&para;</a></h3>
9490
+ <a href="#nautobot.apps.jobs.BaseJob.load_json" class="headerlink" title="Permanent link">&para;</a></h3>
9496
9491
 
9497
9492
 
9498
9493
  <div class="doc doc-contents ">
9499
9494
 
9500
- <p>Return data from a YAML file</p>
9495
+ <p>Return data from a JSON file</p>
9501
9496
 
9502
9497
  </div>
9503
9498
 
@@ -9508,25 +9503,16 @@ path would consider this a failure of the job execution, as described in <code>n
9508
9503
 
9509
9504
 
9510
9505
 
9511
- <h3 id="nautobot.apps.jobs.BaseJob.on_bound" class="doc doc-heading">
9512
- <code class="highlight language-python"><span class="n">on_bound</span><span class="p">(</span><span class="n">app</span><span class="p">)</span></code>
9513
-
9514
- <span class="doc doc-labels">
9515
- <small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small>
9516
- </span>
9506
+ <h3 id="nautobot.apps.jobs.BaseJob.load_yaml" class="doc doc-heading">
9507
+ <code class="highlight language-python"><span class="n">load_yaml</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span></code>
9517
9508
 
9518
- <a href="#nautobot.apps.jobs.BaseJob.on_bound" class="headerlink" title="Permanent link">&para;</a></h3>
9509
+ <a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="headerlink" title="Permanent link">&para;</a></h3>
9519
9510
 
9520
9511
 
9521
9512
  <div class="doc doc-contents ">
9522
9513
 
9523
- <p>Called when the task is bound to an app.</p>
9514
+ <p>Return data from a YAML file</p>
9524
9515
 
9525
- <details class="note" open>
9526
- <summary>Note</summary>
9527
- <p>This class method can be defined to do additional actions when
9528
- the task class is bound to an app.</p>
9529
- </details>
9530
9516
  </div>
9531
9517
 
9532
9518
  </div>
@@ -9955,15 +9941,15 @@ the task class is bound to an app.</p>
9955
9941
 
9956
9942
 
9957
9943
 
9958
- <h3 id="nautobot.apps.jobs.BaseJob.run" class="doc doc-heading">
9959
- <code class="highlight language-python"><span class="n">run</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
9944
+ <h3 id="nautobot.apps.jobs.BaseJob.registered_name" class="doc doc-heading">
9945
+ <code class="highlight language-python"><span class="n">registered_name</span><span class="p">()</span></code>
9960
9946
 
9961
- <a href="#nautobot.apps.jobs.BaseJob.run" class="headerlink" title="Permanent link">&para;</a></h3>
9947
+ <a href="#nautobot.apps.jobs.BaseJob.registered_name" class="headerlink" title="Permanent link">&para;</a></h3>
9962
9948
 
9963
9949
 
9964
9950
  <div class="doc doc-contents ">
9965
9951
 
9966
- <p>Method invoked when this Job is run.</p>
9952
+ <p>Deprecated - use class_path classproperty instead.</p>
9967
9953
 
9968
9954
  </div>
9969
9955
 
@@ -9974,22 +9960,15 @@ the task class is bound to an app.</p>
9974
9960
 
9975
9961
 
9976
9962
 
9977
- <h3 id="nautobot.apps.jobs.BaseJob.serialize_data" class="doc doc-heading">
9978
- <code class="highlight language-python"><span class="n">serialize_data</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></code>
9979
-
9980
- <span class="doc doc-labels">
9981
- <small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
9982
- </span>
9963
+ <h3 id="nautobot.apps.jobs.BaseJob.run" class="doc doc-heading">
9964
+ <code class="highlight language-python"><span class="n">run</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
9983
9965
 
9984
- <a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="headerlink" title="Permanent link">&para;</a></h3>
9966
+ <a href="#nautobot.apps.jobs.BaseJob.run" class="headerlink" title="Permanent link">&para;</a></h3>
9985
9967
 
9986
9968
 
9987
9969
  <div class="doc doc-contents ">
9988
9970
 
9989
- <p>This method parses input data (from JobForm usually) and returns a dict which is safe to serialize</p>
9990
- <p>Here we convert the QuerySet of a MultiObjectVar to a list of the pk's and the model instance
9991
- of an ObjectVar into the pk value.</p>
9992
- <p>These are converted back during job execution.</p>
9971
+ <p>Method invoked when this Job is run.</p>
9993
9972
 
9994
9973
  </div>
9995
9974
 
@@ -10000,82 +9979,22 @@ of an ObjectVar into the pk value.</p>
10000
9979
 
10001
9980
 
10002
9981
 
10003
- <h3 id="nautobot.apps.jobs.BaseJob.shadow_name" class="doc doc-heading">
10004
- <code class="highlight language-python"><span class="n">shadow_name</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">,</span> <span class="n">options</span><span class="p">)</span></code>
9982
+ <h3 id="nautobot.apps.jobs.BaseJob.serialize_data" class="doc doc-heading">
9983
+ <code class="highlight language-python"><span class="n">serialize_data</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></code>
9984
+
9985
+ <span class="doc doc-labels">
9986
+ <small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
9987
+ </span>
10005
9988
 
10006
- <a href="#nautobot.apps.jobs.BaseJob.shadow_name" class="headerlink" title="Permanent link">&para;</a></h3>
9989
+ <a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="headerlink" title="Permanent link">&para;</a></h3>
10007
9990
 
10008
9991
 
10009
9992
  <div class="doc doc-contents ">
10010
9993
 
10011
- <p>Override for custom task name in worker logs/monitoring.</p>
10012
-
10013
- <details class="example" open>
10014
- <summary>Example</summary>
10015
- <p>from celery.utils.imports import qualname</p>
10016
- <p>def shadow_name(task, args, kwargs, options):
10017
- return qualname(args[0])</p>
10018
- <p>@app.task(shadow_name=shadow_name, serializer='pickle')
10019
- def apply_function_async(fun, <em>args, </em><em>kwargs):
10020
- return fun(</em>args, **kwargs)</p>
10021
- </details>
10022
-
10023
-
10024
- <p><strong>Parameters:</strong></p>
10025
- <table>
10026
- <thead>
10027
- <tr>
10028
- <th>Name</th>
10029
- <th>Type</th>
10030
- <th>Description</th>
10031
- <th>Default</th>
10032
- </tr>
10033
- </thead>
10034
- <tbody>
10035
- <tr>
10036
- <td><code>args</code></td>
10037
- <td>
10038
- <code>Tuple</code>
10039
- </td>
10040
- <td>
10041
- <div class="doc-md-description">
10042
- <p>Task positional arguments.</p>
10043
- </div>
10044
- </td>
10045
- <td>
10046
- <em>required</em>
10047
- </td>
10048
- </tr>
10049
- <tr>
10050
- <td><code>kwargs</code></td>
10051
- <td>
10052
- <code>Dict</code>
10053
- </td>
10054
- <td>
10055
- <div class="doc-md-description">
10056
- <p>Task keyword arguments.</p>
10057
- </div>
10058
- </td>
10059
- <td>
10060
- <em>required</em>
10061
- </td>
10062
- </tr>
10063
- <tr>
10064
- <td><code>options</code></td>
10065
- <td>
10066
- <code>Dict</code>
10067
- </td>
10068
- <td>
10069
- <div class="doc-md-description">
10070
- <p>Task execution options.</p>
10071
- </div>
10072
- </td>
10073
- <td>
10074
- <em>required</em>
10075
- </td>
10076
- </tr>
10077
- </tbody>
10078
- </table>
9994
+ <p>This method parses input data (from JobForm usually) and returns a dict which is safe to serialize</p>
9995
+ <p>Here we convert the QuerySet of a MultiObjectVar to a list of the pk's and the model instance
9996
+ of an ObjectVar into the pk value.</p>
9997
+ <p>These are converted back during job execution.</p>
10079
9998
 
10080
9999
  </div>
10081
10000
 
@@ -11279,7 +11198,7 @@ to be processed</p>
11279
11198
 
11280
11199
 
11281
11200
  <h2 id="nautobot.apps.jobs.get_job" class="doc doc-heading">
11282
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">get_job</span><span class="p">(</span><span class="n">class_path</span><span class="p">)</span></code>
11201
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">get_job</span><span class="p">(</span><span class="n">class_path</span><span class="p">,</span> <span class="n">reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
11283
11202
 
11284
11203
  <a href="#nautobot.apps.jobs.get_job" class="headerlink" title="Permanent link">&para;</a></h2>
11285
11204
 
@@ -11287,7 +11206,111 @@ to be processed</p>
11287
11206
  <div class="doc doc-contents ">
11288
11207
 
11289
11208
  <p>Retrieve a specific job class by its class_path (<code>&lt;module_name&gt;.&lt;JobClassName&gt;</code>).</p>
11290
- <p>May return None if the job isn't properly registered with Celery at this time.</p>
11209
+ <p>May return None if the job can't be imported.</p>
11210
+
11211
+
11212
+
11213
+ <p><strong>Parameters:</strong></p>
11214
+ <table>
11215
+ <thead>
11216
+ <tr>
11217
+ <th>Name</th>
11218
+ <th>Type</th>
11219
+ <th>Description</th>
11220
+ <th>Default</th>
11221
+ </tr>
11222
+ </thead>
11223
+ <tbody>
11224
+ <tr>
11225
+ <td><code>reload</code></td>
11226
+ <td>
11227
+ <code>bool</code>
11228
+ </td>
11229
+ <td>
11230
+ <div class="doc-md-description">
11231
+ <p>If True, <strong>and</strong> the given class_path describes a JOBS_ROOT or GitRepository Job,
11232
+ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
11233
+ </div>
11234
+ </td>
11235
+ <td>
11236
+ <code>False</code>
11237
+ </td>
11238
+ </tr>
11239
+ </tbody>
11240
+ </table>
11241
+
11242
+ </div>
11243
+
11244
+ </div>
11245
+
11246
+
11247
+ <div class="doc doc-object doc-function">
11248
+
11249
+
11250
+
11251
+ <h2 id="nautobot.apps.jobs.get_jobs" class="doc doc-heading">
11252
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">get_jobs</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
11253
+
11254
+ <a href="#nautobot.apps.jobs.get_jobs" class="headerlink" title="Permanent link">&para;</a></h2>
11255
+
11256
+
11257
+ <div class="doc doc-contents ">
11258
+
11259
+ <p>Compile a dictionary of all Job classes available at this time.</p>
11260
+
11261
+
11262
+
11263
+ <p><strong>Parameters:</strong></p>
11264
+ <table>
11265
+ <thead>
11266
+ <tr>
11267
+ <th>Name</th>
11268
+ <th>Type</th>
11269
+ <th>Description</th>
11270
+ <th>Default</th>
11271
+ </tr>
11272
+ </thead>
11273
+ <tbody>
11274
+ <tr>
11275
+ <td><code>reload</code></td>
11276
+ <td>
11277
+ <code>bool</code>
11278
+ </td>
11279
+ <td>
11280
+ <div class="doc-md-description">
11281
+ <p>If True, reimport Jobs from <code>JOBS_ROOT</code> and all applicable GitRepositories.</p>
11282
+ </div>
11283
+ </td>
11284
+ <td>
11285
+ <code>False</code>
11286
+ </td>
11287
+ </tr>
11288
+ </tbody>
11289
+ </table>
11290
+
11291
+
11292
+
11293
+ <p><strong>Returns:</strong></p>
11294
+ <table>
11295
+ <thead>
11296
+ <tr>
11297
+ <th>Type</th>
11298
+ <th>Description</th>
11299
+ </tr>
11300
+ </thead>
11301
+ <tbody>
11302
+ <tr>
11303
+ <td>
11304
+ <code>dict</code>
11305
+ </td>
11306
+ <td>
11307
+ <div class="doc-md-description">
11308
+ <p><code>{"class_path.Job1": &lt;job_class&gt;, "class_path.Job2": &lt;job_class&gt;, ...}</code></p>
11309
+ </div>
11310
+ </td>
11311
+ </tr>
11312
+ </tbody>
11313
+ </table>
11291
11314
 
11292
11315
  </div>
11293
11316
 
@@ -11344,7 +11367,7 @@ to be processed</p>
11344
11367
 
11345
11368
  <div class="doc doc-contents ">
11346
11369
 
11347
- <p>Helper method to register jobs with Celery</p>
11370
+ <p>Method to register jobs - with Celery in Nautobot 2.0 through 2.2.2, with Nautobot itself in 2.2.3 and later.</p>
11348
11371
 
11349
11372
  </div>
11350
11373
 
@@ -11374,6 +11397,8 @@ to be processed</p>
11374
11397
  </div>
11375
11398
 
11376
11399
 
11400
+ <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
11401
+
11377
11402
  <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
11378
11403
  </div>
11379
11404
 
@@ -11451,7 +11476,7 @@ to be processed</p>
11451
11476
 
11452
11477
 
11453
11478
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
11454
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
11479
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
11455
11480
  </a>
11456
11481
 
11457
11482
 
@@ -11459,7 +11484,7 @@ to be processed</p>
11459
11484
 
11460
11485
 
11461
11486
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
11462
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
11487
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
11463
11488
  </a>
11464
11489
 
11465
11490
 
@@ -11467,7 +11492,7 @@ to be processed</p>
11467
11492
 
11468
11493
 
11469
11494
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
11470
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
11495
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
11471
11496
  </a>
11472
11497
 
11473
11498
 
@@ -11475,7 +11500,7 @@ to be processed</p>
11475
11500
 
11476
11501
 
11477
11502
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
11478
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
11503
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
11479
11504
  </a>
11480
11505
 
11481
11506
 
@@ -11483,7 +11508,7 @@ to be processed</p>
11483
11508
 
11484
11509
 
11485
11510
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
11486
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
11511
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
11487
11512
  </a>
11488
11513
 
11489
11514
  </div>
@@ -11498,10 +11523,10 @@ to be processed</p>
11498
11523
  </div>
11499
11524
 
11500
11525
 
11501
- <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>
11526
+ <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "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>
11502
11527
 
11503
11528
 
11504
- <script src="../../../assets/javascripts/bundle.bd41221c.min.js"></script>
11529
+ <script src="../../../assets/javascripts/bundle.3220b9d7.min.js"></script>
11505
11530
 
11506
11531
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
11507
11532