nautobot 2.1.0__py3-none-any.whl → 2.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nautobot/__init__.py +1 -3
- nautobot/apps/__init__.py +1 -2
- nautobot/apps/admin.py +0 -1
- nautobot/apps/api.py +0 -1
- nautobot/apps/change_logging.py +0 -1
- nautobot/apps/choices.py +0 -1
- nautobot/apps/datasources.py +0 -1
- nautobot/apps/exceptions.py +0 -1
- nautobot/apps/factory.py +0 -1
- nautobot/apps/filters.py +6 -9
- nautobot/apps/forms.py +1 -2
- nautobot/apps/graphql.py +0 -1
- nautobot/apps/jobs.py +0 -1
- nautobot/apps/models.py +1 -2
- nautobot/apps/querysets.py +0 -1
- nautobot/apps/secrets.py +0 -1
- nautobot/apps/tables.py +0 -1
- nautobot/apps/testing.py +0 -1
- nautobot/apps/ui.py +1 -3
- nautobot/apps/urls.py +0 -1
- nautobot/apps/utils.py +0 -1
- nautobot/apps/views.py +0 -1
- nautobot/circuits/api/serializers.py +1 -1
- nautobot/circuits/api/urls.py +1 -1
- nautobot/circuits/api/views.py +2 -1
- nautobot/circuits/apps.py +1 -1
- nautobot/circuits/choices.py +0 -1
- nautobot/circuits/factory.py +1 -1
- nautobot/circuits/filters.py +2 -1
- nautobot/circuits/forms.py +2 -2
- nautobot/circuits/homepage.py +0 -1
- nautobot/circuits/migrations/0001_initial_part_1.py +3 -1
- nautobot/circuits/migrations/0002_initial_part_2.py +2 -1
- nautobot/circuits/migrations/0003_auto_slug.py +1 -0
- nautobot/circuits/migrations/0005_providernetwork.py +4 -2
- nautobot/circuits/migrations/0013_alter_circuittermination__path.py +1 -0
- nautobot/circuits/migrations/0014_related_name_changes.py +1 -0
- nautobot/circuits/migrations/0016_tagsfield.py +1 -0
- nautobot/circuits/migrations/0018_status_nonnullable.py +1 -0
- nautobot/circuits/models.py +2 -2
- nautobot/circuits/navigation.py +0 -1
- nautobot/circuits/signals.py +3 -2
- nautobot/circuits/tables.py +1 -0
- nautobot/circuits/tests/integration/test_relationships.py +1 -1
- nautobot/circuits/tests/test_api.py +1 -1
- nautobot/circuits/tests/test_urls.py +1 -1
- nautobot/circuits/tests/test_views.py +1 -0
- nautobot/circuits/urls.py +1 -1
- nautobot/circuits/views.py +0 -2
- nautobot/core/__init__.py +0 -1
- nautobot/core/admin.py +3 -5
- nautobot/core/api/__init__.py +0 -1
- nautobot/core/api/metadata.py +4 -6
- nautobot/core/api/pagination.py +2 -2
- nautobot/core/api/parsers.py +1 -3
- nautobot/core/api/renderers.py +0 -1
- nautobot/core/api/schema.py +2 -3
- nautobot/core/api/serializers.py +9 -7
- nautobot/core/api/urls.py +1 -5
- nautobot/core/api/utils.py +4 -6
- nautobot/core/api/versioning.py +1 -1
- nautobot/core/api/views.py +22 -91
- nautobot/core/apps/__init__.py +5 -7
- nautobot/core/authentication.py +1 -1
- nautobot/core/celery/__init__.py +1 -2
- nautobot/core/celery/control.py +0 -2
- nautobot/core/celery/encoders.py +0 -1
- nautobot/core/celery/schedulers.py +1 -2
- nautobot/core/celery/task.py +1 -1
- nautobot/core/checks.py +1 -2
- nautobot/core/choices.py +2 -2
- nautobot/core/cli/__init__.py +2 -3
- nautobot/core/context_processors.py +1 -5
- nautobot/core/factory.py +2 -2
- nautobot/core/filters.py +1 -1
- nautobot/core/forms/fields.py +2 -4
- nautobot/core/forms/forms.py +1 -1
- nautobot/core/forms/search.py +1 -1
- nautobot/core/forms/utils.py +1 -1
- nautobot/core/graphql/__init__.py +2 -3
- nautobot/core/graphql/generators.py +1 -1
- nautobot/core/graphql/schema.py +6 -7
- nautobot/core/graphql/schema_init.py +0 -1
- nautobot/core/graphql/utils.py +1 -2
- nautobot/core/management/commands/generate_test_data.py +4 -6
- nautobot/core/management/commands/makemigrations.py +1 -1
- nautobot/core/management/commands/migrate.py +1 -1
- nautobot/core/management/commands/post_upgrade.py +0 -15
- nautobot/core/management/commands/refresh_content_type_cache.py +1 -2
- nautobot/core/management/commands/send_installation_metrics.py +2 -3
- nautobot/core/management/commands/validate_models.py +1 -1
- nautobot/core/middleware.py +2 -2
- nautobot/core/models/__init__.py +12 -12
- nautobot/core/models/fields.py +1 -1
- nautobot/core/models/generics.py +2 -3
- nautobot/core/models/managers.py +0 -1
- nautobot/core/models/name_color_content_types.py +2 -2
- nautobot/core/models/tree_queries.py +2 -4
- nautobot/core/models/validators.py +1 -1
- nautobot/core/releases.py +1 -1
- nautobot/core/runner/importer.py +2 -25
- nautobot/core/runner/runner.py +2 -2
- nautobot/core/runner/settings.py +1 -1
- nautobot/core/settings.py +9 -22
- nautobot/core/settings_funcs.py +1 -2
- nautobot/core/signals.py +0 -1
- nautobot/core/tables.py +1 -1
- nautobot/core/templates/graphene/graphiql.html +7 -1
- nautobot/core/templates/inc/footer.html +0 -7
- nautobot/core/templates/nautobot_config.py.j2 +0 -4
- nautobot/core/templatetags/bootstrapped_goodies_tags.py +6 -3
- nautobot/core/templatetags/buttons.py +1 -1
- nautobot/core/templatetags/helpers.py +5 -16
- nautobot/core/testing/__init__.py +1 -2
- nautobot/core/testing/api.py +2 -4
- nautobot/core/testing/filters.py +1 -1
- nautobot/core/testing/integration.py +2 -2
- nautobot/core/testing/migrations.py +1 -0
- nautobot/core/testing/mixins.py +1 -2
- nautobot/core/testing/schema.py +1 -1
- nautobot/core/testing/utils.py +3 -3
- nautobot/core/testing/views.py +4 -7
- nautobot/core/tests/integration/test_plugin_home.py +2 -1
- nautobot/core/tests/integration/test_plugin_navbar.py +1 -1
- nautobot/core/tests/nautobot_config.py +3 -3
- nautobot/core/tests/runner.py +3 -4
- nautobot/core/tests/test_api.py +6 -51
- nautobot/core/tests/test_authentication.py +2 -3
- nautobot/core/tests/test_checks.py +1 -2
- nautobot/core/tests/test_config.py +1 -1
- nautobot/core/tests/test_csv.py +3 -3
- nautobot/core/tests/test_factory.py +1 -3
- nautobot/core/tests/test_filters.py +3 -7
- nautobot/core/tests/test_forms.py +3 -6
- nautobot/core/tests/test_graphql.py +13 -14
- nautobot/core/tests/test_jinja_filters.py +4 -4
- nautobot/core/tests/test_jobs.py +1 -1
- nautobot/core/tests/test_models.py +1 -2
- nautobot/core/tests/test_navigations.py +2 -1
- nautobot/core/tests/test_openapi.py +0 -1
- nautobot/core/tests/test_paginator.py +2 -2
- nautobot/core/tests/test_releases.py +2 -2
- nautobot/core/tests/test_tables.py +1 -1
- nautobot/core/tests/test_templatetags_helpers.py +3 -2
- nautobot/core/tests/test_templatetags_netutils.py +1 -2
- nautobot/core/tests/test_utils.py +4 -8
- nautobot/core/tests/test_views.py +5 -2
- nautobot/core/tests/test_views_utils.py +0 -1
- nautobot/core/urls.py +4 -4
- nautobot/core/utils/color.py +1 -1
- nautobot/core/utils/data.py +1 -2
- nautobot/core/utils/filtering.py +4 -5
- nautobot/core/utils/git.py +3 -2
- nautobot/core/utils/logging.py +2 -1
- nautobot/core/utils/migrations.py +1 -0
- nautobot/core/utils/permissions.py +2 -4
- nautobot/core/views/__init__.py +5 -5
- nautobot/core/views/generic.py +4 -4
- nautobot/core/views/mixins.py +11 -12
- nautobot/core/views/renderers.py +1 -1
- nautobot/core/views/utils.py +2 -1
- nautobot/dcim/api/urls.py +1 -1
- nautobot/dcim/api/views.py +6 -5
- nautobot/dcim/apps.py +1 -1
- nautobot/dcim/choices.py +0 -1
- nautobot/dcim/constants.py +0 -1
- nautobot/dcim/elevations.py +1 -2
- nautobot/dcim/factory.py +10 -13
- nautobot/dcim/fields.py +1 -0
- nautobot/dcim/filters/__init__.py +2 -3
- nautobot/dcim/filters/mixins.py +1 -1
- nautobot/dcim/forms.py +10 -12
- nautobot/dcim/graphql/types.py +16 -17
- nautobot/dcim/migrations/0001_initial_part_1.py +4 -2
- nautobot/dcim/migrations/0002_initial_part_2.py +2 -1
- nautobot/dcim/migrations/0003_initial_part_3.py +2 -1
- nautobot/dcim/migrations/0004_initial_part_4.py +2 -1
- nautobot/dcim/migrations/0006_auto_slug.py +1 -0
- nautobot/dcim/migrations/0009_add_natural_indexing.py +1 -0
- nautobot/dcim/migrations/0010_interface_status.py +1 -0
- nautobot/dcim/migrations/0011_interface_status_data_migration.py +1 -0
- nautobot/dcim/migrations/0013_location_location_type.py +4 -2
- nautobot/dcim/migrations/0014_location_status_data_migration.py +1 -0
- nautobot/dcim/migrations/0016_device_components__timestamp_data_migration.py +0 -1
- nautobot/dcim/migrations/0018_device_redundancy_group.py +4 -2
- nautobot/dcim/migrations/0019_device_redundancy_group_data_migration.py +1 -0
- nautobot/dcim/migrations/0022_interface_redundancy_group.py +3 -1
- nautobot/dcim/migrations/0023_interface_redundancy_group_data_migration.py +1 -0
- nautobot/dcim/migrations/0024_move_site_fields_to_location_model.py +2 -1
- nautobot/dcim/migrations/0027_alter_interface_mac_address.py +1 -0
- nautobot/dcim/migrations/0028_alter_device_and_rack_role_add_new_role.py +1 -0
- nautobot/dcim/migrations/0029_device_and_rack_roles_data_migrations.py +1 -0
- nautobot/dcim/migrations/0033_add_tree_managers_and_foreign_keys_pre_data_migration.py +1 -0
- nautobot/dcim/migrations/0034_migrate_region_and_site_data_to_locations.py +1 -2
- nautobot/dcim/migrations/0038_fixup_fks_and_related_names.py +1 -0
- nautobot/dcim/migrations/0039_related_name_changes.py +1 -0
- nautobot/dcim/migrations/0042_alter_location_managers.py +1 -0
- nautobot/dcim/migrations/0044_tagsfield.py +1 -0
- nautobot/dcim/migrations/0047_status_nonnullable.py +1 -0
- nautobot/dcim/migrations/0051_interface_redundancy_group_nullable_status.py +1 -0
- nautobot/dcim/models/cables.py +3 -3
- nautobot/dcim/models/device_component_templates.py +6 -6
- nautobot/dcim/models/devices.py +9 -4
- nautobot/dcim/models/locations.py +6 -1
- nautobot/dcim/models/power.py +1 -1
- nautobot/dcim/models/racks.py +5 -4
- nautobot/dcim/navigation.py +0 -1
- nautobot/dcim/signals.py +3 -2
- nautobot/dcim/tables/__init__.py +5 -4
- nautobot/dcim/tables/cables.py +1 -0
- nautobot/dcim/tables/devices.py +1 -0
- nautobot/dcim/tables/power.py +1 -0
- nautobot/dcim/tables/racks.py +2 -1
- nautobot/dcim/tests/test_api.py +5 -7
- nautobot/dcim/tests/test_cablepaths.py +0 -1
- nautobot/dcim/tests/test_filters.py +14 -12
- nautobot/dcim/tests/test_forms.py +2 -3
- nautobot/dcim/tests/test_migrations.py +2 -2
- nautobot/dcim/tests/test_models.py +2 -2
- nautobot/dcim/tests/test_views.py +7 -8
- nautobot/dcim/urls.py +3 -2
- nautobot/dcim/utils.py +1 -1
- nautobot/dcim/views.py +4 -3
- nautobot/extras/admin.py +2 -1
- nautobot/extras/api/customfields.py +0 -2
- nautobot/extras/api/mixins.py +0 -1
- nautobot/extras/api/serializers.py +4 -4
- nautobot/extras/api/urls.py +1 -1
- nautobot/extras/api/views.py +1 -1
- nautobot/extras/apps.py +3 -4
- nautobot/extras/choices.py +3 -4
- nautobot/extras/context_managers.py +1 -1
- nautobot/extras/datasources/__init__.py +1 -1
- nautobot/extras/datasources/git.py +6 -6
- nautobot/extras/datasources/utils.py +0 -1
- nautobot/extras/factory.py +1 -1
- nautobot/extras/filters/__init__.py +2 -3
- nautobot/extras/filters/customfields.py +0 -1
- nautobot/extras/filters/mixins.py +1 -1
- nautobot/extras/forms/__init__.py +3 -4
- nautobot/extras/forms/base.py +1 -1
- nautobot/extras/forms/forms.py +3 -3
- nautobot/extras/forms/mixins.py +1 -1
- nautobot/extras/graphql/types.py +2 -2
- nautobot/extras/health_checks.py +1 -1
- nautobot/extras/jobs.py +1 -2
- nautobot/extras/management/__init__.py +0 -1
- nautobot/extras/management/commands/refresh_dynamic_group_member_caches.py +1 -1
- nautobot/extras/management/commands/runjob.py +3 -3
- nautobot/extras/management/commands/webhook_receiver.py +1 -2
- nautobot/extras/migrations/0001_initial_part_1.py +2 -1
- nautobot/extras/migrations/0002_initial_part_2.py +2 -1
- nautobot/extras/migrations/0003_initial_part_3.py +1 -0
- nautobot/extras/migrations/0006_graphqlquery.py +2 -1
- nautobot/extras/migrations/0007_configcontextschema.py +3 -1
- nautobot/extras/migrations/0009_computedfield.py +3 -1
- nautobot/extras/migrations/0011_fileattachment_fileproxy.py +3 -1
- nautobot/extras/migrations/0012_healthchecktestmodel.py +2 -1
- nautobot/extras/migrations/0014_auto_slug.py +1 -0
- nautobot/extras/migrations/0015_scheduled_job.py +3 -1
- nautobot/extras/migrations/0016_secret.py +4 -2
- nautobot/extras/migrations/0017_joblogentry.py +2 -1
- nautobot/extras/migrations/0018_joblog_data_migration.py +2 -1
- nautobot/extras/migrations/0021_customfield_changelog_data.py +3 -2
- nautobot/extras/migrations/0022_objectchange_object_datav2.py +1 -0
- nautobot/extras/migrations/0023_job_model.py +4 -2
- nautobot/extras/migrations/0026_job_add_gitrepository_fk.py +1 -0
- nautobot/extras/migrations/0029_dynamicgroup.py +3 -1
- nautobot/extras/migrations/0031_tag_content_types.py +1 -0
- nautobot/extras/migrations/0032_tag_content_types_data_migration.py +1 -0
- nautobot/extras/migrations/0040_dynamicgroup__dynamicgroupmembership.py +2 -1
- nautobot/extras/migrations/0041_jobresult_job_kwargs.py +1 -0
- nautobot/extras/migrations/0043_note.py +3 -1
- nautobot/extras/migrations/0044_add_job_hook.py +3 -1
- nautobot/extras/migrations/0046_populate_custom_field_slug_label.py +1 -0
- nautobot/extras/migrations/0047_enforce_custom_field_slug.py +1 -0
- nautobot/extras/migrations/0051_add_job_task_queues.py +1 -0
- nautobot/extras/migrations/0055_configcontext_dynamic_groups.py +1 -0
- nautobot/extras/migrations/0057_jobbutton.py +3 -1
- nautobot/extras/migrations/0065_configcontext_data_migrations.py +1 -0
- nautobot/extras/migrations/0067_migrate_job_result_status.py +0 -1
- nautobot/extras/migrations/0068_jobresult__add_celery_fields.py +1 -0
- nautobot/extras/migrations/0071_replace_related_names.py +1 -0
- nautobot/extras/migrations/0077_migrate_custom_field_data.py +1 -0
- nautobot/extras/migrations/0078_remove_name_field_and_make_label_field_non_nullable.py +1 -0
- nautobot/extras/migrations/0080_tagsfield.py +1 -0
- nautobot/extras/migrations/0082_rename_relationship_name_to_label.py +1 -0
- nautobot/extras/migrations/0083_ensure_relationship_keys_are_unique.py +1 -0
- nautobot/extras/migrations/0090_joblogentry__log_level_data_migration.py +0 -1
- nautobot/extras/migrations/0095_ensure_note_timestamps_are_unique.py +4 -5
- nautobot/extras/migrations/0097_alter_job_result_remove_result.py +1 -0
- nautobot/extras/migrations/0100_fileproxy_job_result.py +1 -0
- nautobot/extras/migrations/0101_externalintegration.py +3 -1
- nautobot/extras/models/__init__.py +2 -3
- nautobot/extras/models/change_logging.py +0 -1
- nautobot/extras/models/customfields.py +4 -4
- nautobot/extras/models/datasources.py +2 -2
- nautobot/extras/models/groups.py +3 -4
- nautobot/extras/models/jobs.py +12 -6
- nautobot/extras/models/models.py +2 -2
- nautobot/extras/models/relationships.py +3 -4
- nautobot/extras/models/roles.py +1 -1
- nautobot/extras/models/secrets.py +1 -3
- nautobot/extras/models/tags.py +0 -1
- nautobot/extras/navigation.py +0 -1
- nautobot/extras/plugins/__init__.py +6 -7
- nautobot/extras/plugins/tables.py +0 -1
- nautobot/extras/plugins/utils.py +1 -1
- nautobot/extras/plugins/views.py +1 -2
- nautobot/extras/querysets.py +3 -3
- nautobot/extras/signals.py +6 -7
- nautobot/extras/tables.py +4 -4
- nautobot/extras/tasks.py +1 -2
- nautobot/extras/templates/extras/configcontext_edit.html +1 -1
- nautobot/extras/templates/extras/graphqlquery.html +4 -2
- nautobot/extras/templates/extras/secretsgroup_edit.html +40 -45
- nautobot/extras/templatetags/custom_links.py +2 -3
- nautobot/extras/templatetags/job_buttons.py +2 -3
- nautobot/extras/templatetags/log_levels.py +0 -1
- nautobot/extras/templatetags/plugins.py +1 -1
- nautobot/extras/test_jobs/api_test_job.py +1 -2
- nautobot/extras/test_jobs/atomic_transaction.py +1 -2
- nautobot/extras/test_jobs/dry_run.py +1 -2
- nautobot/extras/test_jobs/fail.py +1 -2
- nautobot/extras/test_jobs/field_order.py +1 -1
- nautobot/extras/test_jobs/file_upload_fail.py +1 -2
- nautobot/extras/test_jobs/file_upload_pass.py +1 -2
- nautobot/extras/test_jobs/has_sensitive_variables.py +1 -2
- nautobot/extras/test_jobs/ipaddress_vars.py +1 -4
- nautobot/extras/test_jobs/job_button_receiver.py +1 -2
- nautobot/extras/test_jobs/job_hook_receiver.py +1 -2
- nautobot/extras/test_jobs/job_variables.py +1 -2
- nautobot/extras/test_jobs/location_with_custom_field.py +1 -2
- nautobot/extras/test_jobs/log_redaction.py +1 -2
- nautobot/extras/test_jobs/log_skip_db_logging.py +1 -2
- nautobot/extras/test_jobs/modify_db.py +1 -2
- nautobot/extras/test_jobs/object_var_optional.py +1 -2
- nautobot/extras/test_jobs/object_var_required.py +1 -2
- nautobot/extras/test_jobs/object_vars.py +1 -2
- nautobot/extras/test_jobs/pass.py +1 -2
- nautobot/extras/test_jobs/profiling.py +1 -2
- nautobot/extras/tests/integration/__init__.py +1 -1
- nautobot/extras/tests/integration/test_plugins.py +5 -4
- nautobot/extras/tests/integration/test_tagfilter.py +1 -1
- nautobot/extras/tests/test_api.py +7 -9
- nautobot/extras/tests/test_changelog.py +3 -2
- nautobot/extras/tests/test_context_managers.py +6 -3
- nautobot/extras/tests/test_customfields.py +2 -2
- nautobot/extras/tests/test_datasources.py +1 -1
- nautobot/extras/tests/test_dynamicgroups.py +2 -3
- nautobot/extras/tests/test_filters.py +2 -2
- nautobot/extras/tests/test_forms.py +5 -6
- nautobot/extras/tests/test_git.py +1 -1
- nautobot/extras/tests/test_job_variables.py +0 -1
- nautobot/extras/tests/test_jobs.py +5 -5
- nautobot/extras/tests/test_models.py +2 -2
- nautobot/extras/tests/test_notes.py +0 -1
- nautobot/extras/tests/test_plugins.py +8 -9
- nautobot/extras/tests/test_relationships.py +3 -3
- nautobot/extras/tests/test_tags.py +1 -1
- nautobot/extras/tests/test_views.py +8 -9
- nautobot/extras/tests/test_webhooks.py +4 -5
- nautobot/extras/utils.py +11 -9
- nautobot/extras/views.py +3 -3
- nautobot/generate_secret_key.py +1 -1
- nautobot/ipam/api/serializers.py +1 -2
- nautobot/ipam/api/urls.py +1 -1
- nautobot/ipam/api/views.py +1 -0
- nautobot/ipam/apps.py +2 -1
- nautobot/ipam/factory.py +6 -9
- nautobot/ipam/fields.py +1 -1
- nautobot/ipam/filters.py +4 -3
- nautobot/ipam/formfields.py +1 -2
- nautobot/ipam/forms.py +4 -3
- nautobot/ipam/graphql/types.py +1 -1
- nautobot/ipam/homepage.py +0 -1
- nautobot/ipam/lookups.py +2 -3
- nautobot/ipam/migrations/0002_initial_part_2.py +2 -1
- nautobot/ipam/migrations/0003_remove_max_length.py +1 -0
- nautobot/ipam/migrations/0004_fixup_p2p_broadcast.py +0 -1
- nautobot/ipam/migrations/0005_auto_slug.py +1 -0
- nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -0
- nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +1 -0
- nautobot/ipam/migrations/0020_related_name_changes.py +1 -0
- nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +1 -2
- nautobot/ipam/migrations/0024_interface_to_ipaddress_m2m.py +2 -1
- nautobot/ipam/migrations/0025_interface_ipaddress_m2m_data_migration.py +1 -0
- nautobot/ipam/migrations/0028_tagsfield.py +1 -0
- nautobot/ipam/migrations/0030_ipam__namespaces.py +3 -1
- nautobot/ipam/migrations/0034_status_nonnullable.py +1 -0
- nautobot/ipam/migrations/0037_data_migration_vlan_group_name_uniqueness.py +0 -1
- nautobot/ipam/models.py +7 -7
- nautobot/ipam/navigation.py +0 -1
- nautobot/ipam/querysets.py +2 -2
- nautobot/ipam/tables.py +4 -3
- nautobot/ipam/tests/test_api.py +2 -2
- nautobot/ipam/tests/test_filters.py +7 -7
- nautobot/ipam/tests/test_migrations.py +1 -2
- nautobot/ipam/tests/test_models.py +2 -2
- nautobot/ipam/tests/test_ordering.py +1 -1
- nautobot/ipam/tests/test_querysets.py +2 -2
- nautobot/ipam/tests/test_views.py +6 -6
- nautobot/ipam/urls.py +1 -0
- nautobot/ipam/utils/migrations.py +0 -1
- nautobot/ipam/views.py +6 -6
- nautobot/project-static/docs/404.html +1 -43
- nautobot/project-static/docs/apps/index.html +1 -43
- nautobot/project-static/docs/apps/nautobot-apps.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +389 -431
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +12 -54
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +2452 -2486
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +90 -132
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +26 -68
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +993 -1035
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +170 -212
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +1789 -1831
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +961 -1003
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +2 -44
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +6904 -6946
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +974 -1016
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1 -43
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +1159 -1197
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1796 -1832
- nautobot/project-static/docs/development/apps/api/configuration-view.html +1 -43
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +1 -43
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +1 -43
- nautobot/project-static/docs/development/apps/api/models/global-search.html +1 -43
- nautobot/project-static/docs/development/apps/api/models/graphql.html +1 -43
- nautobot/project-static/docs/development/apps/api/models/index.html +1 -43
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +3 -45
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +5 -43
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +1 -43
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +1 -43
- nautobot/project-static/docs/development/apps/api/prometheus.html +1 -43
- nautobot/project-static/docs/development/apps/api/setup.html +1 -43
- nautobot/project-static/docs/development/apps/api/testing.html +1 -43
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +1 -43
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +1 -43
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +1 -43
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +1 -43
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-detail-views.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/base-template.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +6 -48
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/index.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/notes.html +3 -45
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/urls.html +1 -43
- nautobot/project-static/docs/development/apps/api/views/view-overrides.html +13 -5357
- nautobot/project-static/docs/development/apps/index.html +1 -43
- nautobot/project-static/docs/development/apps/migration/code-updates.html +1 -43
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +1 -43
- nautobot/project-static/docs/development/apps/migration/from-v1.html +1 -44
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +1 -43
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +1 -43
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +1 -43
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +1 -43
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +1 -43
- nautobot/project-static/docs/development/core/application-registry.html +1 -43
- nautobot/project-static/docs/development/core/best-practices.html +1 -43
- nautobot/project-static/docs/development/core/bootstrap-ui.html +1 -43
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +1 -43
- nautobot/project-static/docs/development/core/extending-models.html +1 -43
- nautobot/project-static/docs/development/core/generic-views.html +1 -43
- nautobot/project-static/docs/development/core/getting-started.html +108 -257
- nautobot/project-static/docs/development/core/homepage.html +1 -43
- nautobot/project-static/docs/development/core/index.html +1 -43
- nautobot/project-static/docs/development/core/model-features.html +1 -43
- nautobot/project-static/docs/development/core/natural-keys.html +1 -43
- nautobot/project-static/docs/development/core/navigation-menu.html +1 -43
- nautobot/project-static/docs/development/core/react-ui.html +13 -5640
- nautobot/project-static/docs/development/core/release-checklist.html +4 -52
- nautobot/project-static/docs/development/core/role-internals.html +4 -46
- nautobot/project-static/docs/development/core/style-guide.html +61 -102
- nautobot/project-static/docs/development/core/templates.html +4 -46
- nautobot/project-static/docs/development/core/testing.html +1 -43
- nautobot/project-static/docs/development/core/user-preferences.html +1 -43
- nautobot/project-static/docs/development/index.html +1 -43
- nautobot/project-static/docs/development/jobs/index.html +1 -43
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +1 -43
- nautobot/project-static/docs/development/react-ui.html +3 -3
- nautobot/project-static/docs/index.html +2 -47
- nautobot/project-static/docs/release-notes/index.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.0.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.1.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.2.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.3.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.4.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.5.html +1 -43
- nautobot/project-static/docs/release-notes/version-1.6.html +1 -43
- nautobot/project-static/docs/release-notes/version-2.0.html +1 -43
- nautobot/project-static/docs/release-notes/version-2.1.html +189 -77
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +236 -251
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +1 -43
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +4 -46
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +1 -43
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +1 -43
- nautobot/project-static/docs/user-guide/administration/configuration/node-configuration.html +13 -5389
- nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +1 -65
- nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/caching.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +1 -43
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +1 -43
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +1 -43
- nautobot/project-static/docs/user-guide/administration/installation/docker.html +1 -43
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +1 -43
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +1 -43
- nautobot/project-static/docs/user-guide/administration/installation/index.html +1 -64
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +2 -57
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +5 -94
- nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +1 -43
- nautobot/project-static/docs/user-guide/administration/installation/services.html +1 -43
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +1 -43
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +1 -43
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +76 -137
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +1 -43
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +2 -44
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +1 -43
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +23 -79
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +1 -43
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +1 -43
- nautobot/project-static/docs/user-guide/index.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +5 -43
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +1 -43
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +1 -43
- nautobot/project-static/js/theme.js +0 -5
- nautobot/tenancy/api/urls.py +1 -1
- nautobot/tenancy/api/views.py +1 -0
- nautobot/tenancy/factory.py +2 -2
- nautobot/tenancy/filters/__init__.py +1 -2
- nautobot/tenancy/forms.py +2 -2
- nautobot/tenancy/homepage.py +0 -1
- nautobot/tenancy/migrations/0001_initial.py +2 -1
- nautobot/tenancy/migrations/0002_auto_slug.py +1 -0
- nautobot/tenancy/migrations/0004_change_tree_manager_on_tree_models.py +1 -0
- nautobot/tenancy/migrations/0008_tagsfield.py +1 -0
- nautobot/tenancy/models.py +0 -1
- nautobot/tenancy/navigation.py +0 -1
- nautobot/tenancy/tables.py +1 -0
- nautobot/tenancy/tests/test_filters.py +5 -5
- nautobot/tenancy/urls.py +1 -0
- nautobot/tenancy/views.py +2 -2
- nautobot/users/admin.py +1 -2
- nautobot/users/api/urls.py +1 -1
- nautobot/users/api/views.py +6 -4
- nautobot/users/factory.py +1 -3
- nautobot/users/filters.py +4 -4
- nautobot/users/forms.py +1 -0
- nautobot/users/migrations/0004_alter_user_managers.py +1 -0
- nautobot/users/migrations/0008_make_object_permission_a_changelogged_model.py +22 -0
- nautobot/users/models.py +2 -2
- nautobot/users/tests/test_api.py +7 -6
- nautobot/users/tests/test_filters.py +0 -1
- nautobot/users/tests/test_models.py +0 -1
- nautobot/users/tests/test_password_ui.py +1 -1
- nautobot/users/views.py +2 -2
- nautobot/virtualization/api/urls.py +1 -1
- nautobot/virtualization/api/views.py +2 -1
- nautobot/virtualization/apps.py +1 -1
- nautobot/virtualization/choices.py +0 -1
- nautobot/virtualization/factory.py +1 -1
- nautobot/virtualization/filters.py +1 -1
- nautobot/virtualization/forms.py +6 -6
- nautobot/virtualization/homepage.py +0 -1
- nautobot/virtualization/migrations/0003_vminterface_verbose_name.py +1 -0
- nautobot/virtualization/migrations/0004_auto_slug.py +1 -0
- nautobot/virtualization/migrations/0005_add_natural_indexing.py +1 -0
- nautobot/virtualization/migrations/0006_vminterface_status.py +1 -0
- nautobot/virtualization/migrations/0007_vminterface_status_data_migration.py +1 -0
- nautobot/virtualization/migrations/0011_alter_vminterface_mac_address.py +1 -0
- nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -0
- nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +1 -0
- nautobot/virtualization/migrations/0018_related_name_changes.py +1 -0
- nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +1 -0
- nautobot/virtualization/migrations/0025_status_nonnullable.py +1 -0
- nautobot/virtualization/models.py +1 -2
- nautobot/virtualization/navigation.py +0 -1
- nautobot/virtualization/signals.py +0 -1
- nautobot/virtualization/tables.py +1 -0
- nautobot/virtualization/tests/test_filters.py +3 -3
- nautobot/virtualization/tests/test_models.py +1 -1
- nautobot/virtualization/tests/test_views.py +2 -2
- nautobot/virtualization/urls.py +1 -0
- nautobot/virtualization/views.py +1 -1
- {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/METADATA +1 -1
- {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/RECORD +713 -814
- nautobot/core/management/commands/build_ui.py +0 -281
- nautobot/core/templates/base_react.html +0 -55
- nautobot/core/tests/test_cli.py +0 -25
- nautobot/ui/.eslintignore +0 -3
- nautobot/ui/.gitignore +0 -7
- nautobot/ui/.prettierignore +0 -6
- nautobot/ui/.prettierrc +0 -4
- nautobot/ui/README.md +0 -27
- nautobot/ui/config/env.js +0 -102
- nautobot/ui/config/getHttpsConfig.js +0 -68
- nautobot/ui/config/jest/babelTransform.js +0 -14
- nautobot/ui/config/jest/cssTransform.js +0 -12
- nautobot/ui/config/jest/fileTransform.js +0 -38
- nautobot/ui/config/modules.js +0 -151
- nautobot/ui/config/paths.js +0 -67
- nautobot/ui/config/webpack/persistentCache/createEnvironmentHash.js +0 -8
- nautobot/ui/config/webpack.config.js +0 -674
- nautobot/ui/config/webpackDevServer.config.js +0 -127
- nautobot/ui/jest.config.js +0 -35
- nautobot/ui/jsconfig.json +0 -4
- nautobot/ui/package-lock.json +0 -22947
- nautobot/ui/package.json +0 -119
- nautobot/ui/public/index.html +0 -47
- nautobot/ui/public/logo192.png +0 -0
- nautobot/ui/public/logo512.png +0 -0
- nautobot/ui/public/manifest.json +0 -25
- nautobot/ui/public/nautobot_logo.svg +0 -131
- nautobot/ui/public/robots.txt +0 -3
- nautobot/ui/scripts/build.js +0 -224
- nautobot/ui/scripts/start.js +0 -140
- nautobot/ui/scripts/test.js +0 -40
- nautobot/ui/src/App.js +0 -79
- nautobot/ui/src/components/AppFullWidthComponents.js +0 -8
- nautobot/ui/src/components/AppTab.js +0 -40
- nautobot/ui/src/components/Apps.js +0 -60
- nautobot/ui/src/components/FeedbackModal.js +0 -123
- nautobot/ui/src/components/FiltersPanel.js +0 -693
- nautobot/ui/src/components/HomeChangelogPanel.js +0 -98
- nautobot/ui/src/components/HomePanel.js +0 -58
- nautobot/ui/src/components/JobHistoryTable.js +0 -78
- nautobot/ui/src/components/Layout.js +0 -76
- nautobot/ui/src/components/LoadingWidget.js +0 -14
- nautobot/ui/src/components/Navbar.js +0 -204
- nautobot/ui/src/components/NotificationPopover.js +0 -27
- nautobot/ui/src/components/ObjectTable/ObjectListTable.js +0 -300
- nautobot/ui/src/components/ObjectTable/ObjectTable.js +0 -96
- nautobot/ui/src/components/ObjectTable/ObjectTableItem.js +0 -70
- nautobot/ui/src/components/ObjectTable/index.js +0 -3
- nautobot/ui/src/components/Pagination/PageNumberForm.js +0 -228
- nautobot/ui/src/components/Pagination/PageSizeForm.js +0 -65
- nautobot/ui/src/components/Pagination/Pagination.js +0 -67
- nautobot/ui/src/components/Pagination/index.js +0 -3
- nautobot/ui/src/components/ReferenceDataTag.js +0 -35
- nautobot/ui/src/components/Retrieve/RenderChangeLogsTab.js +0 -58
- nautobot/ui/src/components/Retrieve/RenderColumn.js +0 -30
- nautobot/ui/src/components/Retrieve/RenderGroup.js +0 -24
- nautobot/ui/src/components/Retrieve/RenderHeader.js +0 -125
- nautobot/ui/src/components/Retrieve/RenderNotesTab.js +0 -60
- nautobot/ui/src/components/Retrieve/RenderTable.js +0 -33
- nautobot/ui/src/components/Retrieve/RenderTabs.js +0 -56
- nautobot/ui/src/components/Retrieve/index.js +0 -7
- nautobot/ui/src/components/RouterButton.js +0 -10
- nautobot/ui/src/components/RouterLink.js +0 -10
- nautobot/ui/src/components/SidebarNav.js +0 -156
- nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +0 -16
- nautobot/ui/src/components/__tests__/AppTab.test.js +0 -21
- nautobot/ui/src/components/__tests__/Apps.test.js +0 -14
- nautobot/ui/src/components/__tests__/Layout.test.js +0 -33
- nautobot/ui/src/components/__tests__/PageSizeForm.test.js +0 -13
- nautobot/ui/src/components/__tests__/Pagination.test.js +0 -43
- nautobot/ui/src/components/__tests__/Table.test.js +0 -39
- nautobot/ui/src/components/__tests__/TableItem.test.js +0 -39
- nautobot/ui/src/components/index.js +0 -4
- nautobot/ui/src/constants/apiPath.js +0 -13
- nautobot/ui/src/constants/icons.js +0 -15
- nautobot/ui/src/constants/size.js +0 -15
- nautobot/ui/src/file_templates/app_imports.js.j2 +0 -7
- nautobot/ui/src/file_templates/jsconfig-base.json +0 -12
- nautobot/ui/src/index.js +0 -65
- nautobot/ui/src/reportWebVitals.js +0 -15
- nautobot/ui/src/router.js +0 -77
- nautobot/ui/src/utils/api.js +0 -160
- nautobot/ui/src/utils/app-import.js +0 -15
- nautobot/ui/src/utils/color.js +0 -15
- nautobot/ui/src/utils/date.js +0 -14
- nautobot/ui/src/utils/index.js +0 -15
- nautobot/ui/src/utils/navigation.js +0 -48
- nautobot/ui/src/utils/session.js +0 -64
- nautobot/ui/src/utils/store.js +0 -242
- nautobot/ui/src/utils/string.js +0 -6
- nautobot/ui/src/utils/url.js +0 -4
- nautobot/ui/src/views/Home.js +0 -142
- nautobot/ui/src/views/InstalledApps.js +0 -80
- nautobot/ui/src/views/Login.js +0 -48
- nautobot/ui/src/views/Logout.js +0 -20
- nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +0 -11
- nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +0 -107
- nautobot/ui/src/views/__tests__/Login.test.js +0 -15
- nautobot/ui/src/views/generic/GenericView.js +0 -191
- nautobot/ui/src/views/generic/ObjectCreate.js +0 -96
- nautobot/ui/src/views/generic/ObjectList.js +0 -137
- nautobot/ui/src/views/generic/ObjectRetrieve.js +0 -87
- {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/WHEEL +0 -0
- {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/entry_points.txt +0 -0
|
@@ -52,7 +52,7 @@ def _get_registered_content(obj, method, template_context, return_html=True):
|
|
|
52
52
|
if not return_html:
|
|
53
53
|
return objects
|
|
54
54
|
|
|
55
|
-
return mark_safe(html) # noqa: S308
|
|
55
|
+
return mark_safe(html) # noqa: S308 # suspicious-mark-safe-usage -- we have to trust plugins to provide safe HTML
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
@register.simple_tag(takes_context=True)
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
from django.conf import settings
|
|
2
2
|
|
|
3
3
|
from nautobot.core.celery import register_jobs
|
|
4
|
-
from nautobot.extras.jobs import
|
|
4
|
+
from nautobot.extras.jobs import BooleanVar, get_task_logger, IntegerVar, Job, ObjectVar, StringVar
|
|
5
5
|
from nautobot.extras.models import Role
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
logger = get_task_logger(__name__)
|
|
9
8
|
|
|
10
9
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
from django.db import transaction
|
|
2
2
|
|
|
3
3
|
from nautobot.core.celery import register_jobs
|
|
4
|
-
from nautobot.extras.jobs import
|
|
4
|
+
from nautobot.extras.jobs import BooleanVar, get_task_logger, Job
|
|
5
5
|
from nautobot.extras.models import Status
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
logger = get_task_logger(__name__)
|
|
9
8
|
|
|
10
9
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
|
-
from nautobot.extras.jobs import DryRunVar,
|
|
2
|
+
from nautobot.extras.jobs import DryRunVar, get_task_logger, Job
|
|
3
3
|
from nautobot.extras.models import Status
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
logger = get_task_logger(__name__)
|
|
7
6
|
|
|
8
7
|
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
|
|
3
|
-
from nautobot.extras.jobs import get_task_logger
|
|
4
|
-
|
|
5
3
|
from nautobot.core.celery import register_jobs
|
|
6
|
-
from nautobot.extras.jobs import
|
|
7
|
-
|
|
4
|
+
from nautobot.extras.jobs import get_task_logger, IPAddressVar, IPAddressWithMaskVar, Job
|
|
8
5
|
|
|
9
6
|
logger = get_task_logger(__name__)
|
|
10
7
|
name = "IP Addresses"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
2
|
from nautobot.dcim.models import Device, Location
|
|
3
|
-
from nautobot.extras.jobs import
|
|
4
|
-
|
|
3
|
+
from nautobot.extras.jobs import get_task_logger, JobButtonReceiver
|
|
5
4
|
|
|
6
5
|
logger = get_task_logger(__name__)
|
|
7
6
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
2
|
from nautobot.dcim.models import Location, LocationType
|
|
3
|
-
from nautobot.extras.jobs import
|
|
3
|
+
from nautobot.extras.jobs import get_task_logger, JobHookReceiver
|
|
4
4
|
from nautobot.extras.models import Status
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
logger = get_task_logger(__name__)
|
|
8
7
|
|
|
9
8
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
|
-
from nautobot.extras.models import Role
|
|
3
2
|
from nautobot.extras.jobs import (
|
|
4
3
|
BooleanVar,
|
|
5
4
|
ChoiceVar,
|
|
@@ -16,7 +15,7 @@ from nautobot.extras.jobs import (
|
|
|
16
15
|
StringVar,
|
|
17
16
|
TextVar,
|
|
18
17
|
)
|
|
19
|
-
|
|
18
|
+
from nautobot.extras.models import Role
|
|
20
19
|
|
|
21
20
|
CHOICES = (("ff0000", "Red"), ("00ff00", "Green"), ("0000ff", "Blue"))
|
|
22
21
|
|
|
@@ -4,10 +4,9 @@ from django.db import transaction
|
|
|
4
4
|
from nautobot.core.celery import register_jobs
|
|
5
5
|
from nautobot.dcim.models import Location, LocationType
|
|
6
6
|
from nautobot.extras.choices import CustomFieldTypeChoices
|
|
7
|
-
from nautobot.extras.jobs import
|
|
7
|
+
from nautobot.extras.jobs import get_task_logger, Job
|
|
8
8
|
from nautobot.extras.models import CustomField, Status
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
logger = get_task_logger(__name__)
|
|
12
11
|
|
|
13
12
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
|
-
from nautobot.extras.jobs import Job, ObjectVar, get_task_logger
|
|
3
2
|
from nautobot.dcim.models import Location
|
|
4
|
-
|
|
3
|
+
from nautobot.extras.jobs import get_task_logger, Job, ObjectVar
|
|
5
4
|
|
|
6
5
|
logger = get_task_logger(__name__)
|
|
7
6
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
|
-
from nautobot.extras.jobs import Job, ObjectVar, get_task_logger
|
|
3
2
|
from nautobot.dcim.models import Location
|
|
4
|
-
|
|
3
|
+
from nautobot.extras.jobs import get_task_logger, Job, ObjectVar
|
|
5
4
|
|
|
6
5
|
logger = get_task_logger(__name__)
|
|
7
6
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
from nautobot.core.celery import register_jobs
|
|
2
|
-
from nautobot.extras.jobs import
|
|
2
|
+
from nautobot.extras.jobs import get_task_logger, Job, MultiObjectVar, ObjectVar
|
|
3
3
|
from nautobot.extras.models import Role
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
logger = get_task_logger(__name__)
|
|
7
6
|
name = "Object Vars"
|
|
8
7
|
|
|
@@ -2,8 +2,8 @@ import uuid
|
|
|
2
2
|
|
|
3
3
|
from django.contrib.contenttypes.models import ContentType
|
|
4
4
|
|
|
5
|
-
from nautobot.extras.models import Role, Status
|
|
6
5
|
from nautobot.dcim.models import Device, DeviceType, Location, LocationType, Manufacturer
|
|
6
|
+
from nautobot.extras.models import Role, Status
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def create_test_device():
|
|
@@ -28,9 +28,10 @@ class PluginWebhookTest(SeleniumTestCase):
|
|
|
28
28
|
|
|
29
29
|
def setUp(self):
|
|
30
30
|
super().setUp()
|
|
31
|
-
|
|
31
|
+
tempdir = tempfile.gettempdir()
|
|
32
|
+
for f in os.listdir(tempdir):
|
|
32
33
|
if f.startswith("test_plugin_webhook_"):
|
|
33
|
-
os.remove(os.path.join(
|
|
34
|
+
os.remove(os.path.join(tempdir, f))
|
|
34
35
|
|
|
35
36
|
self.url = f"http://localhost:{self.server_thread.port}" + reverse(
|
|
36
37
|
"plugins-api:example_plugin-api:examplemodel_webhook"
|
|
@@ -200,7 +201,7 @@ class PluginTabsTestCase(SeleniumTestCase):
|
|
|
200
201
|
self.browser.links.find_by_partial_text("Example App Tab")[0].click()
|
|
201
202
|
self.assertTrue(
|
|
202
203
|
self.browser.is_text_present(
|
|
203
|
-
f"I am some content for the example plugin's circuit ({
|
|
204
|
+
f"I am some content for the example plugin's circuit ({circuit.pk!s}) detail tab."
|
|
204
205
|
)
|
|
205
206
|
)
|
|
206
207
|
|
|
@@ -218,6 +219,6 @@ class PluginTabsTestCase(SeleniumTestCase):
|
|
|
218
219
|
self.browser.links.find_by_partial_text(f"Example App Tab {tab_i}")[0].click()
|
|
219
220
|
self.assertTrue(
|
|
220
221
|
self.browser.is_text_present(
|
|
221
|
-
f"I am some content for the example plugin's device ({
|
|
222
|
+
f"I am some content for the example plugin's device ({device.pk!s}) detail tab {tab_i}."
|
|
222
223
|
)
|
|
223
224
|
)
|
|
@@ -3,8 +3,8 @@ import time
|
|
|
3
3
|
from django.contrib.contenttypes.models import ContentType
|
|
4
4
|
|
|
5
5
|
from nautobot.circuits.models import Provider
|
|
6
|
-
from nautobot.extras.models import Tag
|
|
7
6
|
from nautobot.core.testing.integration import SeleniumTestCase
|
|
7
|
+
from nautobot.extras.models import Tag
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class TagFilterTestCase(SeleniumTestCase):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from datetime import datetime, timedelta
|
|
2
|
-
import uuid
|
|
3
2
|
import tempfile
|
|
4
3
|
from unittest import mock, skip
|
|
4
|
+
import uuid
|
|
5
5
|
|
|
6
6
|
from django.conf import settings
|
|
7
7
|
from django.contrib.auth import get_user_model
|
|
@@ -13,16 +13,16 @@ from django.utils.timezone import make_aware, now
|
|
|
13
13
|
from rest_framework import status
|
|
14
14
|
|
|
15
15
|
from nautobot.core.choices import ColorChoices
|
|
16
|
+
from nautobot.core.models.fields import slugify_dashes_to_underscores
|
|
16
17
|
from nautobot.core.testing import APITestCase, APIViewTestCases
|
|
17
18
|
from nautobot.core.testing.utils import disable_warnings
|
|
18
19
|
from nautobot.core.utils.lookup import get_route_for_model
|
|
19
|
-
from nautobot.core.models.fields import slugify_dashes_to_underscores
|
|
20
20
|
from nautobot.dcim.models import (
|
|
21
21
|
Device,
|
|
22
22
|
DeviceType,
|
|
23
|
-
Manufacturer,
|
|
24
23
|
Location,
|
|
25
24
|
LocationType,
|
|
25
|
+
Manufacturer,
|
|
26
26
|
Rack,
|
|
27
27
|
RackGroup,
|
|
28
28
|
)
|
|
@@ -70,15 +70,13 @@ from nautobot.extras.models import (
|
|
|
70
70
|
Tag,
|
|
71
71
|
Webhook,
|
|
72
72
|
)
|
|
73
|
-
from nautobot.extras.models.jobs import
|
|
73
|
+
from nautobot.extras.models.jobs import JobButton, JobHook
|
|
74
74
|
from nautobot.extras.tests.constants import BIG_GRAPHQL_DEVICE_QUERY
|
|
75
75
|
from nautobot.extras.tests.test_relationships import RequiredRelationshipTestMixin
|
|
76
76
|
from nautobot.extras.utils import TaggableClassesQuery
|
|
77
|
-
|
|
78
|
-
from nautobot.ipam.models import IPAddress, Prefix, VLANGroup, VLAN
|
|
77
|
+
from nautobot.ipam.models import IPAddress, Prefix, VLAN, VLANGroup
|
|
79
78
|
from nautobot.users.models import ObjectPermission
|
|
80
79
|
|
|
81
|
-
|
|
82
80
|
User = get_user_model()
|
|
83
81
|
|
|
84
82
|
|
|
@@ -3206,7 +3204,7 @@ class SecretTest(APIViewTestCases.APIViewTestCase):
|
|
|
3206
3204
|
test_secret = Secret.objects.create(
|
|
3207
3205
|
name="secret-check-test-not-accessible",
|
|
3208
3206
|
provider="text-file",
|
|
3209
|
-
parameters={"path": "/tmp/does-not-matter"},
|
|
3207
|
+
parameters={"path": "/tmp/does-not-matter"}, # noqa: S108 # hardcoded-temp-file -- false positive
|
|
3210
3208
|
)
|
|
3211
3209
|
response = self.client.get(reverse("extras-api:secret-check", kwargs={"pk": test_secret.pk}), **self.header)
|
|
3212
3210
|
self.assertHttpStatus(response, status.HTTP_403_FORBIDDEN)
|
|
@@ -3231,7 +3229,7 @@ class SecretTest(APIViewTestCases.APIViewTestCase):
|
|
|
3231
3229
|
test_secret = Secret.objects.create(
|
|
3232
3230
|
name="secret-check-test-failed",
|
|
3233
3231
|
provider="text-file",
|
|
3234
|
-
parameters={"path": "/tmp/does-not-exist"},
|
|
3232
|
+
parameters={"path": "/tmp/does-not-exist"}, # noqa: S108 # hardcoded-temp-file -- false positive
|
|
3235
3233
|
)
|
|
3236
3234
|
response = self.client.get(reverse("extras-api:secret-check", kwargs={"pk": test_secret.pk}), **self.header)
|
|
3237
3235
|
self.assertHttpStatus(response, status.HTTP_200_OK)
|
|
@@ -4,7 +4,6 @@ from django.urls import reverse
|
|
|
4
4
|
from django.utils.html import escape
|
|
5
5
|
from rest_framework import status
|
|
6
6
|
|
|
7
|
-
from example_plugin.signals import EXAMPLE_PLUGIN_CUSTOM_FIELD_DEFAULT, EXAMPLE_PLUGIN_CUSTOM_FIELD_NAME
|
|
8
7
|
from nautobot.core.graphql import execute_query
|
|
9
8
|
from nautobot.core.testing import APITestCase, TestCase
|
|
10
9
|
from nautobot.core.testing.utils import post_data
|
|
@@ -16,7 +15,9 @@ from nautobot.extras import context_managers
|
|
|
16
15
|
from nautobot.extras.choices import CustomFieldTypeChoices, ObjectChangeActionChoices, ObjectChangeEventContextChoices
|
|
17
16
|
from nautobot.extras.models import CustomField, CustomFieldChoice, ObjectChange, Status, Tag
|
|
18
17
|
from nautobot.ipam.models import VLAN, VLANGroup
|
|
19
|
-
from nautobot.virtualization.models import Cluster, ClusterType,
|
|
18
|
+
from nautobot.virtualization.models import Cluster, ClusterType, VirtualMachine, VMInterface
|
|
19
|
+
|
|
20
|
+
from example_plugin.signals import EXAMPLE_PLUGIN_CUSTOM_FIELD_DEFAULT, EXAMPLE_PLUGIN_CUSTOM_FIELD_NAME
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class ChangeLogViewTest(ModelViewTestCase):
|
|
@@ -10,18 +10,21 @@ from nautobot.extras.choices import ObjectChangeActionChoices, ObjectChangeEvent
|
|
|
10
10
|
from nautobot.extras.context_managers import web_request_context
|
|
11
11
|
from nautobot.extras.models import Status, Webhook
|
|
12
12
|
|
|
13
|
-
|
|
14
13
|
# Use the proper swappable User model
|
|
15
14
|
User = get_user_model()
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
class WebRequestContextTestCase(TestCase):
|
|
19
18
|
def setUp(self):
|
|
20
|
-
self.user = User.objects.create_user(
|
|
19
|
+
self.user = User.objects.create_user(
|
|
20
|
+
username="jacob",
|
|
21
|
+
email="jacob@example.com",
|
|
22
|
+
password="top_secret", # noqa: S106 # hardcoded-password-func-arg -- ok as this is test code only
|
|
23
|
+
)
|
|
21
24
|
|
|
22
25
|
location_ct = ContentType.objects.get_for_model(Location)
|
|
23
26
|
MOCK_URL = "http://localhost/"
|
|
24
|
-
MOCK_SECRET = "LOOKATMEIMASECRETSTRING"
|
|
27
|
+
MOCK_SECRET = "LOOKATMEIMASECRETSTRING" # noqa: S105 # hardcoded-password-string -- ok as this is test code
|
|
25
28
|
|
|
26
29
|
webhooks = Webhook.objects.bulk_create(
|
|
27
30
|
(
|
|
@@ -7,9 +7,9 @@ from django.db.models import ProtectedError
|
|
|
7
7
|
from django.forms import ChoiceField, IntegerField, NumberInput
|
|
8
8
|
from django.urls import reverse
|
|
9
9
|
from rest_framework import status
|
|
10
|
-
from nautobot.core.forms.widgets import MultiValueCharInput, StaticSelect2
|
|
11
10
|
|
|
12
11
|
from nautobot.circuits.models import Provider
|
|
12
|
+
from nautobot.core.forms.widgets import MultiValueCharInput, StaticSelect2
|
|
13
13
|
from nautobot.core.models.fields import slugify_dashes_to_underscores
|
|
14
14
|
from nautobot.core.tables import CustomFieldColumn
|
|
15
15
|
from nautobot.core.testing import APITestCase, TestCase, TransactionTestCase
|
|
@@ -19,7 +19,7 @@ from nautobot.dcim.filters import LocationFilterSet
|
|
|
19
19
|
from nautobot.dcim.forms import RackFilterForm
|
|
20
20
|
from nautobot.dcim.models import Device, Location, LocationType, Rack
|
|
21
21
|
from nautobot.dcim.tables import LocationTable
|
|
22
|
-
from nautobot.extras.choices import
|
|
22
|
+
from nautobot.extras.choices import CustomFieldFilterLogicChoices, CustomFieldTypeChoices
|
|
23
23
|
from nautobot.extras.models import ComputedField, CustomField, CustomFieldChoice, Status
|
|
24
24
|
from nautobot.users.models import ObjectPermission
|
|
25
25
|
from nautobot.virtualization.models import VirtualMachine
|
|
@@ -13,9 +13,9 @@ import yaml
|
|
|
13
13
|
|
|
14
14
|
from nautobot.core.jobs import GitRepositoryDryRun, GitRepositorySync
|
|
15
15
|
from nautobot.core.testing import (
|
|
16
|
-
TransactionTestCase,
|
|
17
16
|
create_job_result_and_run_job,
|
|
18
17
|
run_job_for_testing,
|
|
18
|
+
TransactionTestCase,
|
|
19
19
|
)
|
|
20
20
|
from nautobot.dcim.models import Device, DeviceType, Location, LocationType, Manufacturer
|
|
21
21
|
from nautobot.extras.choices import (
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import random
|
|
2
2
|
import time
|
|
3
|
-
|
|
4
3
|
from unittest.mock import patch
|
|
5
4
|
|
|
6
5
|
from django.contrib.contenttypes.models import ContentType
|
|
7
6
|
from django.core.cache import cache
|
|
8
7
|
from django.core.exceptions import ValidationError
|
|
9
8
|
from django.db.models import ProtectedError
|
|
10
|
-
from django.urls import reverse
|
|
11
9
|
from django.test import override_settings
|
|
10
|
+
from django.urls import reverse
|
|
12
11
|
|
|
13
12
|
from nautobot.core.forms.fields import MultiMatchModelMultipleChoiceField, MultiValueCharField
|
|
14
13
|
from nautobot.core.forms.widgets import APISelectMultiple, MultiValueCharInput
|
|
@@ -1011,7 +1010,7 @@ class DynamicGroupModelTest(DynamicGroupTestBase): # TODO: BaseModelTestCase mi
|
|
|
1011
1010
|
group.members_cached
|
|
1012
1011
|
self.assertEqual(mock_get_queryset.call_count, 1)
|
|
1013
1012
|
|
|
1014
|
-
time.sleep(
|
|
1013
|
+
time.sleep(5) # Let the cache expire
|
|
1015
1014
|
|
|
1016
1015
|
group.members_cached
|
|
1017
1016
|
self.assertEqual(mock_get_queryset.call_count, 2)
|
|
@@ -39,8 +39,8 @@ from nautobot.extras.filters import (
|
|
|
39
39
|
GitRepositoryFilterSet,
|
|
40
40
|
GraphQLQueryFilterSet,
|
|
41
41
|
ImageAttachmentFilterSet,
|
|
42
|
-
JobFilterSet,
|
|
43
42
|
JobButtonFilterSet,
|
|
43
|
+
JobFilterSet,
|
|
44
44
|
JobHookFilterSet,
|
|
45
45
|
JobLogEntryFilterSet,
|
|
46
46
|
JobResultFilterSet,
|
|
@@ -85,7 +85,7 @@ from nautobot.extras.models import (
|
|
|
85
85
|
)
|
|
86
86
|
from nautobot.extras.tests.constants import BIG_GRAPHQL_DEVICE_QUERY
|
|
87
87
|
from nautobot.ipam.filters import VLANFilterSet
|
|
88
|
-
from nautobot.ipam.models import IPAddress,
|
|
88
|
+
from nautobot.ipam.models import IPAddress, Namespace, Prefix, VLAN, VLANGroup
|
|
89
89
|
from nautobot.tenancy.models import Tenant, TenantGroup
|
|
90
90
|
from nautobot.virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
|
|
91
91
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import warnings
|
|
3
3
|
|
|
4
|
-
from django.contrib.contenttypes.models import ContentType
|
|
5
4
|
from django.contrib.auth import get_user_model
|
|
5
|
+
from django.contrib.contenttypes.models import ContentType
|
|
6
6
|
from django.db.models import Q
|
|
7
|
-
from django.test import
|
|
7
|
+
from django.test import override_settings, TestCase
|
|
8
8
|
|
|
9
9
|
from nautobot.dcim.forms import DeviceForm, LocationBulkEditForm, LocationForm
|
|
10
10
|
import nautobot.dcim.models as dcim_models
|
|
11
11
|
from nautobot.dcim.models import Device, Location, LocationType
|
|
12
12
|
from nautobot.extras.choices import RelationshipTypeChoices
|
|
13
13
|
from nautobot.extras.forms import (
|
|
14
|
-
ConfigContextForm,
|
|
15
14
|
ConfigContextFilterForm,
|
|
15
|
+
ConfigContextForm,
|
|
16
16
|
CustomFieldModelBulkEditFormMixin,
|
|
17
17
|
CustomFieldModelFilterFormMixin,
|
|
18
18
|
CustomFieldModelFormMixin,
|
|
@@ -37,10 +37,9 @@ from nautobot.extras.models import (
|
|
|
37
37
|
Webhook,
|
|
38
38
|
)
|
|
39
39
|
from nautobot.ipam.choices import IPAddressTypeChoices
|
|
40
|
-
from nautobot.ipam.forms import
|
|
40
|
+
from nautobot.ipam.forms import IPAddressBulkEditForm, IPAddressForm, VLANGroupForm
|
|
41
41
|
import nautobot.ipam.models as ipam_models
|
|
42
42
|
|
|
43
|
-
|
|
44
43
|
# Use the proper swappable User model
|
|
45
44
|
User = get_user_model()
|
|
46
45
|
|
|
@@ -1088,8 +1087,8 @@ class DeprecatedAliasesTestCase(TestCase):
|
|
|
1088
1087
|
# Importing these mixin classes doesn't directly warn, but subclassing them does.
|
|
1089
1088
|
from nautobot.extras.forms import (
|
|
1090
1089
|
AddRemoveTagsForm,
|
|
1091
|
-
CustomFieldBulkEditForm,
|
|
1092
1090
|
CustomFieldBulkCreateForm,
|
|
1091
|
+
CustomFieldBulkEditForm,
|
|
1093
1092
|
CustomFieldFilterForm,
|
|
1094
1093
|
CustomFieldModelForm,
|
|
1095
1094
|
RelationshipModelForm,
|
|
@@ -3,9 +3,9 @@ from io import StringIO
|
|
|
3
3
|
import json
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
import re
|
|
6
|
+
import tempfile
|
|
6
7
|
from unittest import mock
|
|
7
8
|
import uuid
|
|
8
|
-
import tempfile
|
|
9
9
|
|
|
10
10
|
from constance.test import override_config
|
|
11
11
|
from django.conf import settings
|
|
@@ -18,10 +18,10 @@ from django.test.client import RequestFactory
|
|
|
18
18
|
from django.utils import timezone
|
|
19
19
|
|
|
20
20
|
from nautobot.core.testing import (
|
|
21
|
-
TestCase,
|
|
22
|
-
TransactionTestCase,
|
|
23
21
|
create_job_result_and_run_job,
|
|
24
22
|
get_job_class_and_model,
|
|
23
|
+
TestCase,
|
|
24
|
+
TransactionTestCase,
|
|
25
25
|
)
|
|
26
26
|
from nautobot.core.utils.lookup import get_changes_for_model
|
|
27
27
|
from nautobot.dcim.models import Device, Location, LocationType
|
|
@@ -32,7 +32,7 @@ from nautobot.extras.choices import (
|
|
|
32
32
|
LogLevelChoices,
|
|
33
33
|
ObjectChangeEventContextChoices,
|
|
34
34
|
)
|
|
35
|
-
from nautobot.extras.context_managers import
|
|
35
|
+
from nautobot.extras.context_managers import change_logging, JobHookChangeContext, web_request_context
|
|
36
36
|
from nautobot.extras.jobs import get_job
|
|
37
37
|
|
|
38
38
|
|
|
@@ -1027,6 +1027,6 @@ class ScheduledJobIntervalTestCase(TestCase):
|
|
|
1027
1027
|
)
|
|
1028
1028
|
|
|
1029
1029
|
requested_weekday = self.datetime_days[start_time.weekday()]
|
|
1030
|
-
schedule_day_of_week =
|
|
1030
|
+
schedule_day_of_week = next(iter(scheduled_job.schedule.day_of_week))
|
|
1031
1031
|
scheduled_job_weekday = self.cron_days[schedule_day_of_week]
|
|
1032
1032
|
self.assertEqual(scheduled_job_weekday, requested_weekday)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import tempfile
|
|
3
|
-
from unittest import
|
|
3
|
+
from unittest import expectedFailure, mock
|
|
4
4
|
import uuid
|
|
5
5
|
import warnings
|
|
6
6
|
|
|
@@ -29,8 +29,8 @@ from nautobot.dcim.models import (
|
|
|
29
29
|
Platform,
|
|
30
30
|
)
|
|
31
31
|
from nautobot.extras.choices import (
|
|
32
|
-
LogLevelChoices,
|
|
33
32
|
JobResultStatusChoices,
|
|
33
|
+
LogLevelChoices,
|
|
34
34
|
ObjectChangeActionChoices,
|
|
35
35
|
ObjectChangeEventContextChoices,
|
|
36
36
|
SecretsGroupAccessTypeChoices,
|