nautobot 2.3.16__py3-none-any.whl → 2.4.0__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 (721) hide show
  1. nautobot/__init__.py +15 -0
  2. nautobot/apps/__init__.py +1 -1
  3. nautobot/apps/api.py +8 -10
  4. nautobot/apps/change_logging.py +2 -2
  5. nautobot/apps/choices.py +4 -4
  6. nautobot/apps/config.py +32 -3
  7. nautobot/apps/events.py +19 -0
  8. nautobot/apps/exceptions.py +0 -2
  9. nautobot/apps/factory.py +2 -2
  10. nautobot/apps/filters.py +1 -1
  11. nautobot/apps/forms.py +20 -20
  12. nautobot/apps/graphql.py +2 -2
  13. nautobot/apps/jobs.py +8 -8
  14. nautobot/apps/models.py +19 -19
  15. nautobot/apps/tables.py +1 -1
  16. nautobot/apps/testing.py +10 -10
  17. nautobot/apps/ui.py +44 -9
  18. nautobot/apps/utils.py +7 -15
  19. nautobot/apps/views.py +8 -6
  20. nautobot/circuits/api/serializers.py +1 -0
  21. nautobot/circuits/api/views.py +4 -8
  22. nautobot/circuits/navigation.py +0 -57
  23. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  24. nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -71
  25. nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -64
  26. nautobot/circuits/templates/circuits/inc/circuit_termination_cable_fragment.html +40 -0
  27. nautobot/circuits/templates/circuits/inc/circuit_termination_header_extra_content.html +26 -0
  28. nautobot/circuits/templates/circuits/provider_retrieve.html +0 -76
  29. nautobot/circuits/tests/integration/test_relationships.py +33 -24
  30. nautobot/circuits/tests/test_filters.py +4 -8
  31. nautobot/circuits/views.py +140 -23
  32. nautobot/cloud/api/views.py +6 -10
  33. nautobot/cloud/factory.py +4 -1
  34. nautobot/cloud/tests/test_filters.py +5 -4
  35. nautobot/cloud/views.py +0 -16
  36. nautobot/core/api/constants.py +11 -0
  37. nautobot/core/api/filter_backends.py +3 -9
  38. nautobot/core/api/metadata.py +28 -256
  39. nautobot/core/api/pagination.py +3 -2
  40. nautobot/core/api/renderers.py +3 -0
  41. nautobot/core/api/schema.py +13 -2
  42. nautobot/core/api/serializers.py +45 -259
  43. nautobot/core/api/urls.py +3 -4
  44. nautobot/core/api/utils.py +0 -62
  45. nautobot/core/api/views.py +99 -157
  46. nautobot/core/apps/__init__.py +22 -578
  47. nautobot/core/celery/__init__.py +13 -0
  48. nautobot/core/celery/schedulers.py +47 -2
  49. nautobot/core/choices.py +2 -2
  50. nautobot/core/cli/__init__.py +8 -0
  51. nautobot/core/constants.py +7 -0
  52. nautobot/core/events/__init__.py +116 -0
  53. nautobot/core/events/base.py +27 -0
  54. nautobot/core/events/exceptions.py +10 -0
  55. nautobot/core/events/redis_broker.py +48 -0
  56. nautobot/core/events/syslog_broker.py +19 -0
  57. nautobot/core/exceptions.py +0 -6
  58. nautobot/core/forms/__init__.py +19 -19
  59. nautobot/core/forms/fields.py +57 -9
  60. nautobot/core/forms/forms.py +33 -2
  61. nautobot/core/forms/utils.py +2 -1
  62. nautobot/core/graphql/schema.py +3 -1
  63. nautobot/core/jobs/__init__.py +24 -3
  64. nautobot/core/jobs/bulk_actions.py +248 -0
  65. nautobot/core/jobs/cleanup.py +1 -1
  66. nautobot/core/management/commands/generate_test_data.py +21 -0
  67. nautobot/core/middleware.py +16 -0
  68. nautobot/core/models/fields.py +11 -7
  69. nautobot/core/settings.py +68 -4
  70. nautobot/core/settings.yaml +99 -0
  71. nautobot/core/tables.py +10 -46
  72. nautobot/core/tasks.py +1 -1
  73. nautobot/core/templates/about.html +67 -0
  74. nautobot/core/templates/components/button/default.html +7 -0
  75. nautobot/core/templates/components/button/dropdown.html +20 -0
  76. nautobot/core/templates/components/layout/one_over_two.html +19 -0
  77. nautobot/core/templates/components/layout/two_over_one.html +19 -0
  78. nautobot/core/templates/components/panel/body_content_data_table.html +27 -0
  79. nautobot/core/templates/components/panel/body_content_objects_table.html +4 -0
  80. nautobot/core/templates/components/panel/body_content_tags.html +6 -0
  81. nautobot/core/templates/components/panel/body_content_text.html +12 -0
  82. nautobot/core/templates/components/panel/body_wrapper_generic.html +3 -0
  83. nautobot/core/templates/components/panel/body_wrapper_key_value_table.html +3 -0
  84. nautobot/core/templates/components/panel/body_wrapper_table.html +3 -0
  85. nautobot/core/templates/components/panel/footer_contacts_table.html +20 -0
  86. nautobot/core/templates/components/panel/footer_content_table.html +14 -0
  87. nautobot/core/templates/components/panel/grouping_toggle.html +14 -0
  88. nautobot/core/templates/components/panel/header_extra_content_table.html +3 -0
  89. nautobot/core/templates/components/panel/panel.html +16 -0
  90. nautobot/core/templates/components/panel/stats_panel_body.html +8 -0
  91. nautobot/core/templates/components/tab/content_wrapper.html +3 -0
  92. nautobot/core/templates/components/tab/label_wrapper.html +5 -0
  93. nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +3 -0
  94. nautobot/core/templates/generic/object_retrieve.html +28 -17
  95. nautobot/core/templates/inc/computed_fields/panel_data.html +4 -7
  96. nautobot/core/templates/inc/custom_fields/panel.html +2 -2
  97. nautobot/core/templates/inc/custom_fields/panel_data.html +4 -7
  98. nautobot/core/templates/inc/footer.html +1 -0
  99. nautobot/core/templates/inc/nav_menu.html +2 -1
  100. nautobot/core/templates/inc/relationships_panel.html +1 -1
  101. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  102. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  103. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  104. nautobot/core/templates/panel_table.html +12 -0
  105. nautobot/core/templates/utilities/render_jinja2.html +117 -0
  106. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  107. nautobot/core/templates/utilities/theme_preview.html +7 -0
  108. nautobot/core/templatetags/helpers.py +104 -6
  109. nautobot/core/templatetags/ui_framework.py +40 -0
  110. nautobot/core/testing/__init__.py +8 -8
  111. nautobot/core/testing/api.py +187 -137
  112. nautobot/core/testing/context.py +18 -0
  113. nautobot/core/testing/filters.py +41 -35
  114. nautobot/core/testing/forms.py +2 -0
  115. nautobot/core/testing/views.py +65 -148
  116. nautobot/core/tests/integration/test_view_authentication.py +1 -1
  117. nautobot/core/tests/nautobot_config.py +198 -0
  118. nautobot/core/tests/runner.py +2 -2
  119. nautobot/core/tests/test_api.py +154 -176
  120. nautobot/core/tests/test_events.py +214 -0
  121. nautobot/core/tests/test_forms.py +1 -0
  122. nautobot/core/tests/test_jinja_filters.py +1 -0
  123. nautobot/core/tests/test_jobs.py +387 -14
  124. nautobot/core/tests/test_navigations.py +7 -241
  125. nautobot/core/tests/test_settings_schema.py +7 -0
  126. nautobot/core/tests/test_tables.py +100 -0
  127. nautobot/core/tests/test_templatetags_helpers.py +16 -0
  128. nautobot/core/tests/test_ui.py +150 -0
  129. nautobot/core/tests/test_utils.py +55 -18
  130. nautobot/core/tests/test_views.py +124 -5
  131. nautobot/core/ui/__init__.py +0 -0
  132. nautobot/core/ui/base.py +11 -0
  133. nautobot/core/ui/choices.py +44 -0
  134. nautobot/core/ui/homepage.py +167 -0
  135. nautobot/core/ui/nav.py +280 -0
  136. nautobot/core/ui/object_detail.py +1855 -0
  137. nautobot/core/ui/utils.py +36 -0
  138. nautobot/core/urls.py +6 -0
  139. nautobot/core/utils/config.py +30 -3
  140. nautobot/core/utils/lookup.py +12 -2
  141. nautobot/core/utils/querysets.py +64 -0
  142. nautobot/core/utils/requests.py +24 -9
  143. nautobot/core/views/__init__.py +48 -1
  144. nautobot/core/views/generic.py +37 -140
  145. nautobot/core/views/mixins.py +82 -32
  146. nautobot/core/views/paginator.py +8 -5
  147. nautobot/core/views/renderers.py +9 -9
  148. nautobot/core/views/utils.py +11 -0
  149. nautobot/core/wsgi.py +3 -3
  150. nautobot/dcim/api/serializers.py +34 -141
  151. nautobot/dcim/api/urls.py +5 -0
  152. nautobot/dcim/api/views.py +57 -110
  153. nautobot/dcim/apps.py +1 -0
  154. nautobot/dcim/choices.py +28 -0
  155. nautobot/dcim/factory.py +58 -0
  156. nautobot/dcim/filters/__init__.py +204 -2
  157. nautobot/dcim/forms.py +219 -9
  158. nautobot/dcim/migrations/0063_interfacevdcassignment_virtualdevicecontext_and_more.py +165 -0
  159. nautobot/dcim/migrations/0064_virtualdevicecontext_status_data_migration.py +28 -0
  160. nautobot/dcim/migrations/0065_controller_capabilities_and_more.py +29 -0
  161. nautobot/dcim/migrations/0066_controllermanageddevicegroup_radio_profiles_and_more.py +33 -0
  162. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  163. nautobot/dcim/models/__init__.py +5 -1
  164. nautobot/dcim/models/devices.py +180 -2
  165. nautobot/dcim/models/racks.py +2 -2
  166. nautobot/dcim/navigation.py +25 -224
  167. nautobot/dcim/signals.py +44 -0
  168. nautobot/dcim/tables/__init__.py +2 -0
  169. nautobot/dcim/tables/devices.py +103 -7
  170. nautobot/dcim/tables/racks.py +1 -1
  171. nautobot/dcim/templates/dcim/controller/base.html +10 -0
  172. nautobot/dcim/templates/dcim/controller_create.html +2 -7
  173. nautobot/dcim/templates/dcim/controller_retrieve.html +6 -10
  174. nautobot/dcim/templates/dcim/controller_wirelessnetworks.html +25 -0
  175. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +68 -0
  176. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +51 -0
  177. nautobot/dcim/templates/dcim/device/base.html +6 -42
  178. nautobot/dcim/templates/dcim/device/wireless.html +73 -0
  179. nautobot/dcim/templates/dcim/device.html +4 -10
  180. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  181. nautobot/dcim/templates/dcim/interface.html +1 -0
  182. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  183. nautobot/dcim/templates/dcim/location.html +1 -9
  184. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  185. nautobot/dcim/templates/dcim/locationtype.html +0 -107
  186. nautobot/dcim/templates/dcim/locationtype_retrieve.html +8 -0
  187. nautobot/dcim/templates/dcim/rack.html +1 -9
  188. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  189. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  190. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +68 -0
  191. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +28 -0
  192. nautobot/dcim/tests/integration/test_controller.py +62 -0
  193. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  194. nautobot/dcim/tests/test_api.py +188 -64
  195. nautobot/dcim/tests/test_filters.py +171 -76
  196. nautobot/dcim/tests/test_jobs.py +118 -0
  197. nautobot/dcim/tests/test_models.py +157 -6
  198. nautobot/dcim/tests/test_signals.py +1 -0
  199. nautobot/dcim/tests/test_views.py +118 -88
  200. nautobot/dcim/urls.py +72 -27
  201. nautobot/dcim/utils.py +2 -2
  202. nautobot/dcim/views.py +356 -61
  203. nautobot/extras/api/serializers.py +39 -18
  204. nautobot/extras/api/urls.py +4 -0
  205. nautobot/extras/api/views.py +89 -31
  206. nautobot/extras/choices.py +13 -0
  207. nautobot/extras/constants.py +2 -1
  208. nautobot/extras/context_managers.py +23 -6
  209. nautobot/extras/datasources/git.py +4 -1
  210. nautobot/extras/factory.py +27 -0
  211. nautobot/extras/filters/__init__.py +66 -5
  212. nautobot/extras/forms/base.py +2 -2
  213. nautobot/extras/forms/forms.py +262 -59
  214. nautobot/extras/forms/mixins.py +2 -2
  215. nautobot/extras/graphql/types.py +25 -1
  216. nautobot/extras/jobs.py +109 -15
  217. nautobot/extras/management/__init__.py +1 -0
  218. nautobot/extras/management/commands/runjob.py +7 -79
  219. nautobot/extras/management/commands/runjob_with_job_result.py +46 -0
  220. nautobot/extras/management/utils.py +87 -0
  221. nautobot/extras/migrations/0117_create_job_queue_model.py +129 -0
  222. nautobot/extras/migrations/0118_task_queue_to_job_queue_migration.py +78 -0
  223. nautobot/extras/migrations/0119_remove_task_queues_from_job_and_queue_from_scheduled_job.py +28 -0
  224. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  225. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  226. nautobot/extras/models/__init__.py +5 -1
  227. nautobot/extras/models/change_logging.py +7 -3
  228. nautobot/extras/models/contacts.py +1 -1
  229. nautobot/extras/models/groups.py +0 -2
  230. nautobot/extras/models/jobs.py +233 -33
  231. nautobot/extras/models/relationships.py +69 -1
  232. nautobot/extras/models/secrets.py +5 -0
  233. nautobot/extras/navigation.py +20 -262
  234. nautobot/extras/plugins/__init__.py +54 -19
  235. nautobot/extras/plugins/marketplace_manifest.yml +455 -0
  236. nautobot/extras/plugins/tables.py +16 -14
  237. nautobot/extras/plugins/urls.py +1 -0
  238. nautobot/extras/plugins/views.py +103 -60
  239. nautobot/extras/registry.py +1 -1
  240. nautobot/extras/secrets/__init__.py +2 -2
  241. nautobot/extras/signals.py +39 -1
  242. nautobot/extras/tables.py +37 -1
  243. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  244. nautobot/extras/templates/extras/externalintegration_retrieve.html +0 -47
  245. nautobot/extras/templates/extras/inc/tags_panel.html +1 -5
  246. nautobot/extras/templates/extras/job_bulk_edit.html +2 -1
  247. nautobot/extras/templates/extras/job_detail.html +52 -6
  248. nautobot/extras/templates/extras/job_edit.html +6 -2
  249. nautobot/extras/templates/extras/job_list.html +2 -7
  250. nautobot/extras/templates/extras/jobqueue_retrieve.html +36 -0
  251. nautobot/extras/templates/extras/marketplace.html +296 -0
  252. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  253. nautobot/extras/templates/extras/plugins_list.html +35 -1
  254. nautobot/extras/templates/extras/plugins_tiles.html +90 -0
  255. nautobot/extras/templates/extras/role_retrieve.html +16 -0
  256. nautobot/extras/templates/extras/secret.html +0 -65
  257. nautobot/extras/templates/extras/secret_check.js +16 -0
  258. nautobot/extras/templates/extras/secret_create.html +114 -0
  259. nautobot/extras/templates/extras/secret_edit.html +1 -114
  260. nautobot/extras/templates/extras/secretsgroup_edit.html +1 -1
  261. nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +2 -0
  262. nautobot/extras/templatetags/job_buttons.py +5 -4
  263. nautobot/extras/templatetags/plugins.py +69 -6
  264. nautobot/extras/test_jobs/singleton.py +16 -0
  265. nautobot/extras/tests/test_api.py +145 -43
  266. nautobot/extras/tests/test_context_managers.py +4 -1
  267. nautobot/extras/tests/test_filters.py +213 -529
  268. nautobot/extras/tests/test_job_variables.py +73 -152
  269. nautobot/extras/tests/test_jobs.py +181 -51
  270. nautobot/extras/tests/test_models.py +61 -6
  271. nautobot/extras/tests/test_plugins.py +62 -9
  272. nautobot/extras/tests/test_relationships.py +123 -9
  273. nautobot/extras/tests/test_utils.py +23 -2
  274. nautobot/extras/tests/test_views.py +146 -145
  275. nautobot/extras/tests/test_webhooks.py +2 -1
  276. nautobot/extras/urls.py +2 -20
  277. nautobot/extras/utils.py +119 -4
  278. nautobot/extras/views.py +168 -125
  279. nautobot/extras/webhooks.py +5 -2
  280. nautobot/ipam/api/serializers.py +10 -103
  281. nautobot/ipam/api/views.py +31 -49
  282. nautobot/ipam/factory.py +1 -1
  283. nautobot/ipam/filters.py +3 -2
  284. nautobot/ipam/models.py +10 -12
  285. nautobot/ipam/navigation.py +0 -90
  286. nautobot/ipam/tables.py +3 -1
  287. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  288. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  289. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  290. nautobot/ipam/templates/ipam/prefix.html +1 -9
  291. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  292. nautobot/ipam/templates/ipam/routetarget.html +0 -28
  293. nautobot/ipam/templates/ipam/vlan.html +1 -9
  294. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  295. nautobot/ipam/templates/ipam/vrf.html +0 -47
  296. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  297. nautobot/ipam/tests/test_api.py +7 -5
  298. nautobot/ipam/tests/test_filters.py +39 -119
  299. nautobot/ipam/tests/test_forms.py +0 -2
  300. nautobot/ipam/tests/test_models.py +56 -36
  301. nautobot/ipam/tests/test_views.py +3 -0
  302. nautobot/ipam/urls.py +3 -69
  303. nautobot/ipam/utils/__init__.py +16 -10
  304. nautobot/ipam/views.py +91 -162
  305. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  306. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  307. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  308. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  309. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  310. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  311. nautobot/project-static/css/base.css +38 -3
  312. nautobot/project-static/docs/404.html +461 -17
  313. nautobot/project-static/docs/apps/index.html +461 -17
  314. nautobot/project-static/docs/apps/nautobot-apps.html +462 -19
  315. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  316. nautobot/project-static/docs/assets/extra.css +5 -1
  317. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +477 -23
  318. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +474 -20
  319. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +790 -289
  320. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +505 -31
  321. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +510 -34
  322. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +471 -20
  323. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +467 -18
  324. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +497 -33
  325. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9883 -0
  326. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +523 -75
  327. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +546 -51
  328. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +670 -94
  329. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1030 -177
  330. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +524 -49
  331. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +874 -188
  332. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +955 -235
  333. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +475 -21
  334. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +486 -28
  335. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +661 -99
  336. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +947 -479
  337. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +6425 -1234
  338. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +474 -20
  339. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +877 -344
  340. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +828 -171
  341. nautobot/project-static/docs/development/apps/api/configuration-view.html +461 -17
  342. nautobot/project-static/docs/development/apps/api/database-backend-config.html +461 -17
  343. nautobot/project-static/docs/development/apps/api/models/django-admin.html +461 -17
  344. nautobot/project-static/docs/development/apps/api/models/global-search.html +461 -17
  345. nautobot/project-static/docs/development/apps/api/models/graphql.html +461 -17
  346. nautobot/project-static/docs/development/apps/api/models/index.html +461 -17
  347. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +461 -17
  348. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +461 -17
  349. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +461 -17
  350. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +461 -17
  351. nautobot/project-static/docs/development/apps/api/platform-features/index.html +461 -17
  352. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +461 -17
  353. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +461 -17
  354. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +461 -17
  355. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +461 -17
  356. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +461 -17
  357. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +461 -17
  358. nautobot/project-static/docs/development/apps/api/prometheus.html +461 -17
  359. nautobot/project-static/docs/development/apps/api/setup.html +465 -153
  360. nautobot/project-static/docs/development/apps/api/testing.html +461 -17
  361. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +461 -17
  362. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +461 -17
  363. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +461 -17
  364. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +461 -17
  365. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +741 -128
  366. nautobot/project-static/docs/development/apps/api/views/base-template.html +461 -17
  367. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +461 -17
  368. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +461 -17
  369. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +461 -17
  370. nautobot/project-static/docs/development/apps/api/views/index.html +463 -18
  371. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +465 -17
  372. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +491 -17
  373. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +461 -17
  374. nautobot/project-static/docs/development/apps/api/views/notes.html +461 -17
  375. nautobot/project-static/docs/development/apps/api/views/rest-api.html +467 -19
  376. nautobot/project-static/docs/development/apps/api/views/urls.html +461 -17
  377. nautobot/project-static/docs/development/apps/index.html +461 -17
  378. nautobot/project-static/docs/development/apps/migration/code-updates.html +462 -50
  379. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +462 -18
  380. nautobot/project-static/docs/development/apps/migration/from-v1.html +461 -17
  381. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +461 -17
  382. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +461 -17
  383. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +461 -17
  384. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +464 -20
  385. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9261 -0
  386. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +9375 -0
  387. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +9671 -0
  388. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +9559 -0
  389. nautobot/project-static/docs/development/apps/porting-from-netbox.html +464 -20
  390. nautobot/project-static/docs/development/core/application-registry.html +461 -17
  391. nautobot/project-static/docs/development/core/best-practices.html +461 -17
  392. nautobot/project-static/docs/development/core/bootstrap-ui.html +461 -17
  393. nautobot/project-static/docs/development/core/caching.html +461 -17
  394. nautobot/project-static/docs/development/core/controllers.html +463 -17
  395. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +464 -20
  396. nautobot/project-static/docs/development/core/generic-views.html +461 -17
  397. nautobot/project-static/docs/development/core/getting-started.html +539 -127
  398. nautobot/project-static/docs/development/core/homepage.html +472 -28
  399. nautobot/project-static/docs/development/core/index.html +461 -17
  400. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9754 -0
  401. nautobot/project-static/docs/development/core/model-checklist.html +471 -25
  402. nautobot/project-static/docs/development/core/model-features.html +461 -17
  403. nautobot/project-static/docs/development/core/natural-keys.html +461 -17
  404. nautobot/project-static/docs/development/core/navigation-menu.html +478 -24
  405. nautobot/project-static/docs/development/core/release-checklist.html +478 -46
  406. nautobot/project-static/docs/development/core/role-internals.html +461 -17
  407. nautobot/project-static/docs/development/core/settings.html +461 -17
  408. nautobot/project-static/docs/development/core/style-guide.html +464 -20
  409. nautobot/project-static/docs/development/core/templates.html +471 -20
  410. nautobot/project-static/docs/development/core/testing.html +461 -17
  411. nautobot/project-static/docs/development/core/ui-component-framework.html +11116 -0
  412. nautobot/project-static/docs/development/core/user-preferences.html +464 -20
  413. nautobot/project-static/docs/development/index.html +461 -17
  414. nautobot/project-static/docs/development/jobs/index.html +499 -19
  415. nautobot/project-static/docs/development/jobs/migration/from-v1.html +461 -17
  416. nautobot/project-static/docs/index.html +469 -36
  417. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  418. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  419. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  420. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  421. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  422. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  423. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  424. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  425. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  426. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  427. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  428. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  429. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  430. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  431. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  432. nautobot/project-static/docs/media/development/core/ui-component-framework/basic-panel-layout.png +0 -0
  433. nautobot/project-static/docs/media/development/core/ui-component-framework/button-example.png +0 -0
  434. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  435. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  436. nautobot/project-static/docs/media/development/core/ui-component-framework/dropdown-button-example.png +0 -0
  437. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-1.png +0 -0
  438. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-2.png +0 -0
  439. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example.png +0 -0
  440. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  441. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  442. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example.png +0 -0
  443. nautobot/project-static/docs/media/development/core/ui-component-framework/table-panels-family.png +0 -0
  444. nautobot/project-static/docs/media/development/core/ui-component-framework/text-panels-family.png +0 -0
  445. nautobot/project-static/docs/media/development/core/ui-component-framework/ui-framework-example.png +0 -0
  446. nautobot/project-static/docs/media/models/virtual_device_context_overview.drawio +73 -0
  447. nautobot/project-static/docs/media/models/virtual_device_context_overview.png +0 -0
  448. nautobot/project-static/docs/models/dcim/virtualdevicecontext.html +14 -0
  449. nautobot/project-static/docs/models/extras/jobqueue.html +14 -0
  450. nautobot/project-static/docs/models/wireless/radioprofile.html +14 -0
  451. nautobot/project-static/docs/models/wireless/supporteddatarate.html +14 -0
  452. nautobot/project-static/docs/models/wireless/wirelessnetwork.html +14 -0
  453. nautobot/project-static/docs/objects.inv +0 -0
  454. nautobot/project-static/docs/overview/application_stack.html +467 -21
  455. nautobot/project-static/docs/overview/design_philosophy.html +461 -17
  456. nautobot/project-static/docs/release-notes/index.html +483 -20
  457. nautobot/project-static/docs/release-notes/version-1.0.html +649 -206
  458. nautobot/project-static/docs/release-notes/version-1.1.html +646 -203
  459. nautobot/project-static/docs/release-notes/version-1.2.html +721 -278
  460. nautobot/project-static/docs/release-notes/version-1.3.html +747 -304
  461. nautobot/project-static/docs/release-notes/version-1.4.html +832 -390
  462. nautobot/project-static/docs/release-notes/version-1.5.html +1020 -579
  463. nautobot/project-static/docs/release-notes/version-1.6.html +940 -516
  464. nautobot/project-static/docs/release-notes/version-2.0.html +943 -502
  465. nautobot/project-static/docs/release-notes/version-2.1.html +778 -337
  466. nautobot/project-static/docs/release-notes/version-2.2.html +771 -330
  467. nautobot/project-static/docs/release-notes/version-2.3.html +914 -471
  468. nautobot/project-static/docs/release-notes/version-2.4.html +10323 -0
  469. nautobot/project-static/docs/search/search_index.json +1 -1
  470. nautobot/project-static/docs/sitemap.xml +342 -270
  471. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  472. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +461 -17
  473. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +461 -17
  474. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +461 -17
  475. nautobot/project-static/docs/user-guide/administration/configuration/index.html +473 -30
  476. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +461 -17
  477. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +842 -155
  478. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +461 -17
  479. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +461 -17
  480. nautobot/project-static/docs/user-guide/administration/guides/docker.html +474 -27
  481. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +461 -17
  482. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +461 -17
  483. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +461 -17
  484. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +461 -17
  485. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +461 -17
  486. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +463 -19
  487. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +461 -17
  488. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +461 -17
  489. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +461 -17
  490. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +481 -21
  491. nautobot/project-static/docs/user-guide/administration/installation/index.html +466 -18
  492. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +462 -18
  493. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +461 -17
  494. nautobot/project-static/docs/user-guide/administration/installation/services.html +461 -17
  495. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +461 -17
  496. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +482 -39
  497. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +475 -64
  498. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +475 -64
  499. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +461 -17
  500. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +461 -17
  501. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +461 -17
  502. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +461 -17
  503. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +461 -17
  504. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +464 -21
  505. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +461 -17
  506. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-nautobot-app-location.yaml +0 -16
  507. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +461 -17
  508. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +467 -19
  509. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +461 -17
  510. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +461 -17
  511. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +461 -17
  512. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +461 -17
  513. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +461 -17
  514. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +461 -17
  515. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +461 -17
  516. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +461 -17
  517. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +461 -17
  518. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +461 -17
  519. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +461 -17
  520. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +461 -17
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +461 -17
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +461 -17
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +461 -17
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +461 -17
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +461 -17
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +497 -18
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +487 -20
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +461 -17
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +461 -17
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +461 -17
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +461 -17
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +461 -17
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +461 -17
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +461 -17
  535. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +461 -17
  536. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +461 -17
  537. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +461 -17
  538. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +461 -17
  539. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +461 -17
  540. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +461 -17
  541. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +461 -17
  542. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +461 -17
  543. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +461 -17
  544. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +461 -17
  545. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +461 -17
  546. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +461 -17
  547. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +461 -17
  548. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +461 -17
  549. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +461 -17
  550. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +461 -17
  551. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +461 -17
  552. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +461 -17
  553. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +461 -17
  554. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +461 -17
  555. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +461 -17
  556. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +461 -17
  557. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +461 -17
  558. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +461 -17
  559. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +461 -17
  560. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +461 -17
  561. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +461 -17
  562. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9375 -0
  563. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +468 -28
  564. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +461 -17
  565. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +461 -17
  566. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +461 -17
  567. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +461 -17
  568. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +461 -17
  569. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +461 -17
  570. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +461 -17
  571. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +461 -17
  572. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +461 -17
  573. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +461 -17
  574. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +461 -17
  575. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +461 -17
  576. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +464 -20
  577. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +461 -17
  578. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +461 -17
  579. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +461 -17
  580. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +461 -17
  581. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +461 -17
  582. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +461 -17
  583. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +464 -20
  584. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9313 -0
  585. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9217 -0
  586. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9211 -0
  587. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9277 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +461 -17
  589. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +461 -17
  590. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +461 -17
  591. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +461 -17
  592. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +461 -17
  593. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +461 -17
  594. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +461 -17
  595. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +461 -17
  596. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +461 -17
  597. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +461 -17
  598. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +461 -17
  599. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +466 -20
  600. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +461 -17
  601. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  602. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  603. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  604. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  605. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  606. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  607. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  608. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  609. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  610. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  611. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  612. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  613. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  614. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +461 -17
  615. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +461 -17
  616. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +464 -20
  617. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  618. nautobot/project-static/docs/user-guide/index.html +461 -17
  619. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +464 -20
  620. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +465 -21
  621. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +461 -17
  622. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +461 -17
  623. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +461 -17
  624. nautobot/project-static/docs/user-guide/platform-functionality/events.html +9617 -0
  625. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +464 -20
  626. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +461 -17
  627. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +461 -17
  628. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +461 -17
  629. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +461 -17
  630. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +461 -17
  631. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +470 -21
  632. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +464 -20
  633. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +464 -20
  634. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +461 -17
  635. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9224 -0
  636. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  637. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +464 -20
  638. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +461 -17
  639. nautobot/project-static/docs/user-guide/platform-functionality/note.html +461 -17
  640. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +461 -17
  641. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +465 -21
  642. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9292 -0
  643. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +461 -17
  644. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +509 -38
  645. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +492 -21
  646. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +461 -17
  647. nautobot/project-static/docs/user-guide/platform-functionality/role.html +461 -17
  648. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +461 -17
  649. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +461 -17
  650. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +464 -20
  651. nautobot/project-static/docs/user-guide/platform-functionality/status.html +461 -17
  652. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +461 -17
  653. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +529 -54
  654. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +461 -17
  655. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +461 -17
  656. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +461 -17
  657. nautobot/project-static/img/jinja_logo.svg +97 -0
  658. nautobot/project-static/js/forms.js +6 -1
  659. nautobot/project-static/js/nav_menu.js +2 -1
  660. nautobot/tenancy/api/serializers.py +0 -2
  661. nautobot/tenancy/api/views.py +9 -13
  662. nautobot/tenancy/factory.py +1 -1
  663. nautobot/tenancy/navigation.py +0 -29
  664. nautobot/tenancy/templates/tenancy/tenant.html +4 -91
  665. nautobot/tenancy/tests/test_filters.py +29 -134
  666. nautobot/tenancy/views.py +35 -24
  667. nautobot/users/admin.py +2 -0
  668. nautobot/users/api/views.py +2 -2
  669. nautobot/users/forms.py +19 -0
  670. nautobot/users/templates/users/preferences.html +22 -0
  671. nautobot/users/tests/test_filters.py +1 -19
  672. nautobot/users/tests/test_views.py +57 -0
  673. nautobot/users/utils.py +8 -0
  674. nautobot/users/views.py +48 -11
  675. nautobot/virtualization/api/views.py +5 -24
  676. nautobot/virtualization/filters.py +1 -2
  677. nautobot/virtualization/models.py +1 -1
  678. nautobot/virtualization/navigation.py +0 -48
  679. nautobot/virtualization/tables.py +2 -2
  680. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  681. nautobot/virtualization/templates/virtualization/clustertype.html +0 -39
  682. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  683. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  684. nautobot/virtualization/tests/test_filters.py +57 -166
  685. nautobot/virtualization/views.py +18 -15
  686. nautobot/wireless/__init__.py +0 -0
  687. nautobot/wireless/api/__init__.py +0 -0
  688. nautobot/wireless/api/serializers.py +44 -0
  689. nautobot/wireless/api/urls.py +20 -0
  690. nautobot/wireless/api/views.py +34 -0
  691. nautobot/wireless/apps.py +8 -0
  692. nautobot/wireless/choices.py +345 -0
  693. nautobot/wireless/factory.py +138 -0
  694. nautobot/wireless/filters.py +167 -0
  695. nautobot/wireless/forms.py +283 -0
  696. nautobot/wireless/homepage.py +19 -0
  697. nautobot/wireless/migrations/0001_initial.py +223 -0
  698. nautobot/wireless/migrations/__init__.py +0 -0
  699. nautobot/wireless/models.py +207 -0
  700. nautobot/wireless/navigation.py +105 -0
  701. nautobot/wireless/tables.py +244 -0
  702. nautobot/wireless/templates/wireless/radioprofile_retrieve.html +81 -0
  703. nautobot/wireless/templates/wireless/supporteddatarate_retrieve.html +26 -0
  704. nautobot/wireless/templates/wireless/wirelessnetwork_create.html +88 -0
  705. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +56 -0
  706. nautobot/wireless/tests/__init__.py +0 -0
  707. nautobot/wireless/tests/integration/__init__.py +0 -0
  708. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  709. nautobot/wireless/tests/test_api.py +247 -0
  710. nautobot/wireless/tests/test_filters.py +82 -0
  711. nautobot/wireless/tests/test_models.py +22 -0
  712. nautobot/wireless/tests/test_views.py +378 -0
  713. nautobot/wireless/urls.py +13 -0
  714. nautobot/wireless/views.py +119 -0
  715. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/METADATA +9 -12
  716. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/RECORD +720 -549
  717. nautobot/core/utils/navigation.py +0 -54
  718. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/LICENSE.txt +0 -0
  719. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/NOTICE +0 -0
  720. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/WHEEL +0 -0
  721. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/entry_points.txt +0 -0
@@ -2112,6 +2112,27 @@
2112
2112
 
2113
2113
 
2114
2114
 
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+ <li class="md-nav__item">
2122
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2123
+
2124
+
2125
+ <span class="md-ellipsis">
2126
+ Wireless Networks and Controllers
2127
+ </span>
2128
+
2129
+
2130
+ </a>
2131
+ </li>
2132
+
2133
+
2134
+
2135
+
2115
2136
  </ul>
2116
2137
  </nav>
2117
2138
 
@@ -3944,6 +3965,27 @@
3944
3965
 
3945
3966
 
3946
3967
 
3968
+
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+ <li class="md-nav__item">
3975
+ <a href="../../../user-guide/core-data-model/dcim/virtualdevicecontext.html" class="md-nav__link">
3976
+
3977
+
3978
+ <span class="md-ellipsis">
3979
+ Virtual Device Context
3980
+ </span>
3981
+
3982
+
3983
+ </a>
3984
+ </li>
3985
+
3986
+
3987
+
3988
+
3947
3989
  </ul>
3948
3990
  </nav>
3949
3991
 
@@ -4556,6 +4598,123 @@
4556
4598
 
4557
4599
 
4558
4600
 
4601
+
4602
+
4603
+
4604
+
4605
+
4606
+
4607
+
4608
+
4609
+
4610
+
4611
+
4612
+
4613
+
4614
+ <li class="md-nav__item md-nav__item--nested">
4615
+
4616
+
4617
+
4618
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_9" >
4619
+
4620
+
4621
+
4622
+ <div class="md-nav__link md-nav__container">
4623
+ <a href="../../../user-guide/core-data-model/wireless/index.html" class="md-nav__link ">
4624
+
4625
+
4626
+ <span class="md-ellipsis">
4627
+ Wireless
4628
+ </span>
4629
+
4630
+
4631
+ </a>
4632
+
4633
+
4634
+ <label class="md-nav__link " for="__nav_2_3_9" id="__nav_2_3_9_label" tabindex="0">
4635
+ <span class="md-nav__icon md-icon"></span>
4636
+ </label>
4637
+
4638
+ </div>
4639
+
4640
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_9_label" aria-expanded="false">
4641
+ <label class="md-nav__title" for="__nav_2_3_9">
4642
+ <span class="md-nav__icon md-icon"></span>
4643
+ Wireless
4644
+ </label>
4645
+ <ul class="md-nav__list" data-md-scrollfix>
4646
+
4647
+
4648
+
4649
+
4650
+
4651
+
4652
+
4653
+ <li class="md-nav__item">
4654
+ <a href="../../../user-guide/core-data-model/wireless/supporteddatarate.html" class="md-nav__link">
4655
+
4656
+
4657
+ <span class="md-ellipsis">
4658
+ Supported Data Rate
4659
+ </span>
4660
+
4661
+
4662
+ </a>
4663
+ </li>
4664
+
4665
+
4666
+
4667
+
4668
+
4669
+
4670
+
4671
+
4672
+
4673
+
4674
+ <li class="md-nav__item">
4675
+ <a href="../../../user-guide/core-data-model/wireless/radioprofile.html" class="md-nav__link">
4676
+
4677
+
4678
+ <span class="md-ellipsis">
4679
+ Radio Profile
4680
+ </span>
4681
+
4682
+
4683
+ </a>
4684
+ </li>
4685
+
4686
+
4687
+
4688
+
4689
+
4690
+
4691
+
4692
+
4693
+
4694
+
4695
+ <li class="md-nav__item">
4696
+ <a href="../../../user-guide/core-data-model/wireless/wirelessnetwork.html" class="md-nav__link">
4697
+
4698
+
4699
+ <span class="md-ellipsis">
4700
+ Wireless Network
4701
+ </span>
4702
+
4703
+
4704
+ </a>
4705
+ </li>
4706
+
4707
+
4708
+
4709
+
4710
+ </ul>
4711
+ </nav>
4712
+
4713
+ </li>
4714
+
4715
+
4716
+
4717
+
4559
4718
  </ul>
4560
4719
  </nav>
4561
4720
 
@@ -4767,6 +4926,27 @@
4767
4926
 
4768
4927
 
4769
4928
 
4929
+ <li class="md-nav__item">
4930
+ <a href="../../../user-guide/platform-functionality/events.html" class="md-nav__link">
4931
+
4932
+
4933
+ <span class="md-ellipsis">
4934
+ Event Notifications
4935
+ </span>
4936
+
4937
+
4938
+ </a>
4939
+ </li>
4940
+
4941
+
4942
+
4943
+
4944
+
4945
+
4946
+
4947
+
4948
+
4949
+
4770
4950
  <li class="md-nav__item">
4771
4951
  <a href="../../../user-guide/platform-functionality/exporttemplate.html" class="md-nav__link">
4772
4952
 
@@ -4841,7 +5021,7 @@
4841
5021
 
4842
5022
 
4843
5023
 
4844
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_9" >
5024
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_10" >
4845
5025
 
4846
5026
 
4847
5027
 
@@ -4857,14 +5037,14 @@
4857
5037
  </a>
4858
5038
 
4859
5039
 
4860
- <label class="md-nav__link " for="__nav_2_4_9" id="__nav_2_4_9_label" tabindex="0">
5040
+ <label class="md-nav__link " for="__nav_2_4_10" id="__nav_2_4_10_label" tabindex="0">
4861
5041
  <span class="md-nav__icon md-icon"></span>
4862
5042
  </label>
4863
5043
 
4864
5044
  </div>
4865
5045
 
4866
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_9_label" aria-expanded="false">
4867
- <label class="md-nav__title" for="__nav_2_4_9">
5046
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_10_label" aria-expanded="false">
5047
+ <label class="md-nav__title" for="__nav_2_4_10">
4868
5048
  <span class="md-nav__icon md-icon"></span>
4869
5049
  GraphQL
4870
5050
  </label>
@@ -4937,7 +5117,7 @@
4937
5117
 
4938
5118
 
4939
5119
 
4940
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_11" >
5120
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_12" >
4941
5121
 
4942
5122
 
4943
5123
 
@@ -4953,14 +5133,14 @@
4953
5133
  </a>
4954
5134
 
4955
5135
 
4956
- <label class="md-nav__link " for="__nav_2_4_11" id="__nav_2_4_11_label" tabindex="0">
5136
+ <label class="md-nav__link " for="__nav_2_4_12" id="__nav_2_4_12_label" tabindex="0">
4957
5137
  <span class="md-nav__icon md-icon"></span>
4958
5138
  </label>
4959
5139
 
4960
5140
  </div>
4961
5141
 
4962
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_11_label" aria-expanded="false">
4963
- <label class="md-nav__title" for="__nav_2_4_11">
5142
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_12_label" aria-expanded="false">
5143
+ <label class="md-nav__title" for="__nav_2_4_12">
4964
5144
  <span class="md-nav__icon md-icon"></span>
4965
5145
  Jobs
4966
5146
  </label>
@@ -4972,6 +5152,27 @@
4972
5152
 
4973
5153
 
4974
5154
 
5155
+ <li class="md-nav__item">
5156
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5157
+
5158
+
5159
+ <span class="md-ellipsis">
5160
+ Kubernetes Job Support
5161
+ </span>
5162
+
5163
+
5164
+ </a>
5165
+ </li>
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
4975
5176
  <li class="md-nav__item">
4976
5177
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
4977
5178
 
@@ -5035,6 +5236,27 @@
5035
5236
 
5036
5237
 
5037
5238
 
5239
+ <li class="md-nav__item">
5240
+ <a href="../../../user-guide/platform-functionality/jobs/jobqueue.html" class="md-nav__link">
5241
+
5242
+
5243
+ <span class="md-ellipsis">
5244
+ Job Queues
5245
+ </span>
5246
+
5247
+
5248
+ </a>
5249
+ </li>
5250
+
5251
+
5252
+
5253
+
5254
+
5255
+
5256
+
5257
+
5258
+
5259
+
5038
5260
  <li class="md-nav__item">
5039
5261
  <a href="../../../user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html" class="md-nav__link">
5040
5262
 
@@ -5148,6 +5370,27 @@
5148
5370
 
5149
5371
 
5150
5372
 
5373
+ <li class="md-nav__item">
5374
+ <a href="../../../user-guide/platform-functionality/rendering-jinja-templates.html" class="md-nav__link">
5375
+
5376
+
5377
+ <span class="md-ellipsis">
5378
+ Rendering Jinja Templates
5379
+ </span>
5380
+
5381
+
5382
+ </a>
5383
+ </li>
5384
+
5385
+
5386
+
5387
+
5388
+
5389
+
5390
+
5391
+
5392
+
5393
+
5151
5394
 
5152
5395
 
5153
5396
 
@@ -5159,7 +5402,7 @@
5159
5402
 
5160
5403
 
5161
5404
 
5162
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_16" >
5405
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_18" >
5163
5406
 
5164
5407
 
5165
5408
 
@@ -5175,14 +5418,14 @@
5175
5418
  </a>
5176
5419
 
5177
5420
 
5178
- <label class="md-nav__link " for="__nav_2_4_16" id="__nav_2_4_16_label" tabindex="0">
5421
+ <label class="md-nav__link " for="__nav_2_4_18" id="__nav_2_4_18_label" tabindex="0">
5179
5422
  <span class="md-nav__icon md-icon"></span>
5180
5423
  </label>
5181
5424
 
5182
5425
  </div>
5183
5426
 
5184
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_16_label" aria-expanded="false">
5185
- <label class="md-nav__title" for="__nav_2_4_16">
5427
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_18_label" aria-expanded="false">
5428
+ <label class="md-nav__title" for="__nav_2_4_18">
5186
5429
  <span class="md-nav__icon md-icon"></span>
5187
5430
  REST API
5188
5431
  </label>
@@ -5402,10 +5645,10 @@
5402
5645
 
5403
5646
 
5404
5647
 
5405
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_23" >
5648
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_25" >
5406
5649
 
5407
5650
 
5408
- <label class="md-nav__link" for="__nav_2_4_23" id="__nav_2_4_23_label" tabindex="0">
5651
+ <label class="md-nav__link" for="__nav_2_4_25" id="__nav_2_4_25_label" tabindex="0">
5409
5652
 
5410
5653
 
5411
5654
  <span class="md-ellipsis">
@@ -5416,8 +5659,8 @@
5416
5659
  <span class="md-nav__icon md-icon"></span>
5417
5660
  </label>
5418
5661
 
5419
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_23_label" aria-expanded="false">
5420
- <label class="md-nav__title" for="__nav_2_4_23">
5662
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_25_label" aria-expanded="false">
5663
+ <label class="md-nav__title" for="__nav_2_4_25">
5421
5664
  <span class="md-nav__icon md-icon"></span>
5422
5665
  Users
5423
5666
  </label>
@@ -6831,6 +7074,27 @@
6831
7074
 
6832
7075
 
6833
7076
 
7077
+ <li class="md-nav__item">
7078
+ <a href="events.html" class="md-nav__link">
7079
+
7080
+
7081
+ <span class="md-ellipsis">
7082
+ nautobot.apps.events
7083
+ </span>
7084
+
7085
+
7086
+ </a>
7087
+ </li>
7088
+
7089
+
7090
+
7091
+
7092
+
7093
+
7094
+
7095
+
7096
+
7097
+
6834
7098
  <li class="md-nav__item">
6835
7099
  <a href="exceptions.html" class="md-nav__link">
6836
7100
 
@@ -7179,6 +7443,15 @@
7179
7443
  </span>
7180
7444
  </a>
7181
7445
 
7446
+ </li>
7447
+
7448
+ <li class="md-nav__item">
7449
+ <a href="#nautobot.apps.jobs.BaseJob.singleton_cache_key" class="md-nav__link">
7450
+ <span class="md-ellipsis">
7451
+ singleton_cache_key
7452
+ </span>
7453
+ </a>
7454
+
7182
7455
  </li>
7183
7456
 
7184
7457
  </ul>
@@ -7947,14 +8220,6 @@
7947
8220
 
7948
8221
 
7949
8222
 
7950
- </ul>
7951
- </nav>
7952
-
7953
- </li>
7954
-
7955
-
7956
-
7957
-
7958
8223
 
7959
8224
 
7960
8225
 
@@ -7972,12 +8237,137 @@
7972
8237
 
7973
8238
 
7974
8239
 
7975
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
8240
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_5" >
7976
8241
 
7977
8242
 
7978
- <label class="md-nav__link" for="__nav_3_2_10" id="__nav_3_2_10_label" tabindex="0">
7979
-
7980
-
8243
+
8244
+ <div class="md-nav__link md-nav__container">
8245
+ <a href="../../../development/apps/migration/ui-component-framework/index.html" class="md-nav__link ">
8246
+
8247
+
8248
+ <span class="md-ellipsis">
8249
+ UI Component Framework
8250
+ </span>
8251
+
8252
+
8253
+ </a>
8254
+
8255
+
8256
+ <label class="md-nav__link " for="__nav_3_2_9_5" id="__nav_3_2_9_5_label" tabindex="0">
8257
+ <span class="md-nav__icon md-icon"></span>
8258
+ </label>
8259
+
8260
+ </div>
8261
+
8262
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_9_5_label" aria-expanded="false">
8263
+ <label class="md-nav__title" for="__nav_3_2_9_5">
8264
+ <span class="md-nav__icon md-icon"></span>
8265
+ UI Component Framework
8266
+ </label>
8267
+ <ul class="md-nav__list" data-md-scrollfix>
8268
+
8269
+
8270
+
8271
+
8272
+
8273
+
8274
+
8275
+ <li class="md-nav__item">
8276
+ <a href="../../../development/apps/migration/ui-component-framework/migration-steps.html" class="md-nav__link">
8277
+
8278
+
8279
+ <span class="md-ellipsis">
8280
+ Migration steps
8281
+ </span>
8282
+
8283
+
8284
+ </a>
8285
+ </li>
8286
+
8287
+
8288
+
8289
+
8290
+
8291
+
8292
+
8293
+
8294
+
8295
+
8296
+ <li class="md-nav__item">
8297
+ <a href="../../../development/apps/migration/ui-component-framework/custom-content.html" class="md-nav__link">
8298
+
8299
+
8300
+ <span class="md-ellipsis">
8301
+ Custom content
8302
+ </span>
8303
+
8304
+
8305
+ </a>
8306
+ </li>
8307
+
8308
+
8309
+
8310
+
8311
+
8312
+
8313
+
8314
+
8315
+
8316
+
8317
+ <li class="md-nav__item">
8318
+ <a href="../../../development/apps/migration/ui-component-framework/best-practices.html" class="md-nav__link">
8319
+
8320
+
8321
+ <span class="md-ellipsis">
8322
+ Best practices
8323
+ </span>
8324
+
8325
+
8326
+ </a>
8327
+ </li>
8328
+
8329
+
8330
+
8331
+
8332
+ </ul>
8333
+ </nav>
8334
+
8335
+ </li>
8336
+
8337
+
8338
+
8339
+
8340
+ </ul>
8341
+ </nav>
8342
+
8343
+ </li>
8344
+
8345
+
8346
+
8347
+
8348
+
8349
+
8350
+
8351
+
8352
+
8353
+
8354
+
8355
+
8356
+
8357
+
8358
+
8359
+
8360
+
8361
+ <li class="md-nav__item md-nav__item--nested">
8362
+
8363
+
8364
+
8365
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
8366
+
8367
+
8368
+ <label class="md-nav__link" for="__nav_3_2_10" id="__nav_3_2_10_label" tabindex="0">
8369
+
8370
+
7981
8371
  <span class="md-ellipsis">
7982
8372
  Advanced
7983
8373
  </span>
@@ -8292,6 +8682,27 @@
8292
8682
 
8293
8683
 
8294
8684
 
8685
+ <li class="md-nav__item">
8686
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
8687
+
8688
+
8689
+ <span class="md-ellipsis">
8690
+ Minikube Dev Environment for K8s Jobs
8691
+ </span>
8692
+
8693
+
8694
+ </a>
8695
+ </li>
8696
+
8697
+
8698
+
8699
+
8700
+
8701
+
8702
+
8703
+
8704
+
8705
+
8295
8706
  <li class="md-nav__item">
8296
8707
  <a href="../../../development/core/model-checklist.html" class="md-nav__link">
8297
8708
 
@@ -8481,6 +8892,27 @@
8481
8892
 
8482
8893
 
8483
8894
 
8895
+ <li class="md-nav__item">
8896
+ <a href="../../../development/core/ui-component-framework.html" class="md-nav__link">
8897
+
8898
+
8899
+ <span class="md-ellipsis">
8900
+ UI Component Framework
8901
+ </span>
8902
+
8903
+
8904
+ </a>
8905
+ </li>
8906
+
8907
+
8908
+
8909
+
8910
+
8911
+
8912
+
8913
+
8914
+
8915
+
8484
8916
  <li class="md-nav__item">
8485
8917
  <a href="../../../development/core/release-checklist.html" class="md-nav__link">
8486
8918
 
@@ -8563,6 +8995,27 @@
8563
8995
 
8564
8996
 
8565
8997
 
8998
+ <li class="md-nav__item">
8999
+ <a href="../../../release-notes/version-2.4.html" class="md-nav__link">
9000
+
9001
+
9002
+ <span class="md-ellipsis">
9003
+ Version 2.4
9004
+ </span>
9005
+
9006
+
9007
+ </a>
9008
+ </li>
9009
+
9010
+
9011
+
9012
+
9013
+
9014
+
9015
+
9016
+
9017
+
9018
+
8566
9019
  <li class="md-nav__item">
8567
9020
  <a href="../../../release-notes/version-2.3.html" class="md-nav__link">
8568
9021
 
@@ -9347,6 +9800,15 @@
9347
9800
  </span>
9348
9801
  </a>
9349
9802
 
9803
+ </li>
9804
+
9805
+ <li class="md-nav__item">
9806
+ <a href="#nautobot.apps.jobs.BaseJob.singleton_cache_key" class="md-nav__link">
9807
+ <span class="md-ellipsis">
9808
+ singleton_cache_key
9809
+ </span>
9810
+ </a>
9811
+
9350
9812
  </li>
9351
9813
 
9352
9814
  </ul>
@@ -9708,7 +10170,12 @@
9708
10170
 
9709
10171
  <div class="doc doc-contents first">
9710
10172
 
9711
- <p>Nautobot Jobs API.</p>
10173
+ <p>Nautobot Jobs API.</p>
10174
+
10175
+
10176
+
10177
+
10178
+
9712
10179
 
9713
10180
 
9714
10181
 
@@ -9735,7 +10202,7 @@
9735
10202
  <div class="doc doc-contents ">
9736
10203
 
9737
10204
 
9738
- <p>Base model for jobs.</p>
10205
+ <p>Base model for jobs.</p>
9739
10206
  <p>Users can subclass this directly if they want to provide their own base class for implementing multiple jobs
9740
10207
  with shared functionality; if no such sharing is required, use Job class instead.</p>
9741
10208
  <p>Jobs must define at minimum a run method.</p>
@@ -9743,6 +10210,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9743
10210
 
9744
10211
 
9745
10212
 
10213
+
10214
+
10215
+
10216
+
10217
+
9746
10218
  <div class="doc doc-children">
9747
10219
 
9748
10220
 
@@ -9766,7 +10238,7 @@ with shared functionality; if no such sharing is required, use Job class instead
9766
10238
  <div class="doc doc-contents ">
9767
10239
 
9768
10240
 
9769
- <p>Metaclass attributes - subclasses can define any or all of the following attributes:</p>
10241
+ <p>Metaclass attributes - subclasses can define any or all of the following attributes:</p>
9770
10242
  <ul>
9771
10243
  <li>name (str)</li>
9772
10244
  <li>description (str)</li>
@@ -9779,9 +10251,15 @@ with shared functionality; if no such sharing is required, use Job class instead
9779
10251
  <li>task_queues (list)</li>
9780
10252
  <li>template_name (str)</li>
9781
10253
  <li>time_limit (int)</li>
10254
+ <li>is_singleton (bool)</li>
9782
10255
  </ul>
9783
10256
 
9784
10257
 
10258
+
10259
+
10260
+
10261
+
10262
+
9785
10263
  </div>
9786
10264
 
9787
10265
  </div>
@@ -9798,7 +10276,7 @@ with shared functionality; if no such sharing is required, use Job class instead
9798
10276
 
9799
10277
  <div class="doc doc-contents ">
9800
10278
 
9801
- <p>Handler called after the task returns.</p>
10279
+ <p>Handler called after the task returns.</p>
9802
10280
 
9803
10281
 
9804
10282
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -9813,9 +10291,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9813
10291
  </thead>
9814
10292
  <tbody>
9815
10293
  <tr class="doc-section-item">
9816
- <td><code>status</code></td>
9817
10294
  <td>
9818
- <code><autoref identifier="str" optional>str</autoref></code>
10295
+ <code>status</code>
10296
+ </td>
10297
+ <td>
10298
+ <code>str</code>
9819
10299
  </td>
9820
10300
  <td>
9821
10301
  <div class="doc-md-description">
@@ -9827,9 +10307,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9827
10307
  </td>
9828
10308
  </tr>
9829
10309
  <tr class="doc-section-item">
9830
- <td><code>retval</code></td>
9831
10310
  <td>
9832
- <code><autoref identifier="Any" optional>Any</autoref></code>
10311
+ <code>retval</code>
10312
+ </td>
10313
+ <td>
10314
+ <code>Any</code>
9833
10315
  </td>
9834
10316
  <td>
9835
10317
  <div class="doc-md-description">
@@ -9841,9 +10323,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9841
10323
  </td>
9842
10324
  </tr>
9843
10325
  <tr class="doc-section-item">
9844
- <td><code>task_id</code></td>
9845
10326
  <td>
9846
- <code><autoref identifier="str" optional>str</autoref></code>
10327
+ <code>task_id</code>
10328
+ </td>
10329
+ <td>
10330
+ <code>str</code>
9847
10331
  </td>
9848
10332
  <td>
9849
10333
  <div class="doc-md-description">
@@ -9855,9 +10339,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9855
10339
  </td>
9856
10340
  </tr>
9857
10341
  <tr class="doc-section-item">
9858
- <td><code>args</code></td>
9859
10342
  <td>
9860
- <code><autoref identifier="tuple" optional>tuple</autoref></code>
10343
+ <code>args</code>
10344
+ </td>
10345
+ <td>
10346
+ <code>tuple</code>
9861
10347
  </td>
9862
10348
  <td>
9863
10349
  <div class="doc-md-description">
@@ -9869,9 +10355,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9869
10355
  </td>
9870
10356
  </tr>
9871
10357
  <tr class="doc-section-item">
9872
- <td><code>kwargs</code></td>
9873
10358
  <td>
9874
- <code><autoref identifier="dict" optional>dict</autoref></code>
10359
+ <code>kwargs</code>
10360
+ </td>
10361
+ <td>
10362
+ <code>dict</code>
9875
10363
  </td>
9876
10364
  <td>
9877
10365
  <div class="doc-md-description">
@@ -9883,9 +10371,11 @@ with shared functionality; if no such sharing is required, use Job class instead
9883
10371
  </td>
9884
10372
  </tr>
9885
10373
  <tr class="doc-section-item">
9886
- <td><code>einfo</code></td>
9887
10374
  <td>
9888
- <code><autoref identifier="billiard.einfo.ExceptionInfo" optional hover>ExceptionInfo</autoref></code>
10375
+ <code>einfo</code>
10376
+ </td>
10377
+ <td>
10378
+ <code><span title="billiard.einfo.ExceptionInfo">ExceptionInfo</span></code>
9889
10379
  </td>
9890
10380
  <td>
9891
10381
  <div class="doc-md-description">
@@ -9941,7 +10431,7 @@ with shared functionality; if no such sharing is required, use Job class instead
9941
10431
 
9942
10432
  <div class="doc doc-contents ">
9943
10433
 
9944
- <p>Return a Django form suitable for populating the context data required to run this Job.</p>
10434
+ <p>Return a Django form suitable for populating the context data required to run this Job.</p>
9945
10435
  <p><code>approval_view</code> will disable all fields from modification and is used to display the form
9946
10436
  during a approval review workflow.</p>
9947
10437
 
@@ -9964,7 +10454,7 @@ during a approval review workflow.</p>
9964
10454
 
9965
10455
  <div class="doc doc-contents ">
9966
10456
 
9967
- <p>Dynamically generate a Django form class corresponding to the variables in this Job.</p>
10457
+ <p>Dynamically generate a Django form class corresponding to the variables in this Job.</p>
9968
10458
  <p>In most cases you should use <code>.as_form()</code> instead of calling this method directly.</p>
9969
10459
 
9970
10460
  </div>
@@ -9982,7 +10472,7 @@ during a approval review workflow.</p>
9982
10472
 
9983
10473
  <div class="doc doc-contents ">
9984
10474
 
9985
- <p>Handler called before the task starts.</p>
10475
+ <p>Handler called before the task starts.</p>
9986
10476
 
9987
10477
 
9988
10478
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -9997,9 +10487,11 @@ during a approval review workflow.</p>
9997
10487
  </thead>
9998
10488
  <tbody>
9999
10489
  <tr class="doc-section-item">
10000
- <td><code>task_id</code></td>
10001
10490
  <td>
10002
- <code><autoref identifier="str" optional>str</autoref></code>
10491
+ <code>task_id</code>
10492
+ </td>
10493
+ <td>
10494
+ <code>str</code>
10003
10495
  </td>
10004
10496
  <td>
10005
10497
  <div class="doc-md-description">
@@ -10011,9 +10503,11 @@ during a approval review workflow.</p>
10011
10503
  </td>
10012
10504
  </tr>
10013
10505
  <tr class="doc-section-item">
10014
- <td><code>args</code></td>
10015
10506
  <td>
10016
- <code><autoref identifier="Tuple" optional>Tuple</autoref></code>
10507
+ <code>args</code>
10508
+ </td>
10509
+ <td>
10510
+ <code>Tuple</code>
10017
10511
  </td>
10018
10512
  <td>
10019
10513
  <div class="doc-md-description">
@@ -10025,9 +10519,11 @@ during a approval review workflow.</p>
10025
10519
  </td>
10026
10520
  </tr>
10027
10521
  <tr class="doc-section-item">
10028
- <td><code>kwargs</code></td>
10029
10522
  <td>
10030
- <code><autoref identifier="Dict" optional>Dict</autoref></code>
10523
+ <code>kwargs</code>
10524
+ </td>
10525
+ <td>
10526
+ <code>Dict</code>
10031
10527
  </td>
10032
10528
  <td>
10033
10529
  <div class="doc-md-description">
@@ -10079,7 +10575,7 @@ during a approval review workflow.</p>
10079
10575
 
10080
10576
  <div class="doc doc-contents ">
10081
10577
 
10082
- <p>Unique identifier of a specific Job class, in the form <module_name>.<ClassName>.</p>
10578
+ <p>Unique identifier of a specific Job class, in the form <module_name>.<ClassName>.</p>
10083
10579
  <p>Examples:
10084
10580
  - my_script.MyScript - Local Job
10085
10581
  - nautobot.core.jobs.MySystemJob - System Job
@@ -10101,7 +10597,7 @@ during a approval review workflow.</p>
10101
10597
 
10102
10598
  <div class="doc doc-contents ">
10103
10599
 
10104
- <p>Dotted class_path, suitable for use in things like Python logger names.</p>
10600
+ <p>Dotted class_path, suitable for use in things like Python logger names.</p>
10105
10601
  <p>Deprecated as of Nautobot 2.0: just use .class_path instead.</p>
10106
10602
 
10107
10603
  </div>
@@ -10119,7 +10615,7 @@ during a approval review workflow.</p>
10119
10615
 
10120
10616
  <div class="doc doc-contents ">
10121
10617
 
10122
- <p>Escape various characters so that the class_path can be used as a jQuery selector.</p>
10618
+ <p>Escape various characters so that the class_path can be used as a jQuery selector.</p>
10123
10619
 
10124
10620
  </div>
10125
10621
 
@@ -10136,7 +10632,7 @@ during a approval review workflow.</p>
10136
10632
 
10137
10633
  <div class="doc doc-contents ">
10138
10634
 
10139
- <p>Create a file that can later be downloaded by users.</p>
10635
+ <p>Create a file that can later be downloaded by users.</p>
10140
10636
 
10141
10637
 
10142
10638
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -10151,9 +10647,11 @@ during a approval review workflow.</p>
10151
10647
  </thead>
10152
10648
  <tbody>
10153
10649
  <tr class="doc-section-item">
10154
- <td><code>filename</code></td>
10155
10650
  <td>
10156
- <code><autoref identifier="str" optional>str</autoref></code>
10651
+ <code>filename</code>
10652
+ </td>
10653
+ <td>
10654
+ <code>str</code>
10157
10655
  </td>
10158
10656
  <td>
10159
10657
  <div class="doc-md-description">
@@ -10165,9 +10663,11 @@ during a approval review workflow.</p>
10165
10663
  </td>
10166
10664
  </tr>
10167
10665
  <tr class="doc-section-item">
10168
- <td><code>content</code></td>
10169
10666
  <td>
10170
- <code>(<autoref identifier="str" optional>str</autoref>, <autoref identifier="bytes" optional>bytes</autoref>)</code>
10667
+ <code>content</code>
10668
+ </td>
10669
+ <td>
10670
+ <code>(str, bytes)</code>
10171
10671
  </td>
10172
10672
  <td>
10173
10673
  <div class="doc-md-description">
@@ -10193,7 +10693,7 @@ during a approval review workflow.</p>
10193
10693
  <tbody>
10194
10694
  <tr class="doc-section-item">
10195
10695
  <td>
10196
- <code><autoref identifier="ValueError" optional>ValueError</autoref></code>
10696
+ <code>ValueError</code>
10197
10697
  </td>
10198
10698
  <td>
10199
10699
  <div class="doc-md-description">
@@ -10216,7 +10716,7 @@ during a approval review workflow.</p>
10216
10716
  <tbody>
10217
10717
  <tr class="doc-section-item">
10218
10718
  <td>
10219
- <code><autoref identifier="nautobot.extras.models.FileProxy" optional hover>FileProxy</autoref></code>
10719
+ <code><span title="nautobot.extras.models.FileProxy">FileProxy</span></code>
10220
10720
  </td>
10221
10721
  <td>
10222
10722
  <div class="doc-md-description">
@@ -10246,7 +10746,7 @@ during a approval review workflow.</p>
10246
10746
 
10247
10747
  <div class="doc doc-contents ">
10248
10748
 
10249
- <p>Given data input for a job execution, deserialize it by resolving object references using defined variables.</p>
10749
+ <p>Given data input for a job execution, deserialize it by resolving object references using defined variables.</p>
10250
10750
  <p>This converts a list of pk's back into a QuerySet for MultiObjectVar instances and single pk values into
10251
10751
  model instances for ObjectVar.</p>
10252
10752
  <p>Note that when resolving querysets or model instances by their PK, we do not catch DoesNotExist
@@ -10268,7 +10768,7 @@ path would consider this a failure of the job execution, as described in <code>n
10268
10768
 
10269
10769
  <div class="doc doc-contents ">
10270
10770
 
10271
- <p>Deprecated as of Nautobot 2.2.3.</p>
10771
+ <p>Deprecated as of Nautobot 2.2.3.</p>
10272
10772
 
10273
10773
  </div>
10274
10774
 
@@ -10285,7 +10785,7 @@ path would consider this a failure of the job execution, as described in <code>n
10285
10785
 
10286
10786
  <div class="doc doc-contents ">
10287
10787
 
10288
- <p>Return data from a JSON file</p>
10788
+ <p>Return data from a JSON file</p>
10289
10789
 
10290
10790
  </div>
10291
10791
 
@@ -10302,7 +10802,7 @@ path would consider this a failure of the job execution, as described in <code>n
10302
10802
 
10303
10803
  <div class="doc doc-contents ">
10304
10804
 
10305
- <p>Return data from a YAML file</p>
10805
+ <p>Return data from a YAML file</p>
10306
10806
 
10307
10807
  </div>
10308
10808
 
@@ -10319,7 +10819,7 @@ path would consider this a failure of the job execution, as described in <code>n
10319
10819
 
10320
10820
  <div class="doc doc-contents ">
10321
10821
 
10322
- <p>Error handler.</p>
10822
+ <p>Error handler.</p>
10323
10823
  <p>This is run by the worker when the task fails.</p>
10324
10824
 
10325
10825
 
@@ -10335,9 +10835,11 @@ path would consider this a failure of the job execution, as described in <code>n
10335
10835
  </thead>
10336
10836
  <tbody>
10337
10837
  <tr class="doc-section-item">
10338
- <td><code>exc</code></td>
10339
10838
  <td>
10340
- <code><autoref identifier="Exception" optional>Exception</autoref></code>
10839
+ <code>exc</code>
10840
+ </td>
10841
+ <td>
10842
+ <code>Exception</code>
10341
10843
  </td>
10342
10844
  <td>
10343
10845
  <div class="doc-md-description">
@@ -10349,9 +10851,11 @@ path would consider this a failure of the job execution, as described in <code>n
10349
10851
  </td>
10350
10852
  </tr>
10351
10853
  <tr class="doc-section-item">
10352
- <td><code>task_id</code></td>
10353
10854
  <td>
10354
- <code><autoref identifier="str" optional>str</autoref></code>
10855
+ <code>task_id</code>
10856
+ </td>
10857
+ <td>
10858
+ <code>str</code>
10355
10859
  </td>
10356
10860
  <td>
10357
10861
  <div class="doc-md-description">
@@ -10363,9 +10867,11 @@ path would consider this a failure of the job execution, as described in <code>n
10363
10867
  </td>
10364
10868
  </tr>
10365
10869
  <tr class="doc-section-item">
10366
- <td><code>args</code></td>
10367
10870
  <td>
10368
- <code><autoref identifier="Tuple" optional>Tuple</autoref></code>
10871
+ <code>args</code>
10872
+ </td>
10873
+ <td>
10874
+ <code>Tuple</code>
10369
10875
  </td>
10370
10876
  <td>
10371
10877
  <div class="doc-md-description">
@@ -10377,9 +10883,11 @@ path would consider this a failure of the job execution, as described in <code>n
10377
10883
  </td>
10378
10884
  </tr>
10379
10885
  <tr class="doc-section-item">
10380
- <td><code>kwargs</code></td>
10381
10886
  <td>
10382
- <code><autoref identifier="Dict" optional>Dict</autoref></code>
10887
+ <code>kwargs</code>
10888
+ </td>
10889
+ <td>
10890
+ <code>Dict</code>
10383
10891
  </td>
10384
10892
  <td>
10385
10893
  <div class="doc-md-description">
@@ -10391,9 +10899,11 @@ path would consider this a failure of the job execution, as described in <code>n
10391
10899
  </td>
10392
10900
  </tr>
10393
10901
  <tr class="doc-section-item">
10394
- <td><code>einfo</code></td>
10395
10902
  <td>
10396
- <code>~<autoref identifier="billiard.einfo.ExceptionInfo" optional hover>ExceptionInfo</autoref></code>
10903
+ <code>einfo</code>
10904
+ </td>
10905
+ <td>
10906
+ <code>~<span title="billiard.einfo.ExceptionInfo">ExceptionInfo</span></code>
10397
10907
  </td>
10398
10908
  <td>
10399
10909
  <div class="doc-md-description">
@@ -10445,7 +10955,7 @@ path would consider this a failure of the job execution, as described in <code>n
10445
10955
 
10446
10956
  <div class="doc doc-contents ">
10447
10957
 
10448
- <p>Retry handler.</p>
10958
+ <p>Retry handler.</p>
10449
10959
  <p>This is run by the worker when the task is to be retried.</p>
10450
10960
 
10451
10961
 
@@ -10461,9 +10971,11 @@ path would consider this a failure of the job execution, as described in <code>n
10461
10971
  </thead>
10462
10972
  <tbody>
10463
10973
  <tr class="doc-section-item">
10464
- <td><code>exc</code></td>
10465
10974
  <td>
10466
- <code><autoref identifier="Exception" optional>Exception</autoref></code>
10975
+ <code>exc</code>
10976
+ </td>
10977
+ <td>
10978
+ <code>Exception</code>
10467
10979
  </td>
10468
10980
  <td>
10469
10981
  <div class="doc-md-description">
@@ -10475,9 +10987,11 @@ path would consider this a failure of the job execution, as described in <code>n
10475
10987
  </td>
10476
10988
  </tr>
10477
10989
  <tr class="doc-section-item">
10478
- <td><code>task_id</code></td>
10479
10990
  <td>
10480
- <code><autoref identifier="str" optional>str</autoref></code>
10991
+ <code>task_id</code>
10992
+ </td>
10993
+ <td>
10994
+ <code>str</code>
10481
10995
  </td>
10482
10996
  <td>
10483
10997
  <div class="doc-md-description">
@@ -10489,9 +11003,11 @@ path would consider this a failure of the job execution, as described in <code>n
10489
11003
  </td>
10490
11004
  </tr>
10491
11005
  <tr class="doc-section-item">
10492
- <td><code>args</code></td>
10493
11006
  <td>
10494
- <code><autoref identifier="Tuple" optional>Tuple</autoref></code>
11007
+ <code>args</code>
11008
+ </td>
11009
+ <td>
11010
+ <code>Tuple</code>
10495
11011
  </td>
10496
11012
  <td>
10497
11013
  <div class="doc-md-description">
@@ -10503,9 +11019,11 @@ path would consider this a failure of the job execution, as described in <code>n
10503
11019
  </td>
10504
11020
  </tr>
10505
11021
  <tr class="doc-section-item">
10506
- <td><code>kwargs</code></td>
10507
11022
  <td>
10508
- <code><autoref identifier="Dict" optional>Dict</autoref></code>
11023
+ <code>kwargs</code>
11024
+ </td>
11025
+ <td>
11026
+ <code>Dict</code>
10509
11027
  </td>
10510
11028
  <td>
10511
11029
  <div class="doc-md-description">
@@ -10517,9 +11035,11 @@ path would consider this a failure of the job execution, as described in <code>n
10517
11035
  </td>
10518
11036
  </tr>
10519
11037
  <tr class="doc-section-item">
10520
- <td><code>einfo</code></td>
10521
11038
  <td>
10522
- <code>~<autoref identifier="billiard.einfo.ExceptionInfo" optional hover>ExceptionInfo</autoref></code>
11039
+ <code>einfo</code>
11040
+ </td>
11041
+ <td>
11042
+ <code>~<span title="billiard.einfo.ExceptionInfo">ExceptionInfo</span></code>
10523
11043
  </td>
10524
11044
  <td>
10525
11045
  <div class="doc-md-description">
@@ -10571,7 +11091,7 @@ path would consider this a failure of the job execution, as described in <code>n
10571
11091
 
10572
11092
  <div class="doc doc-contents ">
10573
11093
 
10574
- <p>Success handler.</p>
11094
+ <p>Success handler.</p>
10575
11095
  <p>Run by the worker if the task executes successfully.</p>
10576
11096
 
10577
11097
 
@@ -10587,9 +11107,11 @@ path would consider this a failure of the job execution, as described in <code>n
10587
11107
  </thead>
10588
11108
  <tbody>
10589
11109
  <tr class="doc-section-item">
10590
- <td><code>retval</code></td>
10591
11110
  <td>
10592
- <code><autoref identifier="Any" optional>Any</autoref></code>
11111
+ <code>retval</code>
11112
+ </td>
11113
+ <td>
11114
+ <code>Any</code>
10593
11115
  </td>
10594
11116
  <td>
10595
11117
  <div class="doc-md-description">
@@ -10601,9 +11123,11 @@ path would consider this a failure of the job execution, as described in <code>n
10601
11123
  </td>
10602
11124
  </tr>
10603
11125
  <tr class="doc-section-item">
10604
- <td><code>task_id</code></td>
10605
11126
  <td>
10606
- <code><autoref identifier="str" optional>str</autoref></code>
11127
+ <code>task_id</code>
11128
+ </td>
11129
+ <td>
11130
+ <code>str</code>
10607
11131
  </td>
10608
11132
  <td>
10609
11133
  <div class="doc-md-description">
@@ -10615,9 +11139,11 @@ path would consider this a failure of the job execution, as described in <code>n
10615
11139
  </td>
10616
11140
  </tr>
10617
11141
  <tr class="doc-section-item">
10618
- <td><code>args</code></td>
10619
11142
  <td>
10620
- <code><autoref identifier="Tuple" optional>Tuple</autoref></code>
11143
+ <code>args</code>
11144
+ </td>
11145
+ <td>
11146
+ <code>Tuple</code>
10621
11147
  </td>
10622
11148
  <td>
10623
11149
  <div class="doc-md-description">
@@ -10629,9 +11155,11 @@ path would consider this a failure of the job execution, as described in <code>n
10629
11155
  </td>
10630
11156
  </tr>
10631
11157
  <tr class="doc-section-item">
10632
- <td><code>kwargs</code></td>
10633
11158
  <td>
10634
- <code><autoref identifier="Dict" optional>Dict</autoref></code>
11159
+ <code>kwargs</code>
11160
+ </td>
11161
+ <td>
11162
+ <code>Dict</code>
10635
11163
  </td>
10636
11164
  <td>
10637
11165
  <div class="doc-md-description">
@@ -10687,7 +11215,7 @@ path would consider this a failure of the job execution, as described in <code>n
10687
11215
 
10688
11216
  <div class="doc doc-contents ">
10689
11217
 
10690
- <p>Process dict and return kwargs that exist as ScriptVariables on this job.</p>
11218
+ <p>Process dict and return kwargs that exist as ScriptVariables on this job.</p>
10691
11219
 
10692
11220
  </div>
10693
11221
 
@@ -10704,7 +11232,7 @@ path would consider this a failure of the job execution, as described in <code>n
10704
11232
 
10705
11233
  <div class="doc doc-contents ">
10706
11234
 
10707
- <p>Return all relevant classproperties as a dict.</p>
11235
+ <p>Return all relevant classproperties as a dict.</p>
10708
11236
  <p>Used for convenient rendering into job_edit.html via the <code>json_script</code> template tag.</p>
10709
11237
 
10710
11238
  </div>
@@ -10722,7 +11250,7 @@ path would consider this a failure of the job execution, as described in <code>n
10722
11250
 
10723
11251
  <div class="doc doc-contents ">
10724
11252
 
10725
- <p>Deprecated - use class_path classproperty instead.</p>
11253
+ <p>Deprecated - use class_path classproperty instead.</p>
10726
11254
 
10727
11255
  </div>
10728
11256
 
@@ -10739,7 +11267,7 @@ path would consider this a failure of the job execution, as described in <code>n
10739
11267
 
10740
11268
  <div class="doc doc-contents ">
10741
11269
 
10742
- <p>Method invoked when this Job is run.</p>
11270
+ <p>Method invoked when this Job is run.</p>
10743
11271
 
10744
11272
  </div>
10745
11273
 
@@ -10760,7 +11288,7 @@ path would consider this a failure of the job execution, as described in <code>n
10760
11288
 
10761
11289
  <div class="doc doc-contents ">
10762
11290
 
10763
- <p>This method parses input data (from JobForm usually) and returns a dict which is safe to serialize</p>
11291
+ <p>This method parses input data (from JobForm usually) and returns a dict which is safe to serialize</p>
10764
11292
  <p>Here we convert the QuerySet of a MultiObjectVar to a list of the pk's and the model instance
10765
11293
  of an ObjectVar into the pk value.</p>
10766
11294
  <p>These are converted back during job execution.</p>
@@ -10769,6 +11297,23 @@ of an ObjectVar into the pk value.</p>
10769
11297
 
10770
11298
  </div>
10771
11299
 
11300
+ <div class="doc doc-object doc-function">
11301
+
11302
+
11303
+ <h3 id="nautobot.apps.jobs.BaseJob.singleton_cache_key" class="doc doc-heading">
11304
+ <code class="highlight language-python"><span class="n">singleton_cache_key</span><span class="p">()</span></code>
11305
+
11306
+ <a href="#nautobot.apps.jobs.BaseJob.singleton_cache_key" class="headerlink" title="Permanent link">&para;</a></h3>
11307
+
11308
+
11309
+ <div class="doc doc-contents ">
11310
+
11311
+ <p>Cache key for singleton jobs.</p>
11312
+
11313
+ </div>
11314
+
11315
+ </div>
11316
+
10772
11317
 
10773
11318
 
10774
11319
  </div>
@@ -10790,10 +11335,15 @@ of an ObjectVar into the pk value.</p>
10790
11335
 
10791
11336
  <div class="doc doc-contents ">
10792
11337
  <p class="doc doc-class-bases">
10793
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11338
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11339
+
11340
+
11341
+ <p>Boolean representation (true/false). Renders as a checkbox.</p>
11342
+
11343
+
11344
+
10794
11345
 
10795
11346
 
10796
- <p>Boolean representation (true/false). Renders as a checkbox.</p>
10797
11347
 
10798
11348
 
10799
11349
 
@@ -10829,10 +11379,10 @@ of an ObjectVar into the pk value.</p>
10829
11379
 
10830
11380
  <div class="doc doc-contents ">
10831
11381
  <p class="doc doc-class-bases">
10832
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11382
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
10833
11383
 
10834
11384
 
10835
- <p>Select one of several predefined static choices, passed as a list of two-tuples. Example:</p>
11385
+ <p>Select one of several predefined static choices, passed as a list of two-tuples. Example:</p>
10836
11386
  <div class="highlight"><pre><span></span><code>color = ChoiceVar(
10837
11387
  choices=(
10838
11388
  (&#39;#ff0000&#39;, &#39;Red&#39;),
@@ -10845,6 +11395,11 @@ of an ObjectVar into the pk value.</p>
10845
11395
 
10846
11396
 
10847
11397
 
11398
+
11399
+
11400
+
11401
+
11402
+
10848
11403
  <div class="doc doc-children">
10849
11404
 
10850
11405
 
@@ -10876,10 +11431,15 @@ of an ObjectVar into the pk value.</p>
10876
11431
 
10877
11432
  <div class="doc doc-contents ">
10878
11433
  <p class="doc doc-class-bases">
10879
- Bases: <code><autoref identifier="django.forms.FileField" optional hover>FileField</autoref></code></p>
11434
+ Bases: <code><span title="django.forms.FileField">FileField</span></code></p>
11435
+
11436
+
11437
+ <p>Specialized <code>FileField</code> for use with <code>DatabaseFileStorage</code> storage backend.</p>
11438
+
11439
+
11440
+
10880
11441
 
10881
11442
 
10882
- <p>Specialized <code>FileField</code> for use with <code>DatabaseFileStorage</code> storage backend.</p>
10883
11443
 
10884
11444
 
10885
11445
 
@@ -10915,10 +11475,15 @@ of an ObjectVar into the pk value.</p>
10915
11475
 
10916
11476
  <div class="doc doc-contents ">
10917
11477
  <p class="doc doc-class-bases">
10918
- Bases: <code><autoref identifier="nautobot.extras.jobs.BooleanVar" optional hover>BooleanVar</autoref></code></p>
11478
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.BooleanVar" href="#nautobot.apps.jobs.BooleanVar">BooleanVar</a></code></p>
11479
+
11480
+
11481
+ <p>Special boolean variable that bypasses approval requirements if this is set to True on job execution.</p>
11482
+
11483
+
11484
+
10919
11485
 
10920
11486
 
10921
- <p>Special boolean variable that bypasses approval requirements if this is set to True on job execution.</p>
10922
11487
 
10923
11488
 
10924
11489
 
@@ -10954,10 +11519,15 @@ of an ObjectVar into the pk value.</p>
10954
11519
 
10955
11520
  <div class="doc doc-contents ">
10956
11521
  <p class="doc doc-class-bases">
10957
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11522
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11523
+
11524
+
11525
+ <p>An uploaded file.</p>
11526
+
11527
+
11528
+
10958
11529
 
10959
11530
 
10960
- <p>An uploaded file.</p>
10961
11531
 
10962
11532
 
10963
11533
 
@@ -10993,10 +11563,15 @@ of an ObjectVar into the pk value.</p>
10993
11563
 
10994
11564
  <div class="doc doc-contents ">
10995
11565
  <p class="doc doc-class-bases">
10996
- Bases: <code><autoref identifier="nautobot.extras.jobs.Job" optional hover>Job</autoref></code></p>
11566
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.Job" href="#nautobot.apps.jobs.Job">Job</a></code></p>
11567
+
11568
+
11569
+ <p>System Job to perform a dry run on a Git repository.</p>
11570
+
11571
+
11572
+
10997
11573
 
10998
11574
 
10999
- <p>System Job to perform a dry run on a Git repository.</p>
11000
11575
 
11001
11576
 
11002
11577
 
@@ -11032,10 +11607,15 @@ of an ObjectVar into the pk value.</p>
11032
11607
 
11033
11608
  <div class="doc doc-contents ">
11034
11609
  <p class="doc doc-class-bases">
11035
- Bases: <code><autoref identifier="nautobot.extras.jobs.Job" optional hover>Job</autoref></code></p>
11610
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.Job" href="#nautobot.apps.jobs.Job">Job</a></code></p>
11611
+
11612
+
11613
+ <p>System job to clone and/or pull a Git repository, then invoke <code>refresh_datasource_content()</code>.</p>
11614
+
11615
+
11616
+
11036
11617
 
11037
11618
 
11038
- <p>System job to clone and/or pull a Git repository, then invoke <code>refresh_datasource_content()</code>.</p>
11039
11619
 
11040
11620
 
11041
11621
 
@@ -11071,10 +11651,15 @@ of an ObjectVar into the pk value.</p>
11071
11651
 
11072
11652
  <div class="doc doc-contents ">
11073
11653
  <p class="doc doc-class-bases">
11074
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11654
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11655
+
11656
+
11657
+ <p>An IPv4 or IPv6 address without a mask.</p>
11658
+
11659
+
11660
+
11075
11661
 
11076
11662
 
11077
- <p>An IPv4 or IPv6 address without a mask.</p>
11078
11663
 
11079
11664
 
11080
11665
 
@@ -11110,10 +11695,15 @@ of an ObjectVar into the pk value.</p>
11110
11695
 
11111
11696
  <div class="doc doc-contents ">
11112
11697
  <p class="doc doc-class-bases">
11113
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11698
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11699
+
11700
+
11701
+ <p>An IPv4 or IPv6 address with a mask.</p>
11702
+
11703
+
11704
+
11114
11705
 
11115
11706
 
11116
- <p>An IPv4 or IPv6 address with a mask.</p>
11117
11707
 
11118
11708
 
11119
11709
 
@@ -11149,10 +11739,15 @@ of an ObjectVar into the pk value.</p>
11149
11739
 
11150
11740
  <div class="doc doc-contents ">
11151
11741
  <p class="doc doc-class-bases">
11152
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11742
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11743
+
11744
+
11745
+ <p>An IPv4 or IPv6 prefix.</p>
11746
+
11747
+
11748
+
11153
11749
 
11154
11750
 
11155
- <p>An IPv4 or IPv6 prefix.</p>
11156
11751
 
11157
11752
 
11158
11753
 
@@ -11188,10 +11783,15 @@ of an ObjectVar into the pk value.</p>
11188
11783
 
11189
11784
  <div class="doc doc-contents ">
11190
11785
  <p class="doc doc-class-bases">
11191
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11786
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11787
+
11788
+
11789
+ <p>Integer representation. Can enforce minimum/maximum values.</p>
11790
+
11791
+
11792
+
11192
11793
 
11193
11794
 
11194
- <p>Integer representation. Can enforce minimum/maximum values.</p>
11195
11795
 
11196
11796
 
11197
11797
 
@@ -11227,10 +11827,15 @@ of an ObjectVar into the pk value.</p>
11227
11827
 
11228
11828
  <div class="doc doc-contents ">
11229
11829
  <p class="doc doc-class-bases">
11230
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
11830
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11831
+
11832
+
11833
+ <p>Like TextVar but with native serializing of JSON data.</p>
11834
+
11835
+
11836
+
11231
11837
 
11232
11838
 
11233
- <p>Like TextVar but with native serializing of JSON data.</p>
11234
11839
 
11235
11840
 
11236
11841
 
@@ -11266,10 +11871,15 @@ of an ObjectVar into the pk value.</p>
11266
11871
 
11267
11872
  <div class="doc doc-contents ">
11268
11873
  <p class="doc doc-class-bases">
11269
- Bases: <code><autoref identifier="nautobot.extras.jobs.BaseJob" optional hover>BaseJob</autoref></code></p>
11874
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.BaseJob" href="#nautobot.apps.jobs.BaseJob">BaseJob</a></code></p>
11875
+
11876
+
11877
+ <p>Classes which inherit from this model will appear in the list of available jobs.</p>
11878
+
11879
+
11880
+
11270
11881
 
11271
11882
 
11272
- <p>Classes which inherit from this model will appear in the list of available jobs.</p>
11273
11883
 
11274
11884
 
11275
11885
 
@@ -11305,15 +11915,20 @@ of an ObjectVar into the pk value.</p>
11305
11915
 
11306
11916
  <div class="doc doc-contents ">
11307
11917
  <p class="doc doc-class-bases">
11308
- Bases: <code><autoref identifier="nautobot.extras.jobs.Job" optional hover>Job</autoref></code></p>
11918
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.Job" href="#nautobot.apps.jobs.Job">Job</a></code></p>
11309
11919
 
11310
11920
 
11311
- <p>Base class for job button receivers. Job button receivers are jobs that are initiated
11921
+ <p>Base class for job button receivers. Job button receivers are jobs that are initiated
11312
11922
  from UI buttons and are not intended to be run from the job form UI or API like standard jobs.</p>
11313
11923
 
11314
11924
 
11315
11925
 
11316
11926
 
11927
+
11928
+
11929
+
11930
+
11931
+
11317
11932
  <div class="doc doc-children">
11318
11933
 
11319
11934
 
@@ -11335,7 +11950,7 @@ from UI buttons and are not intended to be run from the job form UI or API like
11335
11950
 
11336
11951
  <div class="doc doc-contents ">
11337
11952
 
11338
- <p>Method to be implemented by concrete JobButtonReceiver subclasses.</p>
11953
+ <p>Method to be implemented by concrete JobButtonReceiver subclasses.</p>
11339
11954
 
11340
11955
 
11341
11956
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -11350,9 +11965,11 @@ from UI buttons and are not intended to be run from the job form UI or API like
11350
11965
  </thead>
11351
11966
  <tbody>
11352
11967
  <tr class="doc-section-item">
11353
- <td><code>obj</code></td>
11354
11968
  <td>
11355
- <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code>
11969
+ <code>obj</code>
11970
+ </td>
11971
+ <td>
11972
+ <code><span title="django.db.models.Model">Model</span></code>
11356
11973
  </td>
11357
11974
  <td>
11358
11975
  <div class="doc-md-description">
@@ -11381,7 +11998,7 @@ from UI buttons and are not intended to be run from the job form UI or API like
11381
11998
 
11382
11999
  <div class="doc doc-contents ">
11383
12000
 
11384
- <p>JobButtonReceiver subclasses generally shouldn't need to override this method.</p>
12001
+ <p>JobButtonReceiver subclasses generally shouldn't need to override this method.</p>
11385
12002
 
11386
12003
  </div>
11387
12004
 
@@ -11408,15 +12025,20 @@ from UI buttons and are not intended to be run from the job form UI or API like
11408
12025
 
11409
12026
  <div class="doc doc-contents ">
11410
12027
  <p class="doc doc-class-bases">
11411
- Bases: <code><autoref identifier="nautobot.extras.jobs.Job" optional hover>Job</autoref></code></p>
12028
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.Job" href="#nautobot.apps.jobs.Job">Job</a></code></p>
11412
12029
 
11413
12030
 
11414
- <p>Base class for job hook receivers. Job hook receivers are jobs that are initiated
12031
+ <p>Base class for job hook receivers. Job hook receivers are jobs that are initiated
11415
12032
  from object changes and are not intended to be run from the UI or API like standard jobs.</p>
11416
12033
 
11417
12034
 
11418
12035
 
11419
12036
 
12037
+
12038
+
12039
+
12040
+
12041
+
11420
12042
  <div class="doc doc-children">
11421
12043
 
11422
12044
 
@@ -11438,7 +12060,7 @@ from object changes and are not intended to be run from the UI or API like stand
11438
12060
 
11439
12061
  <div class="doc doc-contents ">
11440
12062
 
11441
- <p>Method to be implemented by concrete JobHookReceiver subclasses.</p>
12063
+ <p>Method to be implemented by concrete JobHookReceiver subclasses.</p>
11442
12064
 
11443
12065
 
11444
12066
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -11453,9 +12075,11 @@ from object changes and are not intended to be run from the UI or API like stand
11453
12075
  </thead>
11454
12076
  <tbody>
11455
12077
  <tr class="doc-section-item">
11456
- <td><code>change</code></td>
11457
12078
  <td>
11458
- <code><autoref identifier="nautobot.extras.models.ObjectChange" optional hover>ObjectChange</autoref></code>
12079
+ <code>change</code>
12080
+ </td>
12081
+ <td>
12082
+ <code><span title="nautobot.extras.models.ObjectChange">ObjectChange</span></code>
11459
12083
  </td>
11460
12084
  <td>
11461
12085
  <div class="doc-md-description">
@@ -11467,9 +12091,11 @@ from object changes and are not intended to be run from the UI or API like stand
11467
12091
  </td>
11468
12092
  </tr>
11469
12093
  <tr class="doc-section-item">
11470
- <td><code>action</code></td>
11471
12094
  <td>
11472
- <code><autoref identifier="str" optional>str</autoref></code>
12095
+ <code>action</code>
12096
+ </td>
12097
+ <td>
12098
+ <code>str</code>
11473
12099
  </td>
11474
12100
  <td>
11475
12101
  <div class="doc-md-description">
@@ -11481,9 +12107,11 @@ from object changes and are not intended to be run from the UI or API like stand
11481
12107
  </td>
11482
12108
  </tr>
11483
12109
  <tr class="doc-section-item">
11484
- <td><code>changed_object</code></td>
11485
12110
  <td>
11486
- <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code>
12111
+ <code>changed_object</code>
12112
+ </td>
12113
+ <td>
12114
+ <code><span title="django.db.models.Model">Model</span></code>
11487
12115
  </td>
11488
12116
  <td>
11489
12117
  <div class="doc-md-description">
@@ -11512,7 +12140,7 @@ from object changes and are not intended to be run from the UI or API like stand
11512
12140
 
11513
12141
  <div class="doc doc-contents ">
11514
12142
 
11515
- <p>JobHookReceiver subclasses generally shouldn't need to override this method.</p>
12143
+ <p>JobHookReceiver subclasses generally shouldn't need to override this method.</p>
11516
12144
 
11517
12145
  </div>
11518
12146
 
@@ -11539,10 +12167,15 @@ from object changes and are not intended to be run from the UI or API like stand
11539
12167
 
11540
12168
  <div class="doc doc-contents ">
11541
12169
  <p class="doc doc-class-bases">
11542
- Bases: <code><autoref identifier="nautobot.extras.jobs.ChoiceVar" optional hover>ChoiceVar</autoref></code></p>
12170
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ChoiceVar" href="#nautobot.apps.jobs.ChoiceVar">ChoiceVar</a></code></p>
12171
+
12172
+
12173
+ <p>Like ChoiceVar, but allows for the selection of multiple choices.</p>
12174
+
12175
+
12176
+
11543
12177
 
11544
12178
 
11545
- <p>Like ChoiceVar, but allows for the selection of multiple choices.</p>
11546
12179
 
11547
12180
 
11548
12181
 
@@ -11578,10 +12211,15 @@ from object changes and are not intended to be run from the UI or API like stand
11578
12211
 
11579
12212
  <div class="doc doc-contents ">
11580
12213
  <p class="doc doc-class-bases">
11581
- Bases: <code><autoref identifier="nautobot.extras.jobs.ObjectVar" optional hover>ObjectVar</autoref></code></p>
12214
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ObjectVar" href="#nautobot.apps.jobs.ObjectVar">ObjectVar</a></code></p>
12215
+
12216
+
12217
+ <p>Like ObjectVar, but can represent one or more objects.</p>
12218
+
12219
+
12220
+
11582
12221
 
11583
12222
 
11584
- <p>Like ObjectVar, but can represent one or more objects.</p>
11585
12223
 
11586
12224
 
11587
12225
 
@@ -11617,10 +12255,10 @@ from object changes and are not intended to be run from the UI or API like stand
11617
12255
 
11618
12256
  <div class="doc doc-contents ">
11619
12257
  <p class="doc doc-class-bases">
11620
- Bases: <code><autoref identifier="rest_framework.utils.encoders.JSONEncoder" optional hover>JSONEncoder</autoref></code></p>
12258
+ Bases: <code><span title="rest_framework.utils.encoders.JSONEncoder">JSONEncoder</span></code></p>
11621
12259
 
11622
12260
 
11623
- <p>Custom json encoder based on restframework's JSONEncoder that serializes objects that implement
12261
+ <p>Custom json encoder based on restframework's JSONEncoder that serializes objects that implement
11624
12262
  the <code>nautobot_serialize()</code> method via the <code>__nautobot_type__</code> interface. This is useful
11625
12263
  in passing special objects to and from Celery tasks.</p>
11626
12264
  <p>This pattern should generally be avoided by passing pointers to persisted objects to the
@@ -11636,6 +12274,11 @@ an actual instance of the class.</p>
11636
12274
 
11637
12275
 
11638
12276
 
12277
+
12278
+
12279
+
12280
+
12281
+
11639
12282
  <div class="doc doc-children">
11640
12283
 
11641
12284
 
@@ -11667,10 +12310,10 @@ an actual instance of the class.</p>
11667
12310
 
11668
12311
  <div class="doc doc-contents ">
11669
12312
  <p class="doc doc-class-bases">
11670
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
12313
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
11671
12314
 
11672
12315
 
11673
- <p>A single object within Nautobot.</p>
12316
+ <p>A single object within Nautobot.</p>
11674
12317
 
11675
12318
 
11676
12319
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -11685,9 +12328,11 @@ an actual instance of the class.</p>
11685
12328
  </thead>
11686
12329
  <tbody>
11687
12330
  <tr class="doc-section-item">
11688
- <td><code>model</code></td>
11689
12331
  <td>
11690
- <code><autoref identifier="django.db.models.Model" optional hover>Model</autoref></code>
12332
+ <code>model</code>
12333
+ </td>
12334
+ <td>
12335
+ <code><span title="django.db.models.Model">Model</span></code>
11691
12336
  </td>
11692
12337
  <td>
11693
12338
  <div class="doc-md-description">
@@ -11699,9 +12344,11 @@ an actual instance of the class.</p>
11699
12344
  </td>
11700
12345
  </tr>
11701
12346
  <tr class="doc-section-item">
11702
- <td><code>display_field</code></td>
11703
12347
  <td>
11704
- <code><autoref identifier="str" optional>str</autoref></code>
12348
+ <code>display_field</code>
12349
+ </td>
12350
+ <td>
12351
+ <code>str</code>
11705
12352
  </td>
11706
12353
  <td>
11707
12354
  <div class="doc-md-description">
@@ -11713,9 +12360,11 @@ an actual instance of the class.</p>
11713
12360
  </td>
11714
12361
  </tr>
11715
12362
  <tr class="doc-section-item">
11716
- <td><code>query_params</code></td>
11717
12363
  <td>
11718
- <code><autoref identifier="dict" optional>dict</autoref></code>
12364
+ <code>query_params</code>
12365
+ </td>
12366
+ <td>
12367
+ <code>dict</code>
11719
12368
  </td>
11720
12369
  <td>
11721
12370
  <div class="doc-md-description">
@@ -11727,9 +12376,11 @@ an actual instance of the class.</p>
11727
12376
  </td>
11728
12377
  </tr>
11729
12378
  <tr class="doc-section-item">
11730
- <td><code>null_option</code></td>
11731
12379
  <td>
11732
- <code><autoref identifier="str" optional>str</autoref></code>
12380
+ <code>null_option</code>
12381
+ </td>
12382
+ <td>
12383
+ <code>str</code>
11733
12384
  </td>
11734
12385
  <td>
11735
12386
  <div class="doc-md-description">
@@ -11746,6 +12397,11 @@ an actual instance of the class.</p>
11746
12397
 
11747
12398
 
11748
12399
 
12400
+
12401
+
12402
+
12403
+
12404
+
11749
12405
  <div class="doc doc-children">
11750
12406
 
11751
12407
 
@@ -11777,10 +12433,15 @@ an actual instance of the class.</p>
11777
12433
 
11778
12434
  <div class="doc doc-contents ">
11779
12435
  <p class="doc doc-class-bases">
11780
- Bases: <code><autoref identifier="Exception" optional>Exception</autoref></code></p>
12436
+ Bases: <code>Exception</code></p>
12437
+
12438
+
12439
+ <p>Celery task failed for some reason.</p>
12440
+
12441
+
12442
+
11781
12443
 
11782
12444
 
11783
- <p>Celery task failed for some reason.</p>
11784
12445
 
11785
12446
 
11786
12447
  </div>
@@ -11801,7 +12462,12 @@ an actual instance of the class.</p>
11801
12462
  <div class="doc doc-contents ">
11802
12463
 
11803
12464
 
11804
- <p>Base model for script variables</p>
12465
+ <p>Base model for script variables</p>
12466
+
12467
+
12468
+
12469
+
12470
+
11805
12471
 
11806
12472
 
11807
12473
 
@@ -11827,7 +12493,7 @@ an actual instance of the class.</p>
11827
12493
 
11828
12494
  <div class="doc doc-contents ">
11829
12495
 
11830
- <p>Render the variable as a Django form field.</p>
12496
+ <p>Render the variable as a Django form field.</p>
11831
12497
 
11832
12498
  </div>
11833
12499
 
@@ -11854,10 +12520,15 @@ an actual instance of the class.</p>
11854
12520
 
11855
12521
  <div class="doc doc-contents ">
11856
12522
  <p class="doc doc-class-bases">
11857
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
12523
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
12524
+
12525
+
12526
+ <p>Character string representation. Can enforce minimum/maximum length and/or regex validation.</p>
12527
+
12528
+
12529
+
11858
12530
 
11859
12531
 
11860
- <p>Character string representation. Can enforce minimum/maximum length and/or regex validation.</p>
11861
12532
 
11862
12533
 
11863
12534
 
@@ -11893,10 +12564,15 @@ an actual instance of the class.</p>
11893
12564
 
11894
12565
  <div class="doc doc-contents ">
11895
12566
  <p class="doc doc-class-bases">
11896
- Bases: <code><autoref identifier="nautobot.extras.jobs.ScriptVariable" optional hover>ScriptVariable</autoref></code></p>
12567
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.extras.jobs.ScriptVariable" href="#nautobot.apps.jobs.ScriptVariable">ScriptVariable</a></code></p>
12568
+
12569
+
12570
+ <p>Free-form text data. Renders as a <code>&lt;textarea&gt;</code>.</p>
12571
+
12572
+
12573
+
11897
12574
 
11898
12575
 
11899
- <p>Free-form text data. Renders as a <code>&lt;textarea&gt;</code>.</p>
11900
12576
 
11901
12577
 
11902
12578
 
@@ -11931,7 +12607,7 @@ an actual instance of the class.</p>
11931
12607
 
11932
12608
  <div class="doc doc-contents ">
11933
12609
 
11934
- <p>Find job hook(s) assigned to this changed object type + action and enqueue them to be processed.</p>
12610
+ <p>Find job hook(s) assigned to this changed object type + action and enqueue them to be processed.</p>
11935
12611
 
11936
12612
 
11937
12613
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -11946,9 +12622,11 @@ an actual instance of the class.</p>
11946
12622
  </thead>
11947
12623
  <tbody>
11948
12624
  <tr class="doc-section-item">
11949
- <td><code>object_change</code></td>
11950
12625
  <td>
11951
- <code><autoref identifier="nautobot.extras.models.ObjectChange" optional hover>ObjectChange</autoref></code>
12626
+ <code>object_change</code>
12627
+ </td>
12628
+ <td>
12629
+ <code><span title="nautobot.extras.models.ObjectChange">ObjectChange</span></code>
11952
12630
  </td>
11953
12631
  <td>
11954
12632
  <div class="doc-md-description">
@@ -11960,9 +12638,11 @@ an actual instance of the class.</p>
11960
12638
  </td>
11961
12639
  </tr>
11962
12640
  <tr class="doc-section-item">
11963
- <td><code>may_reload_jobs</code></td>
11964
12641
  <td>
11965
- <code><autoref identifier="bool" optional>bool</autoref></code>
12642
+ <code>may_reload_jobs</code>
12643
+ </td>
12644
+ <td>
12645
+ <code>bool</code>
11966
12646
  </td>
11967
12647
  <td>
11968
12648
  <div class="doc-md-description">
@@ -11974,9 +12654,11 @@ an actual instance of the class.</p>
11974
12654
  </td>
11975
12655
  </tr>
11976
12656
  <tr class="doc-section-item">
11977
- <td><code>jobhook_queryset</code></td>
11978
12657
  <td>
11979
- <code><autoref identifier="django.db.models.query.QuerySet" optional hover>QuerySet</autoref></code>
12658
+ <code>jobhook_queryset</code>
12659
+ </td>
12660
+ <td>
12661
+ <code><span title="django.db.models.query.QuerySet">QuerySet</span></code>
11980
12662
  </td>
11981
12663
  <td>
11982
12664
  <div class="doc-md-description">
@@ -12002,7 +12684,7 @@ an actual instance of the class.</p>
12002
12684
  <tbody>
12003
12685
  <tr class="doc-section-item">
12004
12686
  <td><code>result</code></td> <td>
12005
- <code><autoref identifier="tuple" optional>tuple</autoref>[<autoref identifier="bool" optional>bool</autoref>, <autoref identifier="django.db.models.query.QuerySet" optional hover>QuerySet</autoref>]</code>
12687
+ <code>tuple[bool, <span title="django.db.models.query.QuerySet">QuerySet</span>]</code>
12006
12688
  </td>
12007
12689
  <td>
12008
12690
  <div class="doc-md-description">
@@ -12028,7 +12710,7 @@ an actual instance of the class.</p>
12028
12710
 
12029
12711
  <div class="doc doc-contents ">
12030
12712
 
12031
- <p>Retrieve a specific job class by its class_path (<code>&lt;module_name&gt;.&lt;JobClassName&gt;</code>).</p>
12713
+ <p>Retrieve a specific job class by its class_path (<code>&lt;module_name&gt;.&lt;JobClassName&gt;</code>).</p>
12032
12714
  <p>May return None if the job can't be imported.</p>
12033
12715
 
12034
12716
 
@@ -12044,9 +12726,11 @@ an actual instance of the class.</p>
12044
12726
  </thead>
12045
12727
  <tbody>
12046
12728
  <tr class="doc-section-item">
12047
- <td><code>reload</code></td>
12048
12729
  <td>
12049
- <code><autoref identifier="bool" optional>bool</autoref></code>
12730
+ <code>reload</code>
12731
+ </td>
12732
+ <td>
12733
+ <code>bool</code>
12050
12734
  </td>
12051
12735
  <td>
12052
12736
  <div class="doc-md-description">
@@ -12076,7 +12760,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12076
12760
 
12077
12761
  <div class="doc doc-contents ">
12078
12762
 
12079
- <p>Compile a dictionary of all Job classes available at this time.</p>
12763
+ <p>Compile a dictionary of all Job classes available at this time.</p>
12080
12764
 
12081
12765
 
12082
12766
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12091,9 +12775,11 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12091
12775
  </thead>
12092
12776
  <tbody>
12093
12777
  <tr class="doc-section-item">
12094
- <td><code>reload</code></td>
12095
12778
  <td>
12096
- <code><autoref identifier="bool" optional>bool</autoref></code>
12779
+ <code>reload</code>
12780
+ </td>
12781
+ <td>
12782
+ <code>bool</code>
12097
12783
  </td>
12098
12784
  <td>
12099
12785
  <div class="doc-md-description">
@@ -12119,7 +12805,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12119
12805
  <tbody>
12120
12806
  <tr class="doc-section-item">
12121
12807
  <td>
12122
- <code><autoref identifier="dict" optional>dict</autoref></code>
12808
+ <code>dict</code>
12123
12809
  </td>
12124
12810
  <td>
12125
12811
  <div class="doc-md-description">
@@ -12145,7 +12831,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12145
12831
 
12146
12832
  <div class="doc doc-contents ">
12147
12833
 
12148
- <p>Returns True if the given object is a Job subclass.</p>
12834
+ <p>Returns True if the given object is a Job subclass.</p>
12149
12835
 
12150
12836
  </div>
12151
12837
 
@@ -12162,7 +12848,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12162
12848
 
12163
12849
  <div class="doc doc-contents ">
12164
12850
 
12165
- <p>Returns True if the object is a ScriptVariable instance.</p>
12851
+ <p>Returns True if the object is a ScriptVariable instance.</p>
12166
12852
 
12167
12853
  </div>
12168
12854
 
@@ -12179,7 +12865,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12179
12865
 
12180
12866
  <div class="doc doc-contents ">
12181
12867
 
12182
- <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>
12868
+ <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>
12183
12869
 
12184
12870
  </div>
12185
12871
 
@@ -12335,7 +13021,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12335
13021
  </div>
12336
13022
 
12337
13023
 
12338
- <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.6ce7567c.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>
13024
+ <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "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.6ce7567c.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>
12339
13025
 
12340
13026
 
12341
13027
  <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>