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
|
@@ -977,20 +977,6 @@
|
|
|
977
977
|
|
|
978
978
|
|
|
979
979
|
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
<li class="md-nav__item">
|
|
986
|
-
<a href="../../../user-guide/administration/configuration/node-configuration.html" class="md-nav__link">
|
|
987
|
-
Node.js Configuration
|
|
988
|
-
</a>
|
|
989
|
-
</li>
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
980
|
</ul>
|
|
995
981
|
</nav>
|
|
996
982
|
</li>
|
|
@@ -3528,23 +3514,9 @@
|
|
|
3528
3514
|
|
|
3529
3515
|
|
|
3530
3516
|
|
|
3531
|
-
<li class="md-nav__item">
|
|
3532
|
-
<a href="../../../development/apps/api/views/view-overrides.html" class="md-nav__link">
|
|
3533
|
-
View Overrides
|
|
3534
|
-
</a>
|
|
3535
|
-
</li>
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
3517
|
<li class="md-nav__item">
|
|
3546
3518
|
<a href="../../../development/apps/api/views/core-view-overrides.html" class="md-nav__link">
|
|
3547
|
-
|
|
3519
|
+
View Overrides
|
|
3548
3520
|
</a>
|
|
3549
3521
|
</li>
|
|
3550
3522
|
|
|
@@ -4723,20 +4695,6 @@
|
|
|
4723
4695
|
|
|
4724
4696
|
|
|
4725
4697
|
|
|
4726
|
-
<li class="md-nav__item">
|
|
4727
|
-
<a href="../../../development/core/react-ui.html" class="md-nav__link">
|
|
4728
|
-
React UI
|
|
4729
|
-
</a>
|
|
4730
|
-
</li>
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
4698
|
<li class="md-nav__item">
|
|
4741
4699
|
<a href="../../../development/core/role-internals.html" class="md-nav__link">
|
|
4742
4700
|
Role Internals
|
|
@@ -5352,7 +5310,8 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5352
5310
|
|
|
5353
5311
|
<details class="quote">
|
|
5354
5312
|
<summary>Source code in <code>nautobot/core/graphql/__init__.py</code></summary>
|
|
5355
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
5313
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-57">57</a></span>
|
|
5314
|
+
<span class="normal"><a href="#__codelineno-0-58">58</a></span>
|
|
5356
5315
|
<span class="normal"><a href="#__codelineno-0-59">59</a></span>
|
|
5357
5316
|
<span class="normal"><a href="#__codelineno-0-60">60</a></span>
|
|
5358
5317
|
<span class="normal"><a href="#__codelineno-0-61">61</a></span>
|
|
@@ -5365,22 +5324,21 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5365
5324
|
<span class="normal"><a href="#__codelineno-0-68">68</a></span>
|
|
5366
5325
|
<span class="normal"><a href="#__codelineno-0-69">69</a></span>
|
|
5367
5326
|
<span class="normal"><a href="#__codelineno-0-70">70</a></span>
|
|
5368
|
-
<span class="normal"><a href="#__codelineno-0-71">71</a></span>
|
|
5369
|
-
<
|
|
5370
|
-
<a id="__codelineno-0-59" name="__codelineno-0-59"></a
|
|
5371
|
-
<a id="__codelineno-0-60" name="__codelineno-0-60"></a>
|
|
5372
|
-
<a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="sd">
|
|
5373
|
-
<a id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="sd">
|
|
5374
|
-
<a id="__codelineno-0-63" name="__codelineno-0-63"></a
|
|
5375
|
-
<a id="__codelineno-0-64" name="__codelineno-0-64"></a>
|
|
5376
|
-
<a id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="n">
|
|
5377
|
-
<a id="__codelineno-0-66" name="__codelineno-0-66"></a>
|
|
5378
|
-
<a id="__codelineno-0-67" name="__codelineno-0-67"></a>
|
|
5379
|
-
<a id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="
|
|
5380
|
-
<a id="__codelineno-0-69" name="__codelineno-0-69"></a>
|
|
5381
|
-
<a id="__codelineno-0-70" name="__codelineno-0-70"></a>
|
|
5382
|
-
<a id="__codelineno-0-71" name="__codelineno-0-71"></a>
|
|
5383
|
-
<a id="__codelineno-0-72" name="__codelineno-0-72"></a> <span class="k">return</span> <span class="kc">None</span>
|
|
5327
|
+
<span class="normal"><a href="#__codelineno-0-71">71</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="k">class</span> <span class="nc">BigInteger</span><span class="p">(</span><span class="n">Scalar</span><span class="p">):</span>
|
|
5328
|
+
<a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="w"> </span><span class="sd">"""An integer which, unlike GraphQL's native Int type, doesn't reject values outside (-2^31, 2^31-1).</span>
|
|
5329
|
+
<a id="__codelineno-0-59" name="__codelineno-0-59"></a>
|
|
5330
|
+
<a id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="sd"> Currently only used for ASNField, which goes up to 2^32-1 (i.e., unsigned 32-bit int); it's possible</span>
|
|
5331
|
+
<a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="sd"> that this approach may fail for values in excess of 2^53-1 (the largest integer value supported in JavaScript).</span>
|
|
5332
|
+
<a id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="sd"> """</span>
|
|
5333
|
+
<a id="__codelineno-0-63" name="__codelineno-0-63"></a>
|
|
5334
|
+
<a id="__codelineno-0-64" name="__codelineno-0-64"></a> <span class="n">serialize</span> <span class="o">=</span> <span class="nb">int</span>
|
|
5335
|
+
<a id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="n">parse_value</span> <span class="o">=</span> <span class="nb">int</span>
|
|
5336
|
+
<a id="__codelineno-0-66" name="__codelineno-0-66"></a>
|
|
5337
|
+
<a id="__codelineno-0-67" name="__codelineno-0-67"></a> <span class="nd">@staticmethod</span>
|
|
5338
|
+
<a id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="k">def</span> <span class="nf">parse_literal</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
|
|
5339
|
+
<a id="__codelineno-0-69" name="__codelineno-0-69"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">ast</span><span class="o">.</span><span class="n">IntValue</span><span class="p">):</span>
|
|
5340
|
+
<a id="__codelineno-0-70" name="__codelineno-0-70"></a> <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">value</span><span class="p">)</span>
|
|
5341
|
+
<a id="__codelineno-0-71" name="__codelineno-0-71"></a> <span class="k">return</span> <span class="kc">None</span>
|
|
5384
5342
|
</code></pre></div></td></tr></table></div>
|
|
5385
5343
|
</details>
|
|
5386
5344
|
|
|
@@ -5527,7 +5485,8 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5527
5485
|
|
|
5528
5486
|
<details class="quote">
|
|
5529
5487
|
<summary>Source code in <code>nautobot/core/graphql/utils.py</code></summary>
|
|
5530
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
5488
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-96"> 96</a></span>
|
|
5489
|
+
<span class="normal"><a href="#__codelineno-0-97"> 97</a></span>
|
|
5531
5490
|
<span class="normal"><a href="#__codelineno-0-98"> 98</a></span>
|
|
5532
5491
|
<span class="normal"><a href="#__codelineno-0-99"> 99</a></span>
|
|
5533
5492
|
<span class="normal"><a href="#__codelineno-0-100">100</a></span>
|
|
@@ -5553,35 +5512,34 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5553
5512
|
<span class="normal"><a href="#__codelineno-0-120">120</a></span>
|
|
5554
5513
|
<span class="normal"><a href="#__codelineno-0-121">121</a></span>
|
|
5555
5514
|
<span class="normal"><a href="#__codelineno-0-122">122</a></span>
|
|
5556
|
-
<span class="normal"><a href="#__codelineno-0-123">123</a></span>
|
|
5557
|
-
<
|
|
5558
|
-
<a id="__codelineno-0-98" name="__codelineno-0-98"></a
|
|
5559
|
-
<a id="__codelineno-0-99" name="__codelineno-0-99"></a>
|
|
5560
|
-
<a id="__codelineno-0-100" name="__codelineno-0-100"></a><span class="sd">
|
|
5561
|
-
<a id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="sd">
|
|
5562
|
-
<a id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="sd">
|
|
5563
|
-
<a id="__codelineno-0-103" name="__codelineno-0-103"></a
|
|
5564
|
-
<a id="__codelineno-0-104" name="__codelineno-0-104"></a>
|
|
5565
|
-
<a id="__codelineno-0-105" name="__codelineno-0-105"></a>
|
|
5566
|
-
<a id="__codelineno-0-106" name="__codelineno-0-106"></a>
|
|
5567
|
-
<a id="__codelineno-0-107" name="__codelineno-0-107"></a> <span class="
|
|
5568
|
-
<a id="__codelineno-0-108" name="__codelineno-0-108"></a>
|
|
5569
|
-
<a id="__codelineno-0-109" name="__codelineno-0-109"></a>
|
|
5570
|
-
<a id="__codelineno-0-110" name="__codelineno-0-110"></a>
|
|
5571
|
-
<a id="__codelineno-0-111" name="__codelineno-0-111"></a>
|
|
5572
|
-
<a id="__codelineno-0-112" name="__codelineno-0-112"></a>
|
|
5573
|
-
<a id="__codelineno-0-113" name="__codelineno-0-113"></a>
|
|
5574
|
-
<a id="__codelineno-0-114" name="__codelineno-0-114"></a>
|
|
5575
|
-
<a id="__codelineno-0-115" name="__codelineno-0-115"></a>
|
|
5576
|
-
<a id="__codelineno-0-116" name="__codelineno-0-116"></a>
|
|
5577
|
-
<a id="__codelineno-0-117" name="__codelineno-0-117"></a> <span class="
|
|
5578
|
-
<a id="__codelineno-0-118" name="__codelineno-0-118"></a>
|
|
5579
|
-
<a id="__codelineno-0-119" name="__codelineno-0-119"></a>
|
|
5580
|
-
<a id="__codelineno-0-120" name="__codelineno-0-120"></a>
|
|
5581
|
-
<a id="__codelineno-0-121" name="__codelineno-0-121"></a>
|
|
5582
|
-
<a id="__codelineno-0-122" name="__codelineno-0-122"></a>
|
|
5583
|
-
<a id="__codelineno-0-123" name="__codelineno-0-123"></a>
|
|
5584
|
-
<a id="__codelineno-0-124" name="__codelineno-0-124"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"resolver_type must be 'cable_peer' or 'connected_endpoint', not '</span><span class="si">{</span><span class="n">resolver_type</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span>
|
|
5515
|
+
<span class="normal"><a href="#__codelineno-0-123">123</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-96" name="__codelineno-0-96"></a><span class="k">def</span> <span class="nf">construct_resolver</span><span class="p">(</span><span class="n">model_name</span><span class="p">,</span> <span class="n">resolver_type</span><span class="p">):</span>
|
|
5516
|
+
<a id="__codelineno-0-97" name="__codelineno-0-97"></a><span class="w"> </span><span class="sd">"""Constructs a resolve_[cable_peer|connected_endpoint]_<endpoint> function for a given model type.</span>
|
|
5517
|
+
<a id="__codelineno-0-98" name="__codelineno-0-98"></a>
|
|
5518
|
+
<a id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="sd"> Args:</span>
|
|
5519
|
+
<a id="__codelineno-0-100" name="__codelineno-0-100"></a><span class="sd"> model_name (str): Name of the model to construct a resolver function for (e.g. CircuitTermination).</span>
|
|
5520
|
+
<a id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="sd"> resolver_type (str): One of ['connected_endpoint', 'cable_peer']</span>
|
|
5521
|
+
<a id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="sd"> """</span>
|
|
5522
|
+
<a id="__codelineno-0-103" name="__codelineno-0-103"></a> <span class="k">if</span> <span class="n">resolver_type</span> <span class="o">==</span> <span class="s2">"cable_peer"</span><span class="p">:</span>
|
|
5523
|
+
<a id="__codelineno-0-104" name="__codelineno-0-104"></a>
|
|
5524
|
+
<a id="__codelineno-0-105" name="__codelineno-0-105"></a> <span class="k">def</span> <span class="nf">resolve_cable_peer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
|
|
5525
|
+
<a id="__codelineno-0-106" name="__codelineno-0-106"></a> <span class="n">peer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_cable_peer</span><span class="p">()</span>
|
|
5526
|
+
<a id="__codelineno-0-107" name="__codelineno-0-107"></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">peer</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="n">model_name</span><span class="p">:</span>
|
|
5527
|
+
<a id="__codelineno-0-108" name="__codelineno-0-108"></a> <span class="k">return</span> <span class="n">peer</span>
|
|
5528
|
+
<a id="__codelineno-0-109" name="__codelineno-0-109"></a> <span class="k">return</span> <span class="kc">None</span>
|
|
5529
|
+
<a id="__codelineno-0-110" name="__codelineno-0-110"></a>
|
|
5530
|
+
<a id="__codelineno-0-111" name="__codelineno-0-111"></a> <span class="k">return</span> <span class="n">resolve_cable_peer</span>
|
|
5531
|
+
<a id="__codelineno-0-112" name="__codelineno-0-112"></a>
|
|
5532
|
+
<a id="__codelineno-0-113" name="__codelineno-0-113"></a> <span class="k">if</span> <span class="n">resolver_type</span> <span class="o">==</span> <span class="s2">"connected_endpoint"</span><span class="p">:</span>
|
|
5533
|
+
<a id="__codelineno-0-114" name="__codelineno-0-114"></a>
|
|
5534
|
+
<a id="__codelineno-0-115" name="__codelineno-0-115"></a> <span class="k">def</span> <span class="nf">resolve_connected_endpoint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
|
|
5535
|
+
<a id="__codelineno-0-116" name="__codelineno-0-116"></a> <span class="n">peer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_endpoint</span>
|
|
5536
|
+
<a id="__codelineno-0-117" name="__codelineno-0-117"></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">peer</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="n">model_name</span><span class="p">:</span>
|
|
5537
|
+
<a id="__codelineno-0-118" name="__codelineno-0-118"></a> <span class="k">return</span> <span class="n">peer</span>
|
|
5538
|
+
<a id="__codelineno-0-119" name="__codelineno-0-119"></a> <span class="k">return</span> <span class="kc">None</span>
|
|
5539
|
+
<a id="__codelineno-0-120" name="__codelineno-0-120"></a>
|
|
5540
|
+
<a id="__codelineno-0-121" name="__codelineno-0-121"></a> <span class="k">return</span> <span class="n">resolve_connected_endpoint</span>
|
|
5541
|
+
<a id="__codelineno-0-122" name="__codelineno-0-122"></a>
|
|
5542
|
+
<a id="__codelineno-0-123" name="__codelineno-0-123"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"resolver_type must be 'cable_peer' or 'connected_endpoint', not '</span><span class="si">{</span><span class="n">resolver_type</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span>
|
|
5585
5543
|
</code></pre></div></td></tr></table></div>
|
|
5586
5544
|
</details>
|
|
5587
5545
|
</div>
|
|
@@ -5701,7 +5659,8 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5701
5659
|
|
|
5702
5660
|
<details class="quote">
|
|
5703
5661
|
<summary>Source code in <code>nautobot/core/graphql/__init__.py</code></summary>
|
|
5704
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
5662
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-10">10</a></span>
|
|
5663
|
+
<span class="normal"><a href="#__codelineno-0-11">11</a></span>
|
|
5705
5664
|
<span class="normal"><a href="#__codelineno-0-12">12</a></span>
|
|
5706
5665
|
<span class="normal"><a href="#__codelineno-0-13">13</a></span>
|
|
5707
5666
|
<span class="normal"><a href="#__codelineno-0-14">14</a></span>
|
|
@@ -5723,31 +5682,30 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5723
5682
|
<span class="normal"><a href="#__codelineno-0-30">30</a></span>
|
|
5724
5683
|
<span class="normal"><a href="#__codelineno-0-31">31</a></span>
|
|
5725
5684
|
<span class="normal"><a href="#__codelineno-0-32">32</a></span>
|
|
5726
|
-
<span class="normal"><a href="#__codelineno-0-33">33</a></span>
|
|
5727
|
-
<
|
|
5728
|
-
<a id="__codelineno-0-12" name="__codelineno-0-12"></a
|
|
5729
|
-
<a id="__codelineno-0-13" name="__codelineno-0-13"></a>
|
|
5730
|
-
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="sd">
|
|
5731
|
-
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd">
|
|
5732
|
-
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd">
|
|
5733
|
-
<a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="sd">
|
|
5734
|
-
<a id="__codelineno-0-18" name="__codelineno-0-18"></a
|
|
5735
|
-
<a id="__codelineno-0-19" name="__codelineno-0-19"></a>
|
|
5736
|
-
<a id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="sd">
|
|
5737
|
-
<a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="sd">
|
|
5738
|
-
<a id="__codelineno-0-22" name="__codelineno-0-22"></a
|
|
5739
|
-
<a id="__codelineno-0-23" name="__codelineno-0-23"></a>
|
|
5740
|
-
<a id="__codelineno-0-24" name="__codelineno-0-24"></a>
|
|
5741
|
-
<a id="__codelineno-0-25" name="__codelineno-0-25"></a>
|
|
5742
|
-
<a id="__codelineno-0-26" name="__codelineno-0-26"></a> <span class="n">request</span
|
|
5743
|
-
<a id="__codelineno-0-27" name="__codelineno-0-27"></a>
|
|
5744
|
-
<a id="__codelineno-0-28" name="__codelineno-0-28"></a> <span class="n">
|
|
5745
|
-
<a id="__codelineno-0-29" name="__codelineno-0-29"></a> <span class="n">
|
|
5746
|
-
<a id="__codelineno-0-30" name="__codelineno-0-30"></a> <span class="
|
|
5747
|
-
<a id="__codelineno-0-31" name="__codelineno-0-31"></a>
|
|
5748
|
-
<a id="__codelineno-0-32" name="__codelineno-0-32"></a>
|
|
5749
|
-
<a id="__codelineno-0-33" name="__codelineno-0-33"></a>
|
|
5750
|
-
<a id="__codelineno-0-34" name="__codelineno-0-34"></a> <span class="k">return</span> <span class="n">document</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">context_value</span><span class="o">=</span><span class="n">request</span><span class="p">)</span>
|
|
5685
|
+
<span class="normal"><a href="#__codelineno-0-33">33</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="k">def</span> <span class="nf">execute_query</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">variables</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">request</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
5686
|
+
<a id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="w"> </span><span class="sd">"""Execute a query from the ORM.</span>
|
|
5687
|
+
<a id="__codelineno-0-12" name="__codelineno-0-12"></a>
|
|
5688
|
+
<a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="sd"> Args:</span>
|
|
5689
|
+
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="sd"> query (str): String with GraphQL query.</span>
|
|
5690
|
+
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd"> variables (dict, optional): If the query has variables they need to be passed in as a dictionary.</span>
|
|
5691
|
+
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd"> request (django.test.client.RequestFactory, optional): Used to authenticate.</span>
|
|
5692
|
+
<a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="sd"> user (django.contrib.auth.models.User, optional): Used to authenticate.</span>
|
|
5693
|
+
<a id="__codelineno-0-18" name="__codelineno-0-18"></a>
|
|
5694
|
+
<a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="sd"> Returns:</span>
|
|
5695
|
+
<a id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="sd"> (GraphQLDocument): Result for query</span>
|
|
5696
|
+
<a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="sd"> """</span>
|
|
5697
|
+
<a id="__codelineno-0-22" name="__codelineno-0-22"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">request</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">user</span><span class="p">:</span>
|
|
5698
|
+
<a id="__codelineno-0-23" name="__codelineno-0-23"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Either request or username should be provided"</span><span class="p">)</span>
|
|
5699
|
+
<a id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">request</span><span class="p">:</span>
|
|
5700
|
+
<a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="n">request</span> <span class="o">=</span> <span class="n">RequestFactory</span><span class="p">()</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="s2">"/graphql/"</span><span class="p">)</span>
|
|
5701
|
+
<a id="__codelineno-0-26" name="__codelineno-0-26"></a> <span class="n">request</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">user</span>
|
|
5702
|
+
<a id="__codelineno-0-27" name="__codelineno-0-27"></a> <span class="n">backend</span> <span class="o">=</span> <span class="n">get_default_backend</span><span class="p">()</span>
|
|
5703
|
+
<a id="__codelineno-0-28" name="__codelineno-0-28"></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">graphene_settings</span><span class="o">.</span><span class="n">SCHEMA</span>
|
|
5704
|
+
<a id="__codelineno-0-29" name="__codelineno-0-29"></a> <span class="n">document</span> <span class="o">=</span> <span class="n">backend</span><span class="o">.</span><span class="n">document_from_string</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">query</span><span class="p">)</span>
|
|
5705
|
+
<a id="__codelineno-0-30" name="__codelineno-0-30"></a> <span class="k">if</span> <span class="n">variables</span><span class="p">:</span>
|
|
5706
|
+
<a id="__codelineno-0-31" name="__codelineno-0-31"></a> <span class="k">return</span> <span class="n">document</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">context_value</span><span class="o">=</span><span class="n">request</span><span class="p">,</span> <span class="n">variable_values</span><span class="o">=</span><span class="n">variables</span><span class="p">)</span>
|
|
5707
|
+
<a id="__codelineno-0-32" name="__codelineno-0-32"></a> <span class="k">else</span><span class="p">:</span>
|
|
5708
|
+
<a id="__codelineno-0-33" name="__codelineno-0-33"></a> <span class="k">return</span> <span class="n">document</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">context_value</span><span class="o">=</span><span class="n">request</span><span class="p">)</span>
|
|
5751
5709
|
</code></pre></div></td></tr></table></div>
|
|
5752
5710
|
</details>
|
|
5753
5711
|
</div>
|
|
@@ -5873,7 +5831,8 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5873
5831
|
|
|
5874
5832
|
<details class="quote">
|
|
5875
5833
|
<summary>Source code in <code>nautobot/core/graphql/__init__.py</code></summary>
|
|
5876
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
5834
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-36">36</a></span>
|
|
5835
|
+
<span class="normal"><a href="#__codelineno-0-37">37</a></span>
|
|
5877
5836
|
<span class="normal"><a href="#__codelineno-0-38">38</a></span>
|
|
5878
5837
|
<span class="normal"><a href="#__codelineno-0-39">39</a></span>
|
|
5879
5838
|
<span class="normal"><a href="#__codelineno-0-40">40</a></span>
|
|
@@ -5887,23 +5846,22 @@ that this approach may fail for values in excess of 2^53-1 (the largest integer
|
|
|
5887
5846
|
<span class="normal"><a href="#__codelineno-0-48">48</a></span>
|
|
5888
5847
|
<span class="normal"><a href="#__codelineno-0-49">49</a></span>
|
|
5889
5848
|
<span class="normal"><a href="#__codelineno-0-50">50</a></span>
|
|
5890
|
-
<span class="normal"><a href="#__codelineno-0-51">51</a></span>
|
|
5891
|
-
<
|
|
5892
|
-
<a id="__codelineno-0-38" name="__codelineno-0-38"></a
|
|
5893
|
-
<a id="__codelineno-0-39" name="__codelineno-0-39"></a>
|
|
5894
|
-
<a id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="sd">
|
|
5895
|
-
<a id="__codelineno-0-41" name="__codelineno-0-41"></a
|
|
5896
|
-
<a id="__codelineno-0-42" name="__codelineno-0-42"></a>
|
|
5897
|
-
<a id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="sd">
|
|
5898
|
-
<a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="sd">
|
|
5899
|
-
<a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="sd">
|
|
5900
|
-
<a id="__codelineno-0-46" name="__codelineno-0-46"></a
|
|
5901
|
-
<a id="__codelineno-0-47" name="__codelineno-0-47"></a>
|
|
5902
|
-
<a id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="sd">
|
|
5903
|
-
<a id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="sd">
|
|
5904
|
-
<a id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="
|
|
5905
|
-
<a id="__codelineno-0-51" name="__codelineno-0-51"></a> <span class="
|
|
5906
|
-
<a id="__codelineno-0-52" name="__codelineno-0-52"></a> <span class="k">return</span> <span class="n">execute_query</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="o">.</span><span class="n">query</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
5849
|
+
<span class="normal"><a href="#__codelineno-0-51">51</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="k">def</span> <span class="nf">execute_saved_query</span><span class="p">(</span><span class="n">saved_query_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
5850
|
+
<a id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="sd">"""Execute saved query from the ORM.</span>
|
|
5851
|
+
<a id="__codelineno-0-38" name="__codelineno-0-38"></a>
|
|
5852
|
+
<a id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="sd"> Args:</span>
|
|
5853
|
+
<a id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="sd"> saved_query_name (str): Name of a saved GraphQL query.</span>
|
|
5854
|
+
<a id="__codelineno-0-41" name="__codelineno-0-41"></a>
|
|
5855
|
+
<a id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="sd"> Keyword Args:</span>
|
|
5856
|
+
<a id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="sd"> variables (Optional[dict]): If the query has variables they need to be passed in as a dictionary.</span>
|
|
5857
|
+
<a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="sd"> request (Optional[django.test.client.RequestFactory]): Used to authenticate.</span>
|
|
5858
|
+
<a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="sd"> user (Optional[django.contrib.auth.models.User]): Used to authenticate.</span>
|
|
5859
|
+
<a id="__codelineno-0-46" name="__codelineno-0-46"></a>
|
|
5860
|
+
<a id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="sd"> Returns:</span>
|
|
5861
|
+
<a id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="sd"> (GraphQLDocument): Result for query</span>
|
|
5862
|
+
<a id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="sd"> """</span>
|
|
5863
|
+
<a id="__codelineno-0-50" name="__codelineno-0-50"></a> <span class="n">query</span> <span class="o">=</span> <span class="n">GraphQLQuery</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">saved_query_name</span><span class="p">)</span>
|
|
5864
|
+
<a id="__codelineno-0-51" name="__codelineno-0-51"></a> <span class="k">return</span> <span class="n">execute_query</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="o">.</span><span class="n">query</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
5907
5865
|
</code></pre></div></td></tr></table></div>
|
|
5908
5866
|
</details>
|
|
5909
5867
|
</div>
|
|
@@ -5986,7 +5944,8 @@ if the filter field is a subclass of MultipleChoiceFilter, the argument will be
|
|
|
5986
5944
|
|
|
5987
5945
|
<details class="quote">
|
|
5988
5946
|
<summary>Source code in <code>nautobot/core/graphql/utils.py</code></summary>
|
|
5989
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
5947
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-27">27</a></span>
|
|
5948
|
+
<span class="normal"><a href="#__codelineno-0-28">28</a></span>
|
|
5990
5949
|
<span class="normal"><a href="#__codelineno-0-29">29</a></span>
|
|
5991
5950
|
<span class="normal"><a href="#__codelineno-0-30">30</a></span>
|
|
5992
5951
|
<span class="normal"><a href="#__codelineno-0-31">31</a></span>
|
|
@@ -6051,74 +6010,73 @@ if the filter field is a subclass of MultipleChoiceFilter, the argument will be
|
|
|
6051
6010
|
<span class="normal"><a href="#__codelineno-0-90">90</a></span>
|
|
6052
6011
|
<span class="normal"><a href="#__codelineno-0-91">91</a></span>
|
|
6053
6012
|
<span class="normal"><a href="#__codelineno-0-92">92</a></span>
|
|
6054
|
-
<span class="normal"><a href="#__codelineno-0-93">93</a></span>
|
|
6055
|
-
<
|
|
6056
|
-
<a id="__codelineno-0-29" name="__codelineno-0-29"></a
|
|
6057
|
-
<a id="__codelineno-0-30" name="__codelineno-0-30"></a>
|
|
6058
|
-
<a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="sd">
|
|
6059
|
-
<a id="__codelineno-0-32" name="__codelineno-0-32"></a
|
|
6060
|
-
<a id="__codelineno-0-33" name="__codelineno-0-33"></a>
|
|
6061
|
-
<a id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="sd">
|
|
6062
|
-
<a id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="sd">
|
|
6063
|
-
<a id="__codelineno-0-36" name="__codelineno-0-36"></a
|
|
6064
|
-
<a id="__codelineno-0-37" name="__codelineno-0-37"></a>
|
|
6065
|
-
<a id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="sd">
|
|
6066
|
-
<a id="__codelineno-0-39" name="__codelineno-0-39"></a
|
|
6067
|
-
<a id="__codelineno-0-40" name="__codelineno-0-40"></a>
|
|
6068
|
-
<a id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="sd">
|
|
6069
|
-
<a id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="sd">
|
|
6070
|
-
<a id="__codelineno-0-43" name="__codelineno-0-43"></a
|
|
6071
|
-
<a id="__codelineno-0-44" name="__codelineno-0-44"></a>
|
|
6072
|
-
<a id="__codelineno-0-45" name="__codelineno-0-45"></a> <span class="n">
|
|
6073
|
-
<a id="__codelineno-0-46" name="__codelineno-0-46"></a>
|
|
6074
|
-
<a id="__codelineno-0-47" name="__codelineno-0-47"></a>
|
|
6075
|
-
<a id="__codelineno-0-48" name="__codelineno-0-48"></a>
|
|
6076
|
-
<a id="__codelineno-0-49" name="__codelineno-0-49"></a> <span class="c1">#
|
|
6077
|
-
<a id="__codelineno-0-50" name="__codelineno-0-50"></a> <span class="c1"># (
|
|
6078
|
-
<a id="__codelineno-0-51" name="__codelineno-0-51"></a> <span class="c1">#
|
|
6079
|
-
<a id="__codelineno-0-52" name="__codelineno-0-52"></a> <span class="c1">#
|
|
6080
|
-
<a id="__codelineno-0-53" name="__codelineno-0-53"></a> <span class="
|
|
6081
|
-
<a id="__codelineno-0-54" name="__codelineno-0-54"></a>
|
|
6082
|
-
<a id="__codelineno-0-55" name="__codelineno-0-55"></a>
|
|
6083
|
-
<a id="__codelineno-0-56" name="__codelineno-0-56"></a>
|
|
6084
|
-
<a id="__codelineno-0-57" name="__codelineno-0-57"></a> <span class="
|
|
6085
|
-
<a id="__codelineno-0-58" name="__codelineno-0-58"></a>
|
|
6086
|
-
<a id="__codelineno-0-59" name="__codelineno-0-59"></a>
|
|
6087
|
-
<a id="__codelineno-0-60" name="__codelineno-0-60"></a> <span class="n">
|
|
6088
|
-
<a id="__codelineno-0-61" name="__codelineno-0-61"></a>
|
|
6089
|
-
<a id="__codelineno-0-62" name="__codelineno-0-62"></a>
|
|
6090
|
-
<a id="__codelineno-0-63" name="__codelineno-0-63"></a>
|
|
6091
|
-
<a id="__codelineno-0-64" name="__codelineno-0-64"></a>
|
|
6092
|
-
<a id="__codelineno-0-65" name="__codelineno-0-65"></a>
|
|
6093
|
-
<a id="__codelineno-0-66" name="__codelineno-0-66"></a>
|
|
6094
|
-
<a id="__codelineno-0-67" name="__codelineno-0-67"></a>
|
|
6095
|
-
<a id="__codelineno-0-68" name="__codelineno-0-68"></a>
|
|
6096
|
-
<a id="__codelineno-0-69" name="__codelineno-0-69"></a>
|
|
6097
|
-
<a id="__codelineno-0-70" name="__codelineno-0-70"></a>
|
|
6098
|
-
<a id="__codelineno-0-71" name="__codelineno-0-71"></a>
|
|
6099
|
-
<a id="__codelineno-0-72" name="__codelineno-0-72"></a>
|
|
6100
|
-
<a id="__codelineno-0-73" name="__codelineno-0-73"></a>
|
|
6101
|
-
<a id="__codelineno-0-74" name="__codelineno-0-74"></a>
|
|
6102
|
-
<a id="__codelineno-0-75" name="__codelineno-0-75"></a>
|
|
6103
|
-
<a id="__codelineno-0-76" name="__codelineno-0-76"></a>
|
|
6104
|
-
<a id="__codelineno-0-77" name="__codelineno-0-77"></a>
|
|
6105
|
-
<a id="__codelineno-0-78" name="__codelineno-0-78"></a>
|
|
6106
|
-
<a id="__codelineno-0-79" name="__codelineno-0-79"></a>
|
|
6107
|
-
<a id="__codelineno-0-80" name="__codelineno-0-80"></a>
|
|
6108
|
-
<a id="__codelineno-0-81" name="__codelineno-0-81"></a> <span class="n">
|
|
6109
|
-
<a id="__codelineno-0-82" name="__codelineno-0-82"></a> <span class="n">
|
|
6110
|
-
<a id="__codelineno-0-83" name="__codelineno-0-83"></a>
|
|
6111
|
-
<a id="__codelineno-0-84" name="__codelineno-0-84"></a>
|
|
6112
|
-
<a id="__codelineno-0-85" name="__codelineno-0-85"></a>
|
|
6113
|
-
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="c1">#
|
|
6114
|
-
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="c1">#
|
|
6115
|
-
<a id="__codelineno-0-88" name="__codelineno-0-88"></a> <span class="c1">#
|
|
6116
|
-
<a id="__codelineno-0-89" name="__codelineno-0-89"></a> <span class="c1">#
|
|
6117
|
-
<a id="__codelineno-0-90" name="__codelineno-0-90"></a> <span class="
|
|
6118
|
-
<a id="__codelineno-0-91" name="__codelineno-0-91"></a>
|
|
6119
|
-
<a id="__codelineno-0-92" name="__codelineno-0-92"></a>
|
|
6120
|
-
<a id="__codelineno-0-93" name="__codelineno-0-93"></a>
|
|
6121
|
-
<a id="__codelineno-0-94" name="__codelineno-0-94"></a> <span class="k">return</span> <span class="n">args</span>
|
|
6013
|
+
<span class="normal"><a href="#__codelineno-0-93">93</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="k">def</span> <span class="nf">get_filtering_args_from_filterset</span><span class="p">(</span><span class="n">filterset_class</span><span class="p">):</span>
|
|
6014
|
+
<a id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="w"> </span><span class="sd">"""Generate a list of filter arguments from a filterset.</span>
|
|
6015
|
+
<a id="__codelineno-0-29" name="__codelineno-0-29"></a>
|
|
6016
|
+
<a id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="sd"> The FilterSet class will be instantiated before extracting the list of arguments to</span>
|
|
6017
|
+
<a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="sd"> account for dynamic filters, inserted when the class is instantiated. (required for Custom Fields filters).</span>
|
|
6018
|
+
<a id="__codelineno-0-32" name="__codelineno-0-32"></a>
|
|
6019
|
+
<a id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="sd"> Filter fields that are inheriting from BooleanFilter and NumberFilter will be converted</span>
|
|
6020
|
+
<a id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="sd"> to their appropriate type, everything else will be of type String.</span>
|
|
6021
|
+
<a id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="sd"> if the filter field is a subclass of MultipleChoiceFilter, the argument will be converted as a list</span>
|
|
6022
|
+
<a id="__codelineno-0-36" name="__codelineno-0-36"></a>
|
|
6023
|
+
<a id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="sd"> Args:</span>
|
|
6024
|
+
<a id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="sd"> filterset_class (FilterSet): FilterSet class used to extract the argument</span>
|
|
6025
|
+
<a id="__codelineno-0-39" name="__codelineno-0-39"></a>
|
|
6026
|
+
<a id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="sd"> Returns:</span>
|
|
6027
|
+
<a id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="sd"> (dict[graphene.Argument]): Filter Arguments organized in a dictionary</span>
|
|
6028
|
+
<a id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="sd"> """</span>
|
|
6029
|
+
<a id="__codelineno-0-43" name="__codelineno-0-43"></a>
|
|
6030
|
+
<a id="__codelineno-0-44" name="__codelineno-0-44"></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span>
|
|
6031
|
+
<a id="__codelineno-0-45" name="__codelineno-0-45"></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">filterset_class</span><span class="p">()</span>
|
|
6032
|
+
<a id="__codelineno-0-46" name="__codelineno-0-46"></a>
|
|
6033
|
+
<a id="__codelineno-0-47" name="__codelineno-0-47"></a> <span class="k">for</span> <span class="n">filter_name</span><span class="p">,</span> <span class="n">filter_field</span> <span class="ow">in</span> <span class="n">instance</span><span class="o">.</span><span class="n">filters</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
|
6034
|
+
<a id="__codelineno-0-48" name="__codelineno-0-48"></a> <span class="c1"># For general safety, but especially for the case of custom fields</span>
|
|
6035
|
+
<a id="__codelineno-0-49" name="__codelineno-0-49"></a> <span class="c1"># (https://github.com/nautobot/nautobot/issues/464)</span>
|
|
6036
|
+
<a id="__codelineno-0-50" name="__codelineno-0-50"></a> <span class="c1"># We don't have a way to map a GraphQL-sanitized filter name (such as "cf_my_custom_field") back to the</span>
|
|
6037
|
+
<a id="__codelineno-0-51" name="__codelineno-0-51"></a> <span class="c1"># actual filter name (such as "cf_my-custom-field"), so if the sanitized filter name doesn't match the original</span>
|
|
6038
|
+
<a id="__codelineno-0-52" name="__codelineno-0-52"></a> <span class="c1"># filter name, we just have to omit it for now. Better that than advertise a filter that doesn't actually work!</span>
|
|
6039
|
+
<a id="__codelineno-0-53" name="__codelineno-0-53"></a> <span class="k">if</span> <span class="n">str_to_var_name</span><span class="p">(</span><span class="n">filter_name</span><span class="p">)</span> <span class="o">!=</span> <span class="n">filter_name</span><span class="p">:</span>
|
|
6040
|
+
<a id="__codelineno-0-54" name="__codelineno-0-54"></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span>
|
|
6041
|
+
<a id="__codelineno-0-55" name="__codelineno-0-55"></a> <span class="s1">'Filter "</span><span class="si">%s</span><span class="s1">" on </span><span class="si">%s</span><span class="s1"> is not GraphQL safe, and will be omitted'</span><span class="p">,</span> <span class="n">filter_name</span><span class="p">,</span> <span class="n">filterset_class</span><span class="o">.</span><span class="vm">__name__</span>
|
|
6042
|
+
<a id="__codelineno-0-56" name="__codelineno-0-56"></a> <span class="p">)</span>
|
|
6043
|
+
<a id="__codelineno-0-57" name="__codelineno-0-57"></a> <span class="k">continue</span>
|
|
6044
|
+
<a id="__codelineno-0-58" name="__codelineno-0-58"></a>
|
|
6045
|
+
<a id="__codelineno-0-59" name="__codelineno-0-59"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">String</span>
|
|
6046
|
+
<a id="__codelineno-0-60" name="__codelineno-0-60"></a> <span class="n">filter_field_class</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">filter_field</span><span class="p">)</span>
|
|
6047
|
+
<a id="__codelineno-0-61" name="__codelineno-0-61"></a>
|
|
6048
|
+
<a id="__codelineno-0-62" name="__codelineno-0-62"></a> <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">filter_field_class</span><span class="p">,</span> <span class="n">MultiValueBigNumberFilter</span><span class="p">):</span>
|
|
6049
|
+
<a id="__codelineno-0-63" name="__codelineno-0-63"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">List</span><span class="p">(</span><span class="n">BigInteger</span><span class="p">)</span>
|
|
6050
|
+
<a id="__codelineno-0-64" name="__codelineno-0-64"></a> <span class="k">elif</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">filter_field_class</span><span class="p">,</span> <span class="p">(</span><span class="n">MultiValueFloatFilter</span><span class="p">,</span> <span class="n">MultiValueDecimalFilter</span><span class="p">)):</span>
|
|
6051
|
+
<a id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">List</span><span class="p">(</span><span class="n">graphene</span><span class="o">.</span><span class="n">Float</span><span class="p">)</span>
|
|
6052
|
+
<a id="__codelineno-0-66" name="__codelineno-0-66"></a> <span class="k">elif</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">filter_field_class</span><span class="p">,</span> <span class="n">MultiValueNumberFilter</span><span class="p">):</span>
|
|
6053
|
+
<a id="__codelineno-0-67" name="__codelineno-0-67"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">List</span><span class="p">(</span><span class="n">graphene</span><span class="o">.</span><span class="n">Int</span><span class="p">)</span>
|
|
6054
|
+
<a id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="k">else</span><span class="p">:</span>
|
|
6055
|
+
<a id="__codelineno-0-69" name="__codelineno-0-69"></a> <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">filter_field_class</span><span class="p">,</span> <span class="n">BooleanFilter</span><span class="p">):</span>
|
|
6056
|
+
<a id="__codelineno-0-70" name="__codelineno-0-70"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">Boolean</span>
|
|
6057
|
+
<a id="__codelineno-0-71" name="__codelineno-0-71"></a> <span class="k">elif</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">filter_field_class</span><span class="p">,</span> <span class="n">NumberFilter</span><span class="p">):</span>
|
|
6058
|
+
<a id="__codelineno-0-72" name="__codelineno-0-72"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">Int</span>
|
|
6059
|
+
<a id="__codelineno-0-73" name="__codelineno-0-73"></a> <span class="k">else</span><span class="p">:</span>
|
|
6060
|
+
<a id="__codelineno-0-74" name="__codelineno-0-74"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">String</span>
|
|
6061
|
+
<a id="__codelineno-0-75" name="__codelineno-0-75"></a>
|
|
6062
|
+
<a id="__codelineno-0-76" name="__codelineno-0-76"></a> <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">filter_field_class</span><span class="p">,</span> <span class="n">MultipleChoiceFilter</span><span class="p">):</span>
|
|
6063
|
+
<a id="__codelineno-0-77" name="__codelineno-0-77"></a> <span class="n">field_type</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">List</span><span class="p">(</span><span class="n">field_type</span><span class="p">)</span>
|
|
6064
|
+
<a id="__codelineno-0-78" name="__codelineno-0-78"></a>
|
|
6065
|
+
<a id="__codelineno-0-79" name="__codelineno-0-79"></a> <span class="n">args</span><span class="p">[</span><span class="n">filter_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">graphene</span><span class="o">.</span><span class="n">Argument</span><span class="p">(</span>
|
|
6066
|
+
<a id="__codelineno-0-80" name="__codelineno-0-80"></a> <span class="n">field_type</span><span class="p">,</span>
|
|
6067
|
+
<a id="__codelineno-0-81" name="__codelineno-0-81"></a> <span class="n">description</span><span class="o">=</span><span class="n">filter_field</span><span class="o">.</span><span class="n">label</span><span class="p">,</span>
|
|
6068
|
+
<a id="__codelineno-0-82" name="__codelineno-0-82"></a> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
|
6069
|
+
<a id="__codelineno-0-83" name="__codelineno-0-83"></a> <span class="p">)</span>
|
|
6070
|
+
<a id="__codelineno-0-84" name="__codelineno-0-84"></a>
|
|
6071
|
+
<a id="__codelineno-0-85" name="__codelineno-0-85"></a> <span class="c1"># Hack to swap `type` fields to `_type` since they will conflict with</span>
|
|
6072
|
+
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="c1"># `graphene.types.fields.Field.type` in Graphene 2.x.</span>
|
|
6073
|
+
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="c1"># 2.0 TODO(jathan): Once we upgrade to Graphene 3.x we can remove this, but we</span>
|
|
6074
|
+
<a id="__codelineno-0-88" name="__codelineno-0-88"></a> <span class="c1"># will still need to do an API migration to deprecate it. This argument was</span>
|
|
6075
|
+
<a id="__codelineno-0-89" name="__codelineno-0-89"></a> <span class="c1"># validated to be safe to keep even in Graphene 3.</span>
|
|
6076
|
+
<a id="__codelineno-0-90" name="__codelineno-0-90"></a> <span class="k">if</span> <span class="s2">"type"</span> <span class="ow">in</span> <span class="n">args</span><span class="p">:</span>
|
|
6077
|
+
<a id="__codelineno-0-91" name="__codelineno-0-91"></a> <span class="n">args</span><span class="p">[</span><span class="s2">"_type"</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"type"</span><span class="p">)</span>
|
|
6078
|
+
<a id="__codelineno-0-92" name="__codelineno-0-92"></a>
|
|
6079
|
+
<a id="__codelineno-0-93" name="__codelineno-0-93"></a> <span class="k">return</span> <span class="n">args</span>
|
|
6122
6080
|
</code></pre></div></td></tr></table></div>
|
|
6123
6081
|
</details>
|
|
6124
6082
|
</div>
|
|
@@ -6147,19 +6105,19 @@ if the filter field is a subclass of MultipleChoiceFilter, the argument will be
|
|
|
6147
6105
|
|
|
6148
6106
|
<details class="quote">
|
|
6149
6107
|
<summary>Source code in <code>nautobot/core/graphql/utils.py</code></summary>
|
|
6150
|
-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-
|
|
6108
|
+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-18">18</a></span>
|
|
6109
|
+
<span class="normal"><a href="#__codelineno-0-19">19</a></span>
|
|
6151
6110
|
<span class="normal"><a href="#__codelineno-0-20">20</a></span>
|
|
6152
6111
|
<span class="normal"><a href="#__codelineno-0-21">21</a></span>
|
|
6153
6112
|
<span class="normal"><a href="#__codelineno-0-22">22</a></span>
|
|
6154
6113
|
<span class="normal"><a href="#__codelineno-0-23">23</a></span>
|
|
6155
|
-
<span class="normal"><a href="#__codelineno-0-24">24</a></span>
|
|
6156
|
-
<
|
|
6157
|
-
<a id="__codelineno-0-20" name="__codelineno-0-20"></a
|
|
6158
|
-
<a id="__codelineno-0-21" name="__codelineno-0-21"></a>
|
|
6159
|
-
<a id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="sd">
|
|
6160
|
-
<a id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="sd">
|
|
6161
|
-
<a id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="
|
|
6162
|
-
<a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="k">return</span> <span class="n">slugify_dashes_to_underscores</span><span class="p">(</span><span class="n">verbose_name</span><span class="p">)</span>
|
|
6114
|
+
<span class="normal"><a href="#__codelineno-0-24">24</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="k">def</span> <span class="nf">str_to_var_name</span><span class="p">(</span><span class="n">verbose_name</span><span class="p">):</span>
|
|
6115
|
+
<a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="sd">"""Convert a string to a variable compatible name.</span>
|
|
6116
|
+
<a id="__codelineno-0-20" name="__codelineno-0-20"></a>
|
|
6117
|
+
<a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="sd"> Examples:</span>
|
|
6118
|
+
<a id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="sd"> IP Addresses > ip_addresses</span>
|
|
6119
|
+
<a id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="sd"> """</span>
|
|
6120
|
+
<a id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="k">return</span> <span class="n">slugify_dashes_to_underscores</span><span class="p">(</span><span class="n">verbose_name</span><span class="p">)</span>
|
|
6163
6121
|
</code></pre></div></td></tr></table></div>
|
|
6164
6122
|
</details>
|
|
6165
6123
|
</div>
|