nautobot 2.0.0a3__py3-none-any.whl → 2.0.0b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nautobot/apps/api.py +6 -8
- nautobot/apps/forms.py +0 -2
- nautobot/apps/ui.py +0 -8
- nautobot/circuits/api/serializers.py +9 -117
- nautobot/circuits/api/urls.py +1 -1
- nautobot/circuits/api/views.py +0 -1
- nautobot/circuits/forms.py +0 -65
- nautobot/circuits/migrations/0014_related_name_changes.py +1 -1
- nautobot/circuits/migrations/0016_tagsfield.py +34 -0
- nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
- nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
- nautobot/circuits/models.py +3 -87
- nautobot/circuits/navigation.py +14 -69
- nautobot/circuits/signals.py +0 -2
- nautobot/circuits/tables.py +39 -1
- nautobot/circuits/tests/integration/test_relationships.py +9 -9
- nautobot/circuits/tests/test_api.py +4 -8
- nautobot/circuits/tests/test_filters.py +10 -4
- nautobot/circuits/tests/test_models.py +5 -1
- nautobot/circuits/tests/test_views.py +27 -5
- nautobot/circuits/views.py +18 -10
- nautobot/core/api/__init__.py +8 -2
- nautobot/core/api/fields.py +15 -6
- nautobot/core/api/filter_backends.py +3 -2
- nautobot/core/api/metadata.py +237 -30
- nautobot/core/api/mixins.py +94 -0
- nautobot/core/api/pagination.py +4 -0
- nautobot/core/api/parsers.py +154 -0
- nautobot/core/api/renderers.py +153 -2
- nautobot/core/api/schema.py +46 -2
- nautobot/core/api/serializers.py +377 -35
- nautobot/core/api/urls.py +11 -3
- nautobot/core/api/utils.py +174 -2
- nautobot/core/api/versioning.py +32 -10
- nautobot/core/api/views.py +266 -72
- nautobot/core/apps/__init__.py +138 -220
- nautobot/core/celery/__init__.py +112 -41
- nautobot/core/celery/backends.py +19 -12
- nautobot/core/celery/control.py +46 -0
- nautobot/core/celery/encoders.py +53 -0
- nautobot/core/celery/log.py +38 -0
- nautobot/core/celery/schedulers.py +23 -4
- nautobot/core/celery/task.py +1 -16
- nautobot/core/checks.py +0 -27
- nautobot/core/choices.py +0 -113
- nautobot/core/{cli.py → cli/__init__.py} +1 -1
- nautobot/core/cli/__main__.py +3 -0
- nautobot/core/constants.py +0 -24
- nautobot/core/context_processors.py +12 -0
- nautobot/core/filters.py +2 -2
- nautobot/core/forms/__init__.py +0 -4
- nautobot/core/forms/fields.py +38 -65
- nautobot/core/forms/forms.py +4 -1
- nautobot/core/forms/utils.py +0 -52
- nautobot/core/graphql/schema.py +4 -27
- nautobot/core/jobs/__init__.py +75 -0
- nautobot/core/management/commands/build_ui.py +255 -0
- nautobot/core/management/commands/generate_test_data.py +3 -2
- nautobot/core/management/commands/post_upgrade.py +24 -24
- nautobot/core/models/__init__.py +26 -1
- nautobot/core/models/fields.py +24 -5
- nautobot/core/models/generics.py +2 -42
- nautobot/core/models/managers.py +5 -0
- nautobot/core/models/name_color_content_types.py +0 -14
- nautobot/core/models/tree_queries.py +14 -4
- nautobot/core/models/utils.py +5 -6
- nautobot/core/models/validators.py +17 -8
- nautobot/core/releases.py +8 -10
- nautobot/core/settings.py +80 -42
- nautobot/core/tables.py +5 -5
- nautobot/core/tasks.py +4 -7
- nautobot/core/templates/base.html +1 -49
- nautobot/core/templates/base_django.html +49 -0
- nautobot/core/templates/base_react.html +55 -0
- nautobot/core/templates/buttons/export.html +6 -4
- nautobot/core/templates/generic/object_bulk_create.html +10 -21
- nautobot/core/templates/generic/object_list.html +3 -1
- nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
- nautobot/core/templates/inc/footer.html +1 -0
- nautobot/core/templates/inc/javascript.html +0 -14
- nautobot/core/templates/inc/nav_menu.html +28 -33
- nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
- nautobot/core/templates/inc/relationships_table_rows.html +2 -2
- nautobot/core/templates/nautobot_config.py.j2 +8 -20
- nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
- nautobot/core/templates/rest_framework/api.html +8 -0
- nautobot/core/templatetags/buttons.py +32 -28
- nautobot/core/testing/__init__.py +47 -44
- nautobot/core/testing/api.py +362 -47
- nautobot/core/testing/filters.py +1 -1
- nautobot/core/testing/migrations.py +2 -0
- nautobot/core/testing/mixins.py +22 -9
- nautobot/core/testing/schema.py +2 -1
- nautobot/core/testing/views.py +21 -46
- nautobot/core/tests/integration/test_filters.py +17 -8
- nautobot/core/tests/integration/test_navbar.py +11 -34
- nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
- nautobot/core/tests/nautobot_config.py +2 -3
- nautobot/core/tests/test_api.py +290 -21
- nautobot/core/tests/test_checks.py +0 -7
- nautobot/core/tests/test_filters.py +107 -59
- nautobot/core/tests/test_forms.py +26 -92
- nautobot/core/tests/test_graphql.py +110 -77
- nautobot/core/tests/test_logging.py +4 -0
- nautobot/core/tests/test_managers.py +3 -1
- nautobot/core/tests/test_models.py +2 -0
- nautobot/core/tests/test_paginator.py +3 -1
- nautobot/core/tests/test_releases.py +12 -12
- nautobot/core/tests/test_templatetags_helpers.py +4 -4
- nautobot/core/tests/test_utils.py +32 -68
- nautobot/core/tests/test_views.py +12 -15
- nautobot/core/utils/data.py +17 -0
- nautobot/core/utils/deprecation.py +9 -6
- nautobot/core/utils/filtering.py +8 -3
- nautobot/core/utils/git.py +12 -4
- nautobot/core/utils/lookup.py +3 -1
- nautobot/core/utils/requests.py +1 -104
- nautobot/core/views/__init__.py +1 -0
- nautobot/core/views/generic.py +75 -110
- nautobot/core/views/mixins.py +52 -61
- nautobot/core/views/renderers.py +6 -7
- nautobot/core/views/utils.py +80 -0
- nautobot/dcim/api/serializers.py +160 -667
- nautobot/dcim/api/urls.py +1 -1
- nautobot/dcim/api/views.py +7 -44
- nautobot/dcim/choices.py +2 -0
- nautobot/dcim/filters/__init__.py +21 -0
- nautobot/dcim/form_mixins.py +1 -27
- nautobot/dcim/forms.py +19 -765
- nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -1
- nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -13
- nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -1
- nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -1
- nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
- nautobot/dcim/migrations/0035_related_name_changes.py +1 -1
- nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -1
- nautobot/dcim/migrations/0040_tagsfield.py +109 -0
- nautobot/dcim/migrations/{0040_ipam__namespaces.py → 0041_ipam__namespaces.py} +1 -1
- nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
- nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
- nautobot/dcim/models/cables.py +3 -33
- nautobot/dcim/models/device_component_templates.py +6 -0
- nautobot/dcim/models/device_components.py +12 -198
- nautobot/dcim/models/devices.py +30 -143
- nautobot/dcim/models/locations.py +3 -64
- nautobot/dcim/models/power.py +3 -50
- nautobot/dcim/models/racks.py +7 -84
- nautobot/dcim/navigation.py +141 -467
- nautobot/dcim/signals.py +0 -2
- nautobot/dcim/tables/locations.py +2 -2
- nautobot/dcim/tables/power.py +1 -2
- nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
- nautobot/dcim/templates/dcim/devicetype.html +2 -2
- nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
- nautobot/dcim/templates/dcim/location.html +16 -1
- nautobot/dcim/templates/dcim/locationtype.html +15 -0
- nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
- nautobot/dcim/templates/dcim/rackgroup.html +0 -12
- nautobot/dcim/tests/test_api.py +166 -81
- nautobot/dcim/tests/test_cablepaths.py +41 -35
- nautobot/dcim/tests/test_filters.py +67 -23
- nautobot/dcim/tests/test_forms.py +5 -205
- nautobot/dcim/tests/test_graphql.py +7 -2
- nautobot/dcim/tests/test_migrations.py +6 -11
- nautobot/dcim/tests/test_models.py +182 -110
- nautobot/dcim/tests/test_natural_ordering.py +11 -8
- nautobot/dcim/tests/test_signals.py +6 -3
- nautobot/dcim/tests/test_views.py +197 -175
- nautobot/dcim/urls.py +11 -16
- nautobot/dcim/views.py +7 -134
- nautobot/docs/additional-features/caching.md +6 -87
- nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
- nautobot/docs/additional-features/jobs.md +177 -195
- nautobot/docs/administration/nautobot-server.md +6 -21
- nautobot/docs/administration/replicating-nautobot.md +0 -10
- nautobot/docs/configuration/optional-settings.md +32 -41
- nautobot/docs/configuration/required-settings.md +11 -52
- nautobot/docs/development/application-registry.md +2 -13
- nautobot/docs/development/extending-models.md +15 -17
- nautobot/docs/development/generic-views.md +0 -2
- nautobot/docs/development/getting-started.md +55 -5
- nautobot/docs/development/navigation-menu.md +22 -93
- nautobot/docs/development/react-ui.md +105 -0
- nautobot/docs/development/role-internals.md +1 -3
- nautobot/docs/development/style-guide.md +6 -4
- nautobot/docs/index.md +3 -2
- nautobot/docs/installation/migrating-from-netbox.md +11 -42
- nautobot/docs/installation/nautobot.md +1 -1
- nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
- nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
- nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
- nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
- nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
- nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
- nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
- nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
- nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
- nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
- nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
- nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
- nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
- nautobot/docs/installation/upgrading-from-nautobot-v1.md +170 -747
- nautobot/docs/models/dcim/device.md +3 -0
- nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
- nautobot/docs/models/extras/computedfield.md +4 -4
- nautobot/docs/models/extras/gitrepository.md +3 -0
- nautobot/docs/models/extras/job.md +1 -0
- nautobot/docs/models/extras/jobbutton.md +18 -13
- nautobot/docs/models/extras/jobhook.md +7 -4
- nautobot/docs/models/extras/jobresult.md +6 -2
- nautobot/docs/models/extras/relationship.md +2 -2
- nautobot/docs/models/extras/status.md +6 -19
- nautobot/docs/models/ipam/ipaddress.md +3 -0
- nautobot/docs/models/virtualization/virtualmachine.md +3 -0
- nautobot/docs/plugins/development.md +83 -21
- nautobot/docs/release-notes/version-1.5.md +53 -0
- nautobot/docs/release-notes/version-2.0.md +180 -0
- nautobot/docs/requirements.txt +1 -0
- nautobot/docs/rest-api/overview.md +384 -215
- nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
- nautobot/extras/admin.py +3 -5
- nautobot/extras/api/customfields.py +15 -39
- nautobot/extras/api/fields.py +0 -11
- nautobot/extras/api/mixins.py +45 -0
- nautobot/extras/api/relationships.py +63 -158
- nautobot/extras/api/serializers.py +165 -700
- nautobot/extras/api/urls.py +1 -1
- nautobot/extras/api/views.py +294 -280
- nautobot/extras/apps.py +4 -7
- nautobot/extras/choices.py +11 -9
- nautobot/extras/constants.py +9 -3
- nautobot/extras/datasources/__init__.py +2 -0
- nautobot/extras/datasources/git.py +135 -186
- nautobot/extras/datasources/registry.py +25 -35
- nautobot/extras/filters/__init__.py +20 -19
- nautobot/extras/filters/mixins.py +4 -4
- nautobot/extras/forms/forms.py +63 -127
- nautobot/extras/forms/mixins.py +23 -51
- nautobot/extras/health_checks.py +0 -33
- nautobot/extras/jobs.py +387 -565
- nautobot/extras/management/commands/runjob.py +24 -62
- nautobot/extras/managers.py +30 -7
- nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
- nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -1
- nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -1
- nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -7
- nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -32
- nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -1
- nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -1
- nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
- nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -1
- nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -2
- nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -1
- nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -1
- nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
- nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -1
- nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
- nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -9
- nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -1
- nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
- nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
- nautobot/extras/migrations/{0076_remove_name_field_and_make_label_field_non_nullable.py → 0077_remove_name_field_and_make_label_field_non_nullable.py} +1 -1
- nautobot/extras/migrations/{0077_remove_slug.py → 0078_remove_slug.py} +1 -5
- nautobot/extras/migrations/0079_tagsfield.py +28 -0
- nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
- nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
- nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
- nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
- nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
- nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
- nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
- nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
- nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
- nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
- nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
- nautobot/extras/models/__init__.py +2 -3
- nautobot/extras/models/change_logging.py +0 -36
- nautobot/extras/models/customfields.py +39 -33
- nautobot/extras/models/datasources.py +48 -50
- nautobot/extras/models/groups.py +5 -6
- nautobot/extras/models/jobs.py +189 -321
- nautobot/extras/models/mixins.py +0 -71
- nautobot/extras/models/models.py +0 -19
- nautobot/extras/models/relationships.py +19 -13
- nautobot/extras/models/roles.py +0 -34
- nautobot/extras/models/secrets.py +2 -26
- nautobot/extras/models/statuses.py +6 -5
- nautobot/extras/models/tags.py +2 -17
- nautobot/extras/navigation.py +89 -307
- nautobot/extras/plugins/__init__.py +3 -120
- nautobot/extras/plugins/utils.py +0 -3
- nautobot/extras/plugins/validators.py +5 -4
- nautobot/extras/plugins/views.py +16 -3
- nautobot/extras/querysets.py +1 -7
- nautobot/extras/registry.py +3 -0
- nautobot/extras/signals.py +26 -60
- nautobot/extras/tables.py +34 -40
- nautobot/extras/tasks.py +0 -12
- nautobot/extras/templates/extras/configcontext.html +1 -1
- nautobot/extras/templates/extras/configcontextschema.html +16 -1
- nautobot/extras/templates/extras/customfield.html +0 -13
- nautobot/extras/templates/extras/gitrepository.html +3 -3
- nautobot/extras/templates/extras/inc/jobresult.html +10 -0
- nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
- nautobot/extras/templates/extras/job.html +35 -25
- nautobot/extras/templates/extras/job_approval_request.html +15 -30
- nautobot/extras/templates/extras/job_detail.html +13 -31
- nautobot/extras/templates/extras/job_edit.html +15 -17
- nautobot/extras/templates/extras/jobresult.html +24 -6
- nautobot/extras/templates/extras/scheduledjob.html +2 -2
- nautobot/extras/templates/extras/secret.html +28 -0
- nautobot/extras/templatetags/job_buttons.py +1 -0
- nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
- nautobot/extras/test_jobs/atomic_transaction.py +53 -0
- nautobot/extras/test_jobs/dry_run.py +29 -0
- nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
- nautobot/extras/test_jobs/duplicate_name2.py +9 -0
- nautobot/extras/test_jobs/fail.py +23 -0
- nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
- nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
- nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
- nautobot/extras/test_jobs/file_upload_pass.py +25 -0
- nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
- nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
- nautobot/extras/test_jobs/job_button_receiver.py +28 -0
- nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
- nautobot/extras/test_jobs/job_variables.py +88 -0
- nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
- nautobot/extras/test_jobs/log_redaction.py +20 -0
- nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
- nautobot/extras/test_jobs/modify_db.py +25 -0
- nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
- nautobot/extras/test_jobs/object_var_optional.py +21 -0
- nautobot/extras/test_jobs/object_var_required.py +21 -0
- nautobot/extras/test_jobs/object_vars.py +26 -0
- nautobot/extras/test_jobs/pass.py +25 -0
- nautobot/extras/test_jobs/profiling.py +32 -0
- nautobot/extras/test_jobs/read_only_job.py +15 -0
- nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
- nautobot/extras/{tests/example_jobs/test_soft_time_limit_greater_than_time_limit.py → test_jobs/soft_time_limit_greater_than_time_limit.py} +5 -1
- nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
- nautobot/extras/tests/integration/test_computedfields.py +1 -1
- nautobot/extras/tests/integration/test_configcontextschema.py +5 -3
- nautobot/extras/tests/integration/test_customfields.py +4 -2
- nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
- nautobot/extras/tests/integration/test_jobs.py +25 -27
- nautobot/extras/tests/integration/test_notes.py +8 -4
- nautobot/extras/tests/integration/test_relationships.py +2 -2
- nautobot/extras/tests/test_api.py +649 -642
- nautobot/extras/tests/test_changelog.py +3 -3
- nautobot/extras/tests/test_context_managers.py +5 -3
- nautobot/extras/tests/test_customfields.py +92 -50
- nautobot/extras/tests/test_datasources.py +189 -112
- nautobot/extras/tests/test_dynamicgroups.py +7 -8
- nautobot/extras/tests/test_filters.py +137 -89
- nautobot/extras/tests/test_forms.py +73 -75
- nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
- nautobot/extras/tests/test_jobs.py +262 -263
- nautobot/extras/tests/test_migrations.py +4 -3
- nautobot/extras/tests/test_models.py +116 -161
- nautobot/extras/tests/test_plugins.py +38 -60
- nautobot/extras/tests/test_relationships.py +167 -120
- nautobot/extras/tests/test_tags.py +6 -11
- nautobot/extras/tests/test_utils.py +31 -1
- nautobot/extras/tests/test_views.py +201 -145
- nautobot/extras/tests/test_webhooks.py +6 -2
- nautobot/extras/urls.py +42 -42
- nautobot/extras/utils.py +137 -163
- nautobot/extras/views.py +78 -152
- nautobot/ipam/api/fields.py +17 -0
- nautobot/ipam/api/serializers.py +58 -164
- nautobot/ipam/api/urls.py +1 -1
- nautobot/ipam/api/views.py +3 -2
- nautobot/ipam/apps.py +1 -2
- nautobot/ipam/filters.py +1 -10
- nautobot/ipam/forms.py +4 -177
- nautobot/ipam/lookups.py +1 -0
- nautobot/ipam/management/commands/__init__.py +0 -0
- nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
- nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -1
- nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -38
- nautobot/ipam/migrations/0020_related_name_changes.py +1 -1
- nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +2 -2
- nautobot/ipam/migrations/0028_tagsfield.py +44 -0
- nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
- nautobot/ipam/migrations/{0028_ipam__namespaces.py → 0030_ipam__namespaces.py} +77 -28
- nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
- nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
- nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
- nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
- nautobot/ipam/models.py +100 -236
- nautobot/ipam/navigation.py +36 -181
- nautobot/ipam/querysets.py +20 -25
- nautobot/ipam/signals.py +49 -6
- nautobot/ipam/tables.py +10 -3
- nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
- nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
- nautobot/ipam/templates/ipam/namespace_retrieve.html +17 -4
- nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
- nautobot/ipam/templates/ipam/prefix.html +1 -1
- nautobot/ipam/templates/ipam/vlangroup.html +0 -13
- nautobot/ipam/templates/ipam/vrf_edit.html +6 -0
- nautobot/ipam/tests/integration/test_prefixes.py +3 -26
- nautobot/ipam/tests/test_api.py +22 -19
- nautobot/ipam/tests/test_filters.py +59 -23
- nautobot/ipam/tests/test_migrations.py +6 -10
- nautobot/ipam/tests/test_models.py +323 -198
- nautobot/ipam/tests/test_ordering.py +2 -2
- nautobot/ipam/tests/test_querysets.py +44 -24
- nautobot/ipam/tests/test_views.py +73 -26
- nautobot/ipam/urls.py +16 -0
- nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
- nautobot/ipam/utils/migrations.py +713 -0
- nautobot/ipam/views.py +137 -20
- nautobot/project-static/docs/404.html +1178 -10
- nautobot/project-static/docs/additional-features/caching.html +1224 -159
- nautobot/project-static/docs/additional-features/change-logging.html +1180 -12
- nautobot/project-static/docs/additional-features/config-contexts.html +1180 -12
- nautobot/project-static/docs/additional-features/graphql.html +1179 -11
- nautobot/project-static/docs/additional-features/healthcheck.html +1180 -12
- nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1184 -12
- nautobot/project-static/docs/additional-features/jobs.html +1514 -328
- nautobot/project-static/docs/additional-features/napalm.html +1180 -12
- nautobot/project-static/docs/additional-features/prometheus-metrics.html +1180 -12
- nautobot/project-static/docs/additional-features/template-filters.html +1180 -12
- nautobot/project-static/docs/administration/celery-queues.html +1178 -10
- nautobot/project-static/docs/administration/nautobot-server.html +1451 -304
- nautobot/project-static/docs/administration/nautobot-shell.html +1178 -10
- nautobot/project-static/docs/administration/permissions.html +1178 -10
- nautobot/project-static/docs/administration/replicating-nautobot.html +1262 -113
- nautobot/project-static/docs/apps/index.html +1178 -10
- nautobot/project-static/docs/apps/nautobot-apps.html +1178 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1580 -426
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1178 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3481 -1838
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1178 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1178 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1185 -11
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1719 -551
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2062 -930
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1946 -659
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1180 -12
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1189 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +9283 -6218
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2734 -2122
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1178 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2337 -1300
- nautobot/project-static/docs/configuration/authentication/ldap.html +1178 -10
- nautobot/project-static/docs/configuration/authentication/remote.html +1178 -10
- nautobot/project-static/docs/configuration/authentication/sso.html +1178 -10
- nautobot/project-static/docs/configuration/index.html +1178 -10
- nautobot/project-static/docs/configuration/optional-settings.html +1311 -160
- nautobot/project-static/docs/configuration/required-settings.html +1312 -211
- nautobot/project-static/docs/core-functionality/circuits.html +1178 -10
- nautobot/project-static/docs/core-functionality/device-types.html +1178 -10
- nautobot/project-static/docs/core-functionality/devices.html +1182 -10
- nautobot/project-static/docs/core-functionality/ipam.html +1182 -10
- nautobot/project-static/docs/core-functionality/power.html +1178 -10
- nautobot/project-static/docs/core-functionality/secrets.html +1178 -10
- nautobot/project-static/docs/core-functionality/services.html +1178 -10
- nautobot/project-static/docs/core-functionality/sites-and-racks.html +1178 -10
- nautobot/project-static/docs/core-functionality/tenancy.html +1178 -10
- nautobot/project-static/docs/core-functionality/virtualization.html +1182 -10
- nautobot/project-static/docs/core-functionality/vlans.html +1179 -11
- nautobot/project-static/docs/development/application-registry.html +1190 -42
- nautobot/project-static/docs/development/best-practices.html +1178 -10
- nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1178 -10
- nautobot/project-static/docs/development/extending-models.html +1238 -83
- nautobot/project-static/docs/development/generic-views.html +1180 -14
- nautobot/project-static/docs/development/getting-started.html +1365 -90
- nautobot/project-static/docs/development/homepage.html +1178 -10
- nautobot/project-static/docs/development/index.html +1178 -10
- nautobot/project-static/docs/development/model-features.html +1178 -10
- nautobot/project-static/docs/development/natural-keys.html +1178 -10
- nautobot/project-static/docs/development/navigation-menu.html +1215 -125
- nautobot/project-static/docs/development/react-ui.html +4199 -0
- nautobot/project-static/docs/development/release-checklist.html +1178 -10
- nautobot/project-static/docs/development/role-internals.html +1179 -12
- nautobot/project-static/docs/development/style-guide.html +1188 -19
- nautobot/project-static/docs/development/templates.html +1178 -10
- nautobot/project-static/docs/development/testing.html +1178 -10
- nautobot/project-static/docs/development/user-preferences.html +1178 -10
- nautobot/project-static/docs/docker/index.html +1178 -10
- nautobot/project-static/docs/index.html +1183 -12
- nautobot/project-static/docs/installation/centos.html +1178 -10
- nautobot/project-static/docs/installation/external-authentication.html +1178 -10
- nautobot/project-static/docs/installation/http-server.html +1178 -10
- nautobot/project-static/docs/installation/index.html +1178 -10
- nautobot/project-static/docs/installation/migrating-from-netbox.html +1305 -189
- nautobot/project-static/docs/installation/migrating-from-postgresql.html +1178 -10
- nautobot/project-static/docs/installation/nautobot.html +1179 -11
- nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1178 -10
- nautobot/project-static/docs/installation/selinux-troubleshooting.html +1178 -10
- nautobot/project-static/docs/installation/services.html +1178 -10
- nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
- nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
- nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
- nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
- nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
- nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
- nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
- nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
- nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
- nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
- nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
- nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
- nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
- nautobot/project-static/docs/installation/ubuntu.html +1178 -10
- nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +3823 -2152
- nautobot/project-static/docs/installation/upgrading.html +1178 -10
- nautobot/project-static/docs/models/circuits/circuit.html +1293 -103
- nautobot/project-static/docs/models/circuits/circuittermination.html +1293 -103
- nautobot/project-static/docs/models/circuits/circuittype.html +1293 -103
- nautobot/project-static/docs/models/circuits/provider.html +1293 -103
- nautobot/project-static/docs/models/circuits/providernetwork.html +1293 -103
- nautobot/project-static/docs/models/dcim/cable.html +1324 -103
- nautobot/project-static/docs/models/dcim/consoleport.html +1293 -103
- nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1293 -103
- nautobot/project-static/docs/models/dcim/consoleserverport.html +1293 -103
- nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1293 -103
- nautobot/project-static/docs/models/dcim/device.html +1326 -132
- nautobot/project-static/docs/models/dcim/devicebay.html +1293 -103
- nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1293 -103
- nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1379 -97
- nautobot/project-static/docs/models/dcim/devicetype.html +1293 -103
- nautobot/project-static/docs/models/dcim/frontport.html +1293 -103
- nautobot/project-static/docs/models/dcim/frontporttemplate.html +1293 -103
- nautobot/project-static/docs/models/dcim/interface.html +1293 -103
- nautobot/project-static/docs/models/dcim/interfacetemplate.html +1293 -103
- nautobot/project-static/docs/models/dcim/inventoryitem.html +1293 -103
- nautobot/project-static/docs/models/dcim/location.html +1293 -103
- nautobot/project-static/docs/models/dcim/locationtype.html +1293 -103
- nautobot/project-static/docs/models/dcim/manufacturer.html +1292 -102
- nautobot/project-static/docs/models/dcim/platform.html +1272 -82
- nautobot/project-static/docs/models/dcim/powerfeed.html +1270 -80
- nautobot/project-static/docs/models/dcim/poweroutlet.html +1272 -82
- nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1272 -82
- nautobot/project-static/docs/models/dcim/powerpanel.html +1270 -80
- nautobot/project-static/docs/models/dcim/powerport.html +1272 -82
- nautobot/project-static/docs/models/dcim/powerporttemplate.html +1272 -82
- nautobot/project-static/docs/models/dcim/rack.html +1272 -82
- nautobot/project-static/docs/models/dcim/rackgroup.html +1272 -82
- nautobot/project-static/docs/models/dcim/rackreservation.html +1272 -82
- nautobot/project-static/docs/models/dcim/rearport.html +1286 -96
- nautobot/project-static/docs/models/dcim/rearporttemplate.html +1286 -96
- nautobot/project-static/docs/models/dcim/region.html +1178 -10
- nautobot/project-static/docs/models/dcim/site.html +1178 -10
- nautobot/project-static/docs/models/dcim/virtualchassis.html +1284 -94
- nautobot/project-static/docs/models/extras/computedfield.html +1184 -16
- nautobot/project-static/docs/models/extras/configcontext.html +1314 -86
- nautobot/project-static/docs/models/extras/configcontextschema.html +1276 -86
- nautobot/project-static/docs/models/extras/customfield.html +1180 -12
- nautobot/project-static/docs/models/extras/customlink.html +1180 -12
- nautobot/project-static/docs/models/extras/dynamicgroup.html +1180 -12
- nautobot/project-static/docs/models/extras/exporttemplate.html +1180 -12
- nautobot/project-static/docs/models/extras/gitrepository.html +1184 -12
- nautobot/project-static/docs/models/extras/graphqlquery.html +1321 -86
- nautobot/project-static/docs/models/extras/imageattachment.html +1276 -86
- nautobot/project-static/docs/models/extras/job.html +1277 -86
- nautobot/project-static/docs/models/extras/jobbutton.html +1201 -29
- nautobot/project-static/docs/models/extras/jobhook.html +1188 -16
- nautobot/project-static/docs/models/extras/joblogentry.html +1274 -84
- nautobot/project-static/docs/models/extras/jobresult.html +1364 -169
- nautobot/project-static/docs/models/extras/note.html +1180 -12
- nautobot/project-static/docs/models/extras/relationship.html +1182 -14
- nautobot/project-static/docs/models/extras/role.html +1320 -86
- nautobot/project-static/docs/models/extras/secret.html +1314 -86
- nautobot/project-static/docs/models/extras/secretsgroup.html +1276 -86
- nautobot/project-static/docs/models/extras/status.html +1188 -59
- nautobot/project-static/docs/models/extras/tag.html +1180 -12
- nautobot/project-static/docs/models/extras/webhook.html +1180 -12
- nautobot/project-static/docs/models/ipam/ipaddress.html +1327 -102
- nautobot/project-static/docs/models/ipam/prefix.html +1276 -86
- nautobot/project-static/docs/models/ipam/rir.html +1276 -86
- nautobot/project-static/docs/models/ipam/routetarget.html +1276 -86
- nautobot/project-static/docs/models/ipam/service.html +1276 -86
- nautobot/project-static/docs/models/ipam/vlan.html +1276 -86
- nautobot/project-static/docs/models/ipam/vlangroup.html +1276 -86
- nautobot/project-static/docs/models/ipam/vrf.html +1276 -86
- nautobot/project-static/docs/models/tenancy/tenant.html +1276 -86
- nautobot/project-static/docs/models/tenancy/tenantgroup.html +1276 -86
- nautobot/project-static/docs/models/users/objectpermission.html +1314 -86
- nautobot/project-static/docs/models/users/token.html +1276 -86
- nautobot/project-static/docs/models/virtualization/cluster.html +1276 -86
- nautobot/project-static/docs/models/virtualization/clustergroup.html +1276 -86
- nautobot/project-static/docs/models/virtualization/clustertype.html +1276 -86
- nautobot/project-static/docs/models/virtualization/virtualmachine.html +1321 -127
- nautobot/project-static/docs/models/virtualization/vminterface.html +1276 -86
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/plugins/development.html +1726 -495
- nautobot/project-static/docs/plugins/index.html +1178 -10
- nautobot/project-static/docs/plugins/porting-from-netbox.html +1178 -10
- nautobot/project-static/docs/release-notes/index.html +1178 -10
- nautobot/project-static/docs/release-notes/version-1.0.html +1178 -10
- nautobot/project-static/docs/release-notes/version-1.1.html +1178 -10
- nautobot/project-static/docs/release-notes/version-1.2.html +1178 -10
- nautobot/project-static/docs/release-notes/version-1.3.html +1178 -10
- nautobot/project-static/docs/release-notes/version-1.4.html +1178 -10
- nautobot/project-static/docs/release-notes/version-1.5.html +1608 -225
- nautobot/project-static/docs/release-notes/version-2.0.html +1547 -47
- nautobot/project-static/docs/requirements.txt +1 -0
- nautobot/project-static/docs/rest-api/authentication.html +1179 -11
- nautobot/project-static/docs/rest-api/filtering.html +1178 -10
- nautobot/project-static/docs/rest-api/overview.html +1841 -446
- nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +197 -187
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guides/custom-fields.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/index.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/ipam.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/platforms.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/regions.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/tenants.html +1178 -10
- nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1178 -10
- nautobot/project-static/docs/user-guides/git-data-source.html +1178 -10
- nautobot/project-static/docs/user-guides/graphql.html +1178 -10
- nautobot/project-static/docs/user-guides/relationships.html +1178 -10
- nautobot/project-static/docs/user-guides/s3-django-storage.html +1178 -10
- nautobot/project-static/js/forms.js +16 -9
- nautobot/project-static/js/theme.js +5 -0
- nautobot/tenancy/api/serializers.py +4 -32
- nautobot/tenancy/api/urls.py +1 -1
- nautobot/tenancy/forms.py +0 -28
- nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
- nautobot/tenancy/models.py +0 -25
- nautobot/tenancy/navigation.py +6 -39
- nautobot/tenancy/templates/tenancy/tenant.html +12 -12
- nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
- nautobot/tenancy/tests/test_api.py +1 -3
- nautobot/tenancy/tests/test_filters.py +10 -5
- nautobot/tenancy/views.py +0 -2
- nautobot/ui/.eslintignore +6 -0
- nautobot/ui/.gitignore +10 -0
- nautobot/ui/.prettierignore +9 -0
- nautobot/ui/.prettierrc +4 -0
- nautobot/ui/README.md +33 -0
- nautobot/ui/app_imports.js.j2 +7 -0
- nautobot/ui/craco.config.js +46 -0
- nautobot/ui/jsconfig-base.json +11 -0
- nautobot/ui/jsconfig.json +5 -0
- nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
- nautobot/ui/package-lock.json +21451 -0
- nautobot/ui/package.json +70 -0
- nautobot/ui/public/index.html +47 -0
- nautobot/ui/public/logo192.png +0 -0
- nautobot/ui/public/logo512.png +0 -0
- nautobot/ui/public/manifest.json +25 -0
- nautobot/ui/public/nautobot_logo.svg +131 -0
- nautobot/ui/public/robots.txt +3 -0
- nautobot/ui/src/App.js +71 -0
- nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
- nautobot/ui/src/components/AppTab.js +40 -0
- nautobot/ui/src/components/Apps.js +60 -0
- nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
- nautobot/ui/src/components/HomePanel.js +58 -0
- nautobot/ui/src/components/JobHistoryTable.js +78 -0
- nautobot/ui/src/components/Layout.js +53 -0
- nautobot/ui/src/components/LoadingWidget.js +25 -0
- nautobot/ui/src/components/Navbar.js +116 -0
- nautobot/ui/src/components/NotificationPopover.js +27 -0
- nautobot/ui/src/components/ObjectListTable.js +209 -0
- nautobot/ui/src/components/ReferenceDataTag.js +35 -0
- nautobot/ui/src/components/RouterButton.js +10 -0
- nautobot/ui/src/components/RouterLink.js +10 -0
- nautobot/ui/src/components/SidebarNav.js +147 -0
- nautobot/ui/src/components/Table.js +48 -0
- nautobot/ui/src/components/TableItem.js +71 -0
- nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
- nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
- nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
- nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
- nautobot/ui/src/components/__tests__/Table.test.js +36 -0
- nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
- nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
- nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
- nautobot/ui/src/components/pagination.js +93 -0
- nautobot/ui/src/components/paginator.js +79 -0
- nautobot/ui/src/components/paginator_form.js +43 -0
- nautobot/ui/src/components/usePagination.js +57 -0
- nautobot/ui/src/constants/apiPath.js +10 -0
- nautobot/ui/src/constants/icons.js +15 -0
- nautobot/ui/src/constants/size.js +15 -0
- nautobot/ui/src/index.js +65 -0
- nautobot/ui/src/reportWebVitals.js +15 -0
- nautobot/ui/src/router.js +77 -0
- nautobot/ui/src/utils/api.js +131 -0
- nautobot/ui/src/utils/app-import.js +15 -0
- nautobot/ui/src/utils/color.js +15 -0
- nautobot/ui/src/utils/date.js +14 -0
- nautobot/ui/src/utils/index.js +15 -0
- nautobot/ui/src/utils/navigation.js +32 -0
- nautobot/ui/src/utils/session.js +64 -0
- nautobot/ui/src/utils/store.js +242 -0
- nautobot/ui/src/utils/string.js +6 -0
- nautobot/ui/src/utils/url.js +4 -0
- nautobot/ui/src/views/Home.js +138 -0
- nautobot/ui/src/views/InstalledApps.js +80 -0
- nautobot/ui/src/views/Login.js +48 -0
- nautobot/ui/src/views/Logout.js +20 -0
- nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
- nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
- nautobot/ui/src/views/__tests__/Login.test.js +15 -0
- nautobot/ui/src/views/generic/GenericView.js +142 -0
- nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
- nautobot/ui/src/views/generic/ObjectList.js +127 -0
- nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
- nautobot/users/admin.py +1 -1
- nautobot/users/api/serializers.py +51 -61
- nautobot/users/api/urls.py +1 -1
- nautobot/users/api/views.py +53 -2
- nautobot/users/tests/test_api.py +110 -25
- nautobot/virtualization/api/serializers.py +18 -130
- nautobot/virtualization/api/urls.py +1 -1
- nautobot/virtualization/api/views.py +1 -22
- nautobot/virtualization/forms.py +13 -99
- nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -1
- nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -11
- nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -1
- nautobot/virtualization/migrations/0018_related_name_changes.py +1 -1
- nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
- nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
- nautobot/virtualization/migrations/{0021_ipam__namespaces.py → 0023_ipam__namespaces.py} +2 -2
- nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
- nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
- nautobot/virtualization/models.py +31 -123
- nautobot/virtualization/navigation.py +18 -99
- nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -1
- nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
- nautobot/virtualization/tests/test_api.py +25 -26
- nautobot/virtualization/tests/test_filters.py +41 -15
- nautobot/virtualization/tests/test_models.py +31 -7
- nautobot/virtualization/tests/test_views.py +42 -25
- nautobot/virtualization/views.py +7 -6
- {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +3 -7
- {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +744 -602
- {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
- nautobot/circuits/api/nested_serializers.py +0 -69
- nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
- nautobot/dcim/api/nested_serializers.py +0 -356
- nautobot/dcim/templates/dcim/device_import.html +0 -5
- nautobot/dcim/templates/dcim/device_import_child.html +0 -5
- nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
- nautobot/extras/api/nested_serializers.py +0 -353
- nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -41
- nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -46
- nautobot/extras/reports.py +0 -60
- nautobot/extras/scripts.py +0 -72
- nautobot/extras/tests/example_jobs/script_variables.py +0 -67
- nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
- nautobot/extras/tests/example_jobs/test_fail.py +0 -16
- nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
- nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
- nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
- nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
- nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
- nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
- nautobot/extras/tests/example_jobs/test_modify_db.py +0 -18
- nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
- nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
- nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
- nautobot/extras/tests/example_jobs/test_pass.py +0 -19
- nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
- nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
- nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
- nautobot/ipam/api/nested_serializers.py +0 -159
- nautobot/ipam/migrations/0029_ipam__prefix__add_parent.py +0 -31
- nautobot/ipam/migrations/0030_ipam__prefix__data_migration.py +0 -13
- nautobot/ipam/migrations/0031_ipam__ipaddress__add_parent.py +0 -41
- nautobot/ipam/migrations/0032_ipam__ipaddress__data_migration.py +0 -11
- nautobot/tenancy/api/nested_serializers.py +0 -31
- nautobot/users/api/nested_serializers.py +0 -67
- nautobot/virtualization/api/nested_serializers.py +0 -65
- /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
- /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
- {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
|
@@ -752,26 +752,6 @@
|
|
|
752
752
|
Caching
|
|
753
753
|
</a>
|
|
754
754
|
|
|
755
|
-
<nav class="md-nav" aria-label="Caching">
|
|
756
|
-
<ul class="md-nav__list">
|
|
757
|
-
|
|
758
|
-
<li class="md-nav__item">
|
|
759
|
-
<a href="#cacheops_redis" class="md-nav__link">
|
|
760
|
-
CACHEOPS_REDIS
|
|
761
|
-
</a>
|
|
762
|
-
|
|
763
|
-
</li>
|
|
764
|
-
|
|
765
|
-
<li class="md-nav__item">
|
|
766
|
-
<a href="#cacheops_sentinel" class="md-nav__link">
|
|
767
|
-
CACHEOPS_SENTINEL
|
|
768
|
-
</a>
|
|
769
|
-
|
|
770
|
-
</li>
|
|
771
|
-
|
|
772
|
-
</ul>
|
|
773
|
-
</nav>
|
|
774
|
-
|
|
775
755
|
</li>
|
|
776
756
|
|
|
777
757
|
<li class="md-nav__item">
|
|
@@ -986,8 +966,1053 @@
|
|
|
986
966
|
|
|
987
967
|
|
|
988
968
|
<li class="md-nav__item">
|
|
989
|
-
<a href="../administration/nautobot-server.html" class="md-nav__link">
|
|
990
|
-
Nautobot Server
|
|
969
|
+
<a href="../administration/nautobot-server.html" class="md-nav__link">
|
|
970
|
+
Nautobot Server
|
|
971
|
+
</a>
|
|
972
|
+
</li>
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
<li class="md-nav__item">
|
|
983
|
+
<a href="../administration/nautobot-shell.html" class="md-nav__link">
|
|
984
|
+
Nautobot Shell
|
|
985
|
+
</a>
|
|
986
|
+
</li>
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
|
|
996
|
+
<li class="md-nav__item">
|
|
997
|
+
<a href="../administration/permissions.html" class="md-nav__link">
|
|
998
|
+
Permissions
|
|
999
|
+
</a>
|
|
1000
|
+
</li>
|
|
1001
|
+
|
|
1002
|
+
|
|
1003
|
+
|
|
1004
|
+
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
<li class="md-nav__item">
|
|
1011
|
+
<a href="../administration/replicating-nautobot.html" class="md-nav__link">
|
|
1012
|
+
Replicating Nautobot
|
|
1013
|
+
</a>
|
|
1014
|
+
</li>
|
|
1015
|
+
|
|
1016
|
+
|
|
1017
|
+
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
|
|
1024
|
+
<li class="md-nav__item">
|
|
1025
|
+
<a href="../administration/celery-queues.html" class="md-nav__link">
|
|
1026
|
+
Task Queues
|
|
1027
|
+
</a>
|
|
1028
|
+
</li>
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
</ul>
|
|
1034
|
+
</nav>
|
|
1035
|
+
</li>
|
|
1036
|
+
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_6" >
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
<label class="md-nav__link" for="__nav_2_6" id="__nav_2_6_label" tabindex="0">
|
|
1056
|
+
User Guides
|
|
1057
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1058
|
+
</label>
|
|
1059
|
+
|
|
1060
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_6_label" aria-expanded="false">
|
|
1061
|
+
<label class="md-nav__title" for="__nav_2_6">
|
|
1062
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1063
|
+
User Guides
|
|
1064
|
+
</label>
|
|
1065
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
<li class="md-nav__item">
|
|
1073
|
+
<a href="../user-guides/getting-started/creating-devices.html" class="md-nav__link">
|
|
1074
|
+
Creating Devices
|
|
1075
|
+
</a>
|
|
1076
|
+
</li>
|
|
1077
|
+
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
<li class="md-nav__item">
|
|
1087
|
+
<a href="../user-guides/custom-fields.html" class="md-nav__link">
|
|
1088
|
+
Custom Fields
|
|
1089
|
+
</a>
|
|
1090
|
+
</li>
|
|
1091
|
+
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
<li class="md-nav__item">
|
|
1101
|
+
<a href="../user-guides/getting-started/index.html" class="md-nav__link">
|
|
1102
|
+
Getting Started In the Web UI
|
|
1103
|
+
</a>
|
|
1104
|
+
</li>
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
|
|
1108
|
+
|
|
1109
|
+
|
|
1110
|
+
|
|
1111
|
+
|
|
1112
|
+
|
|
1113
|
+
|
|
1114
|
+
<li class="md-nav__item">
|
|
1115
|
+
<a href="../user-guides/git-data-source.html" class="md-nav__link">
|
|
1116
|
+
Git as a Data Source
|
|
1117
|
+
</a>
|
|
1118
|
+
</li>
|
|
1119
|
+
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
|
|
1123
|
+
|
|
1124
|
+
|
|
1125
|
+
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
<li class="md-nav__item">
|
|
1129
|
+
<a href="../user-guides/graphql.html" class="md-nav__link">
|
|
1130
|
+
GraphQL
|
|
1131
|
+
</a>
|
|
1132
|
+
</li>
|
|
1133
|
+
|
|
1134
|
+
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
|
|
1138
|
+
|
|
1139
|
+
|
|
1140
|
+
|
|
1141
|
+
|
|
1142
|
+
<li class="md-nav__item">
|
|
1143
|
+
<a href="../user-guides/getting-started/interfaces.html" class="md-nav__link">
|
|
1144
|
+
Interfaces
|
|
1145
|
+
</a>
|
|
1146
|
+
</li>
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
<li class="md-nav__item">
|
|
1157
|
+
<a href="../user-guides/getting-started/ipam.html" class="md-nav__link">
|
|
1158
|
+
IP Address Management
|
|
1159
|
+
</a>
|
|
1160
|
+
</li>
|
|
1161
|
+
|
|
1162
|
+
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
<li class="md-nav__item">
|
|
1171
|
+
<a href="../user-guides/getting-started/platforms.html" class="md-nav__link">
|
|
1172
|
+
Platforms
|
|
1173
|
+
</a>
|
|
1174
|
+
</li>
|
|
1175
|
+
|
|
1176
|
+
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
|
|
1184
|
+
<li class="md-nav__item">
|
|
1185
|
+
<a href="../user-guides/getting-started/regions.html" class="md-nav__link">
|
|
1186
|
+
Regions
|
|
1187
|
+
</a>
|
|
1188
|
+
</li>
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
<li class="md-nav__item">
|
|
1199
|
+
<a href="../user-guides/getting-started/tenants.html" class="md-nav__link">
|
|
1200
|
+
Tenants
|
|
1201
|
+
</a>
|
|
1202
|
+
</li>
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
<li class="md-nav__item">
|
|
1213
|
+
<a href="../user-guides/getting-started/search-bar.html" class="md-nav__link">
|
|
1214
|
+
The Search Bar
|
|
1215
|
+
</a>
|
|
1216
|
+
</li>
|
|
1217
|
+
|
|
1218
|
+
|
|
1219
|
+
|
|
1220
|
+
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
|
|
1224
|
+
|
|
1225
|
+
|
|
1226
|
+
<li class="md-nav__item">
|
|
1227
|
+
<a href="../user-guides/git-data-source.html" class="md-nav__link">
|
|
1228
|
+
Git as a Data Source
|
|
1229
|
+
</a>
|
|
1230
|
+
</li>
|
|
1231
|
+
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
<li class="md-nav__item">
|
|
1241
|
+
<a href="../user-guides/graphql.html" class="md-nav__link">
|
|
1242
|
+
GraphQL
|
|
1243
|
+
</a>
|
|
1244
|
+
</li>
|
|
1245
|
+
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
<li class="md-nav__item">
|
|
1255
|
+
<a href="../user-guides/relationships.html" class="md-nav__link">
|
|
1256
|
+
Relationships
|
|
1257
|
+
</a>
|
|
1258
|
+
</li>
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
<li class="md-nav__item">
|
|
1269
|
+
<a href="../user-guides/s3-django-storage.html" class="md-nav__link">
|
|
1270
|
+
Django Storages with S3
|
|
1271
|
+
</a>
|
|
1272
|
+
</li>
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
<li class="md-nav__item">
|
|
1283
|
+
<a href="../user-guides/getting-started/vlans-and-vlan-groups.html" class="md-nav__link">
|
|
1284
|
+
VLANS and VLAN Groups
|
|
1285
|
+
</a>
|
|
1286
|
+
</li>
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
</ul>
|
|
1292
|
+
</nav>
|
|
1293
|
+
</li>
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_7" >
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
<label class="md-nav__link" for="__nav_2_7" id="__nav_2_7_label" tabindex="0">
|
|
1314
|
+
Core Functionality
|
|
1315
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1316
|
+
</label>
|
|
1317
|
+
|
|
1318
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_7_label" aria-expanded="false">
|
|
1319
|
+
<label class="md-nav__title" for="__nav_2_7">
|
|
1320
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1321
|
+
Core Functionality
|
|
1322
|
+
</label>
|
|
1323
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
<li class="md-nav__item">
|
|
1331
|
+
<a href="../core-functionality/circuits.html" class="md-nav__link">
|
|
1332
|
+
Circuits
|
|
1333
|
+
</a>
|
|
1334
|
+
</li>
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
|
|
1342
|
+
|
|
1343
|
+
|
|
1344
|
+
<li class="md-nav__item">
|
|
1345
|
+
<a href="../core-functionality/devices.html" class="md-nav__link">
|
|
1346
|
+
Devices and Cabling
|
|
1347
|
+
</a>
|
|
1348
|
+
</li>
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
<li class="md-nav__item">
|
|
1359
|
+
<a href="../core-functionality/device-types.html" class="md-nav__link">
|
|
1360
|
+
Device Types
|
|
1361
|
+
</a>
|
|
1362
|
+
</li>
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
<li class="md-nav__item">
|
|
1373
|
+
<a href="../core-functionality/ipam.html" class="md-nav__link">
|
|
1374
|
+
IP Address Management
|
|
1375
|
+
</a>
|
|
1376
|
+
</li>
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
|
|
1384
|
+
|
|
1385
|
+
|
|
1386
|
+
<li class="md-nav__item">
|
|
1387
|
+
<a href="../core-functionality/power.html" class="md-nav__link">
|
|
1388
|
+
Power Tracking
|
|
1389
|
+
</a>
|
|
1390
|
+
</li>
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
<li class="md-nav__item">
|
|
1401
|
+
<a href="../core-functionality/secrets.html" class="md-nav__link">
|
|
1402
|
+
Secrets
|
|
1403
|
+
</a>
|
|
1404
|
+
</li>
|
|
1405
|
+
|
|
1406
|
+
|
|
1407
|
+
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
<li class="md-nav__item">
|
|
1415
|
+
<a href="../core-functionality/services.html" class="md-nav__link">
|
|
1416
|
+
Service Mapping
|
|
1417
|
+
</a>
|
|
1418
|
+
</li>
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
|
|
1423
|
+
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
<li class="md-nav__item">
|
|
1429
|
+
<a href="../core-functionality/sites-and-racks.html" class="md-nav__link">
|
|
1430
|
+
Sites, Locations, and Racks
|
|
1431
|
+
</a>
|
|
1432
|
+
</li>
|
|
1433
|
+
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
<li class="md-nav__item">
|
|
1443
|
+
<a href="../core-functionality/tenancy.html" class="md-nav__link">
|
|
1444
|
+
Tenancy
|
|
1445
|
+
</a>
|
|
1446
|
+
</li>
|
|
1447
|
+
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
|
|
1453
|
+
|
|
1454
|
+
|
|
1455
|
+
|
|
1456
|
+
<li class="md-nav__item">
|
|
1457
|
+
<a href="../core-functionality/virtualization.html" class="md-nav__link">
|
|
1458
|
+
Virtualization
|
|
1459
|
+
</a>
|
|
1460
|
+
</li>
|
|
1461
|
+
|
|
1462
|
+
|
|
1463
|
+
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
<li class="md-nav__item">
|
|
1471
|
+
<a href="../core-functionality/vlans.html" class="md-nav__link">
|
|
1472
|
+
VLAN Management
|
|
1473
|
+
</a>
|
|
1474
|
+
</li>
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
|
|
1478
|
+
|
|
1479
|
+
</ul>
|
|
1480
|
+
</nav>
|
|
1481
|
+
</li>
|
|
1482
|
+
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8" >
|
|
1498
|
+
|
|
1499
|
+
|
|
1500
|
+
|
|
1501
|
+
<label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
|
|
1502
|
+
Model Details
|
|
1503
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1504
|
+
</label>
|
|
1505
|
+
|
|
1506
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
|
|
1507
|
+
<label class="md-nav__title" for="__nav_2_8">
|
|
1508
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1509
|
+
Model Details
|
|
1510
|
+
</label>
|
|
1511
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1512
|
+
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
|
|
1516
|
+
|
|
1517
|
+
|
|
1518
|
+
|
|
1519
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
|
|
1523
|
+
|
|
1524
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
|
|
1525
|
+
|
|
1526
|
+
|
|
1527
|
+
|
|
1528
|
+
<label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
|
|
1529
|
+
Circuits
|
|
1530
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1531
|
+
</label>
|
|
1532
|
+
|
|
1533
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
|
|
1534
|
+
<label class="md-nav__title" for="__nav_2_8_1">
|
|
1535
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1536
|
+
Circuits
|
|
1537
|
+
</label>
|
|
1538
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1539
|
+
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
<li class="md-nav__item">
|
|
1546
|
+
<a href="../models/circuits/circuit.html" class="md-nav__link">
|
|
1547
|
+
Circuit
|
|
1548
|
+
</a>
|
|
1549
|
+
</li>
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
<li class="md-nav__item">
|
|
1560
|
+
<a href="../models/circuits/circuittermination.html" class="md-nav__link">
|
|
1561
|
+
Circuit Termination
|
|
1562
|
+
</a>
|
|
1563
|
+
</li>
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
|
|
1573
|
+
<li class="md-nav__item">
|
|
1574
|
+
<a href="../models/circuits/circuittype.html" class="md-nav__link">
|
|
1575
|
+
Circuit Type
|
|
1576
|
+
</a>
|
|
1577
|
+
</li>
|
|
1578
|
+
|
|
1579
|
+
|
|
1580
|
+
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
|
+
|
|
1584
|
+
|
|
1585
|
+
|
|
1586
|
+
|
|
1587
|
+
<li class="md-nav__item">
|
|
1588
|
+
<a href="../models/circuits/provider.html" class="md-nav__link">
|
|
1589
|
+
Circuit Provider
|
|
1590
|
+
</a>
|
|
1591
|
+
</li>
|
|
1592
|
+
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
<li class="md-nav__item">
|
|
1602
|
+
<a href="../models/circuits/providernetwork.html" class="md-nav__link">
|
|
1603
|
+
Circuit Provider Network
|
|
1604
|
+
</a>
|
|
1605
|
+
</li>
|
|
1606
|
+
|
|
1607
|
+
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
</ul>
|
|
1611
|
+
</nav>
|
|
1612
|
+
</li>
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
|
|
1629
|
+
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
<label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
|
|
1633
|
+
DCIM
|
|
1634
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1635
|
+
</label>
|
|
1636
|
+
|
|
1637
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
|
|
1638
|
+
<label class="md-nav__title" for="__nav_2_8_2">
|
|
1639
|
+
<span class="md-nav__icon md-icon"></span>
|
|
1640
|
+
DCIM
|
|
1641
|
+
</label>
|
|
1642
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1643
|
+
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
<li class="md-nav__item">
|
|
1650
|
+
<a href="../models/dcim/cable.html" class="md-nav__link">
|
|
1651
|
+
Cable
|
|
1652
|
+
</a>
|
|
1653
|
+
</li>
|
|
1654
|
+
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
<li class="md-nav__item">
|
|
1664
|
+
<a href="../models/dcim/consoleport.html" class="md-nav__link">
|
|
1665
|
+
Console Port
|
|
1666
|
+
</a>
|
|
1667
|
+
</li>
|
|
1668
|
+
|
|
1669
|
+
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
|
|
1677
|
+
<li class="md-nav__item">
|
|
1678
|
+
<a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
|
|
1679
|
+
Console Port Template
|
|
1680
|
+
</a>
|
|
1681
|
+
</li>
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
|
|
1685
|
+
|
|
1686
|
+
|
|
1687
|
+
|
|
1688
|
+
|
|
1689
|
+
|
|
1690
|
+
|
|
1691
|
+
<li class="md-nav__item">
|
|
1692
|
+
<a href="../models/dcim/consoleserverport.html" class="md-nav__link">
|
|
1693
|
+
Console Server Port
|
|
1694
|
+
</a>
|
|
1695
|
+
</li>
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
|
|
1704
|
+
|
|
1705
|
+
<li class="md-nav__item">
|
|
1706
|
+
<a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
|
|
1707
|
+
Console Server Port Template
|
|
1708
|
+
</a>
|
|
1709
|
+
</li>
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
<li class="md-nav__item">
|
|
1720
|
+
<a href="../models/dcim/device.html" class="md-nav__link">
|
|
1721
|
+
Device
|
|
1722
|
+
</a>
|
|
1723
|
+
</li>
|
|
1724
|
+
|
|
1725
|
+
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
<li class="md-nav__item">
|
|
1734
|
+
<a href="../models/dcim/devicebay.html" class="md-nav__link">
|
|
1735
|
+
Device Bay
|
|
1736
|
+
</a>
|
|
1737
|
+
</li>
|
|
1738
|
+
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
<li class="md-nav__item">
|
|
1748
|
+
<a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
|
|
1749
|
+
Device Bay Template
|
|
1750
|
+
</a>
|
|
1751
|
+
</li>
|
|
1752
|
+
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
|
|
1759
|
+
|
|
1760
|
+
|
|
1761
|
+
<li class="md-nav__item">
|
|
1762
|
+
<a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
|
|
1763
|
+
Device Redundancy Group
|
|
1764
|
+
</a>
|
|
1765
|
+
</li>
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
<li class="md-nav__item">
|
|
1776
|
+
<a href="../models/dcim/devicetype.html" class="md-nav__link">
|
|
1777
|
+
Device Type
|
|
1778
|
+
</a>
|
|
1779
|
+
</li>
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
|
|
1787
|
+
|
|
1788
|
+
|
|
1789
|
+
<li class="md-nav__item">
|
|
1790
|
+
<a href="../models/dcim/frontport.html" class="md-nav__link">
|
|
1791
|
+
Front Port
|
|
1792
|
+
</a>
|
|
1793
|
+
</li>
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
<li class="md-nav__item">
|
|
1804
|
+
<a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
|
|
1805
|
+
Front Port Template
|
|
1806
|
+
</a>
|
|
1807
|
+
</li>
|
|
1808
|
+
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
|
|
1814
|
+
|
|
1815
|
+
|
|
1816
|
+
|
|
1817
|
+
<li class="md-nav__item">
|
|
1818
|
+
<a href="../models/dcim/interface.html" class="md-nav__link">
|
|
1819
|
+
Interface
|
|
1820
|
+
</a>
|
|
1821
|
+
</li>
|
|
1822
|
+
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
|
|
1826
|
+
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
|
|
1830
|
+
|
|
1831
|
+
<li class="md-nav__item">
|
|
1832
|
+
<a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
|
|
1833
|
+
Interface Template
|
|
1834
|
+
</a>
|
|
1835
|
+
</li>
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
<li class="md-nav__item">
|
|
1846
|
+
<a href="../models/dcim/inventoryitem.html" class="md-nav__link">
|
|
1847
|
+
Inventory Item
|
|
1848
|
+
</a>
|
|
1849
|
+
</li>
|
|
1850
|
+
|
|
1851
|
+
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
<li class="md-nav__item">
|
|
1860
|
+
<a href="../models/dcim/location.html" class="md-nav__link">
|
|
1861
|
+
Location
|
|
1862
|
+
</a>
|
|
1863
|
+
</li>
|
|
1864
|
+
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
|
|
1872
|
+
|
|
1873
|
+
<li class="md-nav__item">
|
|
1874
|
+
<a href="../models/dcim/locationtype.html" class="md-nav__link">
|
|
1875
|
+
Location Type
|
|
1876
|
+
</a>
|
|
1877
|
+
</li>
|
|
1878
|
+
|
|
1879
|
+
|
|
1880
|
+
|
|
1881
|
+
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
|
|
1886
|
+
|
|
1887
|
+
<li class="md-nav__item">
|
|
1888
|
+
<a href="../models/dcim/manufacturer.html" class="md-nav__link">
|
|
1889
|
+
Manufacturer
|
|
1890
|
+
</a>
|
|
1891
|
+
</li>
|
|
1892
|
+
|
|
1893
|
+
|
|
1894
|
+
|
|
1895
|
+
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
|
|
1899
|
+
|
|
1900
|
+
|
|
1901
|
+
<li class="md-nav__item">
|
|
1902
|
+
<a href="../models/dcim/platform.html" class="md-nav__link">
|
|
1903
|
+
Platform
|
|
1904
|
+
</a>
|
|
1905
|
+
</li>
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
|
|
1909
|
+
|
|
1910
|
+
|
|
1911
|
+
|
|
1912
|
+
|
|
1913
|
+
|
|
1914
|
+
|
|
1915
|
+
<li class="md-nav__item">
|
|
1916
|
+
<a href="../models/dcim/powerfeed.html" class="md-nav__link">
|
|
1917
|
+
Power Feed
|
|
1918
|
+
</a>
|
|
1919
|
+
</li>
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
|
|
1929
|
+
<li class="md-nav__item">
|
|
1930
|
+
<a href="../models/dcim/poweroutlet.html" class="md-nav__link">
|
|
1931
|
+
Power Outlet
|
|
1932
|
+
</a>
|
|
1933
|
+
</li>
|
|
1934
|
+
|
|
1935
|
+
|
|
1936
|
+
|
|
1937
|
+
|
|
1938
|
+
|
|
1939
|
+
|
|
1940
|
+
|
|
1941
|
+
|
|
1942
|
+
|
|
1943
|
+
<li class="md-nav__item">
|
|
1944
|
+
<a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
|
|
1945
|
+
Power Outlet Template
|
|
1946
|
+
</a>
|
|
1947
|
+
</li>
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
|
|
1951
|
+
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
<li class="md-nav__item">
|
|
1958
|
+
<a href="../models/dcim/powerpanel.html" class="md-nav__link">
|
|
1959
|
+
Power Panel
|
|
1960
|
+
</a>
|
|
1961
|
+
</li>
|
|
1962
|
+
|
|
1963
|
+
|
|
1964
|
+
|
|
1965
|
+
|
|
1966
|
+
|
|
1967
|
+
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
|
|
1971
|
+
<li class="md-nav__item">
|
|
1972
|
+
<a href="../models/dcim/powerport.html" class="md-nav__link">
|
|
1973
|
+
Power Port
|
|
1974
|
+
</a>
|
|
1975
|
+
</li>
|
|
1976
|
+
|
|
1977
|
+
|
|
1978
|
+
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
<li class="md-nav__item">
|
|
1986
|
+
<a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
|
|
1987
|
+
Power Port Template
|
|
1988
|
+
</a>
|
|
1989
|
+
</li>
|
|
1990
|
+
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
<li class="md-nav__item">
|
|
2000
|
+
<a href="../models/dcim/rack.html" class="md-nav__link">
|
|
2001
|
+
Rack
|
|
2002
|
+
</a>
|
|
2003
|
+
</li>
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
|
|
2013
|
+
<li class="md-nav__item">
|
|
2014
|
+
<a href="../models/dcim/rackgroup.html" class="md-nav__link">
|
|
2015
|
+
Rack Group
|
|
991
2016
|
</a>
|
|
992
2017
|
</li>
|
|
993
2018
|
|
|
@@ -1000,8 +2025,8 @@
|
|
|
1000
2025
|
|
|
1001
2026
|
|
|
1002
2027
|
<li class="md-nav__item">
|
|
1003
|
-
<a href="../
|
|
1004
|
-
|
|
2028
|
+
<a href="../models/dcim/rackreservation.html" class="md-nav__link">
|
|
2029
|
+
Rack Reservation
|
|
1005
2030
|
</a>
|
|
1006
2031
|
</li>
|
|
1007
2032
|
|
|
@@ -1014,8 +2039,8 @@
|
|
|
1014
2039
|
|
|
1015
2040
|
|
|
1016
2041
|
<li class="md-nav__item">
|
|
1017
|
-
<a href="../
|
|
1018
|
-
|
|
2042
|
+
<a href="../models/dcim/rearport.html" class="md-nav__link">
|
|
2043
|
+
Rear Port
|
|
1019
2044
|
</a>
|
|
1020
2045
|
</li>
|
|
1021
2046
|
|
|
@@ -1028,8 +2053,8 @@
|
|
|
1028
2053
|
|
|
1029
2054
|
|
|
1030
2055
|
<li class="md-nav__item">
|
|
1031
|
-
<a href="../
|
|
1032
|
-
|
|
2056
|
+
<a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
|
|
2057
|
+
Rear Port Template
|
|
1033
2058
|
</a>
|
|
1034
2059
|
</li>
|
|
1035
2060
|
|
|
@@ -1042,8 +2067,8 @@
|
|
|
1042
2067
|
|
|
1043
2068
|
|
|
1044
2069
|
<li class="md-nav__item">
|
|
1045
|
-
<a href="../
|
|
1046
|
-
|
|
2070
|
+
<a href="../models/dcim/virtualchassis.html" class="md-nav__link">
|
|
2071
|
+
Virtual Chassis
|
|
1047
2072
|
</a>
|
|
1048
2073
|
</li>
|
|
1049
2074
|
|
|
@@ -1068,19 +2093,19 @@
|
|
|
1068
2093
|
|
|
1069
2094
|
|
|
1070
2095
|
|
|
1071
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2096
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
|
|
1072
2097
|
|
|
1073
2098
|
|
|
1074
2099
|
|
|
1075
|
-
<label class="md-nav__link" for="
|
|
1076
|
-
|
|
2100
|
+
<label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
|
|
2101
|
+
Extras
|
|
1077
2102
|
<span class="md-nav__icon md-icon"></span>
|
|
1078
2103
|
</label>
|
|
1079
2104
|
|
|
1080
|
-
<nav class="md-nav" data-md-level="
|
|
1081
|
-
<label class="md-nav__title" for="
|
|
2105
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
|
|
2106
|
+
<label class="md-nav__title" for="__nav_2_8_3">
|
|
1082
2107
|
<span class="md-nav__icon md-icon"></span>
|
|
1083
|
-
|
|
2108
|
+
Extras
|
|
1084
2109
|
</label>
|
|
1085
2110
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
1086
2111
|
|
|
@@ -1090,8 +2115,8 @@
|
|
|
1090
2115
|
|
|
1091
2116
|
|
|
1092
2117
|
<li class="md-nav__item">
|
|
1093
|
-
<a href="../
|
|
1094
|
-
|
|
2118
|
+
<a href="../models/extras/configcontext.html" class="md-nav__link">
|
|
2119
|
+
Config Context
|
|
1095
2120
|
</a>
|
|
1096
2121
|
</li>
|
|
1097
2122
|
|
|
@@ -1104,8 +2129,8 @@
|
|
|
1104
2129
|
|
|
1105
2130
|
|
|
1106
2131
|
<li class="md-nav__item">
|
|
1107
|
-
<a href="../
|
|
1108
|
-
|
|
2132
|
+
<a href="../models/extras/configcontextschema.html" class="md-nav__link">
|
|
2133
|
+
Config Context Schema
|
|
1109
2134
|
</a>
|
|
1110
2135
|
</li>
|
|
1111
2136
|
|
|
@@ -1118,8 +2143,8 @@
|
|
|
1118
2143
|
|
|
1119
2144
|
|
|
1120
2145
|
<li class="md-nav__item">
|
|
1121
|
-
<a href="../
|
|
1122
|
-
|
|
2146
|
+
<a href="../models/extras/graphqlquery.html" class="md-nav__link">
|
|
2147
|
+
GraphQL Query
|
|
1123
2148
|
</a>
|
|
1124
2149
|
</li>
|
|
1125
2150
|
|
|
@@ -1132,8 +2157,8 @@
|
|
|
1132
2157
|
|
|
1133
2158
|
|
|
1134
2159
|
<li class="md-nav__item">
|
|
1135
|
-
<a href="../
|
|
1136
|
-
|
|
2160
|
+
<a href="../models/extras/imageattachment.html" class="md-nav__link">
|
|
2161
|
+
Image Attachment
|
|
1137
2162
|
</a>
|
|
1138
2163
|
</li>
|
|
1139
2164
|
|
|
@@ -1146,8 +2171,8 @@
|
|
|
1146
2171
|
|
|
1147
2172
|
|
|
1148
2173
|
<li class="md-nav__item">
|
|
1149
|
-
<a href="../
|
|
1150
|
-
|
|
2174
|
+
<a href="../models/extras/job.html" class="md-nav__link">
|
|
2175
|
+
Job
|
|
1151
2176
|
</a>
|
|
1152
2177
|
</li>
|
|
1153
2178
|
|
|
@@ -1160,8 +2185,8 @@
|
|
|
1160
2185
|
|
|
1161
2186
|
|
|
1162
2187
|
<li class="md-nav__item">
|
|
1163
|
-
<a href="../
|
|
1164
|
-
|
|
2188
|
+
<a href="../models/extras/joblogentry.html" class="md-nav__link">
|
|
2189
|
+
Job Log Entry
|
|
1165
2190
|
</a>
|
|
1166
2191
|
</li>
|
|
1167
2192
|
|
|
@@ -1174,8 +2199,8 @@
|
|
|
1174
2199
|
|
|
1175
2200
|
|
|
1176
2201
|
<li class="md-nav__item">
|
|
1177
|
-
<a href="../
|
|
1178
|
-
|
|
2202
|
+
<a href="../models/extras/jobresult.html" class="md-nav__link">
|
|
2203
|
+
Job Result
|
|
1179
2204
|
</a>
|
|
1180
2205
|
</li>
|
|
1181
2206
|
|
|
@@ -1188,8 +2213,8 @@
|
|
|
1188
2213
|
|
|
1189
2214
|
|
|
1190
2215
|
<li class="md-nav__item">
|
|
1191
|
-
<a href="../
|
|
1192
|
-
|
|
2216
|
+
<a href="../models/extras/role.html" class="md-nav__link">
|
|
2217
|
+
Role
|
|
1193
2218
|
</a>
|
|
1194
2219
|
</li>
|
|
1195
2220
|
|
|
@@ -1202,8 +2227,8 @@
|
|
|
1202
2227
|
|
|
1203
2228
|
|
|
1204
2229
|
<li class="md-nav__item">
|
|
1205
|
-
<a href="../
|
|
1206
|
-
|
|
2230
|
+
<a href="../models/extras/secret.html" class="md-nav__link">
|
|
2231
|
+
Secret
|
|
1207
2232
|
</a>
|
|
1208
2233
|
</li>
|
|
1209
2234
|
|
|
@@ -1216,8 +2241,56 @@
|
|
|
1216
2241
|
|
|
1217
2242
|
|
|
1218
2243
|
<li class="md-nav__item">
|
|
1219
|
-
<a href="../
|
|
1220
|
-
|
|
2244
|
+
<a href="../models/extras/secretsgroup.html" class="md-nav__link">
|
|
2245
|
+
Secrets group
|
|
2246
|
+
</a>
|
|
2247
|
+
</li>
|
|
2248
|
+
|
|
2249
|
+
|
|
2250
|
+
|
|
2251
|
+
|
|
2252
|
+
</ul>
|
|
2253
|
+
</nav>
|
|
2254
|
+
</li>
|
|
2255
|
+
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
|
|
2269
|
+
|
|
2270
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
|
|
2271
|
+
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
<label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
|
|
2275
|
+
IPAM
|
|
2276
|
+
<span class="md-nav__icon md-icon"></span>
|
|
2277
|
+
</label>
|
|
2278
|
+
|
|
2279
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
|
|
2280
|
+
<label class="md-nav__title" for="__nav_2_8_4">
|
|
2281
|
+
<span class="md-nav__icon md-icon"></span>
|
|
2282
|
+
IPAM
|
|
2283
|
+
</label>
|
|
2284
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
2285
|
+
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
<li class="md-nav__item">
|
|
2292
|
+
<a href="../models/ipam/ipaddress.html" class="md-nav__link">
|
|
2293
|
+
IP Address
|
|
1221
2294
|
</a>
|
|
1222
2295
|
</li>
|
|
1223
2296
|
|
|
@@ -1230,8 +2303,8 @@
|
|
|
1230
2303
|
|
|
1231
2304
|
|
|
1232
2305
|
<li class="md-nav__item">
|
|
1233
|
-
<a href="../
|
|
1234
|
-
|
|
2306
|
+
<a href="../models/ipam/prefix.html" class="md-nav__link">
|
|
2307
|
+
Prefix
|
|
1235
2308
|
</a>
|
|
1236
2309
|
</li>
|
|
1237
2310
|
|
|
@@ -1244,8 +2317,8 @@
|
|
|
1244
2317
|
|
|
1245
2318
|
|
|
1246
2319
|
<li class="md-nav__item">
|
|
1247
|
-
<a href="../
|
|
1248
|
-
|
|
2320
|
+
<a href="../models/ipam/rir.html" class="md-nav__link">
|
|
2321
|
+
Rir
|
|
1249
2322
|
</a>
|
|
1250
2323
|
</li>
|
|
1251
2324
|
|
|
@@ -1258,8 +2331,8 @@
|
|
|
1258
2331
|
|
|
1259
2332
|
|
|
1260
2333
|
<li class="md-nav__item">
|
|
1261
|
-
<a href="../
|
|
1262
|
-
|
|
2334
|
+
<a href="../models/ipam/routetarget.html" class="md-nav__link">
|
|
2335
|
+
Route Target
|
|
1263
2336
|
</a>
|
|
1264
2337
|
</li>
|
|
1265
2338
|
|
|
@@ -1272,8 +2345,8 @@
|
|
|
1272
2345
|
|
|
1273
2346
|
|
|
1274
2347
|
<li class="md-nav__item">
|
|
1275
|
-
<a href="../
|
|
1276
|
-
|
|
2348
|
+
<a href="../models/ipam/service.html" class="md-nav__link">
|
|
2349
|
+
Service
|
|
1277
2350
|
</a>
|
|
1278
2351
|
</li>
|
|
1279
2352
|
|
|
@@ -1286,8 +2359,8 @@
|
|
|
1286
2359
|
|
|
1287
2360
|
|
|
1288
2361
|
<li class="md-nav__item">
|
|
1289
|
-
<a href="../
|
|
1290
|
-
|
|
2362
|
+
<a href="../models/ipam/vlan.html" class="md-nav__link">
|
|
2363
|
+
VLAN
|
|
1291
2364
|
</a>
|
|
1292
2365
|
</li>
|
|
1293
2366
|
|
|
@@ -1300,8 +2373,22 @@
|
|
|
1300
2373
|
|
|
1301
2374
|
|
|
1302
2375
|
<li class="md-nav__item">
|
|
1303
|
-
<a href="../
|
|
1304
|
-
|
|
2376
|
+
<a href="../models/ipam/vlangroup.html" class="md-nav__link">
|
|
2377
|
+
VLAN Group
|
|
2378
|
+
</a>
|
|
2379
|
+
</li>
|
|
2380
|
+
|
|
2381
|
+
|
|
2382
|
+
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
|
|
2386
|
+
|
|
2387
|
+
|
|
2388
|
+
|
|
2389
|
+
<li class="md-nav__item">
|
|
2390
|
+
<a href="../models/ipam/vrf.html" class="md-nav__link">
|
|
2391
|
+
VRF
|
|
1305
2392
|
</a>
|
|
1306
2393
|
</li>
|
|
1307
2394
|
|
|
@@ -1326,19 +2413,19 @@
|
|
|
1326
2413
|
|
|
1327
2414
|
|
|
1328
2415
|
|
|
1329
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2416
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
|
|
1330
2417
|
|
|
1331
2418
|
|
|
1332
2419
|
|
|
1333
|
-
<label class="md-nav__link" for="
|
|
1334
|
-
|
|
2420
|
+
<label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
|
|
2421
|
+
Tenancy
|
|
1335
2422
|
<span class="md-nav__icon md-icon"></span>
|
|
1336
2423
|
</label>
|
|
1337
2424
|
|
|
1338
|
-
<nav class="md-nav" data-md-level="
|
|
1339
|
-
<label class="md-nav__title" for="
|
|
2425
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
|
|
2426
|
+
<label class="md-nav__title" for="__nav_2_8_5">
|
|
1340
2427
|
<span class="md-nav__icon md-icon"></span>
|
|
1341
|
-
|
|
2428
|
+
Tenancy
|
|
1342
2429
|
</label>
|
|
1343
2430
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
1344
2431
|
|
|
@@ -1348,8 +2435,8 @@
|
|
|
1348
2435
|
|
|
1349
2436
|
|
|
1350
2437
|
<li class="md-nav__item">
|
|
1351
|
-
<a href="../
|
|
1352
|
-
|
|
2438
|
+
<a href="../models/tenancy/tenant.html" class="md-nav__link">
|
|
2439
|
+
Tenant
|
|
1353
2440
|
</a>
|
|
1354
2441
|
</li>
|
|
1355
2442
|
|
|
@@ -1362,27 +2449,47 @@
|
|
|
1362
2449
|
|
|
1363
2450
|
|
|
1364
2451
|
<li class="md-nav__item">
|
|
1365
|
-
<a href="../
|
|
1366
|
-
|
|
2452
|
+
<a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
|
|
2453
|
+
Tenant Group
|
|
1367
2454
|
</a>
|
|
1368
2455
|
</li>
|
|
1369
2456
|
|
|
1370
2457
|
|
|
1371
2458
|
|
|
1372
2459
|
|
|
2460
|
+
</ul>
|
|
2461
|
+
</nav>
|
|
2462
|
+
</li>
|
|
2463
|
+
|
|
2464
|
+
|
|
2465
|
+
|
|
2466
|
+
|
|
1373
2467
|
|
|
1374
2468
|
|
|
1375
2469
|
|
|
1376
2470
|
|
|
1377
2471
|
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
2472
|
+
|
|
2473
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
|
|
2477
|
+
|
|
2478
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
<label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
|
|
2483
|
+
Users
|
|
2484
|
+
<span class="md-nav__icon md-icon"></span>
|
|
2485
|
+
</label>
|
|
2486
|
+
|
|
2487
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
|
|
2488
|
+
<label class="md-nav__title" for="__nav_2_8_6">
|
|
2489
|
+
<span class="md-nav__icon md-icon"></span>
|
|
2490
|
+
Users
|
|
2491
|
+
</label>
|
|
2492
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1386
2493
|
|
|
1387
2494
|
|
|
1388
2495
|
|
|
@@ -1390,8 +2497,8 @@
|
|
|
1390
2497
|
|
|
1391
2498
|
|
|
1392
2499
|
<li class="md-nav__item">
|
|
1393
|
-
<a href="../
|
|
1394
|
-
|
|
2500
|
+
<a href="../models/users/objectpermission.html" class="md-nav__link">
|
|
2501
|
+
Object Permission
|
|
1395
2502
|
</a>
|
|
1396
2503
|
</li>
|
|
1397
2504
|
|
|
@@ -1404,27 +2511,47 @@
|
|
|
1404
2511
|
|
|
1405
2512
|
|
|
1406
2513
|
<li class="md-nav__item">
|
|
1407
|
-
<a href="../
|
|
1408
|
-
|
|
2514
|
+
<a href="../models/users/token.html" class="md-nav__link">
|
|
2515
|
+
Token
|
|
1409
2516
|
</a>
|
|
1410
2517
|
</li>
|
|
1411
2518
|
|
|
1412
2519
|
|
|
1413
2520
|
|
|
1414
2521
|
|
|
2522
|
+
</ul>
|
|
2523
|
+
</nav>
|
|
2524
|
+
</li>
|
|
2525
|
+
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
|
|
1415
2529
|
|
|
1416
2530
|
|
|
1417
2531
|
|
|
1418
2532
|
|
|
1419
2533
|
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
2534
|
+
|
|
2535
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
2536
|
+
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
|
|
2541
|
+
|
|
2542
|
+
|
|
2543
|
+
|
|
2544
|
+
<label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
|
|
2545
|
+
Virtualization
|
|
2546
|
+
<span class="md-nav__icon md-icon"></span>
|
|
2547
|
+
</label>
|
|
2548
|
+
|
|
2549
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
|
|
2550
|
+
<label class="md-nav__title" for="__nav_2_8_7">
|
|
2551
|
+
<span class="md-nav__icon md-icon"></span>
|
|
2552
|
+
Virtualization
|
|
2553
|
+
</label>
|
|
2554
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
1428
2555
|
|
|
1429
2556
|
|
|
1430
2557
|
|
|
@@ -1432,8 +2559,8 @@
|
|
|
1432
2559
|
|
|
1433
2560
|
|
|
1434
2561
|
<li class="md-nav__item">
|
|
1435
|
-
<a href="../
|
|
1436
|
-
|
|
2562
|
+
<a href="../models/virtualization/cluster.html" class="md-nav__link">
|
|
2563
|
+
Cluster
|
|
1437
2564
|
</a>
|
|
1438
2565
|
</li>
|
|
1439
2566
|
|
|
@@ -1446,8 +2573,8 @@
|
|
|
1446
2573
|
|
|
1447
2574
|
|
|
1448
2575
|
<li class="md-nav__item">
|
|
1449
|
-
<a href="../
|
|
1450
|
-
|
|
2576
|
+
<a href="../models/virtualization/clustergroup.html" class="md-nav__link">
|
|
2577
|
+
Cluster Group
|
|
1451
2578
|
</a>
|
|
1452
2579
|
</li>
|
|
1453
2580
|
|
|
@@ -1460,8 +2587,8 @@
|
|
|
1460
2587
|
|
|
1461
2588
|
|
|
1462
2589
|
<li class="md-nav__item">
|
|
1463
|
-
<a href="../
|
|
1464
|
-
|
|
2590
|
+
<a href="../models/virtualization/clustertype.html" class="md-nav__link">
|
|
2591
|
+
Cluster Type
|
|
1465
2592
|
</a>
|
|
1466
2593
|
</li>
|
|
1467
2594
|
|
|
@@ -1474,8 +2601,8 @@
|
|
|
1474
2601
|
|
|
1475
2602
|
|
|
1476
2603
|
<li class="md-nav__item">
|
|
1477
|
-
<a href="../
|
|
1478
|
-
|
|
2604
|
+
<a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
|
|
2605
|
+
Virtual Machine
|
|
1479
2606
|
</a>
|
|
1480
2607
|
</li>
|
|
1481
2608
|
|
|
@@ -1488,8 +2615,8 @@
|
|
|
1488
2615
|
|
|
1489
2616
|
|
|
1490
2617
|
<li class="md-nav__item">
|
|
1491
|
-
<a href="../
|
|
1492
|
-
|
|
2618
|
+
<a href="../models/virtualization/vminterface.html" class="md-nav__link">
|
|
2619
|
+
VM Interface
|
|
1493
2620
|
</a>
|
|
1494
2621
|
</li>
|
|
1495
2622
|
|
|
@@ -1503,6 +2630,13 @@
|
|
|
1503
2630
|
|
|
1504
2631
|
|
|
1505
2632
|
|
|
2633
|
+
</ul>
|
|
2634
|
+
</nav>
|
|
2635
|
+
</li>
|
|
2636
|
+
|
|
2637
|
+
|
|
2638
|
+
|
|
2639
|
+
|
|
1506
2640
|
|
|
1507
2641
|
|
|
1508
2642
|
|
|
@@ -1514,17 +2648,17 @@
|
|
|
1514
2648
|
|
|
1515
2649
|
|
|
1516
2650
|
|
|
1517
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2651
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
|
|
1518
2652
|
|
|
1519
2653
|
|
|
1520
2654
|
|
|
1521
|
-
<label class="md-nav__link" for="
|
|
2655
|
+
<label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
|
|
1522
2656
|
Additional Features
|
|
1523
2657
|
<span class="md-nav__icon md-icon"></span>
|
|
1524
2658
|
</label>
|
|
1525
2659
|
|
|
1526
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
1527
|
-
<label class="md-nav__title" for="
|
|
2660
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
|
|
2661
|
+
<label class="md-nav__title" for="__nav_2_9">
|
|
1528
2662
|
<span class="md-nav__icon md-icon"></span>
|
|
1529
2663
|
Additional Features
|
|
1530
2664
|
</label>
|
|
@@ -1856,17 +2990,17 @@
|
|
|
1856
2990
|
|
|
1857
2991
|
|
|
1858
2992
|
|
|
1859
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2993
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
|
|
1860
2994
|
|
|
1861
2995
|
|
|
1862
2996
|
|
|
1863
|
-
<label class="md-nav__link" for="
|
|
2997
|
+
<label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
|
|
1864
2998
|
REST API
|
|
1865
2999
|
<span class="md-nav__icon md-icon"></span>
|
|
1866
3000
|
</label>
|
|
1867
3001
|
|
|
1868
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
1869
|
-
<label class="md-nav__title" for="
|
|
3002
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
|
|
3003
|
+
<label class="md-nav__title" for="__nav_2_10">
|
|
1870
3004
|
<span class="md-nav__icon md-icon"></span>
|
|
1871
3005
|
REST API
|
|
1872
3006
|
</label>
|
|
@@ -1914,6 +3048,20 @@
|
|
|
1914
3048
|
|
|
1915
3049
|
|
|
1916
3050
|
|
|
3051
|
+
|
|
3052
|
+
|
|
3053
|
+
|
|
3054
|
+
|
|
3055
|
+
|
|
3056
|
+
<li class="md-nav__item">
|
|
3057
|
+
<a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
|
|
3058
|
+
UI Endpoints
|
|
3059
|
+
</a>
|
|
3060
|
+
</li>
|
|
3061
|
+
|
|
3062
|
+
|
|
3063
|
+
|
|
3064
|
+
|
|
1917
3065
|
</ul>
|
|
1918
3066
|
</nav>
|
|
1919
3067
|
</li>
|
|
@@ -1932,17 +3080,17 @@
|
|
|
1932
3080
|
|
|
1933
3081
|
|
|
1934
3082
|
|
|
1935
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
3083
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
|
|
1936
3084
|
|
|
1937
3085
|
|
|
1938
3086
|
|
|
1939
|
-
<label class="md-nav__link" for="
|
|
3087
|
+
<label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
|
|
1940
3088
|
GraphQL API
|
|
1941
3089
|
<span class="md-nav__icon md-icon"></span>
|
|
1942
3090
|
</label>
|
|
1943
3091
|
|
|
1944
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
1945
|
-
<label class="md-nav__title" for="
|
|
3092
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
|
|
3093
|
+
<label class="md-nav__title" for="__nav_2_11">
|
|
1946
3094
|
<span class="md-nav__icon md-icon"></span>
|
|
1947
3095
|
GraphQL API
|
|
1948
3096
|
</label>
|
|
@@ -2964,26 +4112,6 @@
|
|
|
2964
4112
|
Caching
|
|
2965
4113
|
</a>
|
|
2966
4114
|
|
|
2967
|
-
<nav class="md-nav" aria-label="Caching">
|
|
2968
|
-
<ul class="md-nav__list">
|
|
2969
|
-
|
|
2970
|
-
<li class="md-nav__item">
|
|
2971
|
-
<a href="#cacheops_redis" class="md-nav__link">
|
|
2972
|
-
CACHEOPS_REDIS
|
|
2973
|
-
</a>
|
|
2974
|
-
|
|
2975
|
-
</li>
|
|
2976
|
-
|
|
2977
|
-
<li class="md-nav__item">
|
|
2978
|
-
<a href="#cacheops_sentinel" class="md-nav__link">
|
|
2979
|
-
CACHEOPS_SENTINEL
|
|
2980
|
-
</a>
|
|
2981
|
-
|
|
2982
|
-
</li>
|
|
2983
|
-
|
|
2984
|
-
</ul>
|
|
2985
|
-
</nav>
|
|
2986
|
-
|
|
2987
4115
|
</li>
|
|
2988
4116
|
|
|
2989
4117
|
<li class="md-nav__item">
|
|
@@ -3110,7 +4238,7 @@
|
|
|
3110
4238
|
<li><code>HOST</code> - Name or IP address of the database server (use <code>localhost</code> if running locally)</li>
|
|
3111
4239
|
<li><code>PORT</code> - The port to use when connecting to the database. An empty string means the default port for your selected backend. (PostgreSQL: <code>5432</code>, MySQL: <code>3306</code>)</li>
|
|
3112
4240
|
<li><code>CONN_MAX_AGE</code> - Lifetime of a <a href="https://docs.djangoproject.com/en/stable/ref/databases/#persistent-connections">persistent database connection</a>, in seconds (300 is the default)</li>
|
|
3113
|
-
<li><code>ENGINE</code> - The database backend to use. This can be either <code>django.db.backends.postgresql</code> or <code>django.db.backends.mysql</code
|
|
4241
|
+
<li><code>ENGINE</code> - The database backend to use. This can be either <code>django.db.backends.postgresql</code> or <code>django.db.backends.mysql</code>. If <code>METRICS_ENABLED</code> is <code>True</code> this can also be either <code>django_prometheus.db.backends.postgresql</code> or <code>django_prometheus.db.backends.mysql</code></li>
|
|
3114
4242
|
</ul>
|
|
3115
4243
|
<p>The following environment variables may also be set for each of the above values:</p>
|
|
3116
4244
|
<ul>
|
|
@@ -3188,71 +4316,44 @@ to different Redis instances/databases per feature.</p>
|
|
|
3188
4316
|
<p>The default Redis settings in your <code>nautobot_config.py</code> should be suitable for most deployments and should only require customization for more advanced configurations.</p>
|
|
3189
4317
|
</div>
|
|
3190
4318
|
<h3 id="caching">Caching<a class="headerlink" href="#caching" title="Permanent link">¶</a></h3>
|
|
3191
|
-
<p>Nautobot supports database query caching using <a href="https://github.com/Suor/django-cacheops"><code>django-cacheops</code></a>.</p>
|
|
3192
|
-
<p>Caching is configured by defining the <a href="#cacheops_redis"><code>CACHEOPS_REDIS</code></a> setting which in its simplest form is just a URL.</p>
|
|
3193
4319
|
<p>For more details on Nautobot's caching, including TLS and HA configuration, see the guide on <a href="../additional-features/caching.html">Caching</a>.</p>
|
|
3194
|
-
<div class="admonition important">
|
|
3195
|
-
<p class="admonition-title">Important</p>
|
|
3196
|
-
<p>Nautobot does not utilize the built-in <a href="https://docs.djangoproject.com/en/stable/topics/cache/">Django cache framework</a> to perform caching, as <code>django-cacheops</code> takes its place.</p>
|
|
3197
|
-
</div>
|
|
3198
|
-
<h4 id="cacheops_redis">CACHEOPS_REDIS<a class="headerlink" href="#cacheops_redis" title="Permanent link">¶</a></h4>
|
|
3199
|
-
<p>Default: <code>"redis://localhost:6379/1"</code></p>
|
|
3200
|
-
<p>Environment Variable: <code>NAUTOBOT_CACHEOPS_REDIS</code></p>
|
|
3201
|
-
<p>If you wish to use SSL, you may set the URL scheme to <code>rediss://</code>, for example:</p>
|
|
3202
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="n">CACHEOPS_REDIS</span> <span class="o">=</span> <span class="s2">"rediss://localhost:6379/1"</span>
|
|
3203
|
-
</code></pre></div>
|
|
3204
|
-
<p>This setting may also be a dictionary style to provide additional options such as custom TLS/SSL settings, for example:</p>
|
|
3205
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="kn">import</span> <span class="nn">ssl</span>
|
|
3206
|
-
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
|
|
3207
|
-
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="n">CACHEOPS_REDIS</span> <span class="o">=</span> <span class="p">{</span>
|
|
3208
|
-
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> <span class="s2">"host"</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">"NAUTOBOT_REDIS_HOST"</span><span class="p">,</span> <span class="s2">"localhost"</span><span class="p">),</span>
|
|
3209
|
-
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> <span class="s2">"port"</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">"NAUTOBOT_REDIS_PORT"</span><span class="p">,</span> <span class="mi">6379</span><span class="p">)),</span>
|
|
3210
|
-
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="s2">"password"</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">"NAUTOBOT_REDIS_PASSWORD"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span>
|
|
3211
|
-
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> <span class="s2">"ssl"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
|
|
3212
|
-
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> <span class="s2">"ssl_cert_reqs"</span><span class="p">:</span> <span class="n">ssl</span><span class="o">.</span><span class="n">CERT_REQUIRED</span><span class="p">,</span>
|
|
3213
|
-
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a> <span class="s2">"ssl_ca_certs"</span><span class="p">:</span> <span class="s2">"/opt/nautobot/redis/ca.crt"</span><span class="p">,</span>
|
|
3214
|
-
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a> <span class="s2">"ssl_certfile"</span><span class="p">:</span> <span class="s2">"/opt/nautobot/redis/tls.crt"</span><span class="p">,</span>
|
|
3215
|
-
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a> <span class="s2">"ssl_keyfile"</span><span class="p">:</span> <span class="s2">"/opt/nautobot/redis/tls.key"</span><span class="p">,</span>
|
|
3216
|
-
<a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a><span class="p">}</span>
|
|
3217
|
-
</code></pre></div>
|
|
3218
|
-
<p>Additional settings may be available and are not covered here. Please see the official guide on <a href="https://github.com/Suor/django-cacheops#setup">Cacheops setup</a>.</p>
|
|
3219
|
-
<h4 id="cacheops_sentinel">CACHEOPS_SENTINEL<a class="headerlink" href="#cacheops_sentinel" title="Permanent link">¶</a></h4>
|
|
3220
|
-
<p>Default: <code>undefined</code></p>
|
|
3221
|
-
<p>If you are using <a href="https://redis.io/topics/sentinel">Redis Sentinel</a> for high-availability purposes, you must replace the <a href="#cacheops_redis"><code>CACHEOPS_REDIS</code></a> setting with <a href="#cacheops_sentinel"><code>CACHEOPS_SENTINEL</code></a>. For more details on configuring Nautobot to use Redis Sentinel see <a href="../additional-features/caching.html#using-redis-sentinel">Using Redis Sentinel</a>. For more details on how to configure Cacheops specifically to use Redis Sentinel see the official guide on <a href="https://github.com/Suor/django-cacheops#setup">Cacheops
|
|
3222
|
-
setup</a>.</p>
|
|
3223
|
-
<div class="admonition warning">
|
|
3224
|
-
<p class="admonition-title">Warning</p>
|
|
3225
|
-
<p><a href="#cacheops_redis"><code>CACHEOPS_REDIS</code></a> and <a href="#cacheops_sentinel"><code>CACHEOPS_SENTINEL</code></a> are mutually exclusive and will result in an error if both are set.</p>
|
|
3226
|
-
</div>
|
|
3227
4320
|
<h3 id="task-queuing">Task Queuing<a class="headerlink" href="#task-queuing" title="Permanent link">¶</a></h3>
|
|
3228
4321
|
<h4 id="caches">CACHES<a class="headerlink" href="#caches" title="Permanent link">¶</a></h4>
|
|
3229
|
-
<p>The <a href="https://github.com/jazzband/django-redis"><code>django-redis</code></a> Django plugin is used to enable Redis as a concurrent write lock for preventing race conditions when allocating IP address objects. The <code>CACHES</code> setting is required to
|
|
4322
|
+
<p>The <a href="https://github.com/jazzband/django-redis"><code>django-redis</code></a> Django plugin is used to enable Redis as a concurrent write lock for preventing race conditions when allocating IP address objects. The <code>CACHES</code> setting is required to simplify the configuration for <code>django-redis</code>.</p>
|
|
3230
4323
|
<div class="admonition important">
|
|
3231
4324
|
<p class="admonition-title">Important</p>
|
|
3232
|
-
<p>Nautobot
|
|
4325
|
+
<p>Nautobot also utilizes the built-in <a href="https://docs.djangoproject.com/en/stable/topics/cache/">Django cache framework</a> (which also relies on the <code>CACHES</code> setting) to perform caching.</p>
|
|
3233
4326
|
</div>
|
|
3234
4327
|
<p>Default:</p>
|
|
3235
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
3236
|
-
<a id="__codelineno-
|
|
3237
|
-
<a id="__codelineno-
|
|
3238
|
-
<a id="__codelineno-
|
|
3239
|
-
<a id="__codelineno-
|
|
3240
|
-
<a id="__codelineno-
|
|
3241
|
-
<a id="__codelineno-
|
|
3242
|
-
<a id="__codelineno-
|
|
3243
|
-
<a id="__codelineno-
|
|
3244
|
-
<a id="__codelineno-
|
|
3245
|
-
<a id="__codelineno-
|
|
3246
|
-
<a id="__codelineno-
|
|
3247
|
-
<a id="__codelineno-
|
|
3248
|
-
<a id="__codelineno-
|
|
3249
|
-
<a id="__codelineno-
|
|
3250
|
-
<a id="__codelineno-
|
|
3251
|
-
<a id="__codelineno-
|
|
3252
|
-
<a id="__codelineno-
|
|
3253
|
-
<a id="__codelineno-
|
|
3254
|
-
<a id="__codelineno-
|
|
4328
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="c1"># Uncomment the following line to configure TLS/SSL</span>
|
|
4329
|
+
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="c1"># import ssl</span>
|
|
4330
|
+
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a>
|
|
4331
|
+
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="n">CACHES</span> <span class="o">=</span> <span class="p">{</span>
|
|
4332
|
+
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> <span class="s2">"default"</span><span class="p">:</span> <span class="p">{</span>
|
|
4333
|
+
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> <span class="s2">"BACKEND"</span><span class="p">:</span> <span class="s2">"django_redis.cache.RedisCache"</span><span class="p">,</span>
|
|
4334
|
+
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> <span class="s2">"LOCATION"</span><span class="p">:</span> <span class="s2">"redis://localhost:6379/1"</span><span class="p">,</span>
|
|
4335
|
+
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a> <span class="s2">"TIMEOUT"</span><span class="p">:</span> <span class="mi">300</span><span class="p">,</span>
|
|
4336
|
+
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a> <span class="s2">"OPTIONS"</span><span class="p">:</span> <span class="p">{</span>
|
|
4337
|
+
<a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a> <span class="s2">"CLIENT_CLASS"</span><span class="p">:</span> <span class="s2">"django_redis.client.DefaultClient"</span><span class="p">,</span>
|
|
4338
|
+
<a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a> <span class="c1"># Uncomment the following lines to configure TLS/SSL</span>
|
|
4339
|
+
<a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a> <span class="c1"># "CONNECTION_POOL_KWARGS": {</span>
|
|
4340
|
+
<a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a> <span class="c1"># "ssl_cert_reqs": ssl.CERT_REQUIRED,</span>
|
|
4341
|
+
<a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a> <span class="c1"># "ssl_ca_certs": "/opt/nautobot/redis/ca.crt",</span>
|
|
4342
|
+
<a id="__codelineno-4-15" name="__codelineno-4-15" href="#__codelineno-4-15"></a> <span class="c1"># "ssl_certfile": "/opt/nautobot/redis/tls.crt",</span>
|
|
4343
|
+
<a id="__codelineno-4-16" name="__codelineno-4-16" href="#__codelineno-4-16"></a> <span class="c1"># "ssl_keyfile": "/opt/nautobot/redis/tls.key",</span>
|
|
4344
|
+
<a id="__codelineno-4-17" name="__codelineno-4-17" href="#__codelineno-4-17"></a> <span class="c1"># },</span>
|
|
4345
|
+
<a id="__codelineno-4-18" name="__codelineno-4-18" href="#__codelineno-4-18"></a> <span class="p">},</span>
|
|
4346
|
+
<a id="__codelineno-4-19" name="__codelineno-4-19" href="#__codelineno-4-19"></a> <span class="p">}</span>
|
|
4347
|
+
<a id="__codelineno-4-20" name="__codelineno-4-20" href="#__codelineno-4-20"></a><span class="p">}</span>
|
|
3255
4348
|
</code></pre></div>
|
|
4349
|
+
<p>The following environment variables may also be set for some of the above values:</p>
|
|
4350
|
+
<ul>
|
|
4351
|
+
<li><code>NAUTOBOT_CACHES_BACKEND</code></li>
|
|
4352
|
+
</ul>
|
|
4353
|
+
<div class="admonition version-changed">
|
|
4354
|
+
<p class="admonition-title">Changed in version 2.0.0</p>
|
|
4355
|
+
<p>The default value of <code>CACHES["default"]["LOCATION"]</code> has changed from <code>redis://localhost:6379/0</code> to <code>redis://localhost:6379/1</code>, as Django's native caching is now taking the role previously occupied by <code>django-cacheops</code>.</p>
|
|
4356
|
+
</div>
|
|
3256
4357
|
<h3 id="task-queuing-with-celery">Task Queuing with Celery<a class="headerlink" href="#task-queuing-with-celery" title="Permanent link">¶</a></h3>
|
|
3257
4358
|
<div class="admonition version-added">
|
|
3258
4359
|
<p class="admonition-title">Added in version 1.1.0</p>
|
|
@@ -3265,15 +4366,15 @@ setup</a>.</p>
|
|
|
3265
4366
|
<p>This setting tells Celery and its workers how and where to store message results. This defaults to the same value as <code>CELERY_BROKER_URL</code>. In some more advanced setups it may be required for these to be separate locations, however in our configuration guides these are always the same. Please see the <a href="optional-settings.html#celery_result_backend">optional settings documentation for <code>CELERY_RESULT_BACKEND</code></a> for more information on customizing this setting.</p>
|
|
3266
4367
|
<h4 id="configuring-celery-with-tls">Configuring Celery with TLS<a class="headerlink" href="#configuring-celery-with-tls" title="Permanent link">¶</a></h4>
|
|
3267
4368
|
<p>Optionally, you can configure Celery to use custom SSL certificates to connect to redis by setting the following variables:</p>
|
|
3268
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
3269
|
-
<a id="__codelineno-
|
|
3270
|
-
<a id="__codelineno-
|
|
3271
|
-
<a id="__codelineno-
|
|
3272
|
-
<a id="__codelineno-
|
|
3273
|
-
<a id="__codelineno-
|
|
3274
|
-
<a id="__codelineno-
|
|
3275
|
-
<a id="__codelineno-
|
|
3276
|
-
<a id="__codelineno-
|
|
4369
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="kn">import</span> <span class="nn">ssl</span>
|
|
4370
|
+
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
|
|
4371
|
+
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="n">CELERY_REDIS_BACKEND_USE_SSL</span> <span class="o">=</span> <span class="p">{</span>
|
|
4372
|
+
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> <span class="s2">"ssl_cert_reqs"</span><span class="p">:</span> <span class="n">ssl</span><span class="o">.</span><span class="n">CERT_REQUIRED</span><span class="p">,</span>
|
|
4373
|
+
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> <span class="s2">"ssl_ca_certs"</span><span class="p">:</span> <span class="s2">"/opt/nautobot/redis/ca.crt"</span><span class="p">,</span>
|
|
4374
|
+
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="s2">"ssl_certfile"</span><span class="p">:</span> <span class="s2">"/opt/nautobot/redis/tls.crt"</span><span class="p">,</span>
|
|
4375
|
+
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> <span class="s2">"ssl_keyfile"</span><span class="p">:</span> <span class="s2">"/opt/nautobot/redis/tls.key"</span><span class="p">,</span>
|
|
4376
|
+
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="p">}</span>
|
|
4377
|
+
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="n">CELERY_BROKER_USE_SSL</span> <span class="o">=</span> <span class="n">CELERY_REDIS_BACKEND_USE_SSL</span>
|
|
3277
4378
|
</code></pre></div>
|
|
3278
4379
|
<p>Please see the celery <a href="https://docs.celeryq.dev/en/stable/userguide/configuration.html#std-setting-broker_use_ssl">documentation</a> for additional details.</p>
|
|
3279
4380
|
<h4 id="configuring-celery-for-high-availability">Configuring Celery for High Availability<a class="headerlink" href="#configuring-celery-for-high-availability" title="Permanent link">¶</a></h4>
|
|
@@ -3288,16 +4389,16 @@ setup</a>.</p>
|
|
|
3288
4389
|
<p>A unique <code>SECRET_KEY</code> is generated for you automatically when you use <code>nautobot-server init</code> to create a new <code>nautobot_config.py</code>.</p>
|
|
3289
4390
|
</div>
|
|
3290
4391
|
<p>You may run <code>nautobot-server generate_secret_key</code> to generate a new key at any time.</p>
|
|
3291
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4392
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>nautobot-server generate_secret_key
|
|
3292
4393
|
</code></pre></div>
|
|
3293
4394
|
<p>Sample output:</p>
|
|
3294
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4395
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>+$_kw69oq&fbkfk6&q-+ksbgzw1&061ghw%420u3(wen54w(m
|
|
3295
4396
|
</code></pre></div>
|
|
3296
4397
|
<p>Alternatively use the following command to generate a secret even before <code>nautobot-server</code> is runnable:</p>
|
|
3297
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4398
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>LC_ALL=C tr -cd '[:lower:][:digit:]!@#$%^&*(\-_=+)' < /dev/urandom | fold -w50 | head -n1
|
|
3298
4399
|
</code></pre></div>
|
|
3299
4400
|
<p>Example output:</p>
|
|
3300
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4401
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>9.V$@Kxkc@@Kd@z<a/=.J-Y;rYc79<y@](9o9(L(*sS)Q+ud5P
|
|
3301
4402
|
</code></pre></div>
|
|
3302
4403
|
<div class="admonition warning">
|
|
3303
4404
|
<p class="admonition-title">Warning</p>
|