nautobot 2.0.0a3__py3-none-any.whl → 2.0.0b1__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.
Files changed (780) hide show
  1. nautobot/apps/api.py +6 -8
  2. nautobot/apps/forms.py +0 -2
  3. nautobot/apps/ui.py +0 -8
  4. nautobot/circuits/api/serializers.py +9 -117
  5. nautobot/circuits/api/urls.py +1 -1
  6. nautobot/circuits/api/views.py +0 -1
  7. nautobot/circuits/forms.py +0 -65
  8. nautobot/circuits/migrations/0014_related_name_changes.py +1 -1
  9. nautobot/circuits/migrations/0016_tagsfield.py +34 -0
  10. nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
  11. nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
  12. nautobot/circuits/models.py +3 -87
  13. nautobot/circuits/navigation.py +14 -69
  14. nautobot/circuits/signals.py +0 -2
  15. nautobot/circuits/tables.py +39 -1
  16. nautobot/circuits/tests/integration/test_relationships.py +9 -9
  17. nautobot/circuits/tests/test_api.py +4 -8
  18. nautobot/circuits/tests/test_filters.py +10 -4
  19. nautobot/circuits/tests/test_models.py +5 -1
  20. nautobot/circuits/tests/test_views.py +27 -5
  21. nautobot/circuits/views.py +18 -10
  22. nautobot/core/api/__init__.py +8 -2
  23. nautobot/core/api/fields.py +15 -6
  24. nautobot/core/api/filter_backends.py +3 -2
  25. nautobot/core/api/metadata.py +237 -30
  26. nautobot/core/api/mixins.py +94 -0
  27. nautobot/core/api/pagination.py +4 -0
  28. nautobot/core/api/parsers.py +154 -0
  29. nautobot/core/api/renderers.py +153 -2
  30. nautobot/core/api/schema.py +46 -2
  31. nautobot/core/api/serializers.py +377 -35
  32. nautobot/core/api/urls.py +11 -3
  33. nautobot/core/api/utils.py +174 -2
  34. nautobot/core/api/versioning.py +32 -10
  35. nautobot/core/api/views.py +266 -72
  36. nautobot/core/apps/__init__.py +138 -220
  37. nautobot/core/celery/__init__.py +112 -41
  38. nautobot/core/celery/backends.py +19 -12
  39. nautobot/core/celery/control.py +46 -0
  40. nautobot/core/celery/encoders.py +53 -0
  41. nautobot/core/celery/log.py +38 -0
  42. nautobot/core/celery/schedulers.py +23 -4
  43. nautobot/core/celery/task.py +1 -16
  44. nautobot/core/checks.py +0 -27
  45. nautobot/core/choices.py +0 -113
  46. nautobot/core/{cli.py → cli/__init__.py} +1 -1
  47. nautobot/core/cli/__main__.py +3 -0
  48. nautobot/core/constants.py +0 -24
  49. nautobot/core/context_processors.py +12 -0
  50. nautobot/core/filters.py +2 -2
  51. nautobot/core/forms/__init__.py +0 -4
  52. nautobot/core/forms/fields.py +38 -65
  53. nautobot/core/forms/forms.py +4 -1
  54. nautobot/core/forms/utils.py +0 -52
  55. nautobot/core/graphql/schema.py +4 -27
  56. nautobot/core/jobs/__init__.py +75 -0
  57. nautobot/core/management/commands/build_ui.py +255 -0
  58. nautobot/core/management/commands/generate_test_data.py +3 -2
  59. nautobot/core/management/commands/post_upgrade.py +24 -24
  60. nautobot/core/models/__init__.py +26 -1
  61. nautobot/core/models/fields.py +24 -5
  62. nautobot/core/models/generics.py +2 -42
  63. nautobot/core/models/managers.py +5 -0
  64. nautobot/core/models/name_color_content_types.py +0 -14
  65. nautobot/core/models/tree_queries.py +14 -4
  66. nautobot/core/models/utils.py +5 -6
  67. nautobot/core/models/validators.py +17 -8
  68. nautobot/core/releases.py +8 -10
  69. nautobot/core/settings.py +80 -42
  70. nautobot/core/tables.py +5 -5
  71. nautobot/core/tasks.py +4 -7
  72. nautobot/core/templates/base.html +1 -49
  73. nautobot/core/templates/base_django.html +49 -0
  74. nautobot/core/templates/base_react.html +55 -0
  75. nautobot/core/templates/buttons/export.html +6 -4
  76. nautobot/core/templates/generic/object_bulk_create.html +10 -21
  77. nautobot/core/templates/generic/object_list.html +3 -1
  78. nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
  79. nautobot/core/templates/inc/footer.html +1 -0
  80. nautobot/core/templates/inc/javascript.html +0 -14
  81. nautobot/core/templates/inc/nav_menu.html +28 -33
  82. nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
  83. nautobot/core/templates/inc/relationships_table_rows.html +2 -2
  84. nautobot/core/templates/nautobot_config.py.j2 +8 -20
  85. nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
  86. nautobot/core/templates/rest_framework/api.html +8 -0
  87. nautobot/core/templatetags/buttons.py +32 -28
  88. nautobot/core/testing/__init__.py +47 -44
  89. nautobot/core/testing/api.py +362 -47
  90. nautobot/core/testing/filters.py +1 -1
  91. nautobot/core/testing/migrations.py +2 -0
  92. nautobot/core/testing/mixins.py +22 -9
  93. nautobot/core/testing/schema.py +2 -1
  94. nautobot/core/testing/views.py +21 -46
  95. nautobot/core/tests/integration/test_filters.py +17 -8
  96. nautobot/core/tests/integration/test_navbar.py +11 -34
  97. nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
  98. nautobot/core/tests/nautobot_config.py +2 -3
  99. nautobot/core/tests/test_api.py +290 -21
  100. nautobot/core/tests/test_checks.py +0 -7
  101. nautobot/core/tests/test_filters.py +107 -59
  102. nautobot/core/tests/test_forms.py +26 -92
  103. nautobot/core/tests/test_graphql.py +110 -77
  104. nautobot/core/tests/test_logging.py +4 -0
  105. nautobot/core/tests/test_managers.py +3 -1
  106. nautobot/core/tests/test_models.py +2 -0
  107. nautobot/core/tests/test_paginator.py +3 -1
  108. nautobot/core/tests/test_releases.py +12 -12
  109. nautobot/core/tests/test_templatetags_helpers.py +4 -4
  110. nautobot/core/tests/test_utils.py +32 -68
  111. nautobot/core/tests/test_views.py +12 -15
  112. nautobot/core/utils/data.py +17 -0
  113. nautobot/core/utils/deprecation.py +9 -6
  114. nautobot/core/utils/filtering.py +8 -3
  115. nautobot/core/utils/git.py +12 -4
  116. nautobot/core/utils/lookup.py +3 -1
  117. nautobot/core/utils/requests.py +1 -104
  118. nautobot/core/views/__init__.py +1 -0
  119. nautobot/core/views/generic.py +75 -110
  120. nautobot/core/views/mixins.py +52 -61
  121. nautobot/core/views/renderers.py +6 -7
  122. nautobot/core/views/utils.py +80 -0
  123. nautobot/dcim/api/serializers.py +160 -667
  124. nautobot/dcim/api/urls.py +1 -1
  125. nautobot/dcim/api/views.py +7 -44
  126. nautobot/dcim/choices.py +2 -0
  127. nautobot/dcim/filters/__init__.py +21 -0
  128. nautobot/dcim/form_mixins.py +1 -27
  129. nautobot/dcim/forms.py +19 -765
  130. nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -1
  131. nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -13
  132. nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -1
  133. nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -1
  134. nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
  135. nautobot/dcim/migrations/0035_related_name_changes.py +1 -1
  136. nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -1
  137. nautobot/dcim/migrations/0040_tagsfield.py +109 -0
  138. nautobot/dcim/migrations/{0040_ipam__namespaces.py → 0041_ipam__namespaces.py} +1 -1
  139. nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
  140. nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
  141. nautobot/dcim/models/cables.py +3 -33
  142. nautobot/dcim/models/device_component_templates.py +6 -0
  143. nautobot/dcim/models/device_components.py +12 -198
  144. nautobot/dcim/models/devices.py +30 -143
  145. nautobot/dcim/models/locations.py +3 -64
  146. nautobot/dcim/models/power.py +3 -50
  147. nautobot/dcim/models/racks.py +7 -84
  148. nautobot/dcim/navigation.py +141 -467
  149. nautobot/dcim/signals.py +0 -2
  150. nautobot/dcim/tables/locations.py +2 -2
  151. nautobot/dcim/tables/power.py +1 -2
  152. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
  153. nautobot/dcim/templates/dcim/devicetype.html +2 -2
  154. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
  155. nautobot/dcim/templates/dcim/location.html +16 -1
  156. nautobot/dcim/templates/dcim/locationtype.html +15 -0
  157. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
  158. nautobot/dcim/templates/dcim/rackgroup.html +0 -12
  159. nautobot/dcim/tests/test_api.py +166 -81
  160. nautobot/dcim/tests/test_cablepaths.py +41 -35
  161. nautobot/dcim/tests/test_filters.py +67 -23
  162. nautobot/dcim/tests/test_forms.py +5 -205
  163. nautobot/dcim/tests/test_graphql.py +7 -2
  164. nautobot/dcim/tests/test_migrations.py +6 -11
  165. nautobot/dcim/tests/test_models.py +182 -110
  166. nautobot/dcim/tests/test_natural_ordering.py +11 -8
  167. nautobot/dcim/tests/test_signals.py +6 -3
  168. nautobot/dcim/tests/test_views.py +197 -175
  169. nautobot/dcim/urls.py +11 -16
  170. nautobot/dcim/views.py +7 -134
  171. nautobot/docs/additional-features/caching.md +6 -87
  172. nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
  173. nautobot/docs/additional-features/jobs.md +177 -195
  174. nautobot/docs/administration/nautobot-server.md +6 -21
  175. nautobot/docs/administration/replicating-nautobot.md +0 -10
  176. nautobot/docs/configuration/optional-settings.md +32 -41
  177. nautobot/docs/configuration/required-settings.md +11 -52
  178. nautobot/docs/development/application-registry.md +2 -13
  179. nautobot/docs/development/extending-models.md +15 -17
  180. nautobot/docs/development/generic-views.md +0 -2
  181. nautobot/docs/development/getting-started.md +55 -5
  182. nautobot/docs/development/navigation-menu.md +22 -93
  183. nautobot/docs/development/react-ui.md +105 -0
  184. nautobot/docs/development/role-internals.md +1 -3
  185. nautobot/docs/development/style-guide.md +6 -4
  186. nautobot/docs/index.md +3 -2
  187. nautobot/docs/installation/migrating-from-netbox.md +11 -42
  188. nautobot/docs/installation/nautobot.md +1 -1
  189. nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  190. nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  191. nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  192. nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  193. nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
  194. nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  195. nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  196. nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  197. nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  198. nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  199. nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  200. nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  201. nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  202. nautobot/docs/installation/upgrading-from-nautobot-v1.md +170 -747
  203. nautobot/docs/models/dcim/device.md +3 -0
  204. nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
  205. nautobot/docs/models/extras/computedfield.md +4 -4
  206. nautobot/docs/models/extras/gitrepository.md +3 -0
  207. nautobot/docs/models/extras/job.md +1 -0
  208. nautobot/docs/models/extras/jobbutton.md +18 -13
  209. nautobot/docs/models/extras/jobhook.md +7 -4
  210. nautobot/docs/models/extras/jobresult.md +6 -2
  211. nautobot/docs/models/extras/relationship.md +2 -2
  212. nautobot/docs/models/extras/status.md +6 -19
  213. nautobot/docs/models/ipam/ipaddress.md +3 -0
  214. nautobot/docs/models/virtualization/virtualmachine.md +3 -0
  215. nautobot/docs/plugins/development.md +83 -21
  216. nautobot/docs/release-notes/version-1.5.md +53 -0
  217. nautobot/docs/release-notes/version-2.0.md +180 -0
  218. nautobot/docs/requirements.txt +1 -0
  219. nautobot/docs/rest-api/overview.md +384 -215
  220. nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
  221. nautobot/extras/admin.py +3 -5
  222. nautobot/extras/api/customfields.py +15 -39
  223. nautobot/extras/api/fields.py +0 -11
  224. nautobot/extras/api/mixins.py +45 -0
  225. nautobot/extras/api/relationships.py +63 -158
  226. nautobot/extras/api/serializers.py +165 -700
  227. nautobot/extras/api/urls.py +1 -1
  228. nautobot/extras/api/views.py +294 -280
  229. nautobot/extras/apps.py +4 -7
  230. nautobot/extras/choices.py +11 -9
  231. nautobot/extras/constants.py +9 -3
  232. nautobot/extras/datasources/__init__.py +2 -0
  233. nautobot/extras/datasources/git.py +135 -186
  234. nautobot/extras/datasources/registry.py +25 -35
  235. nautobot/extras/filters/__init__.py +20 -19
  236. nautobot/extras/filters/mixins.py +4 -4
  237. nautobot/extras/forms/forms.py +63 -127
  238. nautobot/extras/forms/mixins.py +23 -51
  239. nautobot/extras/health_checks.py +0 -33
  240. nautobot/extras/jobs.py +387 -565
  241. nautobot/extras/management/commands/runjob.py +24 -62
  242. nautobot/extras/managers.py +30 -7
  243. nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
  244. nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -1
  245. nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -1
  246. nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -7
  247. nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -32
  248. nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -1
  249. nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -1
  250. nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
  251. nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -1
  252. nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -2
  253. nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -1
  254. nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -1
  255. nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
  256. nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -1
  257. nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
  258. nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -9
  259. nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -1
  260. nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
  261. nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
  262. nautobot/extras/migrations/{0076_remove_name_field_and_make_label_field_non_nullable.py → 0077_remove_name_field_and_make_label_field_non_nullable.py} +1 -1
  263. nautobot/extras/migrations/{0077_remove_slug.py → 0078_remove_slug.py} +1 -5
  264. nautobot/extras/migrations/0079_tagsfield.py +28 -0
  265. nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
  266. nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
  267. nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
  268. nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
  269. nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
  270. nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
  271. nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
  272. nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
  273. nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
  274. nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
  275. nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
  276. nautobot/extras/models/__init__.py +2 -3
  277. nautobot/extras/models/change_logging.py +0 -36
  278. nautobot/extras/models/customfields.py +39 -33
  279. nautobot/extras/models/datasources.py +48 -50
  280. nautobot/extras/models/groups.py +5 -6
  281. nautobot/extras/models/jobs.py +189 -321
  282. nautobot/extras/models/mixins.py +0 -71
  283. nautobot/extras/models/models.py +0 -19
  284. nautobot/extras/models/relationships.py +19 -13
  285. nautobot/extras/models/roles.py +0 -34
  286. nautobot/extras/models/secrets.py +2 -26
  287. nautobot/extras/models/statuses.py +6 -5
  288. nautobot/extras/models/tags.py +2 -17
  289. nautobot/extras/navigation.py +89 -307
  290. nautobot/extras/plugins/__init__.py +3 -120
  291. nautobot/extras/plugins/utils.py +0 -3
  292. nautobot/extras/plugins/validators.py +5 -4
  293. nautobot/extras/plugins/views.py +16 -3
  294. nautobot/extras/querysets.py +1 -7
  295. nautobot/extras/registry.py +3 -0
  296. nautobot/extras/signals.py +26 -60
  297. nautobot/extras/tables.py +34 -40
  298. nautobot/extras/tasks.py +0 -12
  299. nautobot/extras/templates/extras/configcontext.html +1 -1
  300. nautobot/extras/templates/extras/configcontextschema.html +16 -1
  301. nautobot/extras/templates/extras/customfield.html +0 -13
  302. nautobot/extras/templates/extras/gitrepository.html +3 -3
  303. nautobot/extras/templates/extras/inc/jobresult.html +10 -0
  304. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  305. nautobot/extras/templates/extras/job.html +35 -25
  306. nautobot/extras/templates/extras/job_approval_request.html +15 -30
  307. nautobot/extras/templates/extras/job_detail.html +13 -31
  308. nautobot/extras/templates/extras/job_edit.html +15 -17
  309. nautobot/extras/templates/extras/jobresult.html +24 -6
  310. nautobot/extras/templates/extras/scheduledjob.html +2 -2
  311. nautobot/extras/templates/extras/secret.html +28 -0
  312. nautobot/extras/templatetags/job_buttons.py +1 -0
  313. nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
  314. nautobot/extras/test_jobs/atomic_transaction.py +53 -0
  315. nautobot/extras/test_jobs/dry_run.py +29 -0
  316. nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
  317. nautobot/extras/test_jobs/duplicate_name2.py +9 -0
  318. nautobot/extras/test_jobs/fail.py +23 -0
  319. nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
  320. nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
  321. nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
  322. nautobot/extras/test_jobs/file_upload_pass.py +25 -0
  323. nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
  324. nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
  325. nautobot/extras/test_jobs/job_button_receiver.py +28 -0
  326. nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
  327. nautobot/extras/test_jobs/job_variables.py +88 -0
  328. nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
  329. nautobot/extras/test_jobs/log_redaction.py +20 -0
  330. nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
  331. nautobot/extras/test_jobs/modify_db.py +25 -0
  332. nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
  333. nautobot/extras/test_jobs/object_var_optional.py +21 -0
  334. nautobot/extras/test_jobs/object_var_required.py +21 -0
  335. nautobot/extras/test_jobs/object_vars.py +26 -0
  336. nautobot/extras/test_jobs/pass.py +25 -0
  337. nautobot/extras/test_jobs/profiling.py +32 -0
  338. nautobot/extras/test_jobs/read_only_job.py +15 -0
  339. nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
  340. nautobot/extras/{tests/example_jobs/test_soft_time_limit_greater_than_time_limit.py → test_jobs/soft_time_limit_greater_than_time_limit.py} +5 -1
  341. nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
  342. nautobot/extras/tests/integration/test_computedfields.py +1 -1
  343. nautobot/extras/tests/integration/test_configcontextschema.py +5 -3
  344. nautobot/extras/tests/integration/test_customfields.py +4 -2
  345. nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
  346. nautobot/extras/tests/integration/test_jobs.py +25 -27
  347. nautobot/extras/tests/integration/test_notes.py +8 -4
  348. nautobot/extras/tests/integration/test_relationships.py +2 -2
  349. nautobot/extras/tests/test_api.py +649 -642
  350. nautobot/extras/tests/test_changelog.py +3 -3
  351. nautobot/extras/tests/test_context_managers.py +5 -3
  352. nautobot/extras/tests/test_customfields.py +92 -50
  353. nautobot/extras/tests/test_datasources.py +189 -112
  354. nautobot/extras/tests/test_dynamicgroups.py +7 -8
  355. nautobot/extras/tests/test_filters.py +137 -89
  356. nautobot/extras/tests/test_forms.py +73 -75
  357. nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
  358. nautobot/extras/tests/test_jobs.py +262 -263
  359. nautobot/extras/tests/test_migrations.py +4 -3
  360. nautobot/extras/tests/test_models.py +116 -161
  361. nautobot/extras/tests/test_plugins.py +38 -60
  362. nautobot/extras/tests/test_relationships.py +167 -120
  363. nautobot/extras/tests/test_tags.py +6 -11
  364. nautobot/extras/tests/test_utils.py +31 -1
  365. nautobot/extras/tests/test_views.py +201 -145
  366. nautobot/extras/tests/test_webhooks.py +6 -2
  367. nautobot/extras/urls.py +42 -42
  368. nautobot/extras/utils.py +137 -163
  369. nautobot/extras/views.py +78 -152
  370. nautobot/ipam/api/fields.py +17 -0
  371. nautobot/ipam/api/serializers.py +58 -164
  372. nautobot/ipam/api/urls.py +1 -1
  373. nautobot/ipam/api/views.py +3 -2
  374. nautobot/ipam/apps.py +1 -2
  375. nautobot/ipam/filters.py +1 -10
  376. nautobot/ipam/forms.py +4 -177
  377. nautobot/ipam/lookups.py +1 -0
  378. nautobot/ipam/management/commands/__init__.py +0 -0
  379. nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
  380. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -1
  381. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -38
  382. nautobot/ipam/migrations/0020_related_name_changes.py +1 -1
  383. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +2 -2
  384. nautobot/ipam/migrations/0028_tagsfield.py +44 -0
  385. nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
  386. nautobot/ipam/migrations/{0028_ipam__namespaces.py → 0030_ipam__namespaces.py} +77 -28
  387. nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
  388. nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
  389. nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
  390. nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
  391. nautobot/ipam/models.py +100 -236
  392. nautobot/ipam/navigation.py +36 -181
  393. nautobot/ipam/querysets.py +20 -25
  394. nautobot/ipam/signals.py +49 -6
  395. nautobot/ipam/tables.py +10 -3
  396. nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
  397. nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
  398. nautobot/ipam/templates/ipam/namespace_retrieve.html +17 -4
  399. nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
  400. nautobot/ipam/templates/ipam/prefix.html +1 -1
  401. nautobot/ipam/templates/ipam/vlangroup.html +0 -13
  402. nautobot/ipam/templates/ipam/vrf_edit.html +6 -0
  403. nautobot/ipam/tests/integration/test_prefixes.py +3 -26
  404. nautobot/ipam/tests/test_api.py +22 -19
  405. nautobot/ipam/tests/test_filters.py +59 -23
  406. nautobot/ipam/tests/test_migrations.py +6 -10
  407. nautobot/ipam/tests/test_models.py +323 -198
  408. nautobot/ipam/tests/test_ordering.py +2 -2
  409. nautobot/ipam/tests/test_querysets.py +44 -24
  410. nautobot/ipam/tests/test_views.py +73 -26
  411. nautobot/ipam/urls.py +16 -0
  412. nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
  413. nautobot/ipam/utils/migrations.py +713 -0
  414. nautobot/ipam/views.py +137 -20
  415. nautobot/project-static/docs/404.html +1178 -10
  416. nautobot/project-static/docs/additional-features/caching.html +1224 -159
  417. nautobot/project-static/docs/additional-features/change-logging.html +1180 -12
  418. nautobot/project-static/docs/additional-features/config-contexts.html +1180 -12
  419. nautobot/project-static/docs/additional-features/graphql.html +1179 -11
  420. nautobot/project-static/docs/additional-features/healthcheck.html +1180 -12
  421. nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1184 -12
  422. nautobot/project-static/docs/additional-features/jobs.html +1514 -328
  423. nautobot/project-static/docs/additional-features/napalm.html +1180 -12
  424. nautobot/project-static/docs/additional-features/prometheus-metrics.html +1180 -12
  425. nautobot/project-static/docs/additional-features/template-filters.html +1180 -12
  426. nautobot/project-static/docs/administration/celery-queues.html +1178 -10
  427. nautobot/project-static/docs/administration/nautobot-server.html +1451 -304
  428. nautobot/project-static/docs/administration/nautobot-shell.html +1178 -10
  429. nautobot/project-static/docs/administration/permissions.html +1178 -10
  430. nautobot/project-static/docs/administration/replicating-nautobot.html +1262 -113
  431. nautobot/project-static/docs/apps/index.html +1178 -10
  432. nautobot/project-static/docs/apps/nautobot-apps.html +1178 -10
  433. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1580 -426
  434. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1178 -10
  435. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3481 -1838
  436. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1178 -10
  437. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1178 -10
  438. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1185 -11
  439. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1719 -551
  440. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2062 -930
  441. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1946 -659
  442. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1180 -12
  443. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1189 -21
  444. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +9283 -6218
  445. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2734 -2122
  446. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1178 -10
  447. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2337 -1300
  448. nautobot/project-static/docs/configuration/authentication/ldap.html +1178 -10
  449. nautobot/project-static/docs/configuration/authentication/remote.html +1178 -10
  450. nautobot/project-static/docs/configuration/authentication/sso.html +1178 -10
  451. nautobot/project-static/docs/configuration/index.html +1178 -10
  452. nautobot/project-static/docs/configuration/optional-settings.html +1311 -160
  453. nautobot/project-static/docs/configuration/required-settings.html +1312 -211
  454. nautobot/project-static/docs/core-functionality/circuits.html +1178 -10
  455. nautobot/project-static/docs/core-functionality/device-types.html +1178 -10
  456. nautobot/project-static/docs/core-functionality/devices.html +1182 -10
  457. nautobot/project-static/docs/core-functionality/ipam.html +1182 -10
  458. nautobot/project-static/docs/core-functionality/power.html +1178 -10
  459. nautobot/project-static/docs/core-functionality/secrets.html +1178 -10
  460. nautobot/project-static/docs/core-functionality/services.html +1178 -10
  461. nautobot/project-static/docs/core-functionality/sites-and-racks.html +1178 -10
  462. nautobot/project-static/docs/core-functionality/tenancy.html +1178 -10
  463. nautobot/project-static/docs/core-functionality/virtualization.html +1182 -10
  464. nautobot/project-static/docs/core-functionality/vlans.html +1179 -11
  465. nautobot/project-static/docs/development/application-registry.html +1190 -42
  466. nautobot/project-static/docs/development/best-practices.html +1178 -10
  467. nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1178 -10
  468. nautobot/project-static/docs/development/extending-models.html +1238 -83
  469. nautobot/project-static/docs/development/generic-views.html +1180 -14
  470. nautobot/project-static/docs/development/getting-started.html +1365 -90
  471. nautobot/project-static/docs/development/homepage.html +1178 -10
  472. nautobot/project-static/docs/development/index.html +1178 -10
  473. nautobot/project-static/docs/development/model-features.html +1178 -10
  474. nautobot/project-static/docs/development/natural-keys.html +1178 -10
  475. nautobot/project-static/docs/development/navigation-menu.html +1215 -125
  476. nautobot/project-static/docs/development/react-ui.html +4199 -0
  477. nautobot/project-static/docs/development/release-checklist.html +1178 -10
  478. nautobot/project-static/docs/development/role-internals.html +1179 -12
  479. nautobot/project-static/docs/development/style-guide.html +1188 -19
  480. nautobot/project-static/docs/development/templates.html +1178 -10
  481. nautobot/project-static/docs/development/testing.html +1178 -10
  482. nautobot/project-static/docs/development/user-preferences.html +1178 -10
  483. nautobot/project-static/docs/docker/index.html +1178 -10
  484. nautobot/project-static/docs/index.html +1183 -12
  485. nautobot/project-static/docs/installation/centos.html +1178 -10
  486. nautobot/project-static/docs/installation/external-authentication.html +1178 -10
  487. nautobot/project-static/docs/installation/http-server.html +1178 -10
  488. nautobot/project-static/docs/installation/index.html +1178 -10
  489. nautobot/project-static/docs/installation/migrating-from-netbox.html +1305 -189
  490. nautobot/project-static/docs/installation/migrating-from-postgresql.html +1178 -10
  491. nautobot/project-static/docs/installation/nautobot.html +1179 -11
  492. nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1178 -10
  493. nautobot/project-static/docs/installation/selinux-troubleshooting.html +1178 -10
  494. nautobot/project-static/docs/installation/services.html +1178 -10
  495. nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  496. nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  497. nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  498. nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  499. nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
  500. nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  501. nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  502. nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  503. nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  504. nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  505. nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  506. nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  507. nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  508. nautobot/project-static/docs/installation/ubuntu.html +1178 -10
  509. nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +3823 -2152
  510. nautobot/project-static/docs/installation/upgrading.html +1178 -10
  511. nautobot/project-static/docs/models/circuits/circuit.html +1293 -103
  512. nautobot/project-static/docs/models/circuits/circuittermination.html +1293 -103
  513. nautobot/project-static/docs/models/circuits/circuittype.html +1293 -103
  514. nautobot/project-static/docs/models/circuits/provider.html +1293 -103
  515. nautobot/project-static/docs/models/circuits/providernetwork.html +1293 -103
  516. nautobot/project-static/docs/models/dcim/cable.html +1324 -103
  517. nautobot/project-static/docs/models/dcim/consoleport.html +1293 -103
  518. nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1293 -103
  519. nautobot/project-static/docs/models/dcim/consoleserverport.html +1293 -103
  520. nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1293 -103
  521. nautobot/project-static/docs/models/dcim/device.html +1326 -132
  522. nautobot/project-static/docs/models/dcim/devicebay.html +1293 -103
  523. nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1293 -103
  524. nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1379 -97
  525. nautobot/project-static/docs/models/dcim/devicetype.html +1293 -103
  526. nautobot/project-static/docs/models/dcim/frontport.html +1293 -103
  527. nautobot/project-static/docs/models/dcim/frontporttemplate.html +1293 -103
  528. nautobot/project-static/docs/models/dcim/interface.html +1293 -103
  529. nautobot/project-static/docs/models/dcim/interfacetemplate.html +1293 -103
  530. nautobot/project-static/docs/models/dcim/inventoryitem.html +1293 -103
  531. nautobot/project-static/docs/models/dcim/location.html +1293 -103
  532. nautobot/project-static/docs/models/dcim/locationtype.html +1293 -103
  533. nautobot/project-static/docs/models/dcim/manufacturer.html +1292 -102
  534. nautobot/project-static/docs/models/dcim/platform.html +1272 -82
  535. nautobot/project-static/docs/models/dcim/powerfeed.html +1270 -80
  536. nautobot/project-static/docs/models/dcim/poweroutlet.html +1272 -82
  537. nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1272 -82
  538. nautobot/project-static/docs/models/dcim/powerpanel.html +1270 -80
  539. nautobot/project-static/docs/models/dcim/powerport.html +1272 -82
  540. nautobot/project-static/docs/models/dcim/powerporttemplate.html +1272 -82
  541. nautobot/project-static/docs/models/dcim/rack.html +1272 -82
  542. nautobot/project-static/docs/models/dcim/rackgroup.html +1272 -82
  543. nautobot/project-static/docs/models/dcim/rackreservation.html +1272 -82
  544. nautobot/project-static/docs/models/dcim/rearport.html +1286 -96
  545. nautobot/project-static/docs/models/dcim/rearporttemplate.html +1286 -96
  546. nautobot/project-static/docs/models/dcim/region.html +1178 -10
  547. nautobot/project-static/docs/models/dcim/site.html +1178 -10
  548. nautobot/project-static/docs/models/dcim/virtualchassis.html +1284 -94
  549. nautobot/project-static/docs/models/extras/computedfield.html +1184 -16
  550. nautobot/project-static/docs/models/extras/configcontext.html +1314 -86
  551. nautobot/project-static/docs/models/extras/configcontextschema.html +1276 -86
  552. nautobot/project-static/docs/models/extras/customfield.html +1180 -12
  553. nautobot/project-static/docs/models/extras/customlink.html +1180 -12
  554. nautobot/project-static/docs/models/extras/dynamicgroup.html +1180 -12
  555. nautobot/project-static/docs/models/extras/exporttemplate.html +1180 -12
  556. nautobot/project-static/docs/models/extras/gitrepository.html +1184 -12
  557. nautobot/project-static/docs/models/extras/graphqlquery.html +1321 -86
  558. nautobot/project-static/docs/models/extras/imageattachment.html +1276 -86
  559. nautobot/project-static/docs/models/extras/job.html +1277 -86
  560. nautobot/project-static/docs/models/extras/jobbutton.html +1201 -29
  561. nautobot/project-static/docs/models/extras/jobhook.html +1188 -16
  562. nautobot/project-static/docs/models/extras/joblogentry.html +1274 -84
  563. nautobot/project-static/docs/models/extras/jobresult.html +1364 -169
  564. nautobot/project-static/docs/models/extras/note.html +1180 -12
  565. nautobot/project-static/docs/models/extras/relationship.html +1182 -14
  566. nautobot/project-static/docs/models/extras/role.html +1320 -86
  567. nautobot/project-static/docs/models/extras/secret.html +1314 -86
  568. nautobot/project-static/docs/models/extras/secretsgroup.html +1276 -86
  569. nautobot/project-static/docs/models/extras/status.html +1188 -59
  570. nautobot/project-static/docs/models/extras/tag.html +1180 -12
  571. nautobot/project-static/docs/models/extras/webhook.html +1180 -12
  572. nautobot/project-static/docs/models/ipam/ipaddress.html +1327 -102
  573. nautobot/project-static/docs/models/ipam/prefix.html +1276 -86
  574. nautobot/project-static/docs/models/ipam/rir.html +1276 -86
  575. nautobot/project-static/docs/models/ipam/routetarget.html +1276 -86
  576. nautobot/project-static/docs/models/ipam/service.html +1276 -86
  577. nautobot/project-static/docs/models/ipam/vlan.html +1276 -86
  578. nautobot/project-static/docs/models/ipam/vlangroup.html +1276 -86
  579. nautobot/project-static/docs/models/ipam/vrf.html +1276 -86
  580. nautobot/project-static/docs/models/tenancy/tenant.html +1276 -86
  581. nautobot/project-static/docs/models/tenancy/tenantgroup.html +1276 -86
  582. nautobot/project-static/docs/models/users/objectpermission.html +1314 -86
  583. nautobot/project-static/docs/models/users/token.html +1276 -86
  584. nautobot/project-static/docs/models/virtualization/cluster.html +1276 -86
  585. nautobot/project-static/docs/models/virtualization/clustergroup.html +1276 -86
  586. nautobot/project-static/docs/models/virtualization/clustertype.html +1276 -86
  587. nautobot/project-static/docs/models/virtualization/virtualmachine.html +1321 -127
  588. nautobot/project-static/docs/models/virtualization/vminterface.html +1276 -86
  589. nautobot/project-static/docs/objects.inv +0 -0
  590. nautobot/project-static/docs/plugins/development.html +1726 -495
  591. nautobot/project-static/docs/plugins/index.html +1178 -10
  592. nautobot/project-static/docs/plugins/porting-from-netbox.html +1178 -10
  593. nautobot/project-static/docs/release-notes/index.html +1178 -10
  594. nautobot/project-static/docs/release-notes/version-1.0.html +1178 -10
  595. nautobot/project-static/docs/release-notes/version-1.1.html +1178 -10
  596. nautobot/project-static/docs/release-notes/version-1.2.html +1178 -10
  597. nautobot/project-static/docs/release-notes/version-1.3.html +1178 -10
  598. nautobot/project-static/docs/release-notes/version-1.4.html +1178 -10
  599. nautobot/project-static/docs/release-notes/version-1.5.html +1608 -225
  600. nautobot/project-static/docs/release-notes/version-2.0.html +1547 -47
  601. nautobot/project-static/docs/requirements.txt +1 -0
  602. nautobot/project-static/docs/rest-api/authentication.html +1179 -11
  603. nautobot/project-static/docs/rest-api/filtering.html +1178 -10
  604. nautobot/project-static/docs/rest-api/overview.html +1841 -446
  605. nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
  606. nautobot/project-static/docs/search/search_index.json +1 -1
  607. nautobot/project-static/docs/sitemap.xml +197 -187
  608. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  609. nautobot/project-static/docs/user-guides/custom-fields.html +1178 -10
  610. nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1178 -10
  611. nautobot/project-static/docs/user-guides/getting-started/index.html +1178 -10
  612. nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1178 -10
  613. nautobot/project-static/docs/user-guides/getting-started/ipam.html +1178 -10
  614. nautobot/project-static/docs/user-guides/getting-started/platforms.html +1178 -10
  615. nautobot/project-static/docs/user-guides/getting-started/regions.html +1178 -10
  616. nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1178 -10
  617. nautobot/project-static/docs/user-guides/getting-started/tenants.html +1178 -10
  618. nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1178 -10
  619. nautobot/project-static/docs/user-guides/git-data-source.html +1178 -10
  620. nautobot/project-static/docs/user-guides/graphql.html +1178 -10
  621. nautobot/project-static/docs/user-guides/relationships.html +1178 -10
  622. nautobot/project-static/docs/user-guides/s3-django-storage.html +1178 -10
  623. nautobot/project-static/js/forms.js +16 -9
  624. nautobot/project-static/js/theme.js +5 -0
  625. nautobot/tenancy/api/serializers.py +4 -32
  626. nautobot/tenancy/api/urls.py +1 -1
  627. nautobot/tenancy/forms.py +0 -28
  628. nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
  629. nautobot/tenancy/models.py +0 -25
  630. nautobot/tenancy/navigation.py +6 -39
  631. nautobot/tenancy/templates/tenancy/tenant.html +12 -12
  632. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  633. nautobot/tenancy/tests/test_api.py +1 -3
  634. nautobot/tenancy/tests/test_filters.py +10 -5
  635. nautobot/tenancy/views.py +0 -2
  636. nautobot/ui/.eslintignore +6 -0
  637. nautobot/ui/.gitignore +10 -0
  638. nautobot/ui/.prettierignore +9 -0
  639. nautobot/ui/.prettierrc +4 -0
  640. nautobot/ui/README.md +33 -0
  641. nautobot/ui/app_imports.js.j2 +7 -0
  642. nautobot/ui/craco.config.js +46 -0
  643. nautobot/ui/jsconfig-base.json +11 -0
  644. nautobot/ui/jsconfig.json +5 -0
  645. nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
  646. nautobot/ui/package-lock.json +21451 -0
  647. nautobot/ui/package.json +70 -0
  648. nautobot/ui/public/index.html +47 -0
  649. nautobot/ui/public/logo192.png +0 -0
  650. nautobot/ui/public/logo512.png +0 -0
  651. nautobot/ui/public/manifest.json +25 -0
  652. nautobot/ui/public/nautobot_logo.svg +131 -0
  653. nautobot/ui/public/robots.txt +3 -0
  654. nautobot/ui/src/App.js +71 -0
  655. nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
  656. nautobot/ui/src/components/AppTab.js +40 -0
  657. nautobot/ui/src/components/Apps.js +60 -0
  658. nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
  659. nautobot/ui/src/components/HomePanel.js +58 -0
  660. nautobot/ui/src/components/JobHistoryTable.js +78 -0
  661. nautobot/ui/src/components/Layout.js +53 -0
  662. nautobot/ui/src/components/LoadingWidget.js +25 -0
  663. nautobot/ui/src/components/Navbar.js +116 -0
  664. nautobot/ui/src/components/NotificationPopover.js +27 -0
  665. nautobot/ui/src/components/ObjectListTable.js +209 -0
  666. nautobot/ui/src/components/ReferenceDataTag.js +35 -0
  667. nautobot/ui/src/components/RouterButton.js +10 -0
  668. nautobot/ui/src/components/RouterLink.js +10 -0
  669. nautobot/ui/src/components/SidebarNav.js +147 -0
  670. nautobot/ui/src/components/Table.js +48 -0
  671. nautobot/ui/src/components/TableItem.js +71 -0
  672. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
  673. nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
  674. nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
  675. nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
  676. nautobot/ui/src/components/__tests__/Table.test.js +36 -0
  677. nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
  678. nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
  679. nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
  680. nautobot/ui/src/components/pagination.js +93 -0
  681. nautobot/ui/src/components/paginator.js +79 -0
  682. nautobot/ui/src/components/paginator_form.js +43 -0
  683. nautobot/ui/src/components/usePagination.js +57 -0
  684. nautobot/ui/src/constants/apiPath.js +10 -0
  685. nautobot/ui/src/constants/icons.js +15 -0
  686. nautobot/ui/src/constants/size.js +15 -0
  687. nautobot/ui/src/index.js +65 -0
  688. nautobot/ui/src/reportWebVitals.js +15 -0
  689. nautobot/ui/src/router.js +77 -0
  690. nautobot/ui/src/utils/api.js +131 -0
  691. nautobot/ui/src/utils/app-import.js +15 -0
  692. nautobot/ui/src/utils/color.js +15 -0
  693. nautobot/ui/src/utils/date.js +14 -0
  694. nautobot/ui/src/utils/index.js +15 -0
  695. nautobot/ui/src/utils/navigation.js +32 -0
  696. nautobot/ui/src/utils/session.js +64 -0
  697. nautobot/ui/src/utils/store.js +242 -0
  698. nautobot/ui/src/utils/string.js +6 -0
  699. nautobot/ui/src/utils/url.js +4 -0
  700. nautobot/ui/src/views/Home.js +138 -0
  701. nautobot/ui/src/views/InstalledApps.js +80 -0
  702. nautobot/ui/src/views/Login.js +48 -0
  703. nautobot/ui/src/views/Logout.js +20 -0
  704. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
  705. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
  706. nautobot/ui/src/views/__tests__/Login.test.js +15 -0
  707. nautobot/ui/src/views/generic/GenericView.js +142 -0
  708. nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
  709. nautobot/ui/src/views/generic/ObjectList.js +127 -0
  710. nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
  711. nautobot/users/admin.py +1 -1
  712. nautobot/users/api/serializers.py +51 -61
  713. nautobot/users/api/urls.py +1 -1
  714. nautobot/users/api/views.py +53 -2
  715. nautobot/users/tests/test_api.py +110 -25
  716. nautobot/virtualization/api/serializers.py +18 -130
  717. nautobot/virtualization/api/urls.py +1 -1
  718. nautobot/virtualization/api/views.py +1 -22
  719. nautobot/virtualization/forms.py +13 -99
  720. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -1
  721. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -11
  722. nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -1
  723. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -1
  724. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
  725. nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
  726. nautobot/virtualization/migrations/{0021_ipam__namespaces.py → 0023_ipam__namespaces.py} +2 -2
  727. nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
  728. nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
  729. nautobot/virtualization/models.py +31 -123
  730. nautobot/virtualization/navigation.py +18 -99
  731. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -1
  732. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
  733. nautobot/virtualization/tests/test_api.py +25 -26
  734. nautobot/virtualization/tests/test_filters.py +41 -15
  735. nautobot/virtualization/tests/test_models.py +31 -7
  736. nautobot/virtualization/tests/test_views.py +42 -25
  737. nautobot/virtualization/views.py +7 -6
  738. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +3 -7
  739. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +744 -602
  740. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
  741. nautobot/circuits/api/nested_serializers.py +0 -69
  742. nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
  743. nautobot/dcim/api/nested_serializers.py +0 -356
  744. nautobot/dcim/templates/dcim/device_import.html +0 -5
  745. nautobot/dcim/templates/dcim/device_import_child.html +0 -5
  746. nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
  747. nautobot/extras/api/nested_serializers.py +0 -353
  748. nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -41
  749. nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -46
  750. nautobot/extras/reports.py +0 -60
  751. nautobot/extras/scripts.py +0 -72
  752. nautobot/extras/tests/example_jobs/script_variables.py +0 -67
  753. nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
  754. nautobot/extras/tests/example_jobs/test_fail.py +0 -16
  755. nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
  756. nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
  757. nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
  758. nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
  759. nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
  760. nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
  761. nautobot/extras/tests/example_jobs/test_modify_db.py +0 -18
  762. nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
  763. nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
  764. nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
  765. nautobot/extras/tests/example_jobs/test_pass.py +0 -19
  766. nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
  767. nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
  768. nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
  769. nautobot/ipam/api/nested_serializers.py +0 -159
  770. nautobot/ipam/migrations/0029_ipam__prefix__add_parent.py +0 -31
  771. nautobot/ipam/migrations/0030_ipam__prefix__data_migration.py +0 -13
  772. nautobot/ipam/migrations/0031_ipam__ipaddress__add_parent.py +0 -41
  773. nautobot/ipam/migrations/0032_ipam__ipaddress__data_migration.py +0 -11
  774. nautobot/tenancy/api/nested_serializers.py +0 -31
  775. nautobot/users/api/nested_serializers.py +0 -67
  776. nautobot/virtualization/api/nested_serializers.py +0 -65
  777. /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
  778. /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
  779. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
  780. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
@@ -940,13 +940,6 @@
940
940
  init
941
941
  </a>
942
942
 
943
- </li>
944
-
945
- <li class="md-nav__item">
946
- <a href="#invalidate" class="md-nav__link">
947
- invalidate
948
- </a>
949
-
950
943
  </li>
951
944
 
952
945
  <li class="md-nav__item">
@@ -1017,24 +1010,1069 @@
1017
1010
  trace_paths
1018
1011
  </a>
1019
1012
 
1020
- </li>
1021
-
1022
- <li class="md-nav__item">
1023
- <a href="#webhook_receiver" class="md-nav__link">
1024
- webhook_receiver
1025
- </a>
1013
+ </li>
1014
+
1015
+ <li class="md-nav__item">
1016
+ <a href="#webhook_receiver" class="md-nav__link">
1017
+ webhook_receiver
1018
+ </a>
1019
+
1020
+ </li>
1021
+
1022
+ </ul>
1023
+ </nav>
1024
+
1025
+ </li>
1026
+
1027
+ </ul>
1028
+
1029
+ </nav>
1030
+
1031
+ </li>
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+ <li class="md-nav__item">
1042
+ <a href="nautobot-shell.html" class="md-nav__link">
1043
+ Nautobot Shell
1044
+ </a>
1045
+ </li>
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+ <li class="md-nav__item">
1056
+ <a href="permissions.html" class="md-nav__link">
1057
+ Permissions
1058
+ </a>
1059
+ </li>
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+ <li class="md-nav__item">
1070
+ <a href="replicating-nautobot.html" class="md-nav__link">
1071
+ Replicating Nautobot
1072
+ </a>
1073
+ </li>
1074
+
1075
+
1076
+
1077
+
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+ <li class="md-nav__item">
1084
+ <a href="celery-queues.html" class="md-nav__link">
1085
+ Task Queues
1086
+ </a>
1087
+ </li>
1088
+
1089
+
1090
+
1091
+
1092
+ </ul>
1093
+ </nav>
1094
+ </li>
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+ <li class="md-nav__item md-nav__item--nested">
1106
+
1107
+
1108
+
1109
+
1110
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
1111
+
1112
+
1113
+
1114
+ <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1115
+ User Guides
1116
+ <span class="md-nav__icon md-icon"></span>
1117
+ </label>
1118
+
1119
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1120
+ <label class="md-nav__title" for="__nav_2_6">
1121
+ <span class="md-nav__icon md-icon"></span>
1122
+ User Guides
1123
+ </label>
1124
+ <ul class="md-nav__list" data-md-scrollfix>
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+ <li class="md-nav__item">
1132
+ <a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
1133
+ Creating Devices
1134
+ </a>
1135
+ </li>
1136
+
1137
+
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+ <li class="md-nav__item">
1146
+ <a href="../user-guides/custom-fields.html" class="md-nav__link">
1147
+ Custom Fields
1148
+ </a>
1149
+ </li>
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+ <li class="md-nav__item">
1160
+ <a href="../user-guides/getting-started/index.html" class="md-nav__link">
1161
+ Getting Started In the Web UI
1162
+ </a>
1163
+ </li>
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+ <li class="md-nav__item">
1174
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1175
+ Git as a Data Source
1176
+ </a>
1177
+ </li>
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+ <li class="md-nav__item">
1188
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1189
+ GraphQL
1190
+ </a>
1191
+ </li>
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+ <li class="md-nav__item">
1202
+ <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1203
+ Interfaces
1204
+ </a>
1205
+ </li>
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+ <li class="md-nav__item">
1216
+ <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1217
+ IP Address Management
1218
+ </a>
1219
+ </li>
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+ <li class="md-nav__item">
1230
+ <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1231
+ Platforms
1232
+ </a>
1233
+ </li>
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+ <li class="md-nav__item">
1244
+ <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1245
+ Regions
1246
+ </a>
1247
+ </li>
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+ <li class="md-nav__item">
1258
+ <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1259
+ Tenants
1260
+ </a>
1261
+ </li>
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+ <li class="md-nav__item">
1272
+ <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1273
+ The Search Bar
1274
+ </a>
1275
+ </li>
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+ <li class="md-nav__item">
1286
+ <a href="../user-guides/git-data-source.html" class="md-nav__link">
1287
+ Git as a Data Source
1288
+ </a>
1289
+ </li>
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+
1298
+
1299
+ <li class="md-nav__item">
1300
+ <a href="../user-guides/graphql.html" class="md-nav__link">
1301
+ GraphQL
1302
+ </a>
1303
+ </li>
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+ <li class="md-nav__item">
1314
+ <a href="../user-guides/relationships.html" class="md-nav__link">
1315
+ Relationships
1316
+ </a>
1317
+ </li>
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+ <li class="md-nav__item">
1328
+ <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1329
+ Django Storages with S3
1330
+ </a>
1331
+ </li>
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+ <li class="md-nav__item">
1342
+ <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1343
+ VLANS and VLAN Groups
1344
+ </a>
1345
+ </li>
1346
+
1347
+
1348
+
1349
+
1350
+ </ul>
1351
+ </nav>
1352
+ </li>
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+ <li class="md-nav__item md-nav__item--nested">
1364
+
1365
+
1366
+
1367
+
1368
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
1369
+
1370
+
1371
+
1372
+ <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1373
+ Core Functionality
1374
+ <span class="md-nav__icon md-icon"></span>
1375
+ </label>
1376
+
1377
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1378
+ <label class="md-nav__title" for="__nav_2_7">
1379
+ <span class="md-nav__icon md-icon"></span>
1380
+ Core Functionality
1381
+ </label>
1382
+ <ul class="md-nav__list" data-md-scrollfix>
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+ <li class="md-nav__item">
1390
+ <a href="../core-functionality/circuits.html" class="md-nav__link">
1391
+ Circuits
1392
+ </a>
1393
+ </li>
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+ <li class="md-nav__item">
1404
+ <a href="../core-functionality/devices.html" class="md-nav__link">
1405
+ Devices and Cabling
1406
+ </a>
1407
+ </li>
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+ <li class="md-nav__item">
1418
+ <a href="../core-functionality/device-types.html" class="md-nav__link">
1419
+ Device Types
1420
+ </a>
1421
+ </li>
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+ <li class="md-nav__item">
1432
+ <a href="../core-functionality/ipam.html" class="md-nav__link">
1433
+ IP Address Management
1434
+ </a>
1435
+ </li>
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+ <li class="md-nav__item">
1446
+ <a href="../core-functionality/power.html" class="md-nav__link">
1447
+ Power Tracking
1448
+ </a>
1449
+ </li>
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+ <li class="md-nav__item">
1460
+ <a href="../core-functionality/secrets.html" class="md-nav__link">
1461
+ Secrets
1462
+ </a>
1463
+ </li>
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+ <li class="md-nav__item">
1474
+ <a href="../core-functionality/services.html" class="md-nav__link">
1475
+ Service Mapping
1476
+ </a>
1477
+ </li>
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+ <li class="md-nav__item">
1488
+ <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1489
+ Sites, Locations, and Racks
1490
+ </a>
1491
+ </li>
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+ <li class="md-nav__item">
1502
+ <a href="../core-functionality/tenancy.html" class="md-nav__link">
1503
+ Tenancy
1504
+ </a>
1505
+ </li>
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+ <li class="md-nav__item">
1516
+ <a href="../core-functionality/virtualization.html" class="md-nav__link">
1517
+ Virtualization
1518
+ </a>
1519
+ </li>
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+ <li class="md-nav__item">
1530
+ <a href="../core-functionality/vlans.html" class="md-nav__link">
1531
+ VLAN Management
1532
+ </a>
1533
+ </li>
1534
+
1535
+
1536
+
1537
+
1538
+ </ul>
1539
+ </nav>
1540
+ </li>
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+ <li class="md-nav__item md-nav__item--nested">
1552
+
1553
+
1554
+
1555
+
1556
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
1557
+
1558
+
1559
+
1560
+ <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1561
+ Model Details
1562
+ <span class="md-nav__icon md-icon"></span>
1563
+ </label>
1564
+
1565
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1566
+ <label class="md-nav__title" for="__nav_2_8">
1567
+ <span class="md-nav__icon md-icon"></span>
1568
+ Model Details
1569
+ </label>
1570
+ <ul class="md-nav__list" data-md-scrollfix>
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+ <li class="md-nav__item md-nav__item--nested">
1579
+
1580
+
1581
+
1582
+
1583
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1584
+
1585
+
1586
+
1587
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1588
+ Circuits
1589
+ <span class="md-nav__icon md-icon"></span>
1590
+ </label>
1591
+
1592
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1593
+ <label class="md-nav__title" for="__nav_2_8_1">
1594
+ <span class="md-nav__icon md-icon"></span>
1595
+ Circuits
1596
+ </label>
1597
+ <ul class="md-nav__list" data-md-scrollfix>
1598
+
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+ <li class="md-nav__item">
1605
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1606
+ Circuit
1607
+ </a>
1608
+ </li>
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+ <li class="md-nav__item">
1619
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1620
+ Circuit Termination
1621
+ </a>
1622
+ </li>
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+ <li class="md-nav__item">
1633
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1634
+ Circuit Type
1635
+ </a>
1636
+ </li>
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+ <li class="md-nav__item">
1647
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1648
+ Circuit Provider
1649
+ </a>
1650
+ </li>
1651
+
1652
+
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+ <li class="md-nav__item">
1661
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1662
+ Circuit Provider Network
1663
+ </a>
1664
+ </li>
1665
+
1666
+
1667
+
1668
+
1669
+ </ul>
1670
+ </nav>
1671
+ </li>
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+ <li class="md-nav__item md-nav__item--nested">
1683
+
1684
+
1685
+
1686
+
1687
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1688
+
1689
+
1690
+
1691
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1692
+ DCIM
1693
+ <span class="md-nav__icon md-icon"></span>
1694
+ </label>
1695
+
1696
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1697
+ <label class="md-nav__title" for="__nav_2_8_2">
1698
+ <span class="md-nav__icon md-icon"></span>
1699
+ DCIM
1700
+ </label>
1701
+ <ul class="md-nav__list" data-md-scrollfix>
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+ <li class="md-nav__item">
1709
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1710
+ Cable
1711
+ </a>
1712
+ </li>
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+ <li class="md-nav__item">
1723
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1724
+ Console Port
1725
+ </a>
1726
+ </li>
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+ <li class="md-nav__item">
1737
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1738
+ Console Port Template
1739
+ </a>
1740
+ </li>
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+ <li class="md-nav__item">
1751
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1752
+ Console Server Port
1753
+ </a>
1754
+ </li>
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+ <li class="md-nav__item">
1765
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1766
+ Console Server Port Template
1767
+ </a>
1768
+ </li>
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+ <li class="md-nav__item">
1779
+ <a href="../models/dcim/device.html" class="md-nav__link">
1780
+ Device
1781
+ </a>
1782
+ </li>
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+ <li class="md-nav__item">
1793
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1794
+ Device Bay
1795
+ </a>
1796
+ </li>
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+ <li class="md-nav__item">
1807
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1808
+ Device Bay Template
1809
+ </a>
1810
+ </li>
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+ <li class="md-nav__item">
1821
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1822
+ Device Redundancy Group
1823
+ </a>
1824
+ </li>
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+ <li class="md-nav__item">
1835
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1836
+ Device Type
1837
+ </a>
1838
+ </li>
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+ <li class="md-nav__item">
1849
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1850
+ Front Port
1851
+ </a>
1852
+ </li>
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+ <li class="md-nav__item">
1863
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1864
+ Front Port Template
1865
+ </a>
1866
+ </li>
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+ <li class="md-nav__item">
1877
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1878
+ Interface
1879
+ </a>
1880
+ </li>
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+ <li class="md-nav__item">
1891
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1892
+ Interface Template
1893
+ </a>
1894
+ </li>
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+ <li class="md-nav__item">
1905
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1906
+ Inventory Item
1907
+ </a>
1908
+ </li>
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+ <li class="md-nav__item">
1919
+ <a href="../models/dcim/location.html" class="md-nav__link">
1920
+ Location
1921
+ </a>
1922
+ </li>
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+ <li class="md-nav__item">
1933
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1934
+ Location Type
1935
+ </a>
1936
+ </li>
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+ <li class="md-nav__item">
1947
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1948
+ Manufacturer
1949
+ </a>
1950
+ </li>
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+ <li class="md-nav__item">
1961
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1962
+ Platform
1963
+ </a>
1964
+ </li>
1965
+
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+ <li class="md-nav__item">
1975
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1976
+ Power Feed
1977
+ </a>
1978
+ </li>
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+ <li class="md-nav__item">
1989
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1990
+ Power Outlet
1991
+ </a>
1992
+ </li>
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+ <li class="md-nav__item">
2003
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
2004
+ Power Outlet Template
2005
+ </a>
2006
+ </li>
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+ <li class="md-nav__item">
2017
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
2018
+ Power Panel
2019
+ </a>
2020
+ </li>
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+ <li class="md-nav__item">
2031
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
2032
+ Power Port
2033
+ </a>
2034
+ </li>
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+ <li class="md-nav__item">
2045
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
2046
+ Power Port Template
2047
+ </a>
2048
+ </li>
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+ <li class="md-nav__item">
2059
+ <a href="../models/dcim/rack.html" class="md-nav__link">
2060
+ Rack
2061
+ </a>
2062
+ </li>
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
1026
2069
 
1027
- </li>
1028
-
1029
- </ul>
1030
- </nav>
1031
2070
 
1032
- </li>
1033
-
1034
- </ul>
1035
2071
 
1036
- </nav>
1037
-
2072
+ <li class="md-nav__item">
2073
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
2074
+ Rack Group
2075
+ </a>
1038
2076
  </li>
1039
2077
 
1040
2078
 
@@ -1046,8 +2084,8 @@
1046
2084
 
1047
2085
 
1048
2086
  <li class="md-nav__item">
1049
- <a href="nautobot-shell.html" class="md-nav__link">
1050
- Nautobot Shell
2087
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
2088
+ Rack Reservation
1051
2089
  </a>
1052
2090
  </li>
1053
2091
 
@@ -1060,8 +2098,8 @@
1060
2098
 
1061
2099
 
1062
2100
  <li class="md-nav__item">
1063
- <a href="permissions.html" class="md-nav__link">
1064
- Permissions
2101
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
2102
+ Rear Port
1065
2103
  </a>
1066
2104
  </li>
1067
2105
 
@@ -1074,8 +2112,8 @@
1074
2112
 
1075
2113
 
1076
2114
  <li class="md-nav__item">
1077
- <a href="replicating-nautobot.html" class="md-nav__link">
1078
- Replicating Nautobot
2115
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
2116
+ Rear Port Template
1079
2117
  </a>
1080
2118
  </li>
1081
2119
 
@@ -1088,8 +2126,8 @@
1088
2126
 
1089
2127
 
1090
2128
  <li class="md-nav__item">
1091
- <a href="celery-queues.html" class="md-nav__link">
1092
- Task Queues
2129
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
2130
+ Virtual Chassis
1093
2131
  </a>
1094
2132
  </li>
1095
2133
 
@@ -1114,19 +2152,19 @@
1114
2152
 
1115
2153
 
1116
2154
 
1117
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
2155
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
1118
2156
 
1119
2157
 
1120
2158
 
1121
- <label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
1122
- User Guides
2159
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
2160
+ Extras
1123
2161
  <span class="md-nav__icon md-icon"></span>
1124
2162
  </label>
1125
2163
 
1126
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
1127
- <label class="md-nav__title" for="__nav_2_6">
2164
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
2165
+ <label class="md-nav__title" for="__nav_2_8_3">
1128
2166
  <span class="md-nav__icon md-icon"></span>
1129
- User Guides
2167
+ Extras
1130
2168
  </label>
1131
2169
  <ul class="md-nav__list" data-md-scrollfix>
1132
2170
 
@@ -1136,8 +2174,8 @@
1136
2174
 
1137
2175
 
1138
2176
  <li class="md-nav__item">
1139
- <a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
1140
- Creating Devices
2177
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
2178
+ Config Context
1141
2179
  </a>
1142
2180
  </li>
1143
2181
 
@@ -1150,8 +2188,8 @@
1150
2188
 
1151
2189
 
1152
2190
  <li class="md-nav__item">
1153
- <a href="../user-guides/custom-fields.html" class="md-nav__link">
1154
- Custom Fields
2191
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
2192
+ Config Context Schema
1155
2193
  </a>
1156
2194
  </li>
1157
2195
 
@@ -1164,8 +2202,8 @@
1164
2202
 
1165
2203
 
1166
2204
  <li class="md-nav__item">
1167
- <a href="../user-guides/getting-started/index.html" class="md-nav__link">
1168
- Getting Started In the Web UI
2205
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
2206
+ GraphQL Query
1169
2207
  </a>
1170
2208
  </li>
1171
2209
 
@@ -1178,8 +2216,8 @@
1178
2216
 
1179
2217
 
1180
2218
  <li class="md-nav__item">
1181
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1182
- Git as a Data Source
2219
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2220
+ Image Attachment
1183
2221
  </a>
1184
2222
  </li>
1185
2223
 
@@ -1192,8 +2230,8 @@
1192
2230
 
1193
2231
 
1194
2232
  <li class="md-nav__item">
1195
- <a href="../user-guides/graphql.html" class="md-nav__link">
1196
- GraphQL
2233
+ <a href="../models/extras/job.html" class="md-nav__link">
2234
+ Job
1197
2235
  </a>
1198
2236
  </li>
1199
2237
 
@@ -1206,8 +2244,8 @@
1206
2244
 
1207
2245
 
1208
2246
  <li class="md-nav__item">
1209
- <a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
1210
- Interfaces
2247
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2248
+ Job Log Entry
1211
2249
  </a>
1212
2250
  </li>
1213
2251
 
@@ -1220,8 +2258,8 @@
1220
2258
 
1221
2259
 
1222
2260
  <li class="md-nav__item">
1223
- <a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
1224
- IP Address Management
2261
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2262
+ Job Result
1225
2263
  </a>
1226
2264
  </li>
1227
2265
 
@@ -1234,8 +2272,8 @@
1234
2272
 
1235
2273
 
1236
2274
  <li class="md-nav__item">
1237
- <a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
1238
- Platforms
2275
+ <a href="../models/extras/role.html" class="md-nav__link">
2276
+ Role
1239
2277
  </a>
1240
2278
  </li>
1241
2279
 
@@ -1248,8 +2286,8 @@
1248
2286
 
1249
2287
 
1250
2288
  <li class="md-nav__item">
1251
- <a href="../user-guides/getting-started/regions.html" class="md-nav__link">
1252
- Regions
2289
+ <a href="../models/extras/secret.html" class="md-nav__link">
2290
+ Secret
1253
2291
  </a>
1254
2292
  </li>
1255
2293
 
@@ -1262,8 +2300,56 @@
1262
2300
 
1263
2301
 
1264
2302
  <li class="md-nav__item">
1265
- <a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
1266
- Tenants
2303
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2304
+ Secrets group
2305
+ </a>
2306
+ </li>
2307
+
2308
+
2309
+
2310
+
2311
+ </ul>
2312
+ </nav>
2313
+ </li>
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+ <li class="md-nav__item md-nav__item--nested">
2325
+
2326
+
2327
+
2328
+
2329
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2330
+
2331
+
2332
+
2333
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2334
+ IPAM
2335
+ <span class="md-nav__icon md-icon"></span>
2336
+ </label>
2337
+
2338
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2339
+ <label class="md-nav__title" for="__nav_2_8_4">
2340
+ <span class="md-nav__icon md-icon"></span>
2341
+ IPAM
2342
+ </label>
2343
+ <ul class="md-nav__list" data-md-scrollfix>
2344
+
2345
+
2346
+
2347
+
2348
+
2349
+
2350
+ <li class="md-nav__item">
2351
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2352
+ IP Address
1267
2353
  </a>
1268
2354
  </li>
1269
2355
 
@@ -1276,8 +2362,8 @@
1276
2362
 
1277
2363
 
1278
2364
  <li class="md-nav__item">
1279
- <a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
1280
- The Search Bar
2365
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2366
+ Prefix
1281
2367
  </a>
1282
2368
  </li>
1283
2369
 
@@ -1290,8 +2376,8 @@
1290
2376
 
1291
2377
 
1292
2378
  <li class="md-nav__item">
1293
- <a href="../user-guides/git-data-source.html" class="md-nav__link">
1294
- Git as a Data Source
2379
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2380
+ Rir
1295
2381
  </a>
1296
2382
  </li>
1297
2383
 
@@ -1304,8 +2390,8 @@
1304
2390
 
1305
2391
 
1306
2392
  <li class="md-nav__item">
1307
- <a href="../user-guides/graphql.html" class="md-nav__link">
1308
- GraphQL
2393
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2394
+ Route Target
1309
2395
  </a>
1310
2396
  </li>
1311
2397
 
@@ -1318,8 +2404,8 @@
1318
2404
 
1319
2405
 
1320
2406
  <li class="md-nav__item">
1321
- <a href="../user-guides/relationships.html" class="md-nav__link">
1322
- Relationships
2407
+ <a href="../models/ipam/service.html" class="md-nav__link">
2408
+ Service
1323
2409
  </a>
1324
2410
  </li>
1325
2411
 
@@ -1332,8 +2418,8 @@
1332
2418
 
1333
2419
 
1334
2420
  <li class="md-nav__item">
1335
- <a href="../user-guides/s3-django-storage.html" class="md-nav__link">
1336
- Django Storages with S3
2421
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2422
+ VLAN
1337
2423
  </a>
1338
2424
  </li>
1339
2425
 
@@ -1346,8 +2432,22 @@
1346
2432
 
1347
2433
 
1348
2434
  <li class="md-nav__item">
1349
- <a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
1350
- VLANS and VLAN Groups
2435
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2436
+ VLAN Group
2437
+ </a>
2438
+ </li>
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+ <li class="md-nav__item">
2449
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2450
+ VRF
1351
2451
  </a>
1352
2452
  </li>
1353
2453
 
@@ -1372,19 +2472,19 @@
1372
2472
 
1373
2473
 
1374
2474
 
1375
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
2475
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
1376
2476
 
1377
2477
 
1378
2478
 
1379
- <label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
1380
- Core Functionality
2479
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2480
+ Tenancy
1381
2481
  <span class="md-nav__icon md-icon"></span>
1382
2482
  </label>
1383
2483
 
1384
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
1385
- <label class="md-nav__title" for="__nav_2_7">
2484
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2485
+ <label class="md-nav__title" for="__nav_2_8_5">
1386
2486
  <span class="md-nav__icon md-icon"></span>
1387
- Core Functionality
2487
+ Tenancy
1388
2488
  </label>
1389
2489
  <ul class="md-nav__list" data-md-scrollfix>
1390
2490
 
@@ -1394,8 +2494,8 @@
1394
2494
 
1395
2495
 
1396
2496
  <li class="md-nav__item">
1397
- <a href="../core-functionality/circuits.html" class="md-nav__link">
1398
- Circuits
2497
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2498
+ Tenant
1399
2499
  </a>
1400
2500
  </li>
1401
2501
 
@@ -1408,27 +2508,47 @@
1408
2508
 
1409
2509
 
1410
2510
  <li class="md-nav__item">
1411
- <a href="../core-functionality/devices.html" class="md-nav__link">
1412
- Devices and Cabling
2511
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2512
+ Tenant Group
1413
2513
  </a>
1414
2514
  </li>
1415
2515
 
1416
2516
 
1417
2517
 
1418
2518
 
2519
+ </ul>
2520
+ </nav>
2521
+ </li>
2522
+
2523
+
2524
+
2525
+
1419
2526
 
1420
2527
 
1421
2528
 
1422
2529
 
1423
2530
 
1424
- <li class="md-nav__item">
1425
- <a href="../core-functionality/device-types.html" class="md-nav__link">
1426
- Device Types
1427
- </a>
1428
- </li>
1429
-
1430
-
1431
-
2531
+
2532
+ <li class="md-nav__item md-nav__item--nested">
2533
+
2534
+
2535
+
2536
+
2537
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2538
+
2539
+
2540
+
2541
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2542
+ Users
2543
+ <span class="md-nav__icon md-icon"></span>
2544
+ </label>
2545
+
2546
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2547
+ <label class="md-nav__title" for="__nav_2_8_6">
2548
+ <span class="md-nav__icon md-icon"></span>
2549
+ Users
2550
+ </label>
2551
+ <ul class="md-nav__list" data-md-scrollfix>
1432
2552
 
1433
2553
 
1434
2554
 
@@ -1436,8 +2556,8 @@
1436
2556
 
1437
2557
 
1438
2558
  <li class="md-nav__item">
1439
- <a href="../core-functionality/ipam.html" class="md-nav__link">
1440
- IP Address Management
2559
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2560
+ Object Permission
1441
2561
  </a>
1442
2562
  </li>
1443
2563
 
@@ -1450,27 +2570,47 @@
1450
2570
 
1451
2571
 
1452
2572
  <li class="md-nav__item">
1453
- <a href="../core-functionality/power.html" class="md-nav__link">
1454
- Power Tracking
2573
+ <a href="../models/users/token.html" class="md-nav__link">
2574
+ Token
1455
2575
  </a>
1456
2576
  </li>
1457
2577
 
1458
2578
 
1459
2579
 
1460
2580
 
2581
+ </ul>
2582
+ </nav>
2583
+ </li>
2584
+
2585
+
2586
+
2587
+
1461
2588
 
1462
2589
 
1463
2590
 
1464
2591
 
1465
2592
 
1466
- <li class="md-nav__item">
1467
- <a href="../core-functionality/secrets.html" class="md-nav__link">
1468
- Secrets
1469
- </a>
1470
- </li>
1471
-
1472
-
1473
-
2593
+
2594
+ <li class="md-nav__item md-nav__item--nested">
2595
+
2596
+
2597
+
2598
+
2599
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2600
+
2601
+
2602
+
2603
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2604
+ Virtualization
2605
+ <span class="md-nav__icon md-icon"></span>
2606
+ </label>
2607
+
2608
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2609
+ <label class="md-nav__title" for="__nav_2_8_7">
2610
+ <span class="md-nav__icon md-icon"></span>
2611
+ Virtualization
2612
+ </label>
2613
+ <ul class="md-nav__list" data-md-scrollfix>
1474
2614
 
1475
2615
 
1476
2616
 
@@ -1478,8 +2618,8 @@
1478
2618
 
1479
2619
 
1480
2620
  <li class="md-nav__item">
1481
- <a href="../core-functionality/services.html" class="md-nav__link">
1482
- Service Mapping
2621
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2622
+ Cluster
1483
2623
  </a>
1484
2624
  </li>
1485
2625
 
@@ -1492,8 +2632,8 @@
1492
2632
 
1493
2633
 
1494
2634
  <li class="md-nav__item">
1495
- <a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
1496
- Sites, Locations, and Racks
2635
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2636
+ Cluster Group
1497
2637
  </a>
1498
2638
  </li>
1499
2639
 
@@ -1506,8 +2646,8 @@
1506
2646
 
1507
2647
 
1508
2648
  <li class="md-nav__item">
1509
- <a href="../core-functionality/tenancy.html" class="md-nav__link">
1510
- Tenancy
2649
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2650
+ Cluster Type
1511
2651
  </a>
1512
2652
  </li>
1513
2653
 
@@ -1520,8 +2660,8 @@
1520
2660
 
1521
2661
 
1522
2662
  <li class="md-nav__item">
1523
- <a href="../core-functionality/virtualization.html" class="md-nav__link">
1524
- Virtualization
2663
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2664
+ Virtual Machine
1525
2665
  </a>
1526
2666
  </li>
1527
2667
 
@@ -1534,8 +2674,8 @@
1534
2674
 
1535
2675
 
1536
2676
  <li class="md-nav__item">
1537
- <a href="../core-functionality/vlans.html" class="md-nav__link">
1538
- VLAN Management
2677
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2678
+ VM Interface
1539
2679
  </a>
1540
2680
  </li>
1541
2681
 
@@ -1549,6 +2689,13 @@
1549
2689
 
1550
2690
 
1551
2691
 
2692
+ </ul>
2693
+ </nav>
2694
+ </li>
2695
+
2696
+
2697
+
2698
+
1552
2699
 
1553
2700
 
1554
2701
 
@@ -1560,17 +2707,17 @@
1560
2707
 
1561
2708
 
1562
2709
 
1563
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
2710
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
1564
2711
 
1565
2712
 
1566
2713
 
1567
- <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
2714
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1568
2715
  Additional Features
1569
2716
  <span class="md-nav__icon md-icon"></span>
1570
2717
  </label>
1571
2718
 
1572
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1573
- <label class="md-nav__title" for="__nav_2_8">
2719
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2720
+ <label class="md-nav__title" for="__nav_2_9">
1574
2721
  <span class="md-nav__icon md-icon"></span>
1575
2722
  Additional Features
1576
2723
  </label>
@@ -1902,17 +3049,17 @@
1902
3049
 
1903
3050
 
1904
3051
 
1905
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
3052
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1906
3053
 
1907
3054
 
1908
3055
 
1909
- <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
3056
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1910
3057
  REST API
1911
3058
  <span class="md-nav__icon md-icon"></span>
1912
3059
  </label>
1913
3060
 
1914
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
1915
- <label class="md-nav__title" for="__nav_2_9">
3061
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
3062
+ <label class="md-nav__title" for="__nav_2_10">
1916
3063
  <span class="md-nav__icon md-icon"></span>
1917
3064
  REST API
1918
3065
  </label>
@@ -1960,6 +3107,20 @@
1960
3107
 
1961
3108
 
1962
3109
 
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+ <li class="md-nav__item">
3116
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
3117
+ UI Endpoints
3118
+ </a>
3119
+ </li>
3120
+
3121
+
3122
+
3123
+
1963
3124
  </ul>
1964
3125
  </nav>
1965
3126
  </li>
@@ -1978,17 +3139,17 @@
1978
3139
 
1979
3140
 
1980
3141
 
1981
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
3142
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
1982
3143
 
1983
3144
 
1984
3145
 
1985
- <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
3146
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1986
3147
  GraphQL API
1987
3148
  <span class="md-nav__icon md-icon"></span>
1988
3149
  </label>
1989
3150
 
1990
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
1991
- <label class="md-nav__title" for="__nav_2_10">
3151
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
3152
+ <label class="md-nav__title" for="__nav_2_11">
1992
3153
  <span class="md-nav__icon md-icon"></span>
1993
3154
  GraphQL API
1994
3155
  </label>
@@ -3060,13 +4221,6 @@
3060
4221
  init
3061
4222
  </a>
3062
4223
 
3063
- </li>
3064
-
3065
- <li class="md-nav__item">
3066
- <a href="#invalidate" class="md-nav__link">
3067
- invalidate
3068
- </a>
3069
-
3070
4224
  </li>
3071
4225
 
3072
4226
  <li class="md-nav__item">
@@ -3377,16 +4531,6 @@ String to use as a random generator seed for reproducible results.</p>
3377
4531
  <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>Configuration file created at &#39;/home/example/.nautobot/nautobot_config.py
3378
4532
  </code></pre></div>
3379
4533
  <p>For more information on configuring Nautobot for the first time or on more advanced configuration patterns, please see the guide on <a href="../configuration/index.html">Nautobot Configuration</a>.</p>
3380
- <h3 id="invalidate"><code>invalidate</code><a class="headerlink" href="#invalidate" title="Permanent link">&para;</a></h3>
3381
- <p><code>nautobot-server invalidate</code></p>
3382
- <p>Invalidates cache for entire app, model or particular instance. Most commonly you will see us recommend clearing the entire cache using <code>invalidate all</code>:</p>
3383
- <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>nautobot-server invalidate all
3384
- </code></pre></div>
3385
- <p>There are a number of other options not covered here.</p>
3386
- <div class="admonition note">
3387
- <p class="admonition-title">Note</p>
3388
- <p>This is a built-in management command provided by the <a href="https://github.com/Suor/django-cacheops">Cacheops plugin</a> Nautobot for caching. Please see the official <a href="https://github.com/Suor/django-cacheops#invalidation">Cacheops documentation on <code>invalidate</code></a> for more information.</p>
3389
- </div>
3390
4534
  <h3 id="loaddata"><code>loaddata</code><a class="headerlink" href="#loaddata" title="Permanent link">&para;</a></h3>
3391
4535
  <p><code>nautobot-server loaddata --traceback nautobot_dump.json</code></p>
3392
4536
  <p>To import the data that was exported with <code>nautobot-server dumpdata ...</code> see the following documentation:</p>
@@ -3397,17 +4541,17 @@ String to use as a random generator seed for reproducible results.</p>
3397
4541
  <h3 id="migrate"><code>migrate</code><a class="headerlink" href="#migrate" title="Permanent link">&para;</a></h3>
3398
4542
  <p><code>nautobot-server migrate [app_label] [migration_name]</code></p>
3399
4543
  <p>Initialize a new database or run any pending database migrations to an existing database.</p>
3400
- <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>nautobot-server migrate
4544
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>nautobot-server migrate
3401
4545
  </code></pre></div>
3402
4546
  <p>Output:</p>
3403
- <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>Wrapping model clean methods for custom validators failed because the ContentType table was not available or populated. This is normal during the execution of the migration command for the first time.
3404
- <a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a>Operations to perform:
3405
- <a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
3406
- <a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a>Running migrations:
3407
- <a id="__codelineno-23-5" name="__codelineno-23-5" href="#__codelineno-23-5"></a> Applying contenttypes.0001_initial... OK
3408
- <a id="__codelineno-23-6" name="__codelineno-23-6" href="#__codelineno-23-6"></a> Applying auth.0001_initial... OK
3409
- <a id="__codelineno-23-7" name="__codelineno-23-7" href="#__codelineno-23-7"></a> Applying admin.0001_initial... OK
3410
- <a id="__codelineno-23-8" name="__codelineno-23-8" href="#__codelineno-23-8"></a>... (truncated for brevity of documentation) ...
4547
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>Wrapping model clean methods for custom validators failed because the ContentType table was not available or populated. This is normal during the execution of the migration command for the first time.
4548
+ <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>Operations to perform:
4549
+ <a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
4550
+ <a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a>Running migrations:
4551
+ <a id="__codelineno-22-5" name="__codelineno-22-5" href="#__codelineno-22-5"></a> Applying contenttypes.0001_initial... OK
4552
+ <a id="__codelineno-22-6" name="__codelineno-22-6" href="#__codelineno-22-6"></a> Applying auth.0001_initial... OK
4553
+ <a id="__codelineno-22-7" name="__codelineno-22-7" href="#__codelineno-22-7"></a> Applying admin.0001_initial... OK
4554
+ <a id="__codelineno-22-8" name="__codelineno-22-8" href="#__codelineno-22-8"></a>... (truncated for brevity of documentation) ...
3411
4555
  </code></pre></div>
3412
4556
  <div class="admonition note">
3413
4557
  <p class="admonition-title">Note</p>
@@ -3420,60 +4564,60 @@ String to use as a random generator seed for reproducible results.</p>
3420
4564
  <p class="admonition-title">Danger</p>
3421
4565
  <p>This is an advanced feature that gives you direct access to the Django database models. Use this very cautiously as you can cause irreparable damage to your Nautobot installation.</p>
3422
4566
  </div>
3423
- <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>nautobot-server nbshell
4567
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>nautobot-server nbshell
3424
4568
  </code></pre></div>
3425
4569
  <p>Prompt provided:</p>
3426
- <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a># Shell Plus Model Imports
3427
- <a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a>from constance.backends.database.models import Constance
3428
- <a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a>from django.contrib.admin.models import LogEntry
3429
- <a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a>from django.contrib.auth.models import Group, Permission
3430
- <a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a>from django.contrib.contenttypes.models import ContentType
3431
- <a id="__codelineno-25-6" name="__codelineno-25-6" href="#__codelineno-25-6"></a>from django.contrib.sessions.models import Session
3432
- <a id="__codelineno-25-7" name="__codelineno-25-7" href="#__codelineno-25-7"></a>from django_celery_beat.models import ClockedSchedule, CrontabSchedule, IntervalSchedule, PeriodicTask, PeriodicTasks, SolarSchedule
3433
- <a id="__codelineno-25-8" name="__codelineno-25-8" href="#__codelineno-25-8"></a>from django_celery_results.models import ChordCounter, GroupResult, TaskResult
3434
- <a id="__codelineno-25-9" name="__codelineno-25-9" href="#__codelineno-25-9"></a>from example_plugin.models import AnotherExampleModel, ExampleModel
3435
- <a id="__codelineno-25-10" name="__codelineno-25-10" href="#__codelineno-25-10"></a>from nautobot.circuits.models import Circuit, CircuitTermination, CircuitType, Provider, ProviderNetwork
3436
- <a id="__codelineno-25-11" name="__codelineno-25-11" href="#__codelineno-25-11"></a>from nautobot.dcim.models.cables import Cable, CablePath
3437
- <a id="__codelineno-25-12" name="__codelineno-25-12" href="#__codelineno-25-12"></a>from nautobot.dcim.models.device_component_templates import ConsolePortTemplate, ConsoleServerPortTemplate, DeviceBayTemplate, FrontPortTemplate, InterfaceTemplate, PowerOutletTemplate, PowerPortTemplate, RearPortTemplate
3438
- <a id="__codelineno-25-13" name="__codelineno-25-13" href="#__codelineno-25-13"></a>from nautobot.dcim.models.device_components import ConsolePort, ConsoleServerPort, DeviceBay, FrontPort, Interface, InventoryItem, PowerOutlet, PowerPort, RearPort
3439
- <a id="__codelineno-25-14" name="__codelineno-25-14" href="#__codelineno-25-14"></a>from nautobot.dcim.models.devices import Device, DeviceRedundancyGroup, DeviceType, Manufacturer, Platform, VirtualChassis
3440
- <a id="__codelineno-25-15" name="__codelineno-25-15" href="#__codelineno-25-15"></a>from nautobot.dcim.models.locations import Location, LocationType
3441
- <a id="__codelineno-25-16" name="__codelineno-25-16" href="#__codelineno-25-16"></a>from nautobot.dcim.models.power import PowerFeed, PowerPanel
3442
- <a id="__codelineno-25-17" name="__codelineno-25-17" href="#__codelineno-25-17"></a>from nautobot.dcim.models.racks import Rack, RackGroup, RackReservation
3443
- <a id="__codelineno-25-18" name="__codelineno-25-18" href="#__codelineno-25-18"></a>from nautobot.dcim.models.sites import Region, Site
3444
- <a id="__codelineno-25-19" name="__codelineno-25-19" href="#__codelineno-25-19"></a>from nautobot.extras.models.change_logging import ObjectChange
3445
- <a id="__codelineno-25-20" name="__codelineno-25-20" href="#__codelineno-25-20"></a>from nautobot.extras.models.customfields import ComputedField, CustomField, CustomFieldChoice
3446
- <a id="__codelineno-25-21" name="__codelineno-25-21" href="#__codelineno-25-21"></a>from nautobot.extras.models.datasources import GitRepository
3447
- <a id="__codelineno-25-22" name="__codelineno-25-22" href="#__codelineno-25-22"></a>from nautobot.extras.models.groups import DynamicGroup, DynamicGroupMembership
3448
- <a id="__codelineno-25-23" name="__codelineno-25-23" href="#__codelineno-25-23"></a>from nautobot.extras.models.jobs import Job, JobHook, JobLogEntry, JobResult, ScheduledJob, ScheduledJobs
3449
- <a id="__codelineno-25-24" name="__codelineno-25-24" href="#__codelineno-25-24"></a>from nautobot.extras.models.models import ConfigContext, ConfigContextSchema, CustomLink, ExportTemplate, FileAttachment, FileProxy, GraphQLQuery, HealthCheckTestModel, ImageAttachment, Note, Webhook
3450
- <a id="__codelineno-25-25" name="__codelineno-25-25" href="#__codelineno-25-25"></a>from nautobot.extras.models.relationships import Relationship, RelationshipAssociation
3451
- <a id="__codelineno-25-26" name="__codelineno-25-26" href="#__codelineno-25-26"></a>from nautobot.extras.models.roles import Role
3452
- <a id="__codelineno-25-27" name="__codelineno-25-27" href="#__codelineno-25-27"></a>from nautobot.extras.models.secrets import Secret, SecretsGroup, SecretsGroupAssociation
3453
- <a id="__codelineno-25-28" name="__codelineno-25-28" href="#__codelineno-25-28"></a>from nautobot.extras.models.statuses import Status
3454
- <a id="__codelineno-25-29" name="__codelineno-25-29" href="#__codelineno-25-29"></a>from nautobot.extras.models.tags import Tag, TaggedItem
3455
- <a id="__codelineno-25-30" name="__codelineno-25-30" href="#__codelineno-25-30"></a>from nautobot.ipam.models import IPAddress, Prefix, RIR, RouteTarget, Service, VLAN, VLANGroup, VRF
3456
- <a id="__codelineno-25-31" name="__codelineno-25-31" href="#__codelineno-25-31"></a>from nautobot.tenancy.models import Tenant, TenantGroup
3457
- <a id="__codelineno-25-32" name="__codelineno-25-32" href="#__codelineno-25-32"></a>from nautobot.users.models import AdminGroup, ObjectPermission, Token, User
3458
- <a id="__codelineno-25-33" name="__codelineno-25-33" href="#__codelineno-25-33"></a>from nautobot.virtualization.models import Cluster, ClusterGroup, ClusterType, VMInterface, VirtualMachine
3459
- <a id="__codelineno-25-34" name="__codelineno-25-34" href="#__codelineno-25-34"></a>from social_django.models import Association, Code, Nonce, Partial, UserSocialAuth
3460
- <a id="__codelineno-25-35" name="__codelineno-25-35" href="#__codelineno-25-35"></a># Shell Plus Django Imports
3461
- <a id="__codelineno-25-36" name="__codelineno-25-36" href="#__codelineno-25-36"></a>from django.core.cache import cache
3462
- <a id="__codelineno-25-37" name="__codelineno-25-37" href="#__codelineno-25-37"></a>from django.conf import settings
3463
- <a id="__codelineno-25-38" name="__codelineno-25-38" href="#__codelineno-25-38"></a>from django.contrib.auth import get_user_model
3464
- <a id="__codelineno-25-39" name="__codelineno-25-39" href="#__codelineno-25-39"></a>from django.db import transaction
3465
- <a id="__codelineno-25-40" name="__codelineno-25-40" href="#__codelineno-25-40"></a>from django.db.models import Avg, Case, Count, F, Max, Min, Prefetch, Q, Sum, When
3466
- <a id="__codelineno-25-41" name="__codelineno-25-41" href="#__codelineno-25-41"></a>from django.utils import timezone
3467
- <a id="__codelineno-25-42" name="__codelineno-25-42" href="#__codelineno-25-42"></a>from django.urls import reverse
3468
- <a id="__codelineno-25-43" name="__codelineno-25-43" href="#__codelineno-25-43"></a>from django.db.models import Exists, OuterRef, Subquery
3469
- <a id="__codelineno-25-44" name="__codelineno-25-44" href="#__codelineno-25-44"></a># Django version 3.2.18
3470
- <a id="__codelineno-25-45" name="__codelineno-25-45" href="#__codelineno-25-45"></a># Nautobot version 2.0.0a2
3471
- <a id="__codelineno-25-46" name="__codelineno-25-46" href="#__codelineno-25-46"></a># Example Nautobot App version 1.0.0
3472
- <a id="__codelineno-25-47" name="__codelineno-25-47" href="#__codelineno-25-47"></a>Python 3.8.16 (default, Mar 23 2023, 04:48:11)
3473
- <a id="__codelineno-25-48" name="__codelineno-25-48" href="#__codelineno-25-48"></a>[GCC 10.2.1 20210110] on linux
3474
- <a id="__codelineno-25-49" name="__codelineno-25-49" href="#__codelineno-25-49"></a>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
3475
- <a id="__codelineno-25-50" name="__codelineno-25-50" href="#__codelineno-25-50"></a>(InteractiveConsole)
3476
- <a id="__codelineno-25-51" name="__codelineno-25-51" href="#__codelineno-25-51"></a>&gt;&gt;&gt;
4570
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a># Shell Plus Model Imports
4571
+ <a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a>from constance.backends.database.models import Constance
4572
+ <a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a>from django.contrib.admin.models import LogEntry
4573
+ <a id="__codelineno-24-4" name="__codelineno-24-4" href="#__codelineno-24-4"></a>from django.contrib.auth.models import Group, Permission
4574
+ <a id="__codelineno-24-5" name="__codelineno-24-5" href="#__codelineno-24-5"></a>from django.contrib.contenttypes.models import ContentType
4575
+ <a id="__codelineno-24-6" name="__codelineno-24-6" href="#__codelineno-24-6"></a>from django.contrib.sessions.models import Session
4576
+ <a id="__codelineno-24-7" name="__codelineno-24-7" href="#__codelineno-24-7"></a>from django_celery_beat.models import ClockedSchedule, CrontabSchedule, IntervalSchedule, PeriodicTask, PeriodicTasks, SolarSchedule
4577
+ <a id="__codelineno-24-8" name="__codelineno-24-8" href="#__codelineno-24-8"></a>from django_celery_results.models import ChordCounter, GroupResult, TaskResult
4578
+ <a id="__codelineno-24-9" name="__codelineno-24-9" href="#__codelineno-24-9"></a>from example_plugin.models import AnotherExampleModel, ExampleModel
4579
+ <a id="__codelineno-24-10" name="__codelineno-24-10" href="#__codelineno-24-10"></a>from nautobot.circuits.models import Circuit, CircuitTermination, CircuitType, Provider, ProviderNetwork
4580
+ <a id="__codelineno-24-11" name="__codelineno-24-11" href="#__codelineno-24-11"></a>from nautobot.dcim.models.cables import Cable, CablePath
4581
+ <a id="__codelineno-24-12" name="__codelineno-24-12" href="#__codelineno-24-12"></a>from nautobot.dcim.models.device_component_templates import ConsolePortTemplate, ConsoleServerPortTemplate, DeviceBayTemplate, FrontPortTemplate, InterfaceTemplate, PowerOutletTemplate, PowerPortTemplate, RearPortTemplate
4582
+ <a id="__codelineno-24-13" name="__codelineno-24-13" href="#__codelineno-24-13"></a>from nautobot.dcim.models.device_components import ConsolePort, ConsoleServerPort, DeviceBay, FrontPort, Interface, InventoryItem, PowerOutlet, PowerPort, RearPort
4583
+ <a id="__codelineno-24-14" name="__codelineno-24-14" href="#__codelineno-24-14"></a>from nautobot.dcim.models.devices import Device, DeviceRedundancyGroup, DeviceType, Manufacturer, Platform, VirtualChassis
4584
+ <a id="__codelineno-24-15" name="__codelineno-24-15" href="#__codelineno-24-15"></a>from nautobot.dcim.models.locations import Location, LocationType
4585
+ <a id="__codelineno-24-16" name="__codelineno-24-16" href="#__codelineno-24-16"></a>from nautobot.dcim.models.power import PowerFeed, PowerPanel
4586
+ <a id="__codelineno-24-17" name="__codelineno-24-17" href="#__codelineno-24-17"></a>from nautobot.dcim.models.racks import Rack, RackGroup, RackReservation
4587
+ <a id="__codelineno-24-18" name="__codelineno-24-18" href="#__codelineno-24-18"></a>from nautobot.dcim.models.sites import Region, Site
4588
+ <a id="__codelineno-24-19" name="__codelineno-24-19" href="#__codelineno-24-19"></a>from nautobot.extras.models.change_logging import ObjectChange
4589
+ <a id="__codelineno-24-20" name="__codelineno-24-20" href="#__codelineno-24-20"></a>from nautobot.extras.models.customfields import ComputedField, CustomField, CustomFieldChoice
4590
+ <a id="__codelineno-24-21" name="__codelineno-24-21" href="#__codelineno-24-21"></a>from nautobot.extras.models.datasources import GitRepository
4591
+ <a id="__codelineno-24-22" name="__codelineno-24-22" href="#__codelineno-24-22"></a>from nautobot.extras.models.groups import DynamicGroup, DynamicGroupMembership
4592
+ <a id="__codelineno-24-23" name="__codelineno-24-23" href="#__codelineno-24-23"></a>from nautobot.extras.models.jobs import Job, JobHook, JobLogEntry, JobResult, ScheduledJob, ScheduledJobs
4593
+ <a id="__codelineno-24-24" name="__codelineno-24-24" href="#__codelineno-24-24"></a>from nautobot.extras.models.models import ConfigContext, ConfigContextSchema, CustomLink, ExportTemplate, FileAttachment, FileProxy, GraphQLQuery, HealthCheckTestModel, ImageAttachment, Note, Webhook
4594
+ <a id="__codelineno-24-25" name="__codelineno-24-25" href="#__codelineno-24-25"></a>from nautobot.extras.models.relationships import Relationship, RelationshipAssociation
4595
+ <a id="__codelineno-24-26" name="__codelineno-24-26" href="#__codelineno-24-26"></a>from nautobot.extras.models.roles import Role
4596
+ <a id="__codelineno-24-27" name="__codelineno-24-27" href="#__codelineno-24-27"></a>from nautobot.extras.models.secrets import Secret, SecretsGroup, SecretsGroupAssociation
4597
+ <a id="__codelineno-24-28" name="__codelineno-24-28" href="#__codelineno-24-28"></a>from nautobot.extras.models.statuses import Status
4598
+ <a id="__codelineno-24-29" name="__codelineno-24-29" href="#__codelineno-24-29"></a>from nautobot.extras.models.tags import Tag, TaggedItem
4599
+ <a id="__codelineno-24-30" name="__codelineno-24-30" href="#__codelineno-24-30"></a>from nautobot.ipam.models import IPAddress, Prefix, RIR, RouteTarget, Service, VLAN, VLANGroup, VRF
4600
+ <a id="__codelineno-24-31" name="__codelineno-24-31" href="#__codelineno-24-31"></a>from nautobot.tenancy.models import Tenant, TenantGroup
4601
+ <a id="__codelineno-24-32" name="__codelineno-24-32" href="#__codelineno-24-32"></a>from nautobot.users.models import AdminGroup, ObjectPermission, Token, User
4602
+ <a id="__codelineno-24-33" name="__codelineno-24-33" href="#__codelineno-24-33"></a>from nautobot.virtualization.models import Cluster, ClusterGroup, ClusterType, VMInterface, VirtualMachine
4603
+ <a id="__codelineno-24-34" name="__codelineno-24-34" href="#__codelineno-24-34"></a>from social_django.models import Association, Code, Nonce, Partial, UserSocialAuth
4604
+ <a id="__codelineno-24-35" name="__codelineno-24-35" href="#__codelineno-24-35"></a># Shell Plus Django Imports
4605
+ <a id="__codelineno-24-36" name="__codelineno-24-36" href="#__codelineno-24-36"></a>from django.core.cache import cache
4606
+ <a id="__codelineno-24-37" name="__codelineno-24-37" href="#__codelineno-24-37"></a>from django.conf import settings
4607
+ <a id="__codelineno-24-38" name="__codelineno-24-38" href="#__codelineno-24-38"></a>from django.contrib.auth import get_user_model
4608
+ <a id="__codelineno-24-39" name="__codelineno-24-39" href="#__codelineno-24-39"></a>from django.db import transaction
4609
+ <a id="__codelineno-24-40" name="__codelineno-24-40" href="#__codelineno-24-40"></a>from django.db.models import Avg, Case, Count, F, Max, Min, Prefetch, Q, Sum, When
4610
+ <a id="__codelineno-24-41" name="__codelineno-24-41" href="#__codelineno-24-41"></a>from django.utils import timezone
4611
+ <a id="__codelineno-24-42" name="__codelineno-24-42" href="#__codelineno-24-42"></a>from django.urls import reverse
4612
+ <a id="__codelineno-24-43" name="__codelineno-24-43" href="#__codelineno-24-43"></a>from django.db.models import Exists, OuterRef, Subquery
4613
+ <a id="__codelineno-24-44" name="__codelineno-24-44" href="#__codelineno-24-44"></a># Django version 3.2.18
4614
+ <a id="__codelineno-24-45" name="__codelineno-24-45" href="#__codelineno-24-45"></a># Nautobot version 2.0.0a2
4615
+ <a id="__codelineno-24-46" name="__codelineno-24-46" href="#__codelineno-24-46"></a># Example Nautobot App version 1.0.0
4616
+ <a id="__codelineno-24-47" name="__codelineno-24-47" href="#__codelineno-24-47"></a>Python 3.8.16 (default, Mar 23 2023, 04:48:11)
4617
+ <a id="__codelineno-24-48" name="__codelineno-24-48" href="#__codelineno-24-48"></a>[GCC 10.2.1 20210110] on linux
4618
+ <a id="__codelineno-24-49" name="__codelineno-24-49" href="#__codelineno-24-49"></a>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
4619
+ <a id="__codelineno-24-50" name="__codelineno-24-50" href="#__codelineno-24-50"></a>(InteractiveConsole)
4620
+ <a id="__codelineno-24-51" name="__codelineno-24-51" href="#__codelineno-24-51"></a>&gt;&gt;&gt;
3477
4621
  </code></pre></div>
3478
4622
  <p>Please see the dedicated guide on the <a href="nautobot-shell.html">Nautobot Shell</a> for more information.</p>
3479
4623
  <h3 id="post_upgrade"><code>post_upgrade</code><a class="headerlink" href="#post_upgrade" title="Permanent link">&para;</a></h3>
@@ -3486,52 +4630,55 @@ String to use as a random generator seed for reproducible results.</p>
3486
4630
  <li><code>collectstatic</code></li>
3487
4631
  <li><code>remove_stale_contenttypes</code></li>
3488
4632
  <li><code>clearsessions</code></li>
3489
- <li><code>invalidate all</code></li>
3490
4633
  </ul>
3491
4634
  <div class="admonition note">
3492
4635
  <p class="admonition-title">Note</p>
3493
4636
  <p>Commands listed here that are not covered in this document here are Django built-in commands.</p>
3494
4637
  </div>
4638
+ <div class="admonition version-removed">
4639
+ <p class="admonition-title">Removed in version 2.0.0</p>
4640
+ <p>With the removal of <code>django-cacheops</code> from Nautobot, this command no longer runs <code>invalidate all</code>.</p>
4641
+ </div>
3495
4642
  <p><code>--no-clearsessions</code><br />
3496
4643
  Do not automatically clean out expired sessions.</p>
3497
4644
  <p><code>--no-collectstatic</code><br />
3498
4645
  Do not automatically collect static files into a single location.</p>
3499
- <p><code>--no-invalidate-all</code><br />
3500
- Do not automatically invalidate cache for entire application.</p>
3501
4646
  <p><code>--no-migrate</code><br />
3502
4647
  Do not automatically perform any database migrations.</p>
3503
4648
  <p><code>--no-remove-stale-contenttypes</code><br />
3504
4649
  Do not automatically remove stale content types.</p>
3505
4650
  <p><code>--no-trace-paths</code><br />
3506
4651
  Do not automatically generate missing cable paths.</p>
3507
- <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>nautobot-server post_upgrade
4652
+ <div class="admonition version-removed">
4653
+ <p class="admonition-title">Removed in version 2.0.0</p>
4654
+ <p>With the removal of <code>django-cacheops</code> from Nautobot, the <code>--no-invalidate-all</code> flag was removed from this command.</p>
4655
+ </div>
4656
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>nautobot-server post_upgrade
3508
4657
  </code></pre></div>
3509
4658
  <p>Example Output:</p>
3510
- <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>Performing database migrations...
3511
- <a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a>Operations to perform:
3512
- <a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
3513
- <a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a>Running migrations:
3514
- <a id="__codelineno-27-5" name="__codelineno-27-5" href="#__codelineno-27-5"></a> No migrations to apply.
3515
- <a id="__codelineno-27-6" name="__codelineno-27-6" href="#__codelineno-27-6"></a>
3516
- <a id="__codelineno-27-7" name="__codelineno-27-7" href="#__codelineno-27-7"></a>Generating cable paths...
3517
- <a id="__codelineno-27-8" name="__codelineno-27-8" href="#__codelineno-27-8"></a>Found no missing circuit termination paths; skipping
3518
- <a id="__codelineno-27-9" name="__codelineno-27-9" href="#__codelineno-27-9"></a>Found no missing console port paths; skipping
3519
- <a id="__codelineno-27-10" name="__codelineno-27-10" href="#__codelineno-27-10"></a>Found no missing console server port paths; skipping
3520
- <a id="__codelineno-27-11" name="__codelineno-27-11" href="#__codelineno-27-11"></a>Found no missing interface paths; skipping
3521
- <a id="__codelineno-27-12" name="__codelineno-27-12" href="#__codelineno-27-12"></a>Found no missing power feed paths; skipping
3522
- <a id="__codelineno-27-13" name="__codelineno-27-13" href="#__codelineno-27-13"></a>Found no missing power outlet paths; skipping
3523
- <a id="__codelineno-27-14" name="__codelineno-27-14" href="#__codelineno-27-14"></a>Found no missing power port paths; skipping
3524
- <a id="__codelineno-27-15" name="__codelineno-27-15" href="#__codelineno-27-15"></a>Finished.
3525
- <a id="__codelineno-27-16" name="__codelineno-27-16" href="#__codelineno-27-16"></a>
3526
- <a id="__codelineno-27-17" name="__codelineno-27-17" href="#__codelineno-27-17"></a>Collecting static files...
3527
- <a id="__codelineno-27-18" name="__codelineno-27-18" href="#__codelineno-27-18"></a>
3528
- <a id="__codelineno-27-19" name="__codelineno-27-19" href="#__codelineno-27-19"></a>0 static files copied to &#39;/opt/nautobot/static&#39;, 965 unmodified.
3529
- <a id="__codelineno-27-20" name="__codelineno-27-20" href="#__codelineno-27-20"></a>
3530
- <a id="__codelineno-27-21" name="__codelineno-27-21" href="#__codelineno-27-21"></a>Removing stale content types...
3531
- <a id="__codelineno-27-22" name="__codelineno-27-22" href="#__codelineno-27-22"></a>
3532
- <a id="__codelineno-27-23" name="__codelineno-27-23" href="#__codelineno-27-23"></a>Removing expired sessions...
3533
- <a id="__codelineno-27-24" name="__codelineno-27-24" href="#__codelineno-27-24"></a>
3534
- <a id="__codelineno-27-25" name="__codelineno-27-25" href="#__codelineno-27-25"></a>Invalidating cache...
4659
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>Performing database migrations...
4660
+ <a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a>Operations to perform:
4661
+ <a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a> Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, sessions, taggit, tenancy, users, virtualization
4662
+ <a id="__codelineno-26-4" name="__codelineno-26-4" href="#__codelineno-26-4"></a>Running migrations:
4663
+ <a id="__codelineno-26-5" name="__codelineno-26-5" href="#__codelineno-26-5"></a> No migrations to apply.
4664
+ <a id="__codelineno-26-6" name="__codelineno-26-6" href="#__codelineno-26-6"></a>
4665
+ <a id="__codelineno-26-7" name="__codelineno-26-7" href="#__codelineno-26-7"></a>Generating cable paths...
4666
+ <a id="__codelineno-26-8" name="__codelineno-26-8" href="#__codelineno-26-8"></a>Found no missing circuit termination paths; skipping
4667
+ <a id="__codelineno-26-9" name="__codelineno-26-9" href="#__codelineno-26-9"></a>Found no missing console port paths; skipping
4668
+ <a id="__codelineno-26-10" name="__codelineno-26-10" href="#__codelineno-26-10"></a>Found no missing console server port paths; skipping
4669
+ <a id="__codelineno-26-11" name="__codelineno-26-11" href="#__codelineno-26-11"></a>Found no missing interface paths; skipping
4670
+ <a id="__codelineno-26-12" name="__codelineno-26-12" href="#__codelineno-26-12"></a>Found no missing power feed paths; skipping
4671
+ <a id="__codelineno-26-13" name="__codelineno-26-13" href="#__codelineno-26-13"></a>Found no missing power outlet paths; skipping
4672
+ <a id="__codelineno-26-14" name="__codelineno-26-14" href="#__codelineno-26-14"></a>Found no missing power port paths; skipping
4673
+ <a id="__codelineno-26-15" name="__codelineno-26-15" href="#__codelineno-26-15"></a>Finished.
4674
+ <a id="__codelineno-26-16" name="__codelineno-26-16" href="#__codelineno-26-16"></a>
4675
+ <a id="__codelineno-26-17" name="__codelineno-26-17" href="#__codelineno-26-17"></a>Collecting static files...
4676
+ <a id="__codelineno-26-18" name="__codelineno-26-18" href="#__codelineno-26-18"></a>
4677
+ <a id="__codelineno-26-19" name="__codelineno-26-19" href="#__codelineno-26-19"></a>0 static files copied to &#39;/opt/nautobot/static&#39;, 965 unmodified.
4678
+ <a id="__codelineno-26-20" name="__codelineno-26-20" href="#__codelineno-26-20"></a>
4679
+ <a id="__codelineno-26-21" name="__codelineno-26-21" href="#__codelineno-26-21"></a>Removing stale content types...
4680
+ <a id="__codelineno-26-22" name="__codelineno-26-22" href="#__codelineno-26-22"></a>
4681
+ <a id="__codelineno-26-23" name="__codelineno-26-23" href="#__codelineno-26-23"></a>Removing expired sessions...
3535
4682
  </code></pre></div>
3536
4683
  <h3 id="remove_stale_scheduled_jobs"><code>remove_stale_scheduled_jobs</code><a class="headerlink" href="#remove_stale_scheduled_jobs" title="Permanent link">&para;</a></h3>
3537
4684
  <div class="admonition version-added">
@@ -3543,40 +4690,40 @@ Do not automatically generate missing cable paths.</p>
3543
4690
  <p><code>nautobot-server renaturalize [app_label.ModelName [app_label.ModelName ...]]</code></p>
3544
4691
  <p>Recalculate natural ordering values for the specified models.</p>
3545
4692
  <p>This defaults to recalculating natural ordering on all models which have one or more fields of type <code>NaturalOrderingField</code>:</p>
3546
- <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>nautobot-server renaturalize
4693
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>nautobot-server renaturalize
3547
4694
  </code></pre></div>
3548
4695
  <p>Example output:</p>
3549
- <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>Renaturalizing 21 models.
3550
- <a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a>dcim.ConsolePort.name (_name)... 196
3551
- <a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a>dcim.ConsoleServerPort.name (_name)... 0
3552
- <a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a>dcim.PowerPort.name (_name)... 392
3553
- <a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a>dcim.PowerOutlet.name (_name)... 0
3554
- <a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a>dcim.Interface.name (_name)... 7161
3555
- <a id="__codelineno-29-7" name="__codelineno-29-7" href="#__codelineno-29-7"></a>dcim.FrontPort.name (_name)... 0
3556
- <a id="__codelineno-29-8" name="__codelineno-29-8" href="#__codelineno-29-8"></a>dcim.RearPort.name (_name)... 0
3557
- <a id="__codelineno-29-9" name="__codelineno-29-9" href="#__codelineno-29-9"></a>dcim.DeviceBay.name (_name)... 0
3558
- <a id="__codelineno-29-10" name="__codelineno-29-10" href="#__codelineno-29-10"></a>dcim.InventoryItem.name (_name)... 1
3559
- <a id="__codelineno-29-11" name="__codelineno-29-11" href="#__codelineno-29-11"></a>dcim.Device.name (_name)... 208
3560
- <a id="__codelineno-29-12" name="__codelineno-29-12" href="#__codelineno-29-12"></a>dcim.ConsolePortTemplate.name (_name)... 2
3561
- <a id="__codelineno-29-13" name="__codelineno-29-13" href="#__codelineno-29-13"></a>dcim.ConsoleServerPortTemplate.name (_name)... 0
3562
- <a id="__codelineno-29-14" name="__codelineno-29-14" href="#__codelineno-29-14"></a>dcim.PowerPortTemplate.name (_name)... 4
3563
- <a id="__codelineno-29-15" name="__codelineno-29-15" href="#__codelineno-29-15"></a>dcim.PowerOutletTemplate.name (_name)... 0
3564
- <a id="__codelineno-29-16" name="__codelineno-29-16" href="#__codelineno-29-16"></a>dcim.InterfaceTemplate.name (_name)... 221
3565
- <a id="__codelineno-29-17" name="__codelineno-29-17" href="#__codelineno-29-17"></a>dcim.FrontPortTemplate.name (_name)... 0
3566
- <a id="__codelineno-29-18" name="__codelineno-29-18" href="#__codelineno-29-18"></a>dcim.RearPortTemplate.name (_name)... 0
3567
- <a id="__codelineno-29-19" name="__codelineno-29-19" href="#__codelineno-29-19"></a>dcim.DeviceBayTemplate.name (_name)... 0
3568
- <a id="__codelineno-29-20" name="__codelineno-29-20" href="#__codelineno-29-20"></a>dcim.Rack.name (_name)... 156
3569
- <a id="__codelineno-29-21" name="__codelineno-29-21" href="#__codelineno-29-21"></a>dcim.Site.name (_name)... 22
3570
- <a id="__codelineno-29-22" name="__codelineno-29-22" href="#__codelineno-29-22"></a>virtualization.VMInterface.name (_name)... 0
3571
- <a id="__codelineno-29-23" name="__codelineno-29-23" href="#__codelineno-29-23"></a>Done.
4696
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>Renaturalizing 21 models.
4697
+ <a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a>dcim.ConsolePort.name (_name)... 196
4698
+ <a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a>dcim.ConsoleServerPort.name (_name)... 0
4699
+ <a id="__codelineno-28-4" name="__codelineno-28-4" href="#__codelineno-28-4"></a>dcim.PowerPort.name (_name)... 392
4700
+ <a id="__codelineno-28-5" name="__codelineno-28-5" href="#__codelineno-28-5"></a>dcim.PowerOutlet.name (_name)... 0
4701
+ <a id="__codelineno-28-6" name="__codelineno-28-6" href="#__codelineno-28-6"></a>dcim.Interface.name (_name)... 7161
4702
+ <a id="__codelineno-28-7" name="__codelineno-28-7" href="#__codelineno-28-7"></a>dcim.FrontPort.name (_name)... 0
4703
+ <a id="__codelineno-28-8" name="__codelineno-28-8" href="#__codelineno-28-8"></a>dcim.RearPort.name (_name)... 0
4704
+ <a id="__codelineno-28-9" name="__codelineno-28-9" href="#__codelineno-28-9"></a>dcim.DeviceBay.name (_name)... 0
4705
+ <a id="__codelineno-28-10" name="__codelineno-28-10" href="#__codelineno-28-10"></a>dcim.InventoryItem.name (_name)... 1
4706
+ <a id="__codelineno-28-11" name="__codelineno-28-11" href="#__codelineno-28-11"></a>dcim.Device.name (_name)... 208
4707
+ <a id="__codelineno-28-12" name="__codelineno-28-12" href="#__codelineno-28-12"></a>dcim.ConsolePortTemplate.name (_name)... 2
4708
+ <a id="__codelineno-28-13" name="__codelineno-28-13" href="#__codelineno-28-13"></a>dcim.ConsoleServerPortTemplate.name (_name)... 0
4709
+ <a id="__codelineno-28-14" name="__codelineno-28-14" href="#__codelineno-28-14"></a>dcim.PowerPortTemplate.name (_name)... 4
4710
+ <a id="__codelineno-28-15" name="__codelineno-28-15" href="#__codelineno-28-15"></a>dcim.PowerOutletTemplate.name (_name)... 0
4711
+ <a id="__codelineno-28-16" name="__codelineno-28-16" href="#__codelineno-28-16"></a>dcim.InterfaceTemplate.name (_name)... 221
4712
+ <a id="__codelineno-28-17" name="__codelineno-28-17" href="#__codelineno-28-17"></a>dcim.FrontPortTemplate.name (_name)... 0
4713
+ <a id="__codelineno-28-18" name="__codelineno-28-18" href="#__codelineno-28-18"></a>dcim.RearPortTemplate.name (_name)... 0
4714
+ <a id="__codelineno-28-19" name="__codelineno-28-19" href="#__codelineno-28-19"></a>dcim.DeviceBayTemplate.name (_name)... 0
4715
+ <a id="__codelineno-28-20" name="__codelineno-28-20" href="#__codelineno-28-20"></a>dcim.Rack.name (_name)... 156
4716
+ <a id="__codelineno-28-21" name="__codelineno-28-21" href="#__codelineno-28-21"></a>dcim.Site.name (_name)... 22
4717
+ <a id="__codelineno-28-22" name="__codelineno-28-22" href="#__codelineno-28-22"></a>virtualization.VMInterface.name (_name)... 0
4718
+ <a id="__codelineno-28-23" name="__codelineno-28-23" href="#__codelineno-28-23"></a>Done.
3572
4719
  </code></pre></div>
3573
4720
  <p>You may optionally specify or more specific models (each prefixed with its app_label) to renaturalize:</p>
3574
- <div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>nautobot-server renaturalize dcim.Device
4721
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>nautobot-server renaturalize dcim.Device
3575
4722
  </code></pre></div>
3576
4723
  <p>Example output:</p>
3577
- <div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>Renaturalizing 1 models.
3578
- <a id="__codelineno-31-2" name="__codelineno-31-2" href="#__codelineno-31-2"></a>dcim.Device.name (_name)... 208
3579
- <a id="__codelineno-31-3" name="__codelineno-31-3" href="#__codelineno-31-3"></a>Done.
4724
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>Renaturalizing 1 models.
4725
+ <a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a>dcim.Device.name (_name)... 208
4726
+ <a id="__codelineno-30-3" name="__codelineno-30-3" href="#__codelineno-30-3"></a>Done.
3580
4727
  </code></pre></div>
3581
4728
  <h3 id="runjob"><code>runjob</code><a class="headerlink" href="#runjob" title="Permanent link">&para;</a></h3>
3582
4729
  <p><code>nautobot-server runjob [job]</code></p>
@@ -3585,7 +4732,7 @@ Do not automatically generate missing cable paths.</p>
3585
4732
  Commit changes to DB (defaults to dry-run if unset). <code>--username</code> is mandatory if using this argument.</p>
3586
4733
  <p><code>--username &lt;username&gt;</code><br />
3587
4734
  User account to impersonate as the requester of this job.</p>
3588
- <div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>nautobot-server runjob --commit --username someuser local/example/MyJobWithNoVars
4735
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>nautobot-server runjob --commit --username someuser local/example/MyJobWithNoVars
3589
4736
  </code></pre></div>
3590
4737
  <p>Note that there is presently no option to provide input parameters (<code>data</code>) for jobs via the CLI.</p>
3591
4738
  <p>Please see the <a href="../additional-features/jobs.html">guide on Jobs</a> for more information on working with and running jobs.</p>
@@ -3596,43 +4743,43 @@ User account to impersonate as the requester of this job.</p>
3596
4743
  <p class="admonition-title">Note</p>
3597
4744
  <p>uWSGI offers an overwhelming amount of command-line arguments that could not possibly be covered here. Please see the <a href="https://uwsgi-docs.readthedocs.io/en/latest/Options.html">official uWSGI Options guide</a> for more information.</p>
3598
4745
  </div>
3599
- <div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>nautobot-server start --ini ./uwsgi.ini
4746
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>nautobot-server start --ini ./uwsgi.ini
3600
4747
  </code></pre></div>
3601
4748
  <p>Example output:</p>
3602
- <div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>[uWSGI] getting INI configuration from ./uwsgi.ini
3603
- <a id="__codelineno-34-2" name="__codelineno-34-2" href="#__codelineno-34-2"></a>[uwsgi-static] added mapping for /static =&gt; /opt/nautobot/static
3604
- <a id="__codelineno-34-3" name="__codelineno-34-3" href="#__codelineno-34-3"></a>*** Starting uWSGI 2.0.19.1 (64bit) on [Thu Mar 11 21:13:22 2021] ***
3605
- <a id="__codelineno-34-4" name="__codelineno-34-4" href="#__codelineno-34-4"></a>compiled with version: 8.3.1 20190311 (Red Hat 8.3.1-3) on 23 September 2020 02:39:40
3606
- <a id="__codelineno-34-5" name="__codelineno-34-5" href="#__codelineno-34-5"></a>os: Linux-5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020
3607
- <a id="__codelineno-34-6" name="__codelineno-34-6" href="#__codelineno-34-6"></a>nodename: jathan-nautobot-testing
3608
- <a id="__codelineno-34-7" name="__codelineno-34-7" href="#__codelineno-34-7"></a>machine: x86_64
3609
- <a id="__codelineno-34-8" name="__codelineno-34-8" href="#__codelineno-34-8"></a>clock source: unix
3610
- <a id="__codelineno-34-9" name="__codelineno-34-9" href="#__codelineno-34-9"></a>pcre jit disabled
3611
- <a id="__codelineno-34-10" name="__codelineno-34-10" href="#__codelineno-34-10"></a>detected number of CPU cores: 48
3612
- <a id="__codelineno-34-11" name="__codelineno-34-11" href="#__codelineno-34-11"></a>current working directory: /opt/nautobot
3613
- <a id="__codelineno-34-12" name="__codelineno-34-12" href="#__codelineno-34-12"></a>detected binary path: /usr/bin/python3.8
3614
- <a id="__codelineno-34-13" name="__codelineno-34-13" href="#__codelineno-34-13"></a>your processes number limit is 256070
3615
- <a id="__codelineno-34-14" name="__codelineno-34-14" href="#__codelineno-34-14"></a>your memory page size is 4096 bytes
3616
- <a id="__codelineno-34-15" name="__codelineno-34-15" href="#__codelineno-34-15"></a>detected max file descriptor number: 1024
3617
- <a id="__codelineno-34-16" name="__codelineno-34-16" href="#__codelineno-34-16"></a>building mime-types dictionary from file /etc/mime.types...567 entry found
3618
- <a id="__codelineno-34-17" name="__codelineno-34-17" href="#__codelineno-34-17"></a>lock engine: pthread robust mutexes
3619
- <a id="__codelineno-34-18" name="__codelineno-34-18" href="#__codelineno-34-18"></a>thunder lock: disabled (you can enable it with --thunder-lock)
3620
- <a id="__codelineno-34-19" name="__codelineno-34-19" href="#__codelineno-34-19"></a>uwsgi socket 0 bound to TCP address 0.0.0.0:9191 fd 7
3621
- <a id="__codelineno-34-20" name="__codelineno-34-20" href="#__codelineno-34-20"></a>Python version: 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
3622
- <a id="__codelineno-34-21" name="__codelineno-34-21" href="#__codelineno-34-21"></a>--- Python VM already initialized ---
3623
- <a id="__codelineno-34-22" name="__codelineno-34-22" href="#__codelineno-34-22"></a>Python main interpreter initialized at 0x2573e30
3624
- <a id="__codelineno-34-23" name="__codelineno-34-23" href="#__codelineno-34-23"></a>python threads support enabled
3625
- <a id="__codelineno-34-24" name="__codelineno-34-24" href="#__codelineno-34-24"></a>your server socket listen backlog is limited to 1024 connections
3626
- <a id="__codelineno-34-25" name="__codelineno-34-25" href="#__codelineno-34-25"></a>your mercy for graceful operations on workers is 60 seconds
3627
- <a id="__codelineno-34-26" name="__codelineno-34-26" href="#__codelineno-34-26"></a>mapped 636432 bytes (621 KB) for 15 cores
3628
- <a id="__codelineno-34-27" name="__codelineno-34-27" href="#__codelineno-34-27"></a>*** Operational MODE: preforking+threaded ***
3629
- <a id="__codelineno-34-28" name="__codelineno-34-28" href="#__codelineno-34-28"></a>WSGI app 0 (mountpoint=&#39;&#39;) ready in 0 seconds on interpreter 0x2573e30 pid: 112153 (default app)
3630
- <a id="__codelineno-34-29" name="__codelineno-34-29" href="#__codelineno-34-29"></a>spawned uWSGI master process (pid: 112153)
3631
- <a id="__codelineno-34-30" name="__codelineno-34-30" href="#__codelineno-34-30"></a>spawned uWSGI worker 1 (pid: 112159, cores: 3)
3632
- <a id="__codelineno-34-31" name="__codelineno-34-31" href="#__codelineno-34-31"></a>spawned uWSGI worker 2 (pid: 112162, cores: 3)
3633
- <a id="__codelineno-34-32" name="__codelineno-34-32" href="#__codelineno-34-32"></a>spawned uWSGI worker 3 (pid: 112165, cores: 3)
3634
- <a id="__codelineno-34-33" name="__codelineno-34-33" href="#__codelineno-34-33"></a>spawned uWSGI worker 4 (pid: 112168, cores: 3)
3635
- <a id="__codelineno-34-34" name="__codelineno-34-34" href="#__codelineno-34-34"></a>spawned uWSGI worker 5 (pid: 112171, cores: 3)
4749
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>[uWSGI] getting INI configuration from ./uwsgi.ini
4750
+ <a id="__codelineno-33-2" name="__codelineno-33-2" href="#__codelineno-33-2"></a>[uwsgi-static] added mapping for /static =&gt; /opt/nautobot/static
4751
+ <a id="__codelineno-33-3" name="__codelineno-33-3" href="#__codelineno-33-3"></a>*** Starting uWSGI 2.0.19.1 (64bit) on [Thu Mar 11 21:13:22 2021] ***
4752
+ <a id="__codelineno-33-4" name="__codelineno-33-4" href="#__codelineno-33-4"></a>compiled with version: 8.3.1 20190311 (Red Hat 8.3.1-3) on 23 September 2020 02:39:40
4753
+ <a id="__codelineno-33-5" name="__codelineno-33-5" href="#__codelineno-33-5"></a>os: Linux-5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020
4754
+ <a id="__codelineno-33-6" name="__codelineno-33-6" href="#__codelineno-33-6"></a>nodename: jathan-nautobot-testing
4755
+ <a id="__codelineno-33-7" name="__codelineno-33-7" href="#__codelineno-33-7"></a>machine: x86_64
4756
+ <a id="__codelineno-33-8" name="__codelineno-33-8" href="#__codelineno-33-8"></a>clock source: unix
4757
+ <a id="__codelineno-33-9" name="__codelineno-33-9" href="#__codelineno-33-9"></a>pcre jit disabled
4758
+ <a id="__codelineno-33-10" name="__codelineno-33-10" href="#__codelineno-33-10"></a>detected number of CPU cores: 48
4759
+ <a id="__codelineno-33-11" name="__codelineno-33-11" href="#__codelineno-33-11"></a>current working directory: /opt/nautobot
4760
+ <a id="__codelineno-33-12" name="__codelineno-33-12" href="#__codelineno-33-12"></a>detected binary path: /usr/bin/python3.8
4761
+ <a id="__codelineno-33-13" name="__codelineno-33-13" href="#__codelineno-33-13"></a>your processes number limit is 256070
4762
+ <a id="__codelineno-33-14" name="__codelineno-33-14" href="#__codelineno-33-14"></a>your memory page size is 4096 bytes
4763
+ <a id="__codelineno-33-15" name="__codelineno-33-15" href="#__codelineno-33-15"></a>detected max file descriptor number: 1024
4764
+ <a id="__codelineno-33-16" name="__codelineno-33-16" href="#__codelineno-33-16"></a>building mime-types dictionary from file /etc/mime.types...567 entry found
4765
+ <a id="__codelineno-33-17" name="__codelineno-33-17" href="#__codelineno-33-17"></a>lock engine: pthread robust mutexes
4766
+ <a id="__codelineno-33-18" name="__codelineno-33-18" href="#__codelineno-33-18"></a>thunder lock: disabled (you can enable it with --thunder-lock)
4767
+ <a id="__codelineno-33-19" name="__codelineno-33-19" href="#__codelineno-33-19"></a>uwsgi socket 0 bound to TCP address 0.0.0.0:9191 fd 7
4768
+ <a id="__codelineno-33-20" name="__codelineno-33-20" href="#__codelineno-33-20"></a>Python version: 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
4769
+ <a id="__codelineno-33-21" name="__codelineno-33-21" href="#__codelineno-33-21"></a>--- Python VM already initialized ---
4770
+ <a id="__codelineno-33-22" name="__codelineno-33-22" href="#__codelineno-33-22"></a>Python main interpreter initialized at 0x2573e30
4771
+ <a id="__codelineno-33-23" name="__codelineno-33-23" href="#__codelineno-33-23"></a>python threads support enabled
4772
+ <a id="__codelineno-33-24" name="__codelineno-33-24" href="#__codelineno-33-24"></a>your server socket listen backlog is limited to 1024 connections
4773
+ <a id="__codelineno-33-25" name="__codelineno-33-25" href="#__codelineno-33-25"></a>your mercy for graceful operations on workers is 60 seconds
4774
+ <a id="__codelineno-33-26" name="__codelineno-33-26" href="#__codelineno-33-26"></a>mapped 636432 bytes (621 KB) for 15 cores
4775
+ <a id="__codelineno-33-27" name="__codelineno-33-27" href="#__codelineno-33-27"></a>*** Operational MODE: preforking+threaded ***
4776
+ <a id="__codelineno-33-28" name="__codelineno-33-28" href="#__codelineno-33-28"></a>WSGI app 0 (mountpoint=&#39;&#39;) ready in 0 seconds on interpreter 0x2573e30 pid: 112153 (default app)
4777
+ <a id="__codelineno-33-29" name="__codelineno-33-29" href="#__codelineno-33-29"></a>spawned uWSGI master process (pid: 112153)
4778
+ <a id="__codelineno-33-30" name="__codelineno-33-30" href="#__codelineno-33-30"></a>spawned uWSGI worker 1 (pid: 112159, cores: 3)
4779
+ <a id="__codelineno-33-31" name="__codelineno-33-31" href="#__codelineno-33-31"></a>spawned uWSGI worker 2 (pid: 112162, cores: 3)
4780
+ <a id="__codelineno-33-32" name="__codelineno-33-32" href="#__codelineno-33-32"></a>spawned uWSGI worker 3 (pid: 112165, cores: 3)
4781
+ <a id="__codelineno-33-33" name="__codelineno-33-33" href="#__codelineno-33-33"></a>spawned uWSGI worker 4 (pid: 112168, cores: 3)
4782
+ <a id="__codelineno-33-34" name="__codelineno-33-34" href="#__codelineno-33-34"></a>spawned uWSGI worker 5 (pid: 112171, cores: 3)
3636
4783
  </code></pre></div>
3637
4784
  <p>Please see the guide on <a href="../installation/services.html">Deploying Nautobot Services</a> for our recommended configuration for use with uWSGI.</p>
3638
4785
  <h3 id="startplugin"><code>startplugin</code><a class="headerlink" href="#startplugin" title="Permanent link">&para;</a></h3>
@@ -3640,8 +4787,8 @@ User account to impersonate as the requester of this job.</p>
3640
4787
  <p>Create a new plugin with <code>name</code>.</p>
3641
4788
  <p>This command is similar to the django-admin <a href="https://docs.djangoproject.com/en/stable/ref/django-admin/#startapp">startapp</a> command, but with a default template directory (<code>--template</code>) of <code>nautobot/core/templates/plugin_template</code>. This command assists with creating a basic file structure for beginning development of a new Nautobot plugin.</p>
3642
4789
  <p>Without passing in the destination directory, <code>nautobot-server startplugin</code> will use your current directory and the <code>name</code> argument provided to create a new directory. We recommend providing a directory so that the plugin can be installed or published easily. Here is an example:</p>
3643
- <div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>mkdir -p ~/myplugin/myplugin
3644
- <a id="__codelineno-35-2" name="__codelineno-35-2" href="#__codelineno-35-2"></a>nautobot-server startplugin myplugin ~/myplugin/myplugin
4790
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>mkdir -p ~/myplugin/myplugin
4791
+ <a id="__codelineno-34-2" name="__codelineno-34-2" href="#__codelineno-34-2"></a>nautobot-server startplugin myplugin ~/myplugin/myplugin
3645
4792
  </code></pre></div>
3646
4793
  <p>Additional options such as <code>--name</code> or <code>--extension</code> can be found in the Django <a href="https://docs.djangoproject.com/en/stable/ref/django-admin/#startapp">documentation</a>.</p>
3647
4794
  <h3 id="trace_paths"><code>trace_paths</code><a class="headerlink" href="#trace_paths" title="Permanent link">&para;</a></h3>
@@ -3652,17 +4799,17 @@ User account to impersonate as the requester of this job.</p>
3652
4799
  Force recalculation of all existing cable paths.</p>
3653
4800
  <p><code>--no-input</code><br />
3654
4801
  Do not prompt user for any input/confirmation.</p>
3655
- <div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>nautobot-server trace_paths
4802
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>nautobot-server trace_paths
3656
4803
  </code></pre></div>
3657
4804
  <p>Example output:</p>
3658
- <div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>Found no missing circuit termination paths; skipping
3659
- <a id="__codelineno-37-2" name="__codelineno-37-2" href="#__codelineno-37-2"></a>Found no missing console port paths; skipping
3660
- <a id="__codelineno-37-3" name="__codelineno-37-3" href="#__codelineno-37-3"></a>Found no missing console server port paths; skipping
3661
- <a id="__codelineno-37-4" name="__codelineno-37-4" href="#__codelineno-37-4"></a>Found no missing interface paths; skipping
3662
- <a id="__codelineno-37-5" name="__codelineno-37-5" href="#__codelineno-37-5"></a>Found no missing power feed paths; skipping
3663
- <a id="__codelineno-37-6" name="__codelineno-37-6" href="#__codelineno-37-6"></a>Found no missing power outlet paths; skipping
3664
- <a id="__codelineno-37-7" name="__codelineno-37-7" href="#__codelineno-37-7"></a>Found no missing power port paths; skipping
3665
- <a id="__codelineno-37-8" name="__codelineno-37-8" href="#__codelineno-37-8"></a>Finished.
4805
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>Found no missing circuit termination paths; skipping
4806
+ <a id="__codelineno-36-2" name="__codelineno-36-2" href="#__codelineno-36-2"></a>Found no missing console port paths; skipping
4807
+ <a id="__codelineno-36-3" name="__codelineno-36-3" href="#__codelineno-36-3"></a>Found no missing console server port paths; skipping
4808
+ <a id="__codelineno-36-4" name="__codelineno-36-4" href="#__codelineno-36-4"></a>Found no missing interface paths; skipping
4809
+ <a id="__codelineno-36-5" name="__codelineno-36-5" href="#__codelineno-36-5"></a>Found no missing power feed paths; skipping
4810
+ <a id="__codelineno-36-6" name="__codelineno-36-6" href="#__codelineno-36-6"></a>Found no missing power outlet paths; skipping
4811
+ <a id="__codelineno-36-7" name="__codelineno-36-7" href="#__codelineno-36-7"></a>Found no missing power port paths; skipping
4812
+ <a id="__codelineno-36-8" name="__codelineno-36-8" href="#__codelineno-36-8"></a>Finished.
3666
4813
  </code></pre></div>
3667
4814
  <div class="admonition note">
3668
4815
  <p class="admonition-title">Note</p>
@@ -3675,10 +4822,10 @@ Do not prompt user for any input/confirmation.</p>
3675
4822
  Optional port number (default: <code>9000</code>)</p>
3676
4823
  <p><code>--no-headers</code><br />
3677
4824
  Hide HTTP request headers.</p>
3678
- <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>nautobot-server webhook_receiver --port 9001 --no-headers
4825
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>nautobot-server webhook_receiver --port 9001 --no-headers
3679
4826
  </code></pre></div>
3680
4827
  <p>Example output:</p>
3681
- <div class="highlight"><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a>Listening on port http://localhost:9000. Stop with CONTROL-C.
4828
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>Listening on port http://localhost:9000. Stop with CONTROL-C.
3682
4829
  </code></pre></div>
3683
4830
  <p>Please see the guide on <a href="../models/extras/webhook.html#troubleshooting">Troubleshooting Webhooks</a> for more information.</p>
3684
4831