nautobot 2.3.16__py3-none-any.whl → 2.4.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.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/__init__.py +15 -0
- nautobot/apps/api.py +0 -2
- nautobot/apps/config.py +32 -3
- nautobot/apps/events.py +19 -0
- nautobot/apps/exceptions.py +0 -2
- nautobot/apps/ui.py +44 -9
- nautobot/apps/utils.py +0 -8
- nautobot/apps/views.py +2 -0
- nautobot/circuits/navigation.py +0 -57
- nautobot/circuits/tables.py +1 -2
- nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -71
- nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -64
- nautobot/circuits/templates/circuits/inc/circuit_termination_cable_fragment.html +40 -0
- nautobot/circuits/templates/circuits/inc/circuit_termination_header_extra_content.html +26 -0
- nautobot/circuits/templates/circuits/provider_retrieve.html +0 -76
- nautobot/circuits/tests/integration/test_relationships.py +33 -24
- nautobot/circuits/tests/test_filters.py +4 -8
- nautobot/circuits/views.py +143 -26
- nautobot/cloud/factory.py +4 -1
- nautobot/cloud/models.py +1 -1
- nautobot/cloud/tests/test_filters.py +5 -4
- nautobot/core/api/fields.py +5 -5
- nautobot/core/api/metadata.py +28 -256
- nautobot/core/api/pagination.py +3 -2
- nautobot/core/api/renderers.py +3 -0
- nautobot/core/api/serializers.py +24 -244
- nautobot/core/api/urls.py +3 -4
- nautobot/core/api/utils.py +0 -62
- nautobot/core/api/views.py +48 -158
- nautobot/core/apps/__init__.py +22 -578
- nautobot/core/celery/__init__.py +13 -0
- nautobot/core/celery/log.py +4 -4
- nautobot/core/celery/schedulers.py +48 -3
- nautobot/core/cli/__init__.py +8 -0
- nautobot/core/constants.py +7 -0
- nautobot/core/events/__init__.py +116 -0
- nautobot/core/events/base.py +27 -0
- nautobot/core/events/exceptions.py +10 -0
- nautobot/core/events/redis_broker.py +48 -0
- nautobot/core/events/syslog_broker.py +19 -0
- nautobot/core/exceptions.py +0 -6
- nautobot/core/filters.py +16 -21
- nautobot/core/fixtures/user-data.json +59 -0
- nautobot/core/forms/fields.py +53 -8
- nautobot/core/forms/utils.py +2 -1
- nautobot/core/graphql/schema.py +3 -1
- nautobot/core/graphql/types.py +1 -1
- nautobot/core/jobs/__init__.py +4 -4
- nautobot/core/jobs/cleanup.py +13 -49
- nautobot/core/jobs/groups.py +1 -1
- nautobot/core/management/commands/generate_test_data.py +21 -0
- nautobot/core/management/commands/validate_models.py +1 -1
- nautobot/core/middleware.py +16 -0
- nautobot/core/models/__init__.py +1 -1
- nautobot/core/models/fields.py +11 -7
- nautobot/core/models/query_functions.py +2 -2
- nautobot/core/models/tree_queries.py +3 -6
- nautobot/core/settings.py +44 -7
- nautobot/core/settings.yaml +86 -8
- nautobot/core/tables.py +15 -65
- nautobot/core/tasks.py +1 -1
- nautobot/core/templates/components/button/default.html +7 -0
- nautobot/core/templates/components/button/dropdown.html +20 -0
- nautobot/core/templates/components/layout/one_over_two.html +19 -0
- nautobot/core/templates/components/layout/two_over_one.html +19 -0
- nautobot/core/templates/components/panel/body_content_data_table.html +27 -0
- nautobot/core/templates/components/panel/body_content_objects_table.html +4 -0
- nautobot/core/templates/components/panel/body_content_tags.html +6 -0
- nautobot/core/templates/components/panel/body_content_text.html +12 -0
- nautobot/core/templates/components/panel/body_wrapper_generic.html +3 -0
- nautobot/core/templates/components/panel/body_wrapper_key_value_table.html +3 -0
- nautobot/core/templates/components/panel/body_wrapper_table.html +3 -0
- nautobot/core/templates/components/panel/footer_contacts_table.html +20 -0
- nautobot/core/templates/components/panel/footer_content_table.html +14 -0
- nautobot/core/templates/components/panel/grouping_toggle.html +14 -0
- nautobot/core/templates/components/panel/header_extra_content_table.html +3 -0
- nautobot/core/templates/components/panel/panel.html +16 -0
- nautobot/core/templates/components/panel/stats_panel_body.html +8 -0
- nautobot/core/templates/components/tab/content_wrapper.html +3 -0
- nautobot/core/templates/components/tab/label_wrapper.html +5 -0
- nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +3 -0
- nautobot/core/templates/generic/object_retrieve.html +28 -17
- nautobot/core/templates/inc/computed_fields/panel_data.html +4 -7
- nautobot/core/templates/inc/custom_fields/panel.html +2 -2
- nautobot/core/templates/inc/custom_fields/panel_data.html +4 -7
- nautobot/core/templates/inc/footer.html +1 -0
- nautobot/core/templates/inc/media.html +0 -3
- nautobot/core/templates/inc/nav_menu.html +1 -1
- nautobot/core/templates/inc/relationships_panel.html +1 -1
- nautobot/core/templates/nautobot_config.py.j2 +3 -3
- nautobot/core/templates/panel_table.html +12 -0
- nautobot/core/templates/search.html +0 -7
- nautobot/core/templates/utilities/render_jinja2.html +117 -0
- nautobot/core/templatetags/helpers.py +101 -12
- nautobot/core/templatetags/ui_framework.py +40 -0
- nautobot/core/testing/api.py +23 -128
- nautobot/core/testing/context.py +18 -0
- nautobot/core/testing/filters.py +41 -58
- nautobot/core/testing/mixins.py +2 -7
- nautobot/core/testing/views.py +25 -123
- nautobot/core/tests/integration/test_app_home.py +1 -0
- nautobot/core/tests/integration/test_app_navbar.py +1 -0
- nautobot/core/tests/integration/test_filters.py +2 -0
- nautobot/core/tests/integration/test_home.py +1 -0
- nautobot/core/tests/integration/test_navbar.py +1 -0
- nautobot/core/tests/integration/test_view_authentication.py +1 -2
- nautobot/core/tests/nautobot_config.py +198 -0
- nautobot/core/tests/runner.py +3 -3
- nautobot/core/tests/test_api.py +82 -201
- nautobot/core/tests/test_csv.py +3 -25
- nautobot/core/tests/test_events.py +214 -0
- nautobot/core/tests/test_jinja_filters.py +1 -0
- nautobot/core/tests/test_jobs.py +84 -13
- nautobot/core/tests/test_navigations.py +7 -241
- nautobot/core/tests/test_templatetags_helpers.py +16 -0
- nautobot/core/tests/test_ui.py +150 -0
- nautobot/core/tests/test_utils.py +0 -25
- nautobot/core/tests/test_views.py +123 -31
- nautobot/core/ui/__init__.py +0 -0
- nautobot/core/ui/base.py +11 -0
- nautobot/core/ui/choices.py +44 -0
- nautobot/core/ui/homepage.py +167 -0
- nautobot/core/ui/nav.py +279 -0
- nautobot/core/ui/object_detail.py +1841 -0
- nautobot/core/ui/utils.py +36 -0
- nautobot/core/urls.py +4 -9
- nautobot/core/utils/config.py +30 -3
- nautobot/core/utils/lookup.py +20 -13
- nautobot/core/views/__init__.py +6 -1
- nautobot/core/views/generic.py +47 -52
- nautobot/core/views/mixins.py +15 -25
- nautobot/core/views/paginator.py +8 -5
- nautobot/core/views/renderers.py +3 -3
- nautobot/core/views/utils.py +11 -0
- nautobot/core/wsgi.py +3 -3
- nautobot/dcim/api/serializers.py +80 -179
- nautobot/dcim/api/urls.py +5 -0
- nautobot/dcim/api/views.py +17 -4
- nautobot/dcim/apps.py +1 -0
- nautobot/dcim/choices.py +28 -0
- nautobot/dcim/factory.py +58 -0
- nautobot/dcim/filters/__init__.py +197 -24
- nautobot/dcim/forms.py +203 -12
- nautobot/dcim/graphql/types.py +2 -2
- nautobot/dcim/migrations/0063_interfacevdcassignment_virtualdevicecontext_and_more.py +165 -0
- nautobot/dcim/migrations/0064_virtualdevicecontext_status_data_migration.py +28 -0
- nautobot/dcim/migrations/0065_controller_capabilities_and_more.py +29 -0
- nautobot/dcim/migrations/0066_controllermanageddevicegroup_radio_profiles_and_more.py +33 -0
- nautobot/dcim/models/__init__.py +4 -0
- nautobot/dcim/models/device_component_templates.py +2 -2
- nautobot/dcim/models/device_components.py +20 -22
- nautobot/dcim/models/devices.py +173 -4
- nautobot/dcim/models/locations.py +3 -3
- nautobot/dcim/models/power.py +5 -6
- nautobot/dcim/models/racks.py +6 -6
- nautobot/dcim/navigation.py +25 -224
- nautobot/dcim/signals.py +44 -0
- nautobot/dcim/tables/__init__.py +5 -3
- nautobot/dcim/tables/devices.py +96 -2
- nautobot/dcim/tables/devicetypes.py +2 -2
- nautobot/dcim/templates/dcim/controller/base.html +10 -0
- nautobot/dcim/templates/dcim/controller_create.html +1 -0
- nautobot/dcim/templates/dcim/controller_retrieve.html +5 -1
- nautobot/dcim/templates/dcim/controller_wirelessnetworks.html +25 -0
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +66 -0
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +46 -0
- nautobot/dcim/templates/dcim/device/base.html +6 -42
- nautobot/dcim/templates/dcim/device/wireless.html +73 -0
- nautobot/dcim/templates/dcim/device.html +3 -1
- nautobot/dcim/templates/dcim/interface.html +1 -0
- nautobot/dcim/templates/dcim/interface_edit.html +1 -0
- nautobot/dcim/templates/dcim/locationtype.html +0 -107
- nautobot/dcim/templates/dcim/locationtype_retrieve.html +8 -0
- nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +76 -0
- nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +34 -0
- nautobot/dcim/tests/test_api.py +172 -61
- nautobot/dcim/tests/test_filters.py +171 -109
- nautobot/dcim/tests/test_forms.py +2 -51
- nautobot/dcim/tests/test_graphql.py +0 -52
- nautobot/dcim/tests/test_models.py +126 -4
- nautobot/dcim/tests/test_signals.py +1 -0
- nautobot/dcim/tests/test_views.py +103 -11
- nautobot/dcim/urls.py +72 -27
- nautobot/dcim/utils.py +2 -2
- nautobot/dcim/views.py +369 -62
- nautobot/extras/api/customfields.py +2 -2
- nautobot/extras/api/serializers.py +91 -75
- nautobot/extras/api/urls.py +4 -0
- nautobot/extras/api/views.py +78 -15
- nautobot/extras/choices.py +13 -0
- nautobot/extras/constants.py +0 -1
- nautobot/extras/context_managers.py +23 -6
- nautobot/extras/datasources/git.py +4 -1
- nautobot/extras/factory.py +27 -0
- nautobot/extras/filters/__init__.py +59 -0
- nautobot/extras/forms/forms.py +125 -30
- nautobot/extras/forms/mixins.py +3 -11
- nautobot/extras/graphql/types.py +25 -1
- nautobot/extras/group_sync.py +3 -3
- nautobot/extras/health_checks.py +2 -1
- nautobot/extras/jobs.py +62 -26
- nautobot/extras/management/__init__.py +1 -0
- nautobot/extras/management/commands/runjob.py +7 -79
- nautobot/extras/management/commands/runjob_with_job_result.py +46 -0
- nautobot/extras/management/utils.py +87 -0
- nautobot/extras/managers.py +1 -3
- nautobot/extras/migrations/0018_joblog_data_migration.py +9 -7
- nautobot/extras/migrations/0117_create_job_queue_model.py +129 -0
- nautobot/extras/migrations/0118_task_queue_to_job_queue_migration.py +78 -0
- nautobot/extras/migrations/0119_remove_task_queues_from_job_and_queue_from_scheduled_job.py +28 -0
- nautobot/extras/models/__init__.py +4 -0
- nautobot/extras/models/change_logging.py +7 -3
- nautobot/extras/models/customfields.py +11 -12
- nautobot/extras/models/groups.py +9 -13
- nautobot/extras/models/jobs.py +218 -37
- nautobot/extras/models/models.py +2 -2
- nautobot/extras/models/relationships.py +69 -1
- nautobot/extras/models/secrets.py +5 -0
- nautobot/extras/navigation.py +20 -262
- nautobot/extras/plugins/__init__.py +56 -32
- nautobot/extras/plugins/marketplace_manifest.yml +450 -0
- nautobot/extras/plugins/urls.py +1 -0
- nautobot/extras/plugins/views.py +48 -1
- nautobot/extras/signals.py +39 -1
- nautobot/extras/tables.py +40 -6
- nautobot/extras/templates/extras/externalintegration_retrieve.html +0 -47
- nautobot/extras/templates/extras/inc/tags_panel.html +1 -5
- nautobot/extras/templates/extras/job_bulk_edit.html +2 -1
- nautobot/extras/templates/extras/job_detail.html +36 -6
- nautobot/extras/templates/extras/job_edit.html +5 -2
- nautobot/extras/templates/extras/job_list.html +2 -7
- nautobot/extras/templates/extras/jobqueue_retrieve.html +44 -0
- nautobot/extras/templates/extras/marketplace.html +278 -0
- nautobot/extras/templates/extras/plugins_list.html +35 -1
- nautobot/extras/templates/extras/plugins_tiles.html +79 -0
- nautobot/extras/templates/extras/role_retrieve.html +16 -0
- nautobot/extras/templates/extras/secret.html +0 -65
- nautobot/extras/templates/extras/secret_check.js +16 -0
- nautobot/extras/templates/extras/secret_create.html +114 -0
- nautobot/extras/templates/extras/secret_edit.html +1 -114
- nautobot/extras/templates/extras/secretsgroup_edit.html +1 -1
- nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +2 -0
- nautobot/extras/templatetags/job_buttons.py +5 -4
- nautobot/extras/templatetags/plugins.py +69 -6
- nautobot/extras/test_jobs/api_test_job.py +1 -1
- nautobot/extras/test_jobs/atomic_transaction.py +2 -2
- nautobot/extras/test_jobs/dry_run.py +1 -1
- nautobot/extras/test_jobs/fail.py +5 -5
- nautobot/extras/test_jobs/file_output.py +1 -1
- nautobot/extras/test_jobs/file_upload_fail.py +1 -1
- nautobot/extras/test_jobs/file_upload_pass.py +1 -1
- nautobot/extras/test_jobs/ipaddress_vars.py +1 -3
- nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
- nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
- nautobot/extras/test_jobs/log_redaction.py +1 -1
- nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
- nautobot/extras/test_jobs/modify_db.py +1 -1
- nautobot/extras/test_jobs/object_var_optional.py +1 -1
- nautobot/extras/test_jobs/object_var_required.py +1 -1
- nautobot/extras/test_jobs/object_vars.py +1 -1
- nautobot/extras/test_jobs/pass.py +3 -3
- nautobot/extras/test_jobs/profiling.py +1 -1
- nautobot/extras/test_jobs/relative_import.py +3 -3
- nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
- nautobot/extras/test_jobs/task_queues.py +1 -1
- nautobot/extras/tests/integration/test_plugin_banner.py +2 -0
- nautobot/extras/tests/test_api.py +157 -55
- nautobot/extras/tests/test_context_managers.py +4 -1
- nautobot/extras/tests/test_customfields.py +1 -1
- nautobot/extras/tests/test_datasources.py +1 -2
- nautobot/extras/tests/test_dynamicgroups.py +1 -1
- nautobot/extras/tests/test_filters.py +219 -535
- nautobot/extras/tests/test_forms.py +1 -20
- nautobot/extras/tests/test_job_variables.py +73 -152
- nautobot/extras/tests/test_jobs.py +43 -54
- nautobot/extras/tests/test_models.py +71 -16
- nautobot/extras/tests/test_relationships.py +5 -2
- nautobot/extras/tests/test_utils.py +23 -2
- nautobot/extras/tests/test_views.py +183 -43
- nautobot/extras/tests/test_webhooks.py +2 -1
- nautobot/extras/urls.py +2 -20
- nautobot/extras/utils.py +118 -4
- nautobot/extras/views.py +203 -92
- nautobot/extras/webhooks.py +5 -2
- nautobot/ipam/api/fields.py +3 -3
- nautobot/ipam/api/serializers.py +36 -137
- nautobot/ipam/api/views.py +93 -62
- nautobot/ipam/lookups.py +62 -101
- nautobot/ipam/models.py +11 -63
- nautobot/ipam/navigation.py +0 -90
- nautobot/ipam/querysets.py +2 -2
- nautobot/ipam/tables.py +6 -20
- nautobot/ipam/templates/ipam/routetarget.html +0 -28
- nautobot/ipam/templates/ipam/vrf.html +0 -47
- nautobot/ipam/tests/test_api.py +8 -419
- nautobot/ipam/tests/test_filters.py +39 -119
- nautobot/ipam/tests/test_forms.py +47 -51
- nautobot/ipam/tests/test_migrations.py +30 -30
- nautobot/ipam/tests/test_models.py +0 -41
- nautobot/ipam/tests/test_querysets.py +1 -63
- nautobot/ipam/urls.py +3 -69
- nautobot/ipam/utils/__init__.py +0 -24
- nautobot/ipam/views.py +153 -198
- nautobot/project-static/css/base.css +38 -3
- nautobot/project-static/docs/404.html +421 -19
- nautobot/project-static/docs/apps/index.html +421 -19
- nautobot/project-static/docs/apps/nautobot-apps.html +421 -19
- nautobot/project-static/docs/assets/extra.css +5 -1
- nautobot/project-static/docs/assets/javascripts/{bundle.88dd0f4e.min.js → bundle.83f73b43.min.js} +2 -2
- nautobot/project-static/docs/assets/javascripts/{bundle.88dd0f4e.min.js.map → bundle.83f73b43.min.js.map} +2 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +421 -172
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +425 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +424 -22
- nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9809 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +424 -63
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +457 -20
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +425 -25
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +457 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +425 -215
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +430 -342
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +5799 -1054
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +421 -19
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +447 -176
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +460 -21
- nautobot/project-static/docs/development/apps/api/configuration-view.html +421 -19
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +421 -19
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +421 -19
- nautobot/project-static/docs/development/apps/api/models/global-search.html +421 -19
- nautobot/project-static/docs/development/apps/api/models/graphql.html +421 -19
- nautobot/project-static/docs/development/apps/api/models/index.html +421 -19
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +421 -19
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +424 -41
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +421 -19
- nautobot/project-static/docs/development/apps/api/prometheus.html +421 -19
- nautobot/project-static/docs/development/apps/api/setup.html +425 -155
- nautobot/project-static/docs/development/apps/api/testing.html +421 -19
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +421 -19
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +421 -19
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +421 -19
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +421 -19
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +701 -130
- nautobot/project-static/docs/development/apps/api/views/base-template.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/index.html +423 -20
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +425 -19
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +451 -19
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/notes.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +421 -19
- nautobot/project-static/docs/development/apps/api/views/urls.html +421 -19
- nautobot/project-static/docs/development/apps/index.html +421 -19
- nautobot/project-static/docs/development/apps/migration/code-updates.html +422 -52
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +422 -20
- nautobot/project-static/docs/development/apps/migration/from-v1.html +421 -19
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +421 -19
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +421 -19
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +421 -19
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +424 -22
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9219 -0
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +9333 -0
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +9474 -0
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +9517 -0
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +424 -22
- nautobot/project-static/docs/development/core/application-registry.html +421 -19
- nautobot/project-static/docs/development/core/best-practices.html +421 -19
- nautobot/project-static/docs/development/core/bootstrap-ui.html +421 -19
- nautobot/project-static/docs/development/core/caching.html +421 -19
- nautobot/project-static/docs/development/core/controllers.html +423 -19
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +490 -45
- nautobot/project-static/docs/development/core/generic-views.html +421 -19
- nautobot/project-static/docs/development/core/getting-started.html +566 -179
- nautobot/project-static/docs/development/core/homepage.html +432 -30
- nautobot/project-static/docs/development/core/index.html +421 -19
- nautobot/project-static/docs/development/core/local-k8s.html +9453 -0
- nautobot/project-static/docs/development/core/model-checklist.html +424 -22
- nautobot/project-static/docs/development/core/model-features.html +421 -19
- nautobot/project-static/docs/development/core/natural-keys.html +421 -19
- nautobot/project-static/docs/development/core/navigation-menu.html +438 -26
- nautobot/project-static/docs/development/core/release-checklist.html +435 -45
- nautobot/project-static/docs/development/core/role-internals.html +421 -19
- nautobot/project-static/docs/development/core/settings.html +421 -19
- nautobot/project-static/docs/development/core/style-guide.html +421 -19
- nautobot/project-static/docs/development/core/templates.html +431 -22
- nautobot/project-static/docs/development/core/testing.html +421 -19
- nautobot/project-static/docs/development/core/ui-component-framework.html +11020 -0
- nautobot/project-static/docs/development/core/user-preferences.html +424 -22
- nautobot/project-static/docs/development/index.html +421 -19
- nautobot/project-static/docs/development/jobs/index.html +546 -160
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +421 -19
- nautobot/project-static/docs/index.html +421 -19
- nautobot/project-static/docs/media/development/core/ui-component-framework/basic-panel-layout.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/button-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/dropdown-button-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-1.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-2.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/table-panels-family.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/text-panels-family.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/ui-framework-example.png +0 -0
- nautobot/project-static/docs/media/models/virtual_device_context_overview.drawio +73 -0
- nautobot/project-static/docs/media/models/virtual_device_context_overview.png +0 -0
- nautobot/project-static/docs/models/dcim/virtualdevicecontext.html +14 -0
- nautobot/project-static/docs/models/extras/jobqueue.html +14 -0
- nautobot/project-static/docs/models/wireless/radioprofile.html +14 -0
- nautobot/project-static/docs/models/wireless/supporteddatarate.html +14 -0
- nautobot/project-static/docs/models/wireless/wirelessnetwork.html +14 -0
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +426 -20
- nautobot/project-static/docs/overview/design_philosophy.html +421 -19
- nautobot/project-static/docs/release-notes/index.html +445 -22
- nautobot/project-static/docs/release-notes/version-1.0.html +421 -19
- nautobot/project-static/docs/release-notes/version-1.1.html +421 -19
- nautobot/project-static/docs/release-notes/version-1.2.html +421 -19
- nautobot/project-static/docs/release-notes/version-1.3.html +421 -19
- nautobot/project-static/docs/release-notes/version-1.4.html +421 -19
- nautobot/project-static/docs/release-notes/version-1.5.html +421 -19
- nautobot/project-static/docs/release-notes/version-1.6.html +634 -667
- nautobot/project-static/docs/release-notes/version-2.0.html +421 -19
- nautobot/project-static/docs/release-notes/version-2.1.html +421 -19
- nautobot/project-static/docs/release-notes/version-2.2.html +421 -19
- nautobot/project-static/docs/release-notes/version-2.3.html +684 -886
- nautobot/project-static/docs/release-notes/version-2.4.html +10007 -0
- nautobot/project-static/docs/requirements.txt +2 -2
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +334 -270
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +421 -19
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +421 -19
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +423 -21
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +433 -32
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +421 -19
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +765 -180
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +434 -29
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +421 -19
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +421 -19
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +421 -19
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +421 -19
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +421 -19
- nautobot/project-static/docs/user-guide/administration/installation/index.html +426 -20
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +421 -19
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +421 -19
- nautobot/project-static/docs/user-guide/administration/installation/services.html +421 -19
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +421 -19
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +442 -41
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +435 -66
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +435 -66
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-nautobot-app-location.yaml +0 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +421 -19
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +427 -21
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +457 -20
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +447 -22
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9333 -0
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +424 -22
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +421 -19
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +424 -22
- nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9271 -0
- nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9175 -0
- nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9169 -0
- nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9235 -0
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +421 -19
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +421 -19
- nautobot/project-static/docs/user-guide/index.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/events.html +9575 -0
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +426 -20
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9182 -0
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9250 -0
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +424 -22
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +489 -56
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +421 -19
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +421 -19
- nautobot/project-static/img/jinja_logo.svg +97 -0
- nautobot/project-static/js/forms.js +5 -0
- nautobot/project-static/js/nav_menu.js +2 -1
- nautobot/tenancy/api/serializers.py +0 -2
- nautobot/tenancy/factory.py +1 -1
- nautobot/tenancy/navigation.py +0 -29
- nautobot/tenancy/templates/tenancy/tenant.html +4 -91
- nautobot/tenancy/tests/test_filters.py +29 -134
- nautobot/tenancy/views.py +32 -23
- nautobot/users/admin.py +3 -1
- nautobot/users/api/serializers.py +4 -5
- nautobot/users/api/views.py +1 -1
- nautobot/users/forms.py +19 -0
- nautobot/users/templates/users/preferences.html +22 -0
- nautobot/users/tests/test_filters.py +1 -19
- nautobot/users/tests/test_views.py +57 -0
- nautobot/users/utils.py +8 -0
- nautobot/users/views.py +48 -11
- nautobot/virtualization/api/serializers.py +4 -4
- nautobot/virtualization/filters.py +2 -20
- nautobot/virtualization/navigation.py +0 -48
- nautobot/virtualization/templates/virtualization/clustertype.html +0 -39
- nautobot/virtualization/tests/test_filters.py +57 -183
- nautobot/virtualization/views.py +18 -15
- nautobot/wireless/__init__.py +0 -0
- nautobot/wireless/api/__init__.py +0 -0
- nautobot/wireless/api/serializers.py +44 -0
- nautobot/wireless/api/urls.py +20 -0
- nautobot/wireless/api/views.py +34 -0
- nautobot/wireless/apps.py +8 -0
- nautobot/wireless/choices.py +345 -0
- nautobot/wireless/factory.py +138 -0
- nautobot/wireless/filters.py +167 -0
- nautobot/wireless/forms.py +283 -0
- nautobot/wireless/homepage.py +19 -0
- nautobot/wireless/migrations/0001_initial.py +223 -0
- nautobot/wireless/migrations/__init__.py +0 -0
- nautobot/wireless/models.py +207 -0
- nautobot/wireless/navigation.py +105 -0
- nautobot/wireless/tables.py +244 -0
- nautobot/wireless/templates/wireless/radioprofile_retrieve.html +81 -0
- nautobot/wireless/templates/wireless/supporteddatarate_retrieve.html +26 -0
- nautobot/wireless/templates/wireless/wirelessnetwork_create.html +88 -0
- nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +64 -0
- nautobot/wireless/tests/__init__.py +0 -0
- nautobot/wireless/tests/test_api.py +247 -0
- nautobot/wireless/tests/test_filters.py +54 -0
- nautobot/wireless/tests/test_models.py +22 -0
- nautobot/wireless/tests/test_views.py +378 -0
- nautobot/wireless/urls.py +13 -0
- nautobot/wireless/views.py +129 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0b1.dist-info}/METADATA +11 -14
- {nautobot-2.3.16.dist-info → nautobot-2.4.0b1.dist-info}/RECORD +674 -551
- {nautobot-2.3.16.dist-info → nautobot-2.4.0b1.dist-info}/WHEEL +1 -1
- nautobot/core/utils/navigation.py +0 -54
- {nautobot-2.3.16.dist-info → nautobot-2.4.0b1.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0b1.dist-info}/NOTICE +0 -0
- {nautobot-2.3.16.dist-info → nautobot-2.4.0b1.dist-info}/entry_points.txt +0 -0
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
<link rel="icon" href="../../assets/favicon.ico">
|
|
21
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.
|
|
21
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.46">
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -3944,6 +3944,27 @@
|
|
|
3944
3944
|
|
|
3945
3945
|
|
|
3946
3946
|
|
|
3947
|
+
|
|
3948
|
+
|
|
3949
|
+
|
|
3950
|
+
|
|
3951
|
+
|
|
3952
|
+
|
|
3953
|
+
<li class="md-nav__item">
|
|
3954
|
+
<a href="../../user-guide/core-data-model/dcim/virtualdevicecontext.html" class="md-nav__link">
|
|
3955
|
+
|
|
3956
|
+
|
|
3957
|
+
<span class="md-ellipsis">
|
|
3958
|
+
Virtual Device Context
|
|
3959
|
+
</span>
|
|
3960
|
+
|
|
3961
|
+
|
|
3962
|
+
</a>
|
|
3963
|
+
</li>
|
|
3964
|
+
|
|
3965
|
+
|
|
3966
|
+
|
|
3967
|
+
|
|
3947
3968
|
</ul>
|
|
3948
3969
|
</nav>
|
|
3949
3970
|
|
|
@@ -4556,6 +4577,123 @@
|
|
|
4556
4577
|
|
|
4557
4578
|
|
|
4558
4579
|
|
|
4580
|
+
|
|
4581
|
+
|
|
4582
|
+
|
|
4583
|
+
|
|
4584
|
+
|
|
4585
|
+
|
|
4586
|
+
|
|
4587
|
+
|
|
4588
|
+
|
|
4589
|
+
|
|
4590
|
+
|
|
4591
|
+
|
|
4592
|
+
|
|
4593
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
4594
|
+
|
|
4595
|
+
|
|
4596
|
+
|
|
4597
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_9" >
|
|
4598
|
+
|
|
4599
|
+
|
|
4600
|
+
|
|
4601
|
+
<div class="md-nav__link md-nav__container">
|
|
4602
|
+
<a href="../../user-guide/core-data-model/wireless/index.html" class="md-nav__link ">
|
|
4603
|
+
|
|
4604
|
+
|
|
4605
|
+
<span class="md-ellipsis">
|
|
4606
|
+
Wireless
|
|
4607
|
+
</span>
|
|
4608
|
+
|
|
4609
|
+
|
|
4610
|
+
</a>
|
|
4611
|
+
|
|
4612
|
+
|
|
4613
|
+
<label class="md-nav__link " for="__nav_2_3_9" id="__nav_2_3_9_label" tabindex="0">
|
|
4614
|
+
<span class="md-nav__icon md-icon"></span>
|
|
4615
|
+
</label>
|
|
4616
|
+
|
|
4617
|
+
</div>
|
|
4618
|
+
|
|
4619
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_9_label" aria-expanded="false">
|
|
4620
|
+
<label class="md-nav__title" for="__nav_2_3_9">
|
|
4621
|
+
<span class="md-nav__icon md-icon"></span>
|
|
4622
|
+
Wireless
|
|
4623
|
+
</label>
|
|
4624
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
4625
|
+
|
|
4626
|
+
|
|
4627
|
+
|
|
4628
|
+
|
|
4629
|
+
|
|
4630
|
+
|
|
4631
|
+
|
|
4632
|
+
<li class="md-nav__item">
|
|
4633
|
+
<a href="../../user-guide/core-data-model/wireless/supporteddatarate.html" class="md-nav__link">
|
|
4634
|
+
|
|
4635
|
+
|
|
4636
|
+
<span class="md-ellipsis">
|
|
4637
|
+
Supported Data Rate
|
|
4638
|
+
</span>
|
|
4639
|
+
|
|
4640
|
+
|
|
4641
|
+
</a>
|
|
4642
|
+
</li>
|
|
4643
|
+
|
|
4644
|
+
|
|
4645
|
+
|
|
4646
|
+
|
|
4647
|
+
|
|
4648
|
+
|
|
4649
|
+
|
|
4650
|
+
|
|
4651
|
+
|
|
4652
|
+
|
|
4653
|
+
<li class="md-nav__item">
|
|
4654
|
+
<a href="../../user-guide/core-data-model/wireless/radioprofile.html" class="md-nav__link">
|
|
4655
|
+
|
|
4656
|
+
|
|
4657
|
+
<span class="md-ellipsis">
|
|
4658
|
+
Radio Profile
|
|
4659
|
+
</span>
|
|
4660
|
+
|
|
4661
|
+
|
|
4662
|
+
</a>
|
|
4663
|
+
</li>
|
|
4664
|
+
|
|
4665
|
+
|
|
4666
|
+
|
|
4667
|
+
|
|
4668
|
+
|
|
4669
|
+
|
|
4670
|
+
|
|
4671
|
+
|
|
4672
|
+
|
|
4673
|
+
|
|
4674
|
+
<li class="md-nav__item">
|
|
4675
|
+
<a href="../../user-guide/core-data-model/wireless/wirelessnetwork.html" class="md-nav__link">
|
|
4676
|
+
|
|
4677
|
+
|
|
4678
|
+
<span class="md-ellipsis">
|
|
4679
|
+
Wireless Network
|
|
4680
|
+
</span>
|
|
4681
|
+
|
|
4682
|
+
|
|
4683
|
+
</a>
|
|
4684
|
+
</li>
|
|
4685
|
+
|
|
4686
|
+
|
|
4687
|
+
|
|
4688
|
+
|
|
4689
|
+
</ul>
|
|
4690
|
+
</nav>
|
|
4691
|
+
|
|
4692
|
+
</li>
|
|
4693
|
+
|
|
4694
|
+
|
|
4695
|
+
|
|
4696
|
+
|
|
4559
4697
|
</ul>
|
|
4560
4698
|
</nav>
|
|
4561
4699
|
|
|
@@ -4767,6 +4905,27 @@
|
|
|
4767
4905
|
|
|
4768
4906
|
|
|
4769
4907
|
|
|
4908
|
+
<li class="md-nav__item">
|
|
4909
|
+
<a href="../../user-guide/platform-functionality/events.html" class="md-nav__link">
|
|
4910
|
+
|
|
4911
|
+
|
|
4912
|
+
<span class="md-ellipsis">
|
|
4913
|
+
Event Notifications
|
|
4914
|
+
</span>
|
|
4915
|
+
|
|
4916
|
+
|
|
4917
|
+
</a>
|
|
4918
|
+
</li>
|
|
4919
|
+
|
|
4920
|
+
|
|
4921
|
+
|
|
4922
|
+
|
|
4923
|
+
|
|
4924
|
+
|
|
4925
|
+
|
|
4926
|
+
|
|
4927
|
+
|
|
4928
|
+
|
|
4770
4929
|
<li class="md-nav__item">
|
|
4771
4930
|
<a href="../../user-guide/platform-functionality/exporttemplate.html" class="md-nav__link">
|
|
4772
4931
|
|
|
@@ -4841,7 +5000,7 @@
|
|
|
4841
5000
|
|
|
4842
5001
|
|
|
4843
5002
|
|
|
4844
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5003
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_10" >
|
|
4845
5004
|
|
|
4846
5005
|
|
|
4847
5006
|
|
|
@@ -4857,14 +5016,14 @@
|
|
|
4857
5016
|
</a>
|
|
4858
5017
|
|
|
4859
5018
|
|
|
4860
|
-
<label class="md-nav__link " for="
|
|
5019
|
+
<label class="md-nav__link " for="__nav_2_4_10" id="__nav_2_4_10_label" tabindex="0">
|
|
4861
5020
|
<span class="md-nav__icon md-icon"></span>
|
|
4862
5021
|
</label>
|
|
4863
5022
|
|
|
4864
5023
|
</div>
|
|
4865
5024
|
|
|
4866
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
4867
|
-
<label class="md-nav__title" for="
|
|
5025
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_10_label" aria-expanded="false">
|
|
5026
|
+
<label class="md-nav__title" for="__nav_2_4_10">
|
|
4868
5027
|
<span class="md-nav__icon md-icon"></span>
|
|
4869
5028
|
GraphQL
|
|
4870
5029
|
</label>
|
|
@@ -4937,7 +5096,7 @@
|
|
|
4937
5096
|
|
|
4938
5097
|
|
|
4939
5098
|
|
|
4940
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5099
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_12" >
|
|
4941
5100
|
|
|
4942
5101
|
|
|
4943
5102
|
|
|
@@ -4953,14 +5112,14 @@
|
|
|
4953
5112
|
</a>
|
|
4954
5113
|
|
|
4955
5114
|
|
|
4956
|
-
<label class="md-nav__link " for="
|
|
5115
|
+
<label class="md-nav__link " for="__nav_2_4_12" id="__nav_2_4_12_label" tabindex="0">
|
|
4957
5116
|
<span class="md-nav__icon md-icon"></span>
|
|
4958
5117
|
</label>
|
|
4959
5118
|
|
|
4960
5119
|
</div>
|
|
4961
5120
|
|
|
4962
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
4963
|
-
<label class="md-nav__title" for="
|
|
5121
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_12_label" aria-expanded="false">
|
|
5122
|
+
<label class="md-nav__title" for="__nav_2_4_12">
|
|
4964
5123
|
<span class="md-nav__icon md-icon"></span>
|
|
4965
5124
|
Jobs
|
|
4966
5125
|
</label>
|
|
@@ -5035,6 +5194,27 @@
|
|
|
5035
5194
|
|
|
5036
5195
|
|
|
5037
5196
|
|
|
5197
|
+
<li class="md-nav__item">
|
|
5198
|
+
<a href="../../user-guide/platform-functionality/jobs/jobqueue.html" class="md-nav__link">
|
|
5199
|
+
|
|
5200
|
+
|
|
5201
|
+
<span class="md-ellipsis">
|
|
5202
|
+
Job Queues
|
|
5203
|
+
</span>
|
|
5204
|
+
|
|
5205
|
+
|
|
5206
|
+
</a>
|
|
5207
|
+
</li>
|
|
5208
|
+
|
|
5209
|
+
|
|
5210
|
+
|
|
5211
|
+
|
|
5212
|
+
|
|
5213
|
+
|
|
5214
|
+
|
|
5215
|
+
|
|
5216
|
+
|
|
5217
|
+
|
|
5038
5218
|
<li class="md-nav__item">
|
|
5039
5219
|
<a href="../../user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html" class="md-nav__link">
|
|
5040
5220
|
|
|
@@ -5148,6 +5328,27 @@
|
|
|
5148
5328
|
|
|
5149
5329
|
|
|
5150
5330
|
|
|
5331
|
+
<li class="md-nav__item">
|
|
5332
|
+
<a href="../../user-guide/platform-functionality/rendering-jinja-templates.html" class="md-nav__link">
|
|
5333
|
+
|
|
5334
|
+
|
|
5335
|
+
<span class="md-ellipsis">
|
|
5336
|
+
Rendering Jinja Templates
|
|
5337
|
+
</span>
|
|
5338
|
+
|
|
5339
|
+
|
|
5340
|
+
</a>
|
|
5341
|
+
</li>
|
|
5342
|
+
|
|
5343
|
+
|
|
5344
|
+
|
|
5345
|
+
|
|
5346
|
+
|
|
5347
|
+
|
|
5348
|
+
|
|
5349
|
+
|
|
5350
|
+
|
|
5351
|
+
|
|
5151
5352
|
|
|
5152
5353
|
|
|
5153
5354
|
|
|
@@ -5159,7 +5360,7 @@
|
|
|
5159
5360
|
|
|
5160
5361
|
|
|
5161
5362
|
|
|
5162
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5363
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_18" >
|
|
5163
5364
|
|
|
5164
5365
|
|
|
5165
5366
|
|
|
@@ -5175,14 +5376,14 @@
|
|
|
5175
5376
|
</a>
|
|
5176
5377
|
|
|
5177
5378
|
|
|
5178
|
-
<label class="md-nav__link " for="
|
|
5379
|
+
<label class="md-nav__link " for="__nav_2_4_18" id="__nav_2_4_18_label" tabindex="0">
|
|
5179
5380
|
<span class="md-nav__icon md-icon"></span>
|
|
5180
5381
|
</label>
|
|
5181
5382
|
|
|
5182
5383
|
</div>
|
|
5183
5384
|
|
|
5184
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
5185
|
-
<label class="md-nav__title" for="
|
|
5385
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_18_label" aria-expanded="false">
|
|
5386
|
+
<label class="md-nav__title" for="__nav_2_4_18">
|
|
5186
5387
|
<span class="md-nav__icon md-icon"></span>
|
|
5187
5388
|
REST API
|
|
5188
5389
|
</label>
|
|
@@ -5402,10 +5603,10 @@
|
|
|
5402
5603
|
|
|
5403
5604
|
|
|
5404
5605
|
|
|
5405
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
5606
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_25" >
|
|
5406
5607
|
|
|
5407
5608
|
|
|
5408
|
-
<label class="md-nav__link" for="
|
|
5609
|
+
<label class="md-nav__link" for="__nav_2_4_25" id="__nav_2_4_25_label" tabindex="0">
|
|
5409
5610
|
|
|
5410
5611
|
|
|
5411
5612
|
<span class="md-ellipsis">
|
|
@@ -5416,8 +5617,8 @@
|
|
|
5416
5617
|
<span class="md-nav__icon md-icon"></span>
|
|
5417
5618
|
</label>
|
|
5418
5619
|
|
|
5419
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
5420
|
-
<label class="md-nav__title" for="
|
|
5620
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_25_label" aria-expanded="false">
|
|
5621
|
+
<label class="md-nav__title" for="__nav_2_4_25">
|
|
5421
5622
|
<span class="md-nav__icon md-icon"></span>
|
|
5422
5623
|
Users
|
|
5423
5624
|
</label>
|
|
@@ -6827,6 +7028,27 @@
|
|
|
6827
7028
|
|
|
6828
7029
|
|
|
6829
7030
|
|
|
7031
|
+
<li class="md-nav__item">
|
|
7032
|
+
<a href="../../code-reference/nautobot/apps/events.html" class="md-nav__link">
|
|
7033
|
+
|
|
7034
|
+
|
|
7035
|
+
<span class="md-ellipsis">
|
|
7036
|
+
nautobot.apps.events
|
|
7037
|
+
</span>
|
|
7038
|
+
|
|
7039
|
+
|
|
7040
|
+
</a>
|
|
7041
|
+
</li>
|
|
7042
|
+
|
|
7043
|
+
|
|
7044
|
+
|
|
7045
|
+
|
|
7046
|
+
|
|
7047
|
+
|
|
7048
|
+
|
|
7049
|
+
|
|
7050
|
+
|
|
7051
|
+
|
|
6830
7052
|
<li class="md-nav__item">
|
|
6831
7053
|
<a href="../../code-reference/nautobot/apps/exceptions.html" class="md-nav__link">
|
|
6832
7054
|
|
|
@@ -7375,6 +7597,123 @@
|
|
|
7375
7597
|
|
|
7376
7598
|
|
|
7377
7599
|
|
|
7600
|
+
|
|
7601
|
+
|
|
7602
|
+
|
|
7603
|
+
|
|
7604
|
+
|
|
7605
|
+
|
|
7606
|
+
|
|
7607
|
+
|
|
7608
|
+
|
|
7609
|
+
|
|
7610
|
+
|
|
7611
|
+
|
|
7612
|
+
|
|
7613
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
7614
|
+
|
|
7615
|
+
|
|
7616
|
+
|
|
7617
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_5" >
|
|
7618
|
+
|
|
7619
|
+
|
|
7620
|
+
|
|
7621
|
+
<div class="md-nav__link md-nav__container">
|
|
7622
|
+
<a href="../apps/migration/ui-component-framework/index.html" class="md-nav__link ">
|
|
7623
|
+
|
|
7624
|
+
|
|
7625
|
+
<span class="md-ellipsis">
|
|
7626
|
+
UI Component Framework
|
|
7627
|
+
</span>
|
|
7628
|
+
|
|
7629
|
+
|
|
7630
|
+
</a>
|
|
7631
|
+
|
|
7632
|
+
|
|
7633
|
+
<label class="md-nav__link " for="__nav_3_2_9_5" id="__nav_3_2_9_5_label" tabindex="0">
|
|
7634
|
+
<span class="md-nav__icon md-icon"></span>
|
|
7635
|
+
</label>
|
|
7636
|
+
|
|
7637
|
+
</div>
|
|
7638
|
+
|
|
7639
|
+
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_9_5_label" aria-expanded="false">
|
|
7640
|
+
<label class="md-nav__title" for="__nav_3_2_9_5">
|
|
7641
|
+
<span class="md-nav__icon md-icon"></span>
|
|
7642
|
+
UI Component Framework
|
|
7643
|
+
</label>
|
|
7644
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
7645
|
+
|
|
7646
|
+
|
|
7647
|
+
|
|
7648
|
+
|
|
7649
|
+
|
|
7650
|
+
|
|
7651
|
+
|
|
7652
|
+
<li class="md-nav__item">
|
|
7653
|
+
<a href="../apps/migration/ui-component-framework/migration-steps.html" class="md-nav__link">
|
|
7654
|
+
|
|
7655
|
+
|
|
7656
|
+
<span class="md-ellipsis">
|
|
7657
|
+
Migration steps
|
|
7658
|
+
</span>
|
|
7659
|
+
|
|
7660
|
+
|
|
7661
|
+
</a>
|
|
7662
|
+
</li>
|
|
7663
|
+
|
|
7664
|
+
|
|
7665
|
+
|
|
7666
|
+
|
|
7667
|
+
|
|
7668
|
+
|
|
7669
|
+
|
|
7670
|
+
|
|
7671
|
+
|
|
7672
|
+
|
|
7673
|
+
<li class="md-nav__item">
|
|
7674
|
+
<a href="../apps/migration/ui-component-framework/custom-content.html" class="md-nav__link">
|
|
7675
|
+
|
|
7676
|
+
|
|
7677
|
+
<span class="md-ellipsis">
|
|
7678
|
+
Custom content
|
|
7679
|
+
</span>
|
|
7680
|
+
|
|
7681
|
+
|
|
7682
|
+
</a>
|
|
7683
|
+
</li>
|
|
7684
|
+
|
|
7685
|
+
|
|
7686
|
+
|
|
7687
|
+
|
|
7688
|
+
|
|
7689
|
+
|
|
7690
|
+
|
|
7691
|
+
|
|
7692
|
+
|
|
7693
|
+
|
|
7694
|
+
<li class="md-nav__item">
|
|
7695
|
+
<a href="../apps/migration/ui-component-framework/best-practices.html" class="md-nav__link">
|
|
7696
|
+
|
|
7697
|
+
|
|
7698
|
+
<span class="md-ellipsis">
|
|
7699
|
+
Best practices
|
|
7700
|
+
</span>
|
|
7701
|
+
|
|
7702
|
+
|
|
7703
|
+
</a>
|
|
7704
|
+
</li>
|
|
7705
|
+
|
|
7706
|
+
|
|
7707
|
+
|
|
7708
|
+
|
|
7709
|
+
</ul>
|
|
7710
|
+
</nav>
|
|
7711
|
+
|
|
7712
|
+
</li>
|
|
7713
|
+
|
|
7714
|
+
|
|
7715
|
+
|
|
7716
|
+
|
|
7378
7717
|
</ul>
|
|
7379
7718
|
</nav>
|
|
7380
7719
|
|
|
@@ -7593,6 +7932,30 @@
|
|
|
7593
7932
|
</span>
|
|
7594
7933
|
</a>
|
|
7595
7934
|
|
|
7935
|
+
</li>
|
|
7936
|
+
|
|
7937
|
+
<li class="md-nav__item">
|
|
7938
|
+
<a href="#creating-a-branch" class="md-nav__link">
|
|
7939
|
+
<span class="md-ellipsis">
|
|
7940
|
+
Creating a Branch
|
|
7941
|
+
</span>
|
|
7942
|
+
</a>
|
|
7943
|
+
|
|
7944
|
+
<nav class="md-nav" aria-label="Creating a Branch">
|
|
7945
|
+
<ul class="md-nav__list">
|
|
7946
|
+
|
|
7947
|
+
<li class="md-nav__item">
|
|
7948
|
+
<a href="#prototypes" class="md-nav__link">
|
|
7949
|
+
<span class="md-ellipsis">
|
|
7950
|
+
Prototypes
|
|
7951
|
+
</span>
|
|
7952
|
+
</a>
|
|
7953
|
+
|
|
7954
|
+
</li>
|
|
7955
|
+
|
|
7956
|
+
</ul>
|
|
7957
|
+
</nav>
|
|
7958
|
+
|
|
7596
7959
|
</li>
|
|
7597
7960
|
|
|
7598
7961
|
</ul>
|
|
@@ -7787,30 +8150,6 @@
|
|
|
7787
8150
|
<nav class="md-nav" aria-label="Working in your Development Environment">
|
|
7788
8151
|
<ul class="md-nav__list">
|
|
7789
8152
|
|
|
7790
|
-
<li class="md-nav__item">
|
|
7791
|
-
<a href="#creating-a-branch" class="md-nav__link">
|
|
7792
|
-
<span class="md-ellipsis">
|
|
7793
|
-
Creating a Branch
|
|
7794
|
-
</span>
|
|
7795
|
-
</a>
|
|
7796
|
-
|
|
7797
|
-
<nav class="md-nav" aria-label="Creating a Branch">
|
|
7798
|
-
<ul class="md-nav__list">
|
|
7799
|
-
|
|
7800
|
-
<li class="md-nav__item">
|
|
7801
|
-
<a href="#prototypes" class="md-nav__link">
|
|
7802
|
-
<span class="md-ellipsis">
|
|
7803
|
-
Prototypes
|
|
7804
|
-
</span>
|
|
7805
|
-
</a>
|
|
7806
|
-
|
|
7807
|
-
</li>
|
|
7808
|
-
|
|
7809
|
-
</ul>
|
|
7810
|
-
</nav>
|
|
7811
|
-
|
|
7812
|
-
</li>
|
|
7813
|
-
|
|
7814
8153
|
<li class="md-nav__item">
|
|
7815
8154
|
<a href="#creating-a-superuser" class="md-nav__link">
|
|
7816
8155
|
<span class="md-ellipsis">
|
|
@@ -8272,6 +8611,27 @@
|
|
|
8272
8611
|
|
|
8273
8612
|
|
|
8274
8613
|
|
|
8614
|
+
<li class="md-nav__item">
|
|
8615
|
+
<a href="local-k8s.html" class="md-nav__link">
|
|
8616
|
+
|
|
8617
|
+
|
|
8618
|
+
<span class="md-ellipsis">
|
|
8619
|
+
Local Kubernetes Cluster
|
|
8620
|
+
</span>
|
|
8621
|
+
|
|
8622
|
+
|
|
8623
|
+
</a>
|
|
8624
|
+
</li>
|
|
8625
|
+
|
|
8626
|
+
|
|
8627
|
+
|
|
8628
|
+
|
|
8629
|
+
|
|
8630
|
+
|
|
8631
|
+
|
|
8632
|
+
|
|
8633
|
+
|
|
8634
|
+
|
|
8275
8635
|
<li class="md-nav__item">
|
|
8276
8636
|
<a href="model-checklist.html" class="md-nav__link">
|
|
8277
8637
|
|
|
@@ -8461,6 +8821,27 @@
|
|
|
8461
8821
|
|
|
8462
8822
|
|
|
8463
8823
|
|
|
8824
|
+
<li class="md-nav__item">
|
|
8825
|
+
<a href="ui-component-framework.html" class="md-nav__link">
|
|
8826
|
+
|
|
8827
|
+
|
|
8828
|
+
<span class="md-ellipsis">
|
|
8829
|
+
UI Component Framework
|
|
8830
|
+
</span>
|
|
8831
|
+
|
|
8832
|
+
|
|
8833
|
+
</a>
|
|
8834
|
+
</li>
|
|
8835
|
+
|
|
8836
|
+
|
|
8837
|
+
|
|
8838
|
+
|
|
8839
|
+
|
|
8840
|
+
|
|
8841
|
+
|
|
8842
|
+
|
|
8843
|
+
|
|
8844
|
+
|
|
8464
8845
|
<li class="md-nav__item">
|
|
8465
8846
|
<a href="release-checklist.html" class="md-nav__link">
|
|
8466
8847
|
|
|
@@ -8543,6 +8924,27 @@
|
|
|
8543
8924
|
|
|
8544
8925
|
|
|
8545
8926
|
|
|
8927
|
+
<li class="md-nav__item">
|
|
8928
|
+
<a href="../../release-notes/version-2.4.html" class="md-nav__link">
|
|
8929
|
+
|
|
8930
|
+
|
|
8931
|
+
<span class="md-ellipsis">
|
|
8932
|
+
Version 2.4
|
|
8933
|
+
</span>
|
|
8934
|
+
|
|
8935
|
+
|
|
8936
|
+
</a>
|
|
8937
|
+
</li>
|
|
8938
|
+
|
|
8939
|
+
|
|
8940
|
+
|
|
8941
|
+
|
|
8942
|
+
|
|
8943
|
+
|
|
8944
|
+
|
|
8945
|
+
|
|
8946
|
+
|
|
8947
|
+
|
|
8546
8948
|
<li class="md-nav__item">
|
|
8547
8949
|
<a href="../../release-notes/version-2.3.html" class="md-nav__link">
|
|
8548
8950
|
|
|
@@ -9165,6 +9567,30 @@
|
|
|
9165
9567
|
</span>
|
|
9166
9568
|
</a>
|
|
9167
9569
|
|
|
9570
|
+
</li>
|
|
9571
|
+
|
|
9572
|
+
<li class="md-nav__item">
|
|
9573
|
+
<a href="#creating-a-branch" class="md-nav__link">
|
|
9574
|
+
<span class="md-ellipsis">
|
|
9575
|
+
Creating a Branch
|
|
9576
|
+
</span>
|
|
9577
|
+
</a>
|
|
9578
|
+
|
|
9579
|
+
<nav class="md-nav" aria-label="Creating a Branch">
|
|
9580
|
+
<ul class="md-nav__list">
|
|
9581
|
+
|
|
9582
|
+
<li class="md-nav__item">
|
|
9583
|
+
<a href="#prototypes" class="md-nav__link">
|
|
9584
|
+
<span class="md-ellipsis">
|
|
9585
|
+
Prototypes
|
|
9586
|
+
</span>
|
|
9587
|
+
</a>
|
|
9588
|
+
|
|
9589
|
+
</li>
|
|
9590
|
+
|
|
9591
|
+
</ul>
|
|
9592
|
+
</nav>
|
|
9593
|
+
|
|
9168
9594
|
</li>
|
|
9169
9595
|
|
|
9170
9596
|
</ul>
|
|
@@ -9359,30 +9785,6 @@
|
|
|
9359
9785
|
<nav class="md-nav" aria-label="Working in your Development Environment">
|
|
9360
9786
|
<ul class="md-nav__list">
|
|
9361
9787
|
|
|
9362
|
-
<li class="md-nav__item">
|
|
9363
|
-
<a href="#creating-a-branch" class="md-nav__link">
|
|
9364
|
-
<span class="md-ellipsis">
|
|
9365
|
-
Creating a Branch
|
|
9366
|
-
</span>
|
|
9367
|
-
</a>
|
|
9368
|
-
|
|
9369
|
-
<nav class="md-nav" aria-label="Creating a Branch">
|
|
9370
|
-
<ul class="md-nav__list">
|
|
9371
|
-
|
|
9372
|
-
<li class="md-nav__item">
|
|
9373
|
-
<a href="#prototypes" class="md-nav__link">
|
|
9374
|
-
<span class="md-ellipsis">
|
|
9375
|
-
Prototypes
|
|
9376
|
-
</span>
|
|
9377
|
-
</a>
|
|
9378
|
-
|
|
9379
|
-
</li>
|
|
9380
|
-
|
|
9381
|
-
</ul>
|
|
9382
|
-
</nav>
|
|
9383
|
-
|
|
9384
|
-
</li>
|
|
9385
|
-
|
|
9386
9788
|
<li class="md-nav__item">
|
|
9387
9789
|
<a href="#creating-a-superuser" class="md-nav__link">
|
|
9388
9790
|
<span class="md-ellipsis">
|
|
@@ -9737,6 +10139,24 @@
|
|
|
9737
10139
|
<p class="admonition-title">Hint</p>
|
|
9738
10140
|
<p>You will always <strong>push</strong> changes to <code>origin</code> (your fork) and <strong>pull</strong> changes from <code>upstream</code> (official repo).</p>
|
|
9739
10141
|
</div>
|
|
10142
|
+
<h3 id="creating-a-branch">Creating a Branch<a class="headerlink" href="#creating-a-branch" title="Permanent link">¶</a></h3>
|
|
10143
|
+
<p>Before you make any changes, always create a new branch. Again, for bug fixes and minor features, you'll want to create your branches from the <code>develop</code> branch, while for major new features, you'll branch from <code>next</code> instead.</p>
|
|
10144
|
+
<p>Before you ever create a new branch, always checkout the appropriate branch and make sure you you've got the latest changes from <code>upstream</code>:</p>
|
|
10145
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>git checkout develop
|
|
10146
|
+
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>git pull upstream develop
|
|
10147
|
+
</code></pre></div>
|
|
10148
|
+
<div class="admonition warning">
|
|
10149
|
+
<p class="admonition-title">Warning</p>
|
|
10150
|
+
<p>If you do not do this, you run the risk of having merge conflicts in your branch, and that's never fun to deal with. Trust us on this one.</p>
|
|
10151
|
+
</div>
|
|
10152
|
+
<p>Now that you've got the latest upstream changes, create your branch. Whether you're creating a branch off a fork or working against the Nautobot origin repo, you should follow this convention for naming your branch: <code>u/yourusername-0000-branch-summary</code>, where <code>0000</code> is the related GitHub issue number and <code>yourusername</code> is your GitHub username. For example:</p>
|
|
10153
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>git checkout -b u/yourusername-1234-next-amazing-feature
|
|
10154
|
+
</code></pre></div>
|
|
10155
|
+
<p>If you do not have a relevant GitHub issue, please consider opening one to document the context behind your changes.</p>
|
|
10156
|
+
<h4 id="prototypes">Prototypes<a class="headerlink" href="#prototypes" title="Permanent link">¶</a></h4>
|
|
10157
|
+
<p>Sometimes code is written as a proof of concept or early implementation candidate but is not quite ready to be merged, or may be picked up by another author sometime in the future. In that case, the convention is to use the <code>prototype/</code> prefix to the branch name and not requiring the original authors username. In that scenario, using the example above, you would instead:</p>
|
|
10158
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>git checkout -b prototype/1234-next-amazing-feature
|
|
10159
|
+
</code></pre></div>
|
|
9740
10160
|
<h2 id="enabling-pre-commit-hooks">Enabling Pre-Commit Hooks<a class="headerlink" href="#enabling-pre-commit-hooks" title="Permanent link">¶</a></h2>
|
|
9741
10161
|
<p>Nautobot ships with a <a href="https://githooks.com/">Git pre-commit hook</a> script that automatically checks for style compliance and missing database migrations prior to committing changes. This helps avoid erroneous commits that result in CI test failures.</p>
|
|
9742
10162
|
<div class="admonition note">
|
|
@@ -9744,15 +10164,15 @@
|
|
|
9744
10164
|
<p>This pre-commit hook currently only supports the Python Virtual Environment Workflow.</p>
|
|
9745
10165
|
</div>
|
|
9746
10166
|
<p>You are encouraged to enable it by creating a link to <code>scripts/git-hooks/pre-commit</code>:</p>
|
|
9747
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9748
|
-
<a id="__codelineno-
|
|
10167
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>cd .git/hooks/
|
|
10168
|
+
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>ln -s ../../scripts/git-hooks/pre-commit
|
|
9749
10169
|
</code></pre></div>
|
|
9750
10170
|
<h2 id="setting-up-your-development-environment">Setting up your Development Environment<a class="headerlink" href="#setting-up-your-development-environment" title="Permanent link">¶</a></h2>
|
|
9751
10171
|
<p>Getting started with Nautobot development is pretty straightforward, and should feel very familiar to anyone with Django development experience. We can recommend either a <a href="#docker-compose-workflow">Docker Compose workflow</a> (if you don't want to install dependencies such as PostgreSQL and Redis directly onto your system) or a <a href="#python-virtual-environment-workflow">Python virtual environment workflow</a>.</p>
|
|
9752
10172
|
<h3 id="windows-development">Windows Development<a class="headerlink" href="#windows-development" title="Permanent link">¶</a></h3>
|
|
9753
10173
|
<p>The Docker Compose development workflow on Windows Subsystem for Linux (WSL) has been tested successfully with <a href="https://docs.docker.com/desktop/windows/wsl/">Docker Desktop using the WSL2 backend</a> and the Ubuntu 20.04 WSL2 distribution. The Poetry workflow has also been tested successfully on the Ubuntu 20.04 WSL2 distribution.</p>
|
|
9754
10174
|
<p>To install WSL2 and Ubuntu follow the instructions from the <a href="https://learn.microsoft.com/en-us/windows/wsl/install">WSL installation guide</a> or if running Windows 10 version 2004 and higher you can open an administrator Powershell terminal and enter the following command:</p>
|
|
9755
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10175
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="n">wsl</span> <span class="p">-</span><span class="n">-install</span>
|
|
9756
10176
|
</code></pre></div>
|
|
9757
10177
|
<p>This will install the WSL2 Ubuntu distribution. Reboot if prompted. After the image installs successfully you may install Docker Desktop with the WSL2 backend.</p>
|
|
9758
10178
|
<h3 id="docker-compose-workflow">Docker Compose Workflow<a class="headerlink" href="#docker-compose-workflow" title="Permanent link">¶</a></h3>
|
|
@@ -9764,58 +10184,55 @@
|
|
|
9764
10184
|
</div>
|
|
9765
10185
|
<h4 id="install-invoke">Install Invoke<a class="headerlink" href="#install-invoke" title="Permanent link">¶</a></h4>
|
|
9766
10186
|
<p>Because it is used to execute all common Docker workflow tasks, Invoke must be installed for your user environment. On most systems, if you're installing without root/superuser permissions, the default will install into your local user environment.</p>
|
|
9767
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10187
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>pip3 install invoke
|
|
9768
10188
|
</code></pre></div>
|
|
9769
10189
|
<p>If you run into issues, you may also deliberately tell <code>pip3</code> to install into your user environment by adding the <code>--user</code> flag:</p>
|
|
9770
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10190
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>pip3 install --user invoke
|
|
9771
10191
|
</code></pre></div>
|
|
9772
10192
|
<p>If you encounter an <a href="https://peps.python.org/pep-0668/"><code>externally-managed-environment</code></a> error, you may need to install invoke through your OS's package manager. For example, <code>apt-get install python3-invoke</code> for Debian.</p>
|
|
9773
10193
|
<p>Please see the <a href="https://pip.pypa.io/en/stable/user_guide/#user-installs">official documentation on Pip user installs</a> for more information.</p>
|
|
9774
10194
|
<h4 id="list-invoke-tasks">List Invoke Tasks<a class="headerlink" href="#list-invoke-tasks" title="Permanent link">¶</a></h4>
|
|
9775
10195
|
<p>Now that you have an <code>invoke</code> command, list the tasks defined in <code>tasks.py</code>:</p>
|
|
9776
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10196
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>invoke --list
|
|
9777
10197
|
</code></pre></div>
|
|
9778
10198
|
<p>Example output:</p>
|
|
9779
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9780
|
-
<a id="__codelineno-
|
|
9781
|
-
<a id="__codelineno-
|
|
9782
|
-
<a id="__codelineno-
|
|
9783
|
-
<a id="__codelineno-
|
|
9784
|
-
<a id="__codelineno-
|
|
9785
|
-
<a id="__codelineno-
|
|
9786
|
-
<a id="__codelineno-
|
|
9787
|
-
<a id="__codelineno-
|
|
9788
|
-
<a id="__codelineno-
|
|
9789
|
-
<a id="__codelineno-
|
|
9790
|
-
<a id="__codelineno-
|
|
9791
|
-
<a id="__codelineno-
|
|
9792
|
-
<a id="__codelineno-
|
|
9793
|
-
<a id="__codelineno-
|
|
9794
|
-
<a id="__codelineno-
|
|
9795
|
-
<a id="__codelineno-
|
|
9796
|
-
<a id="__codelineno-
|
|
9797
|
-
<a id="__codelineno-
|
|
9798
|
-
<a id="__codelineno-
|
|
9799
|
-
<a id="__codelineno-
|
|
9800
|
-
<a id="__codelineno-
|
|
9801
|
-
<a id="__codelineno-
|
|
9802
|
-
<a id="__codelineno-
|
|
9803
|
-
<a id="__codelineno-
|
|
9804
|
-
<a id="__codelineno-
|
|
9805
|
-
<a id="__codelineno-
|
|
9806
|
-
<a id="__codelineno-
|
|
9807
|
-
<a id="__codelineno-
|
|
9808
|
-
<a id="__codelineno-
|
|
9809
|
-
<a id="__codelineno-
|
|
9810
|
-
<a id="__codelineno-
|
|
9811
|
-
<a id="__codelineno-
|
|
9812
|
-
<a id="__codelineno-
|
|
9813
|
-
<a id="__codelineno-
|
|
9814
|
-
<a id="__codelineno-
|
|
9815
|
-
<a id="__codelineno-
|
|
9816
|
-
<a id="__codelineno-14-38" name="__codelineno-14-38" href="#__codelineno-14-38"></a> version Show the version of Nautobot Python package or bump it when a valid bump rule is provided.
|
|
9817
|
-
<a id="__codelineno-14-39" name="__codelineno-14-39" href="#__codelineno-14-39"></a> vscode Launch Visual Studio Code with the appropriate Environment variables to run in a container.
|
|
9818
|
-
<a id="__codelineno-14-40" name="__codelineno-14-40" href="#__codelineno-14-40"></a> yamllint Run yamllint to validate formatting applies to YAML standards.
|
|
10199
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>Available tasks:
|
|
10200
|
+
<a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a>
|
|
10201
|
+
<a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a> build Build Nautobot docker image.
|
|
10202
|
+
<a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a> build-and-check-docs Build docs for use within Nautobot.
|
|
10203
|
+
<a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a> build-dependencies
|
|
10204
|
+
<a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a> buildx Build Nautobot docker image using the experimental buildx docker functionality (multi-arch
|
|
10205
|
+
<a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a> capability).
|
|
10206
|
+
<a id="__codelineno-17-8" name="__codelineno-17-8" href="#__codelineno-17-8"></a> check-migrations Check for missing migrations.
|
|
10207
|
+
<a id="__codelineno-17-9" name="__codelineno-17-9" href="#__codelineno-17-9"></a> check-schema Render the REST API schema and check for problems.
|
|
10208
|
+
<a id="__codelineno-17-10" name="__codelineno-17-10" href="#__codelineno-17-10"></a> cli Launch a bash shell inside the running Nautobot (or other) Docker container.
|
|
10209
|
+
<a id="__codelineno-17-11" name="__codelineno-17-11" href="#__codelineno-17-11"></a> createsuperuser Create a new Nautobot superuser account (default: "admin"), will prompt for password.
|
|
10210
|
+
<a id="__codelineno-17-12" name="__codelineno-17-12" href="#__codelineno-17-12"></a> debug Start Nautobot and its dependencies in debug mode.
|
|
10211
|
+
<a id="__codelineno-17-13" name="__codelineno-17-13" href="#__codelineno-17-13"></a> destroy Destroy all containers and volumes.
|
|
10212
|
+
<a id="__codelineno-17-14" name="__codelineno-17-14" href="#__codelineno-17-14"></a> docker-push Tags and pushes docker images to the appropriate repos, intended for release use only.
|
|
10213
|
+
<a id="__codelineno-17-15" name="__codelineno-17-15" href="#__codelineno-17-15"></a> dumpdata Dump data from database to db_output file.
|
|
10214
|
+
<a id="__codelineno-17-16" name="__codelineno-17-16" href="#__codelineno-17-16"></a> hadolint Check Dockerfile for hadolint compliance and other style issues.
|
|
10215
|
+
<a id="__codelineno-17-17" name="__codelineno-17-17" href="#__codelineno-17-17"></a> integration-test Run Nautobot integration tests.
|
|
10216
|
+
<a id="__codelineno-17-18" name="__codelineno-17-18" href="#__codelineno-17-18"></a> loaddata Load data from file.
|
|
10217
|
+
<a id="__codelineno-17-19" name="__codelineno-17-19" href="#__codelineno-17-19"></a> makemigrations Perform makemigrations operation in Django.
|
|
10218
|
+
<a id="__codelineno-17-20" name="__codelineno-17-20" href="#__codelineno-17-20"></a> migration-test Test database migration from a given dataset to latest Nautobot schema.
|
|
10219
|
+
<a id="__codelineno-17-21" name="__codelineno-17-21" href="#__codelineno-17-21"></a> markdownlint Lint Markdown files.
|
|
10220
|
+
<a id="__codelineno-17-22" name="__codelineno-17-22" href="#__codelineno-17-22"></a> migrate Perform migrate operation in Django.
|
|
10221
|
+
<a id="__codelineno-17-23" name="__codelineno-17-23" href="#__codelineno-17-23"></a> nbshell Launch an interactive Nautobot shell.
|
|
10222
|
+
<a id="__codelineno-17-24" name="__codelineno-17-24" href="#__codelineno-17-24"></a> performance-test Run Nautobot performance tests.
|
|
10223
|
+
<a id="__codelineno-17-25" name="__codelineno-17-25" href="#__codelineno-17-25"></a> post-upgrade Performs Nautobot common post-upgrade operations using a single entrypoint.
|
|
10224
|
+
<a id="__codelineno-17-26" name="__codelineno-17-26" href="#__codelineno-17-26"></a> pylint Perform static analysis of Nautobot code.
|
|
10225
|
+
<a id="__codelineno-17-27" name="__codelineno-17-27" href="#__codelineno-17-27"></a> restart Gracefully restart containers.
|
|
10226
|
+
<a id="__codelineno-17-28" name="__codelineno-17-28" href="#__codelineno-17-28"></a> ruff Run ruff to perform code formatting and/or linting.
|
|
10227
|
+
<a id="__codelineno-17-29" name="__codelineno-17-29" href="#__codelineno-17-29"></a> serve-docs Runs local instance of mkdocs serve (ctrl-c to stop).
|
|
10228
|
+
<a id="__codelineno-17-30" name="__codelineno-17-30" href="#__codelineno-17-30"></a> start Start Nautobot and its dependencies in detached mode.
|
|
10229
|
+
<a id="__codelineno-17-31" name="__codelineno-17-31" href="#__codelineno-17-31"></a> stop Stop Nautobot and its dependencies.
|
|
10230
|
+
<a id="__codelineno-17-32" name="__codelineno-17-32" href="#__codelineno-17-32"></a> tests Run all linters and unit tests.
|
|
10231
|
+
<a id="__codelineno-17-33" name="__codelineno-17-33" href="#__codelineno-17-33"></a> unittest Run Nautobot unit tests.
|
|
10232
|
+
<a id="__codelineno-17-34" name="__codelineno-17-34" href="#__codelineno-17-34"></a> unittest-coverage Report on code test coverage as measured by 'invoke unittest'.
|
|
10233
|
+
<a id="__codelineno-17-35" name="__codelineno-17-35" href="#__codelineno-17-35"></a> version Show the version of Nautobot Python and NPM packages or bump them when a valid bump rule is provided.
|
|
10234
|
+
<a id="__codelineno-17-36" name="__codelineno-17-36" href="#__codelineno-17-36"></a> vscode Launch Visual Studio Code with the appropriate Environment variables to run in a container.
|
|
10235
|
+
<a id="__codelineno-17-37" name="__codelineno-17-37" href="#__codelineno-17-37"></a> yamllint Run yamllint to validate formatting applies to YAML standards.
|
|
9819
10236
|
</code></pre></div>
|
|
9820
10237
|
<h4 id="using-docker-with-invoke">Using Docker with Invoke<a class="headerlink" href="#using-docker-with-invoke" title="Permanent link">¶</a></h4>
|
|
9821
10238
|
<details class="version-changed">
|
|
@@ -9824,17 +10241,14 @@
|
|
|
9824
10241
|
</details>
|
|
9825
10242
|
<p>A development environment can be easily started up from the root of the project using the following commands:</p>
|
|
9826
10243
|
<ul>
|
|
9827
|
-
<li><code>invoke
|
|
9828
|
-
<li><code>invoke build</code> - Builds Nautobot docker images appropriate to the current Git branch</li>
|
|
10244
|
+
<li><code>invoke build</code> - Builds Nautobot docker images</li>
|
|
9829
10245
|
<li><code>invoke migrate</code> - Performs database migration operation in Django</li>
|
|
9830
10246
|
<li><code>invoke debug</code> - Starts Docker containers for Nautobot, PostgreSQL, Redis, Celery, and Celery Beat in debug mode and attaches their output to the terminal in the foreground. You may enter Control-C to stop the containers</li>
|
|
9831
10247
|
</ul>
|
|
9832
10248
|
<p>Additional useful commands for the development environment:</p>
|
|
9833
10249
|
<ul>
|
|
9834
|
-
<li><code>invoke start [-s servicename]</code> - Starts Docker containers for Nautobot, PostgreSQL, Redis, NGINX, Celery, and Celery Beat (or a specific container/service, such as <code>invoke start -s redis</code>) to run in the background</li>
|
|
9835
|
-
<li><code>invoke
|
|
9836
|
-
<li><code>invoke nbshell</code> - Launches a Nautobot Python shell inside the Nautobot container</li>
|
|
9837
|
-
<li><code>invoke cli [-s servicename]</code> - Launches a <code>bash</code> shell inside the specified service container (if none is specified, defaults to the Nautobot container)</li>
|
|
10250
|
+
<li><code>invoke start [-s servicename]</code> - Starts Docker containers for Nautobot, PostgreSQL, Redis, NGINX, Celery, and Celery Beat (or a specific container/service, such as <code>invoke start -s redis</code>) to run in the background with debug disabled</li>
|
|
10251
|
+
<li><code>invoke cli [-s servicename]</code> - Launch a <code>bash</code> shell inside the specified service container (if none is specified, defaults to the Nautobot container)</li>
|
|
9838
10252
|
<li><code>invoke stop [-s servicename]</code> - Stops all containers (or a specific container/service) created by <code>invoke start</code></li>
|
|
9839
10253
|
<li><code>invoke createsuperuser</code> - Creates a superuser account for the Nautobot application</li>
|
|
9840
10254
|
</ul>
|
|
@@ -9864,7 +10278,7 @@
|
|
|
9864
10278
|
<h4 id="install-poetry">Install Poetry<a class="headerlink" href="#install-poetry" title="Permanent link">¶</a></h4>
|
|
9865
10279
|
<p><a href="https://python-poetry.org/docs/">Poetry</a> is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update/remove) them for you. It will also manage virtual environments automatically, and allow for publishing packages to the <a href="https://pypi.org">Python Package Index</a>.</p>
|
|
9866
10280
|
<p>You may install Poetry in your user environment by running:</p>
|
|
9867
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10281
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>curl -sSL https://install.python-poetry.org | python3 -
|
|
9868
10282
|
</code></pre></div>
|
|
9869
10283
|
<details class="version-changed">
|
|
9870
10284
|
<summary>Changed in version 1.5.6</summary>
|
|
@@ -9879,17 +10293,17 @@
|
|
|
9879
10293
|
<p>For detailed installation instructions, please see the <a href="https://python-poetry.org/docs/#installation">official Poetry installation guide</a>.</p>
|
|
9880
10294
|
<h4 id="install-hadolint">Install Hadolint<a class="headerlink" href="#install-hadolint" title="Permanent link">¶</a></h4>
|
|
9881
10295
|
<p><a href="https://github.com/hadolint/hadolint">Hadolint</a> is a tool used to validate and lint Dockerfiles to ensure we are following best practices. On macOS with <a href="https://brew.sh/">Homebrew</a> you can install Hadolint by running:</p>
|
|
9882
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10296
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>brew install hadolint
|
|
9883
10297
|
</code></pre></div>
|
|
9884
10298
|
<h4 id="install-markdownlint-cli">Install markdownlint-cli<a class="headerlink" href="#install-markdownlint-cli" title="Permanent link">¶</a></h4>
|
|
9885
10299
|
<p><a href="https://github.com/igorshubovych/markdownlint-cli">markdownlint-cli</a> is a tool used to validate and lint Markdown files, such as Nautobot's documentation, to ensure that they are correctly constructed. On macOS with <a href="https://brew.sh/">Homebrew</a> you can install markdownlint-cli by running:</p>
|
|
9886
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10300
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>brew install markdownlint-cli
|
|
9887
10301
|
</code></pre></div>
|
|
9888
10302
|
<h4 id="creating-a-python-virtual-environment">Creating a Python Virtual Environment<a class="headerlink" href="#creating-a-python-virtual-environment" title="Permanent link">¶</a></h4>
|
|
9889
10303
|
<p>A Python <a href="https://docs.python.org/3/tutorial/venv.html">virtual environment</a> (or <em>virtualenv</em>) is like a container for a set of Python packages. A virtualenv allow you to build environments suited to specific projects without interfering with system packages or other projects. When installed per the documentation, Nautobot uses a virtual environment in production.</p>
|
|
9890
10304
|
<p>For Nautobot development, we have selected Poetry, which will transparently create a virtualenv for you, automatically install all dependencies required for Nautobot to operate, and will also install the <code>nautobot-server</code> CLI command that you will utilize to interact with Nautobot from here on out.</p>
|
|
9891
10305
|
<p>Bootstrap your virtual environment using <code>poetry install</code>:</p>
|
|
9892
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10306
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>poetry install
|
|
9893
10307
|
</code></pre></div>
|
|
9894
10308
|
<div class="admonition hint">
|
|
9895
10309
|
<p class="admonition-title">Hint</p>
|
|
@@ -9897,44 +10311,44 @@
|
|
|
9897
10311
|
</div>
|
|
9898
10312
|
<p>This will create automatically create a virtualenv in your home directory, which houses a virtual copy of the Python executable and its related libraries and tooling. When running Nautobot for development, it will be run using the Python binary at found within the virtualenv.</p>
|
|
9899
10313
|
<p>Once created, you may activate the virtual environment using <code>poetry shell</code>:</p>
|
|
9900
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10314
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>poetry shell
|
|
9901
10315
|
</code></pre></div>
|
|
9902
10316
|
<p>Example output:</p>
|
|
9903
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9904
|
-
<a id="__codelineno-
|
|
9905
|
-
<a id="__codelineno-
|
|
9906
|
-
<a id="__codelineno-
|
|
10317
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>Spawning shell within /home/example/.cache/pypoetry/virtualenvs/nautobot-Ams_xyDt-py3.12
|
|
10318
|
+
<a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a>
|
|
10319
|
+
<a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-3"></a>. /home/example/.cache/pypoetry/virtualenvs/nautobot-Ams_xyDt-py3.12/bin/activate
|
|
10320
|
+
<a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a>(nautobot-Ams_xyDt-py3.12) $
|
|
9907
10321
|
</code></pre></div>
|
|
9908
10322
|
<p>Notice that the console prompt changes to indicate the active environment. This updates the necessary system environment variables to ensure that any Python scripts are run within the virtual environment.</p>
|
|
9909
10323
|
<p>Observe also that the <code>python</code> interpreter is bound within the virtualenv:</p>
|
|
9910
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10324
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>which python
|
|
9911
10325
|
</code></pre></div>
|
|
9912
10326
|
<p>Example output:</p>
|
|
9913
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10327
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>(nautobot-Ams_xyDt-py3.12) $ /home/example/.cache/pypoetry/virtualenvs/nautobot-Ams_xyDt-py3.12/bin/python
|
|
9914
10328
|
</code></pre></div>
|
|
9915
10329
|
<p>To exit the virtual shell, use <code>exit</code>:</p>
|
|
9916
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10330
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>exit
|
|
9917
10331
|
</code></pre></div>
|
|
9918
10332
|
<p>Example output:</p>
|
|
9919
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10333
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>$
|
|
9920
10334
|
</code></pre></div>
|
|
9921
10335
|
<h4 id="working-with-poetry">Working with Poetry<a class="headerlink" href="#working-with-poetry" title="Permanent link">¶</a></h4>
|
|
9922
10336
|
<p>Poetry automatically installs your dependencies. However, if you need to install any additional dependencies this can be done with <code>pip</code>. For example, if you really like using <code>ipython</code> for development:</p>
|
|
9923
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10337
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>pip3 install ipython
|
|
9924
10338
|
</code></pre></div>
|
|
9925
10339
|
<p>Example output:</p>
|
|
9926
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9927
|
-
<a id="__codelineno-
|
|
9928
|
-
<a id="__codelineno-
|
|
10340
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>Collecting ipython
|
|
10341
|
+
<a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a> Using cached ipython-7.20.0-py3-none-any.whl (784 kB)
|
|
10342
|
+
<a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a> ...
|
|
9929
10343
|
</code></pre></div>
|
|
9930
10344
|
<ul>
|
|
9931
10345
|
<li>Install verify that you have the proper dependencies installed and are in the virtual environment via Poetry. This also ensures that you have the proper mkdocs themes installed.</li>
|
|
9932
10346
|
</ul>
|
|
9933
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9934
|
-
<a id="__codelineno-
|
|
10347
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>poetry<span class="w"> </span>shell
|
|
10348
|
+
<a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a>poetry<span class="w"> </span>install
|
|
9935
10349
|
</code></pre></div>
|
|
9936
10350
|
<p>It may not always be convenient to enter into the virtual shell just to run programs. You may also execute a given command ad hoc within the project's virtual shell by using <code>poetry run</code>:</p>
|
|
9937
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10351
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>poetry run mkdocs serve
|
|
9938
10352
|
</code></pre></div>
|
|
9939
10353
|
<p>Check out the <a href="https://python-poetry.org/docs/basic-usage/">Poetry usage guide</a> for more tips.</p>
|
|
9940
10354
|
<h4 id="configuring-nautobot">Configuring Nautobot<a class="headerlink" href="#configuring-nautobot" title="Permanent link">¶</a></h4>
|
|
@@ -9949,20 +10363,20 @@
|
|
|
9949
10363
|
<p>Nautobot's configuration file is <code>nautobot_config.py</code>.</p>
|
|
9950
10364
|
<h5 id="initializing-a-config">Initializing a Config<a class="headerlink" href="#initializing-a-config" title="Permanent link">¶</a></h5>
|
|
9951
10365
|
<p>You may also initialize a new configuration using <code>nautobot-server init</code>:</p>
|
|
9952
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10366
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>nautobot-server init
|
|
9953
10367
|
</code></pre></div>
|
|
9954
10368
|
<p>Example output:</p>
|
|
9955
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
9956
|
-
<a id="__codelineno-
|
|
9957
|
-
<a id="__codelineno-
|
|
9958
|
-
<a id="__codelineno-
|
|
9959
|
-
<a id="__codelineno-
|
|
10369
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>Nautobot would like to send anonymized installation metrics to the project's maintainers.
|
|
10370
|
+
<a id="__codelineno-33-2" name="__codelineno-33-2" href="#__codelineno-33-2"></a>These metrics include the installed Nautobot version, the Python version in use, an anonymous "deployment ID", and a list of one-way-hashed names of enabled Nautobot Apps and their versions.
|
|
10371
|
+
<a id="__codelineno-33-3" name="__codelineno-33-3" href="#__codelineno-33-3"></a>Allow Nautobot to send these metrics? [y/n]: n
|
|
10372
|
+
<a id="__codelineno-33-4" name="__codelineno-33-4" href="#__codelineno-33-4"></a>Installation metrics will not be sent by default.
|
|
10373
|
+
<a id="__codelineno-33-5" name="__codelineno-33-5" href="#__codelineno-33-5"></a>Configuration file created at /home/example/.nautobot/nautobot_config.py
|
|
9960
10374
|
</code></pre></div>
|
|
9961
10375
|
<p>You may also specify alternate file locations. Please refer to <a href="../../user-guide/administration/configuration/index.html">Configuring Nautobot</a> for how to do that.</p>
|
|
9962
10376
|
<h5 id="using-the-development-config">Using the Development Config<a class="headerlink" href="#using-the-development-config" title="Permanent link">¶</a></h5>
|
|
9963
10377
|
<p>A <code>nautobot_config.py</code> suitable for development purposes can be found at <code>development/nautobot_config.py</code>. You may customize the values there or utilize environment variables to override the default values.</p>
|
|
9964
10378
|
<p>If you want to use this file, initialize a config first, then copy this file to the default location Nautobot expects to find its config:</p>
|
|
9965
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10379
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>cp development/nautobot_config.py ~/.nautobot/nautobot_config.py
|
|
9966
10380
|
</code></pre></div>
|
|
9967
10381
|
<h5 id="required-settings">Required Settings<a class="headerlink" href="#required-settings" title="Permanent link">¶</a></h5>
|
|
9968
10382
|
<p>A newly created configuration includes sane defaults. If you need to customize them, edit your <code>nautobot_config.py</code> and update the following settings as required:</p>
|
|
@@ -9975,32 +10389,6 @@
|
|
|
9975
10389
|
</ul>
|
|
9976
10390
|
<h2 id="working-in-your-development-environment">Working in your Development Environment<a class="headerlink" href="#working-in-your-development-environment" title="Permanent link">¶</a></h2>
|
|
9977
10391
|
<p>Below are common commands for working your development environment.</p>
|
|
9978
|
-
<h3 id="creating-a-branch">Creating a Branch<a class="headerlink" href="#creating-a-branch" title="Permanent link">¶</a></h3>
|
|
9979
|
-
<p>Before you make any changes, always create a new branch. Again, for bug fixes and minor features, you'll want to create your branches from the <code>develop</code> branch, while for major new features, you'll branch from <code>next</code> instead.</p>
|
|
9980
|
-
<p>In current versions of Nautobot, you can use the <code>invoke branch</code> command to create a new branch or switch to an existing branch. Whether you're creating a branch off a fork or working against the Nautobot origin repo, you should follow this convention for naming your branch: <code>u/yourusername-0000-branch-summary</code>, where <code>0000</code> is the related GitHub issue number and <code>yourusername</code> is your GitHub username. (If you do not have a relevant GitHub issue, please consider opening one to document the context behind your changes.)</p>
|
|
9981
|
-
<p>For example:</p>
|
|
9982
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>invoke branch --create --branch u/yourusername-1234-some-bug-fix --parent develop
|
|
9983
|
-
</code></pre></div>
|
|
9984
|
-
<p>or:</p>
|
|
9985
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>invoke branch --create --branch u/yourusername-1235-amazing-feature --parent next
|
|
9986
|
-
</code></pre></div>
|
|
9987
|
-
<div class="admonition caution">
|
|
9988
|
-
<p class="admonition-title">Caution</p>
|
|
9989
|
-
<p>We recommend using this Invoke command instead of directly calling <code>git checkout</code> or <code>git switch</code> because it automatically handles some other aspects of the development environment, in particular stopping the currently running Nautobot Docker containers, if any, before switching to a different branch.</p>
|
|
9990
|
-
</div>
|
|
9991
|
-
<div class="admonition tip">
|
|
9992
|
-
<p class="admonition-title">Tip</p>
|
|
9993
|
-
<p>You can switch between any existing branches with simply <code>invoke branch --branch <name></code>.</p>
|
|
9994
|
-
</div>
|
|
9995
|
-
<div class="admonition tip">
|
|
9996
|
-
<p class="admonition-title">Nautobot branches and the Docker compose workflow</p>
|
|
9997
|
-
<p>It's common for the Python dependencies and database schema to differ between major and minor Nautobot releases, and therefore between the primary branches of <code>main</code>, <code>develop</code>, <code>next</code>, and <code>ltm-1.6</code>. To account for this, the Docker workflow automatically detects which <code>major.minor</code> Nautobot version you're working with and changes the Docker Compose project name accordingly. What this means for you in practice is that when first switching between Nautobot releases, you may need to rerun <code>invoke build</code> once for each primary branch, and <code>invoke start</code>/<code>invoke debug</code> may take some time as it needs to create a new database and migrate its schema. However, in the future, switching between releases should be relatively smooth (just <code>invoke branch -b <name></code> and then <code>invoke start</code>) rather than needing to rebuild the container and database every time you switch between <code>develop</code> and <code>next</code> as would likely be needed if the same Docker Compose project were used for both release trains.</p>
|
|
9998
|
-
<p>Conversely, if you're using the virtual environment workflow, you may need to manually run <code>poetry install</code> whenever switching between primary branches, and may need to manually drop and restore the database schema as well. Be aware!</p>
|
|
9999
|
-
</div>
|
|
10000
|
-
<h4 id="prototypes">Prototypes<a class="headerlink" href="#prototypes" title="Permanent link">¶</a></h4>
|
|
10001
|
-
<p>Sometimes code is written as a proof of concept or early implementation candidate but is not quite ready to be merged, or may be picked up by another author sometime in the future. In that case, the convention is to use the <code>prototype/</code> prefix to the branch name and not requiring the original authors username. In that scenario, using the example above, you would instead:</p>
|
|
10002
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>invoke branch --create --branch prototype/1234-next-amazing-feature --parent next
|
|
10003
|
-
</code></pre></div>
|
|
10004
10392
|
<h3 id="creating-a-superuser">Creating a Superuser<a class="headerlink" href="#creating-a-superuser" title="Permanent link">¶</a></h3>
|
|
10005
10393
|
<details class="version-changed">
|
|
10006
10394
|
<summary>Changed in version 2.1.2</summary>
|
|
@@ -10106,14 +10494,13 @@
|
|
|
10106
10494
|
<a id="__codelineno-38-2" name="__codelineno-38-2" href="#__codelineno-38-2"></a>...
|
|
10107
10495
|
<a id="__codelineno-38-3" name="__codelineno-38-3" href="#__codelineno-38-3"></a># Shell Plus Django Imports
|
|
10108
10496
|
<a id="__codelineno-38-4" name="__codelineno-38-4" href="#__codelineno-38-4"></a>...
|
|
10109
|
-
<a id="__codelineno-38-5" name="__codelineno-38-5" href="#__codelineno-38-5"></a># Django version
|
|
10110
|
-
<a id="__codelineno-38-6" name="__codelineno-38-6" href="#__codelineno-38-6"></a># Nautobot version 2.
|
|
10497
|
+
<a id="__codelineno-38-5" name="__codelineno-38-5" href="#__codelineno-38-5"></a># Django version 4.2.15
|
|
10498
|
+
<a id="__codelineno-38-6" name="__codelineno-38-6" href="#__codelineno-38-6"></a># Nautobot version 2.3.3b1
|
|
10111
10499
|
<a id="__codelineno-38-7" name="__codelineno-38-7" href="#__codelineno-38-7"></a># Example Nautobot App version 1.0.0
|
|
10112
|
-
<a id="__codelineno-38-8" name="__codelineno-38-8" href="#__codelineno-38-8"></a>Python 3.
|
|
10113
|
-
<a id="__codelineno-38-9" name="__codelineno-38-9" href="#__codelineno-38-9"></a>
|
|
10114
|
-
<a id="__codelineno-38-10" name="__codelineno-38-10" href="#__codelineno-38-10"></a>
|
|
10115
|
-
<a id="__codelineno-38-11" name="__codelineno-38-11" href="#__codelineno-38-11"></a
|
|
10116
|
-
<a id="__codelineno-38-12" name="__codelineno-38-12" href="#__codelineno-38-12"></a>>>>
|
|
10500
|
+
<a id="__codelineno-38-8" name="__codelineno-38-8" href="#__codelineno-38-8"></a>Python 3.12.6 (main, Sep 12 2024, 21:12:08) [GCC 12.2.0] on linux
|
|
10501
|
+
<a id="__codelineno-38-9" name="__codelineno-38-9" href="#__codelineno-38-9"></a>Type "help", "copyright", "credits" or "license" for more information.
|
|
10502
|
+
<a id="__codelineno-38-10" name="__codelineno-38-10" href="#__codelineno-38-10"></a>(InteractiveConsole)
|
|
10503
|
+
<a id="__codelineno-38-11" name="__codelineno-38-11" href="#__codelineno-38-11"></a>>>>
|
|
10117
10504
|
</code></pre></div>
|
|
10118
10505
|
<h3 id="post-upgrade-operations">Post-upgrade Operations<a class="headerlink" href="#post-upgrade-operations" title="Permanent link">¶</a></h3>
|
|
10119
10506
|
<p>There will be times where you're working with the bleeding edge of Nautobot from the <code>develop</code> branch or feature branches and will need to pull in database changes or run server operations.</p>
|
|
@@ -10582,10 +10969,10 @@
|
|
|
10582
10969
|
</div>
|
|
10583
10970
|
|
|
10584
10971
|
|
|
10585
|
-
<script id="__config" type="application/json">{"base": "../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
10972
|
+
<script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
10586
10973
|
|
|
10587
10974
|
|
|
10588
|
-
<script src="../../assets/javascripts/bundle.
|
|
10975
|
+
<script src="../../assets/javascripts/bundle.83f73b43.min.js"></script>
|
|
10589
10976
|
|
|
10590
10977
|
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
|
10591
10978
|
|