nautobot 2.2.3__py3-none-any.whl → 2.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/circuits/forms.py +15 -0
- nautobot/circuits/navigation.py +9 -1
- nautobot/circuits/views.py +2 -0
- nautobot/core/filters.py +11 -0
- nautobot/core/settings.py +6 -4
- nautobot/core/settings.yaml +54 -19
- nautobot/core/templates/admin/base.html +2 -2
- nautobot/core/templates/base_django.html +2 -2
- nautobot/core/templates/buttons/export.html +47 -47
- nautobot/core/templates/inc/javascript.html +3 -0
- nautobot/core/templates/inc/media.html +3 -0
- nautobot/core/templates/login.html +2 -2
- nautobot/core/templates/nautobot_config.py.j2 +2 -0
- nautobot/core/testing/filters.py +24 -1
- nautobot/core/testing/views.py +13 -1
- nautobot/core/tests/test_jobs.py +79 -2
- nautobot/core/tests/test_views.py +33 -0
- nautobot/core/views/mixins.py +4 -0
- nautobot/core/views/utils.py +18 -1
- nautobot/dcim/filters/__init__.py +1 -1
- nautobot/dcim/forms.py +23 -4
- nautobot/dcim/tables/devicetypes.py +15 -4
- nautobot/dcim/tests/test_views.py +323 -55
- nautobot/dcim/views.py +26 -20
- nautobot/extras/api/serializers.py +17 -6
- nautobot/extras/api/views.py +2 -2
- nautobot/extras/context_managers.py +3 -0
- nautobot/extras/filters/__init__.py +15 -1
- nautobot/extras/forms/forms.py +33 -0
- nautobot/extras/forms/mixins.py +0 -6
- nautobot/extras/signals.py +6 -1
- nautobot/extras/tests/test_api.py +24 -2
- nautobot/extras/tests/test_context_managers.py +51 -1
- nautobot/extras/tests/test_filters.py +69 -0
- nautobot/extras/tests/test_forms.py +0 -3
- nautobot/extras/tests/test_views.py +48 -4
- nautobot/extras/utils.py +2 -1
- nautobot/extras/views.py +47 -31
- nautobot/ipam/forms.py +18 -0
- nautobot/ipam/tests/test_views.py +9 -2
- nautobot/ipam/views.py +17 -6
- nautobot/project-static/docs/404.html +107 -51
- nautobot/project-static/docs/apps/index.html +107 -51
- nautobot/project-static/docs/apps/nautobot-apps.html +107 -51
- nautobot/project-static/docs/assets/_mkdocstrings.css +6 -1
- nautobot/project-static/docs/assets/extra.css +7 -0
- nautobot/project-static/docs/assets/javascripts/bundle.ebd0bdb7.min.js +29 -0
- nautobot/project-static/docs/assets/javascripts/bundle.ebd0bdb7.min.js.map +7 -0
- nautobot/project-static/docs/assets/stylesheets/main.6543a935.min.css +1 -0
- nautobot/project-static/docs/assets/stylesheets/main.6543a935.min.css.map +1 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +107 -51
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +107 -51
- nautobot/project-static/docs/development/apps/api/configuration-view.html +110 -54
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +110 -54
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +107 -51
- nautobot/project-static/docs/development/apps/api/models/global-search.html +110 -54
- nautobot/project-static/docs/development/apps/api/models/graphql.html +113 -57
- nautobot/project-static/docs/development/apps/api/models/index.html +107 -51
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +113 -57
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +107 -51
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +111 -55
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +107 -51
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +107 -51
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +110 -54
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +110 -54
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +110 -54
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +110 -54
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +107 -51
- nautobot/project-static/docs/development/apps/api/prometheus.html +110 -54
- nautobot/project-static/docs/development/apps/api/setup.html +107 -51
- nautobot/project-static/docs/development/apps/api/testing.html +113 -57
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +110 -54
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +110 -54
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +107 -51
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +107 -51
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +113 -57
- nautobot/project-static/docs/development/apps/api/views/base-template.html +107 -51
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +110 -54
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +107 -51
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +110 -54
- nautobot/project-static/docs/development/apps/api/views/index.html +107 -51
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +113 -57
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +122 -66
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +110 -54
- nautobot/project-static/docs/development/apps/api/views/notes.html +110 -54
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +107 -51
- nautobot/project-static/docs/development/apps/api/views/urls.html +107 -51
- nautobot/project-static/docs/development/apps/index.html +128 -72
- nautobot/project-static/docs/development/apps/migration/code-updates.html +107 -51
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +107 -51
- nautobot/project-static/docs/development/apps/migration/from-v1.html +109 -53
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +107 -51
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +107 -51
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +107 -51
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +107 -51
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +110 -54
- nautobot/project-static/docs/development/core/application-registry.html +120 -64
- nautobot/project-static/docs/development/core/best-practices.html +122 -66
- nautobot/project-static/docs/development/core/bootstrap-ui.html +107 -51
- nautobot/project-static/docs/development/core/caching.html +107 -51
- nautobot/project-static/docs/development/core/controllers.html +107 -51
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +113 -57
- nautobot/project-static/docs/development/core/generic-views.html +110 -54
- nautobot/project-static/docs/development/core/getting-started.html +137 -81
- nautobot/project-static/docs/development/core/homepage.html +110 -54
- nautobot/project-static/docs/development/core/index.html +107 -51
- nautobot/project-static/docs/development/core/model-checklist.html +107 -51
- nautobot/project-static/docs/development/core/model-features.html +107 -51
- nautobot/project-static/docs/development/core/natural-keys.html +110 -54
- nautobot/project-static/docs/development/core/navigation-menu.html +107 -51
- nautobot/project-static/docs/development/core/release-checklist.html +107 -51
- nautobot/project-static/docs/development/core/role-internals.html +107 -51
- nautobot/project-static/docs/development/core/settings.html +107 -51
- nautobot/project-static/docs/development/core/style-guide.html +110 -54
- nautobot/project-static/docs/development/core/templates.html +113 -57
- nautobot/project-static/docs/development/core/testing.html +126 -70
- nautobot/project-static/docs/development/core/user-preferences.html +107 -51
- nautobot/project-static/docs/development/index.html +107 -51
- nautobot/project-static/docs/development/jobs/index.html +173 -117
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +110 -54
- nautobot/project-static/docs/docker/index.html +3 -3
- nautobot/project-static/docs/index.html +125 -69
- nautobot/project-static/docs/installation/selinux-troubleshooting.html +3 -3
- nautobot/project-static/docs/release-notes/index.html +107 -51
- nautobot/project-static/docs/release-notes/version-1.0.html +108 -52
- nautobot/project-static/docs/release-notes/version-1.1.html +107 -51
- nautobot/project-static/docs/release-notes/version-1.2.html +109 -53
- nautobot/project-static/docs/release-notes/version-1.3.html +108 -52
- nautobot/project-static/docs/release-notes/version-1.4.html +109 -53
- nautobot/project-static/docs/release-notes/version-1.5.html +118 -62
- nautobot/project-static/docs/release-notes/version-1.6.html +721 -285
- nautobot/project-static/docs/release-notes/version-2.0.html +113 -57
- nautobot/project-static/docs/release-notes/version-2.1.html +107 -51
- nautobot/project-static/docs/release-notes/version-2.2.html +503 -120
- nautobot/project-static/docs/requirements.txt +4 -4
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +262 -262
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +107 -51
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +107 -51
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +109 -53
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +108 -52
- nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +254 -167
- nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +113 -57
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +107 -51
- nautobot/project-static/docs/user-guide/administration/guides/caching.html +113 -57
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +107 -51
- nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +107 -51
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +107 -51
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +113 -57
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +108 -52
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +107 -51
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +107 -51
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +171 -112
- nautobot/project-static/docs/user-guide/administration/installation/docker.html +13 -8626
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +117 -61
- nautobot/project-static/docs/user-guide/administration/installation/health-checks.html +13 -8614
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +252 -165
- nautobot/project-static/docs/user-guide/administration/installation/index.html +165 -192
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +411 -691
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +249 -230
- nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +13 -8118
- nautobot/project-static/docs/user-guide/administration/installation/services.html +351 -241
- nautobot/project-static/docs/user-guide/administration/installation-extras/docker.html +8684 -0
- nautobot/project-static/docs/user-guide/administration/installation-extras/health-checks.html +8672 -0
- nautobot/project-static/docs/user-guide/administration/installation-extras/selinux-troubleshooting.html +8176 -0
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +110 -54
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +110 -54
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +155 -99
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +107 -51
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +109 -53
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +107 -51
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +107 -51
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +108 -52
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +107 -51
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +107 -51
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +107 -70
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +115 -59
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +115 -59
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +117 -61
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +119 -63
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +125 -69
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +128 -72
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +116 -60
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +110 -54
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +107 -51
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +113 -57
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +113 -57
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +113 -57
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +110 -54
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +108 -52
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +108 -52
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +110 -54
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +113 -57
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +107 -51
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +110 -54
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +107 -51
- nautobot/project-static/docs/user-guide/index.html +109 -53
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +107 -51
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +113 -57
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +128 -72
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +107 -51
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +125 -69
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +107 -51
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +125 -69
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +107 -51
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +107 -51
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +128 -72
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +114 -58
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +113 -57
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +121 -65
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +109 -53
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +116 -60
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +131 -75
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +149 -93
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +108 -84
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +116 -60
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +119 -63
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +137 -81
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +110 -54
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +107 -51
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +110 -54
- nautobot/project-static/js/forms.js +2 -1
- nautobot/tenancy/forms.py +9 -0
- nautobot/tenancy/views.py +3 -6
- nautobot/virtualization/forms.py +18 -6
- nautobot/virtualization/templates/virtualization/clustertype.html +2 -2
- nautobot/virtualization/views.py +7 -9
- {nautobot-2.2.3.dist-info → nautobot-2.2.5.dist-info}/METADATA +2 -2
- {nautobot-2.2.3.dist-info → nautobot-2.2.5.dist-info}/RECORD +323 -320
- nautobot/project-static/docs/assets/javascripts/bundle.bd41221c.min.js +0 -29
- nautobot/project-static/docs/assets/javascripts/bundle.bd41221c.min.js.map +0 -7
- nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css +0 -1
- nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css.map +0 -1
- {nautobot-2.2.3.dist-info → nautobot-2.2.5.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.2.3.dist-info → nautobot-2.2.5.dist-info}/NOTICE +0 -0
- {nautobot-2.2.3.dist-info → nautobot-2.2.5.dist-info}/WHEEL +0 -0
- {nautobot-2.2.3.dist-info → nautobot-2.2.5.dist-info}/entry_points.txt +0 -0
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
<link rel="icon" href="../../../assets/favicon.ico">
|
|
21
|
-
<meta name="generator" content="mkdocs-1.
|
|
21
|
+
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.23">
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -26,12 +26,20 @@
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
<link rel="stylesheet" href="../../../assets/stylesheets/main.
|
|
29
|
+
<link rel="stylesheet" href="../../../assets/stylesheets/main.6543a935.min.css">
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
|
|
33
33
|
|
|
34
34
|
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
<style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0h-32zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1z"/></svg>');}</style>
|
|
42
|
+
|
|
35
43
|
|
|
36
44
|
|
|
37
45
|
|
|
@@ -200,7 +208,7 @@
|
|
|
200
208
|
<a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
|
|
201
209
|
<div class="md-source__icon md-icon">
|
|
202
210
|
|
|
203
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.
|
|
211
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
|
|
204
212
|
</div>
|
|
205
213
|
<div class="md-source__repository">
|
|
206
214
|
GitHub
|
|
@@ -360,7 +368,7 @@
|
|
|
360
368
|
<a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
|
|
361
369
|
<div class="md-source__icon md-icon">
|
|
362
370
|
|
|
363
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.
|
|
371
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
|
|
364
372
|
</div>
|
|
365
373
|
<div class="md-source__repository">
|
|
366
374
|
GitHub
|
|
@@ -532,7 +540,7 @@
|
|
|
532
540
|
|
|
533
541
|
|
|
534
542
|
<span class="md-ellipsis">
|
|
535
|
-
|
|
543
|
+
Getting Started
|
|
536
544
|
</span>
|
|
537
545
|
|
|
538
546
|
|
|
@@ -856,11 +864,11 @@
|
|
|
856
864
|
|
|
857
865
|
|
|
858
866
|
<li class="md-nav__item">
|
|
859
|
-
<a href="
|
|
867
|
+
<a href="app-install.html" class="md-nav__link">
|
|
860
868
|
|
|
861
869
|
|
|
862
870
|
<span class="md-ellipsis">
|
|
863
|
-
|
|
871
|
+
Installing and Using Apps
|
|
864
872
|
</span>
|
|
865
873
|
|
|
866
874
|
|
|
@@ -877,11 +885,11 @@
|
|
|
877
885
|
|
|
878
886
|
|
|
879
887
|
<li class="md-nav__item">
|
|
880
|
-
<a href="
|
|
888
|
+
<a href="external-authentication.html" class="md-nav__link">
|
|
881
889
|
|
|
882
890
|
|
|
883
891
|
<span class="md-ellipsis">
|
|
884
|
-
|
|
892
|
+
External Authentication (Optional)
|
|
885
893
|
</span>
|
|
886
894
|
|
|
887
895
|
|
|
@@ -891,6 +899,52 @@
|
|
|
891
899
|
|
|
892
900
|
|
|
893
901
|
|
|
902
|
+
</ul>
|
|
903
|
+
</nav>
|
|
904
|
+
|
|
905
|
+
</li>
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2" >
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
<label class="md-nav__link" for="__nav_2_1_2" id="__nav_2_1_2_label" tabindex="0">
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
<span class="md-ellipsis">
|
|
934
|
+
Installation Extras
|
|
935
|
+
</span>
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
<span class="md-nav__icon md-icon"></span>
|
|
939
|
+
</label>
|
|
940
|
+
|
|
941
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_2_label" aria-expanded="false">
|
|
942
|
+
<label class="md-nav__title" for="__nav_2_1_2">
|
|
943
|
+
<span class="md-nav__icon md-icon"></span>
|
|
944
|
+
Installation Extras
|
|
945
|
+
</label>
|
|
946
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
947
|
+
|
|
894
948
|
|
|
895
949
|
|
|
896
950
|
|
|
@@ -898,7 +952,7 @@
|
|
|
898
952
|
|
|
899
953
|
|
|
900
954
|
<li class="md-nav__item">
|
|
901
|
-
<a href="docker.html" class="md-nav__link">
|
|
955
|
+
<a href="../installation-extras/docker.html" class="md-nav__link">
|
|
902
956
|
|
|
903
957
|
|
|
904
958
|
<span class="md-ellipsis">
|
|
@@ -919,7 +973,7 @@
|
|
|
919
973
|
|
|
920
974
|
|
|
921
975
|
<li class="md-nav__item">
|
|
922
|
-
<a href="health-checks.html" class="md-nav__link">
|
|
976
|
+
<a href="../installation-extras/health-checks.html" class="md-nav__link">
|
|
923
977
|
|
|
924
978
|
|
|
925
979
|
<span class="md-ellipsis">
|
|
@@ -940,7 +994,7 @@
|
|
|
940
994
|
|
|
941
995
|
|
|
942
996
|
<li class="md-nav__item">
|
|
943
|
-
<a href="selinux-troubleshooting.html" class="md-nav__link">
|
|
997
|
+
<a href="../installation-extras/selinux-troubleshooting.html" class="md-nav__link">
|
|
944
998
|
|
|
945
999
|
|
|
946
1000
|
<span class="md-ellipsis">
|
|
@@ -979,10 +1033,10 @@
|
|
|
979
1033
|
|
|
980
1034
|
|
|
981
1035
|
|
|
982
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1036
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3" >
|
|
983
1037
|
|
|
984
1038
|
|
|
985
|
-
<label class="md-nav__link" for="
|
|
1039
|
+
<label class="md-nav__link" for="__nav_2_1_3" id="__nav_2_1_3_label" tabindex="0">
|
|
986
1040
|
|
|
987
1041
|
|
|
988
1042
|
<span class="md-ellipsis">
|
|
@@ -993,8 +1047,8 @@
|
|
|
993
1047
|
<span class="md-nav__icon md-icon"></span>
|
|
994
1048
|
</label>
|
|
995
1049
|
|
|
996
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
997
|
-
<label class="md-nav__title" for="
|
|
1050
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_3_label" aria-expanded="false">
|
|
1051
|
+
<label class="md-nav__title" for="__nav_2_1_3">
|
|
998
1052
|
<span class="md-nav__icon md-icon"></span>
|
|
999
1053
|
Upgrading
|
|
1000
1054
|
</label>
|
|
@@ -1059,7 +1113,7 @@
|
|
|
1059
1113
|
|
|
1060
1114
|
|
|
1061
1115
|
|
|
1062
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1116
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3_3" >
|
|
1063
1117
|
|
|
1064
1118
|
|
|
1065
1119
|
|
|
@@ -1075,14 +1129,14 @@
|
|
|
1075
1129
|
</a>
|
|
1076
1130
|
|
|
1077
1131
|
|
|
1078
|
-
<label class="md-nav__link " for="
|
|
1132
|
+
<label class="md-nav__link " for="__nav_2_1_3_3" id="__nav_2_1_3_3_label" tabindex="0">
|
|
1079
1133
|
<span class="md-nav__icon md-icon"></span>
|
|
1080
1134
|
</label>
|
|
1081
1135
|
|
|
1082
1136
|
</div>
|
|
1083
1137
|
|
|
1084
|
-
<nav class="md-nav" data-md-level="4" aria-labelledby="
|
|
1085
|
-
<label class="md-nav__title" for="
|
|
1138
|
+
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_1_3_3_label" aria-expanded="false">
|
|
1139
|
+
<label class="md-nav__title" for="__nav_2_1_3_3">
|
|
1086
1140
|
<span class="md-nav__icon md-icon"></span>
|
|
1087
1141
|
Upgrading Nautobot from v1.X to v2.0
|
|
1088
1142
|
</label>
|
|
@@ -1126,7 +1180,7 @@
|
|
|
1126
1180
|
|
|
1127
1181
|
|
|
1128
1182
|
|
|
1129
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1183
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3_3_2" >
|
|
1130
1184
|
|
|
1131
1185
|
|
|
1132
1186
|
|
|
@@ -1142,14 +1196,14 @@
|
|
|
1142
1196
|
</a>
|
|
1143
1197
|
|
|
1144
1198
|
|
|
1145
|
-
<label class="md-nav__link " for="
|
|
1199
|
+
<label class="md-nav__link " for="__nav_2_1_3_3_2" id="__nav_2_1_3_3_2_label" tabindex="0">
|
|
1146
1200
|
<span class="md-nav__icon md-icon"></span>
|
|
1147
1201
|
</label>
|
|
1148
1202
|
|
|
1149
1203
|
</div>
|
|
1150
1204
|
|
|
1151
|
-
<nav class="md-nav" data-md-level="5" aria-labelledby="
|
|
1152
|
-
<label class="md-nav__title" for="
|
|
1205
|
+
<nav class="md-nav" data-md-level="5" aria-labelledby="__nav_2_1_3_3_2_label" aria-expanded="false">
|
|
1206
|
+
<label class="md-nav__title" for="__nav_2_1_3_3_2">
|
|
1153
1207
|
<span class="md-nav__icon md-icon"></span>
|
|
1154
1208
|
IPAM Migration Guide
|
|
1155
1209
|
</label>
|
|
@@ -1280,10 +1334,10 @@
|
|
|
1280
1334
|
|
|
1281
1335
|
|
|
1282
1336
|
|
|
1283
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1337
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4" >
|
|
1284
1338
|
|
|
1285
1339
|
|
|
1286
|
-
<label class="md-nav__link" for="
|
|
1340
|
+
<label class="md-nav__link" for="__nav_2_1_4" id="__nav_2_1_4_label" tabindex="0">
|
|
1287
1341
|
|
|
1288
1342
|
|
|
1289
1343
|
<span class="md-ellipsis">
|
|
@@ -1294,8 +1348,8 @@
|
|
|
1294
1348
|
<span class="md-nav__icon md-icon"></span>
|
|
1295
1349
|
</label>
|
|
1296
1350
|
|
|
1297
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
1298
|
-
<label class="md-nav__title" for="
|
|
1351
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_4_label" aria-expanded="false">
|
|
1352
|
+
<label class="md-nav__title" for="__nav_2_1_4">
|
|
1299
1353
|
<span class="md-nav__icon md-icon"></span>
|
|
1300
1354
|
Migration
|
|
1301
1355
|
</label>
|
|
@@ -1368,7 +1422,7 @@
|
|
|
1368
1422
|
|
|
1369
1423
|
|
|
1370
1424
|
|
|
1371
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1425
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5" >
|
|
1372
1426
|
|
|
1373
1427
|
|
|
1374
1428
|
|
|
@@ -1384,14 +1438,14 @@
|
|
|
1384
1438
|
</a>
|
|
1385
1439
|
|
|
1386
1440
|
|
|
1387
|
-
<label class="md-nav__link " for="
|
|
1441
|
+
<label class="md-nav__link " for="__nav_2_1_5" id="__nav_2_1_5_label" tabindex="0">
|
|
1388
1442
|
<span class="md-nav__icon md-icon"></span>
|
|
1389
1443
|
</label>
|
|
1390
1444
|
|
|
1391
1445
|
</div>
|
|
1392
1446
|
|
|
1393
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
1394
|
-
<label class="md-nav__title" for="
|
|
1447
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_5_label" aria-expanded="false">
|
|
1448
|
+
<label class="md-nav__title" for="__nav_2_1_5">
|
|
1395
1449
|
<span class="md-nav__icon md-icon"></span>
|
|
1396
1450
|
Configuration
|
|
1397
1451
|
</label>
|
|
@@ -1477,10 +1531,10 @@
|
|
|
1477
1531
|
|
|
1478
1532
|
|
|
1479
1533
|
|
|
1480
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1534
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5_4" >
|
|
1481
1535
|
|
|
1482
1536
|
|
|
1483
|
-
<label class="md-nav__link" for="
|
|
1537
|
+
<label class="md-nav__link" for="__nav_2_1_5_4" id="__nav_2_1_5_4_label" tabindex="0">
|
|
1484
1538
|
|
|
1485
1539
|
|
|
1486
1540
|
<span class="md-ellipsis">
|
|
@@ -1491,8 +1545,8 @@
|
|
|
1491
1545
|
<span class="md-nav__icon md-icon"></span>
|
|
1492
1546
|
</label>
|
|
1493
1547
|
|
|
1494
|
-
<nav class="md-nav" data-md-level="4" aria-labelledby="
|
|
1495
|
-
<label class="md-nav__title" for="
|
|
1548
|
+
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_1_5_4_label" aria-expanded="false">
|
|
1549
|
+
<label class="md-nav__title" for="__nav_2_1_5_4">
|
|
1496
1550
|
<span class="md-nav__icon md-icon"></span>
|
|
1497
1551
|
External Authentication
|
|
1498
1552
|
</label>
|
|
@@ -1594,10 +1648,10 @@
|
|
|
1594
1648
|
|
|
1595
1649
|
|
|
1596
1650
|
|
|
1597
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1651
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_6" >
|
|
1598
1652
|
|
|
1599
1653
|
|
|
1600
|
-
<label class="md-nav__link" for="
|
|
1654
|
+
<label class="md-nav__link" for="__nav_2_1_6" id="__nav_2_1_6_label" tabindex="0">
|
|
1601
1655
|
|
|
1602
1656
|
|
|
1603
1657
|
<span class="md-ellipsis">
|
|
@@ -1608,8 +1662,8 @@
|
|
|
1608
1662
|
<span class="md-nav__icon md-icon"></span>
|
|
1609
1663
|
</label>
|
|
1610
1664
|
|
|
1611
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
1612
|
-
<label class="md-nav__title" for="
|
|
1665
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_6_label" aria-expanded="false">
|
|
1666
|
+
<label class="md-nav__title" for="__nav_2_1_6">
|
|
1613
1667
|
<span class="md-nav__icon md-icon"></span>
|
|
1614
1668
|
Tools
|
|
1615
1669
|
</label>
|
|
@@ -1682,10 +1736,10 @@
|
|
|
1682
1736
|
|
|
1683
1737
|
|
|
1684
1738
|
|
|
1685
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
1739
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_7" >
|
|
1686
1740
|
|
|
1687
1741
|
|
|
1688
|
-
<label class="md-nav__link" for="
|
|
1742
|
+
<label class="md-nav__link" for="__nav_2_1_7" id="__nav_2_1_7_label" tabindex="0">
|
|
1689
1743
|
|
|
1690
1744
|
|
|
1691
1745
|
<span class="md-ellipsis">
|
|
@@ -1696,8 +1750,8 @@
|
|
|
1696
1750
|
<span class="md-nav__icon md-icon"></span>
|
|
1697
1751
|
</label>
|
|
1698
1752
|
|
|
1699
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
1700
|
-
<label class="md-nav__title" for="
|
|
1753
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_7_label" aria-expanded="false">
|
|
1754
|
+
<label class="md-nav__title" for="__nav_2_1_7">
|
|
1701
1755
|
<span class="md-nav__icon md-icon"></span>
|
|
1702
1756
|
Guides
|
|
1703
1757
|
</label>
|
|
@@ -8139,77 +8193,89 @@
|
|
|
8139
8193
|
<p>This document will guide you through setting up uWSGI and establishing Nautobot web and Celery worker services to run on system startup.</p>
|
|
8140
8194
|
<h3 id="web-service">Web Service<a class="headerlink" href="#web-service" title="Permanent link">¶</a></h3>
|
|
8141
8195
|
<p>Nautobot includes a <code>nautobot-server start</code> management command that directly invokes uWSGI. This command behaves exactly as uWSGI does, but allows us to maintain a single entrypoint into the Nautobot application.</p>
|
|
8142
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>nautobot-server start --help
|
|
8196
|
+
<div class="highlight"><span class="filename">Show help for the nautobot-server start command</span><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>nautobot-server start --help
|
|
8143
8197
|
</code></pre></div>
|
|
8144
8198
|
<h3 id="worker-service">Worker Service<a class="headerlink" href="#worker-service" title="Permanent link">¶</a></h3>
|
|
8145
8199
|
<p>Nautobot requires at least one worker to consume background tasks required for advanced background features. A <code>nautobot-server celery</code> command is included that directly invokes Celery. This command behaves exactly as the Celery command-line utility does, but launches it through Nautobot's environment to share Redis and database connection settings transparently.</p>
|
|
8146
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>nautobot-server celery --help
|
|
8200
|
+
<div class="highlight"><span class="filename">Show help for the Nautobot worker service</span><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>nautobot-server celery --help
|
|
8147
8201
|
</code></pre></div>
|
|
8148
|
-
<
|
|
8149
|
-
<
|
|
8202
|
+
<details class="version-changed">
|
|
8203
|
+
<summary>Changed in version 1.1.0</summary>
|
|
8150
8204
|
<p>Prior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now <em>deprecated</em>. RQ and the <code>@job</code> decorator for custom tasks were still supported for the remainder of the 1.x.y releases, but users should <a href="#migrating-to-celery-from-rq">migrate the primary worker to Celery</a>.</p>
|
|
8151
|
-
</
|
|
8152
|
-
<
|
|
8153
|
-
<
|
|
8205
|
+
</details>
|
|
8206
|
+
<details class="version-removed">
|
|
8207
|
+
<summary>Removed in version 2.0.0</summary>
|
|
8154
8208
|
<p>Support for RQ has been completely removed from Nautobot.</p>
|
|
8155
|
-
</
|
|
8209
|
+
</details>
|
|
8156
8210
|
<h4 id="advanced-task-queue-configuration">Advanced Task Queue Configuration<a class="headerlink" href="#advanced-task-queue-configuration" title="Permanent link">¶</a></h4>
|
|
8157
8211
|
<p>You may want to deploy multiple workers and/or multiple queues. For more information see the <a href="../guides/celery-queues.html">task queues</a> documentation.</p>
|
|
8158
8212
|
<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">¶</a></h2>
|
|
8159
|
-
<p>As the <code>nautobot</code> user, copy and paste the following into
|
|
8160
|
-
<div class="
|
|
8161
|
-
<
|
|
8162
|
-
<
|
|
8163
|
-
<a id="__codelineno-2-
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
<
|
|
8167
|
-
<a id="__codelineno-
|
|
8168
|
-
|
|
8169
|
-
|
|
8170
|
-
|
|
8171
|
-
|
|
8172
|
-
<a id="__codelineno-
|
|
8173
|
-
<a id="__codelineno-2
|
|
8174
|
-
<a id="__codelineno-
|
|
8175
|
-
<a id="__codelineno-
|
|
8176
|
-
<a id="__codelineno-
|
|
8177
|
-
<a id="__codelineno-
|
|
8178
|
-
<a id="__codelineno-
|
|
8179
|
-
<a id="__codelineno-
|
|
8180
|
-
<a id="__codelineno-
|
|
8181
|
-
<a id="__codelineno-
|
|
8182
|
-
<a id="__codelineno-
|
|
8183
|
-
<a id="__codelineno-
|
|
8184
|
-
<a id="__codelineno-
|
|
8185
|
-
<a id="__codelineno-
|
|
8186
|
-
<a id="__codelineno-
|
|
8187
|
-
<a id="__codelineno-
|
|
8188
|
-
<a id="__codelineno-
|
|
8189
|
-
<a id="__codelineno-
|
|
8190
|
-
<a id="__codelineno-
|
|
8191
|
-
<a id="__codelineno-
|
|
8192
|
-
<a id="__codelineno-
|
|
8193
|
-
<a id="__codelineno-
|
|
8194
|
-
<a id="__codelineno-
|
|
8195
|
-
<a id="__codelineno-
|
|
8196
|
-
<a id="__codelineno-
|
|
8197
|
-
<a id="__codelineno-
|
|
8198
|
-
<a id="__codelineno-
|
|
8199
|
-
<a id="__codelineno-
|
|
8200
|
-
<a id="__codelineno-
|
|
8201
|
-
<a id="__codelineno-
|
|
8202
|
-
<a id="__codelineno-
|
|
8203
|
-
<a id="__codelineno-
|
|
8204
|
-
<a id="__codelineno-
|
|
8205
|
-
<a id="__codelineno-
|
|
8206
|
-
<a id="__codelineno-
|
|
8207
|
-
<a id="__codelineno-
|
|
8208
|
-
<a id="__codelineno-
|
|
8209
|
-
<a id="__codelineno-
|
|
8210
|
-
<a id="__codelineno-
|
|
8211
|
-
<a id="__codelineno-
|
|
8212
|
-
<a id="__codelineno-
|
|
8213
|
+
<p>As the <code>nautobot</code> user, copy and paste the following into the file:</p>
|
|
8214
|
+
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Vim</label><label for="__tabbed_1_2">Nano</label></div>
|
|
8215
|
+
<div class="tabbed-content">
|
|
8216
|
+
<div class="tabbed-block">
|
|
8217
|
+
<div class="highlight"><span class="filename">Edit uwsgi file with Vim</span><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>vim $NAUTOBOT_ROOT/uwsgi.ini
|
|
8218
|
+
</code></pre></div>
|
|
8219
|
+
</div>
|
|
8220
|
+
<div class="tabbed-block">
|
|
8221
|
+
<div class="highlight"><span class="filename">Edit uwsgi file with Nano</span><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>nano $NAUTOBOT_ROOT/uwsgi.ini
|
|
8222
|
+
</code></pre></div>
|
|
8223
|
+
</div>
|
|
8224
|
+
</div>
|
|
8225
|
+
</div>
|
|
8226
|
+
<div class="highlight"><span class="filename">$NAUTOBOT_ROOT/uwsgi.ini</span><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="k">[uwsgi]</span>
|
|
8227
|
+
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="c1">; The IP address (typically localhost) and port that the WSGI process should listen on</span>
|
|
8228
|
+
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="na">socket</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">127.0.0.1:8001</span>
|
|
8229
|
+
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>
|
|
8230
|
+
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="c1">; Fail to start if any parameter in the configuration file isn’t explicitly understood by uWSGI</span>
|
|
8231
|
+
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="na">strict</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8232
|
+
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a>
|
|
8233
|
+
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a><span class="c1">; Enable master process to gracefully re-spawn and pre-fork workers</span>
|
|
8234
|
+
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a><span class="na">master</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8235
|
+
<a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a>
|
|
8236
|
+
<a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a><span class="c1">; Allow Python app-generated threads to run</span>
|
|
8237
|
+
<a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a><span class="na">enable-threads</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8238
|
+
<a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a>
|
|
8239
|
+
<a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a><span class="c1">;Try to remove all of the generated file/sockets during shutdown</span>
|
|
8240
|
+
<a id="__codelineno-4-15" name="__codelineno-4-15" href="#__codelineno-4-15"></a><span class="na">vacuum</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8241
|
+
<a id="__codelineno-4-16" name="__codelineno-4-16" href="#__codelineno-4-16"></a>
|
|
8242
|
+
<a id="__codelineno-4-17" name="__codelineno-4-17" href="#__codelineno-4-17"></a><span class="c1">; Do not use multiple interpreters, allowing only Nautobot to run</span>
|
|
8243
|
+
<a id="__codelineno-4-18" name="__codelineno-4-18" href="#__codelineno-4-18"></a><span class="na">single-interpreter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8244
|
+
<a id="__codelineno-4-19" name="__codelineno-4-19" href="#__codelineno-4-19"></a>
|
|
8245
|
+
<a id="__codelineno-4-20" name="__codelineno-4-20" href="#__codelineno-4-20"></a><span class="c1">; Shutdown when receiving SIGTERM (default is respawn)</span>
|
|
8246
|
+
<a id="__codelineno-4-21" name="__codelineno-4-21" href="#__codelineno-4-21"></a><span class="na">die-on-term</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8247
|
+
<a id="__codelineno-4-22" name="__codelineno-4-22" href="#__codelineno-4-22"></a>
|
|
8248
|
+
<a id="__codelineno-4-23" name="__codelineno-4-23" href="#__codelineno-4-23"></a><span class="c1">; Prevents uWSGI from starting if it is unable load Nautobot (usually due to errors)</span>
|
|
8249
|
+
<a id="__codelineno-4-24" name="__codelineno-4-24" href="#__codelineno-4-24"></a><span class="na">need-app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8250
|
+
<a id="__codelineno-4-25" name="__codelineno-4-25" href="#__codelineno-4-25"></a>
|
|
8251
|
+
<a id="__codelineno-4-26" name="__codelineno-4-26" href="#__codelineno-4-26"></a><span class="c1">; By default, uWSGI has rather verbose logging that can be noisy</span>
|
|
8252
|
+
<a id="__codelineno-4-27" name="__codelineno-4-27" href="#__codelineno-4-27"></a><span class="na">disable-logging</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8253
|
+
<a id="__codelineno-4-28" name="__codelineno-4-28" href="#__codelineno-4-28"></a>
|
|
8254
|
+
<a id="__codelineno-4-29" name="__codelineno-4-29" href="#__codelineno-4-29"></a><span class="c1">; Assert that critical 4xx and 5xx errors are still logged</span>
|
|
8255
|
+
<a id="__codelineno-4-30" name="__codelineno-4-30" href="#__codelineno-4-30"></a><span class="na">log-4xx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8256
|
+
<a id="__codelineno-4-31" name="__codelineno-4-31" href="#__codelineno-4-31"></a><span class="na">log-5xx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
|
|
8257
|
+
<a id="__codelineno-4-32" name="__codelineno-4-32" href="#__codelineno-4-32"></a>
|
|
8258
|
+
<a id="__codelineno-4-33" name="__codelineno-4-33" href="#__codelineno-4-33"></a><span class="c1">; Enable HTTP 1.1 keepalive support</span>
|
|
8259
|
+
<a id="__codelineno-4-34" name="__codelineno-4-34" href="#__codelineno-4-34"></a><span class="na">http-keepalive</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1</span>
|
|
8260
|
+
<a id="__codelineno-4-35" name="__codelineno-4-35" href="#__codelineno-4-35"></a>
|
|
8261
|
+
<a id="__codelineno-4-36" name="__codelineno-4-36" href="#__codelineno-4-36"></a><span class="c1">;</span>
|
|
8262
|
+
<a id="__codelineno-4-37" name="__codelineno-4-37" href="#__codelineno-4-37"></a><span class="c1">; Advanced settings (disabled by default)</span>
|
|
8263
|
+
<a id="__codelineno-4-38" name="__codelineno-4-38" href="#__codelineno-4-38"></a><span class="c1">; Customize these for your environment if and only if you need them.</span>
|
|
8264
|
+
<a id="__codelineno-4-39" name="__codelineno-4-39" href="#__codelineno-4-39"></a><span class="c1">; Ref: https://uwsgi-docs.readthedocs.io/en/latest/Options.html</span>
|
|
8265
|
+
<a id="__codelineno-4-40" name="__codelineno-4-40" href="#__codelineno-4-40"></a><span class="c1">;</span>
|
|
8266
|
+
<a id="__codelineno-4-41" name="__codelineno-4-41" href="#__codelineno-4-41"></a>
|
|
8267
|
+
<a id="__codelineno-4-42" name="__codelineno-4-42" href="#__codelineno-4-42"></a><span class="c1">; Number of uWSGI workers to spawn. This should typically be 2n+1, where n is the number of CPU cores present.</span>
|
|
8268
|
+
<a id="__codelineno-4-43" name="__codelineno-4-43" href="#__codelineno-4-43"></a><span class="c1">; processes = 5</span>
|
|
8269
|
+
<a id="__codelineno-4-44" name="__codelineno-4-44" href="#__codelineno-4-44"></a>
|
|
8270
|
+
<a id="__codelineno-4-45" name="__codelineno-4-45" href="#__codelineno-4-45"></a><span class="c1">; If using subdirectory hosting e.g. example.com/nautobot, you must uncomment this line. Otherwise you'll get double paths e.g. example.com/nautobot/nautobot/.</span>
|
|
8271
|
+
<a id="__codelineno-4-46" name="__codelineno-4-46" href="#__codelineno-4-46"></a><span class="c1">; Ref: https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.11.html#fixpathinfo-routing-action</span>
|
|
8272
|
+
<a id="__codelineno-4-47" name="__codelineno-4-47" href="#__codelineno-4-47"></a><span class="c1">; route-run = fixpathinfo:</span>
|
|
8273
|
+
<a id="__codelineno-4-48" name="__codelineno-4-48" href="#__codelineno-4-48"></a>
|
|
8274
|
+
<a id="__codelineno-4-49" name="__codelineno-4-49" href="#__codelineno-4-49"></a><span class="c1">; If hosted behind a load balancer uncomment these lines, the harakiri timeout should be greater than your load balancer timeout.</span>
|
|
8275
|
+
<a id="__codelineno-4-50" name="__codelineno-4-50" href="#__codelineno-4-50"></a><span class="c1">; Ref: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html?highlight=keepalive#http-keep-alive</span>
|
|
8276
|
+
<a id="__codelineno-4-51" name="__codelineno-4-51" href="#__codelineno-4-51"></a><span class="c1">; harakiri = 65</span>
|
|
8277
|
+
<a id="__codelineno-4-52" name="__codelineno-4-52" href="#__codelineno-4-52"></a><span class="c1">; add-header = Connection: Keep-Alive</span>
|
|
8278
|
+
<a id="__codelineno-4-53" name="__codelineno-4-53" href="#__codelineno-4-53"></a><span class="c1">; http-keepalive = 1</span>
|
|
8213
8279
|
</code></pre></div>
|
|
8214
8280
|
<p>This configuration should suffice for most initial installations, you may wish to edit this file to change the bound IP
|
|
8215
8281
|
address and/or port number, or to make performance-related adjustments. See <a href="https://uwsgi-docs.readthedocs.io/en/latest/Configuration.html">uWSGI
|
|
@@ -8225,109 +8291,148 @@ documentation</a> for the available configuration parameters.</p>
|
|
|
8225
8291
|
<p>The following steps must be performed with root permissions.</p>
|
|
8226
8292
|
</div>
|
|
8227
8293
|
<h3 id="nautobot-service">Nautobot Service<a class="headerlink" href="#nautobot-service" title="Permanent link">¶</a></h3>
|
|
8228
|
-
<p>First, we'll establish the <code>systemd</code> unit file for the Nautobot web service. Copy and paste the following into
|
|
8229
|
-
<div class="
|
|
8230
|
-
<
|
|
8231
|
-
<
|
|
8232
|
-
<a id="__codelineno-
|
|
8233
|
-
|
|
8234
|
-
|
|
8235
|
-
<
|
|
8236
|
-
<a id="__codelineno-
|
|
8237
|
-
|
|
8238
|
-
|
|
8239
|
-
|
|
8240
|
-
|
|
8241
|
-
<a id="__codelineno-
|
|
8242
|
-
<a id="__codelineno-
|
|
8243
|
-
<a id="__codelineno-3
|
|
8244
|
-
<a id="__codelineno-
|
|
8245
|
-
<a id="__codelineno-
|
|
8246
|
-
<a id="__codelineno-
|
|
8247
|
-
<a id="__codelineno-
|
|
8248
|
-
<a id="__codelineno-
|
|
8249
|
-
<a id="__codelineno-
|
|
8250
|
-
<a id="__codelineno-
|
|
8251
|
-
<a id="__codelineno-
|
|
8252
|
-
<a id="__codelineno-
|
|
8253
|
-
<a id="__codelineno-
|
|
8294
|
+
<p>First, we'll establish the <code>systemd</code> unit file for the Nautobot web service. Copy and paste the following into the Nautobot service file.</p>
|
|
8295
|
+
<div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Vim</label><label for="__tabbed_2_2">Nano</label></div>
|
|
8296
|
+
<div class="tabbed-content">
|
|
8297
|
+
<div class="tabbed-block">
|
|
8298
|
+
<div class="highlight"><span class="filename">Edit Nautobot service file with Vim</span><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>sudo vim /etc/systemd/system/nautobot.service
|
|
8299
|
+
</code></pre></div>
|
|
8300
|
+
</div>
|
|
8301
|
+
<div class="tabbed-block">
|
|
8302
|
+
<div class="highlight"><span class="filename">Edit Nautobot service file with Nano</span><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>sudo nano /etc/systemd/system/nautobot.service
|
|
8303
|
+
</code></pre></div>
|
|
8304
|
+
</div>
|
|
8305
|
+
</div>
|
|
8306
|
+
</div>
|
|
8307
|
+
<div class="highlight"><span class="filename">/etc/systemd/system/nautobot.service</span><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">[Unit]</span>
|
|
8308
|
+
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="na">Description</span><span class="o">=</span><span class="s">Nautobot WSGI Service</span>
|
|
8309
|
+
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="na">Documentation</span><span class="o">=</span><span class="s">https://docs.nautobot.com/projects/core/en/stable/</span>
|
|
8310
|
+
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="na">After</span><span class="o">=</span><span class="s">network-online.target</span>
|
|
8311
|
+
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="na">Wants</span><span class="o">=</span><span class="s">network-online.target</span>
|
|
8312
|
+
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a>
|
|
8313
|
+
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="k">[Service]</span>
|
|
8314
|
+
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="na">Type</span><span class="o">=</span><span class="s">simple</span>
|
|
8315
|
+
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="na">Environment</span><span class="o">=</span><span class="s">"NAUTOBOT_ROOT=/opt/nautobot"</span>
|
|
8316
|
+
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a>
|
|
8317
|
+
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="na">User</span><span class="o">=</span><span class="s">nautobot</span>
|
|
8318
|
+
<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a><span class="na">Group</span><span class="o">=</span><span class="s">nautobot</span>
|
|
8319
|
+
<a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a><span class="na">PIDFile</span><span class="o">=</span><span class="s">/var/tmp/nautobot.pid</span>
|
|
8320
|
+
<a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a><span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/opt/nautobot</span>
|
|
8321
|
+
<a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a>
|
|
8322
|
+
<a id="__codelineno-7-16" name="__codelineno-7-16" href="#__codelineno-7-16"></a><span class="na">ExecStart</span><span class="o">=</span><span class="s">/opt/nautobot/bin/nautobot-server start --pidfile /var/tmp/nautobot.pid --ini /opt/nautobot/uwsgi.ini</span>
|
|
8323
|
+
<a id="__codelineno-7-17" name="__codelineno-7-17" href="#__codelineno-7-17"></a><span class="na">ExecStop</span><span class="o">=</span><span class="s">/opt/nautobot/bin/nautobot-server start --stop /var/tmp/nautobot.pid</span>
|
|
8324
|
+
<a id="__codelineno-7-18" name="__codelineno-7-18" href="#__codelineno-7-18"></a><span class="na">ExecReload</span><span class="o">=</span><span class="s">/opt/nautobot/bin/nautobot-server start --reload /var/tmp/nautobot.pid</span>
|
|
8325
|
+
<a id="__codelineno-7-19" name="__codelineno-7-19" href="#__codelineno-7-19"></a>
|
|
8326
|
+
<a id="__codelineno-7-20" name="__codelineno-7-20" href="#__codelineno-7-20"></a><span class="na">Restart</span><span class="o">=</span><span class="s">on-failure</span>
|
|
8327
|
+
<a id="__codelineno-7-21" name="__codelineno-7-21" href="#__codelineno-7-21"></a><span class="na">RestartSec</span><span class="o">=</span><span class="s">30</span>
|
|
8328
|
+
<a id="__codelineno-7-22" name="__codelineno-7-22" href="#__codelineno-7-22"></a><span class="na">PrivateTmp</span><span class="o">=</span><span class="s">true</span>
|
|
8329
|
+
<a id="__codelineno-7-23" name="__codelineno-7-23" href="#__codelineno-7-23"></a>
|
|
8330
|
+
<a id="__codelineno-7-24" name="__codelineno-7-24" href="#__codelineno-7-24"></a><span class="k">[Install]</span>
|
|
8331
|
+
<a id="__codelineno-7-25" name="__codelineno-7-25" href="#__codelineno-7-25"></a><span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span>
|
|
8254
8332
|
</code></pre></div>
|
|
8255
8333
|
<h3 id="nautobot-background-services">Nautobot Background Services<a class="headerlink" href="#nautobot-background-services" title="Permanent link">¶</a></h3>
|
|
8256
|
-
<
|
|
8257
|
-
<
|
|
8334
|
+
<details class="version-changed">
|
|
8335
|
+
<summary>Changed in version 1.1.0</summary>
|
|
8258
8336
|
<p>Prior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now <em>deprecated</em> and has been replaced with Celery. RQ and the <code>@job</code> decorator for custom tasks were still supported for the remainder of the 1.x.y releases, but users should <a href="#migrating-to-celery-from-rq">migrate the primary worker to Celery</a>.</p>
|
|
8259
|
-
</
|
|
8260
|
-
<
|
|
8261
|
-
<
|
|
8337
|
+
</details>
|
|
8338
|
+
<details class="version-removed">
|
|
8339
|
+
<summary>Removed in version 2.0.0</summary>
|
|
8262
8340
|
<p>RQ support has been fully removed from Nautobot.</p>
|
|
8263
|
-
</
|
|
8341
|
+
</details>
|
|
8264
8342
|
<p>Next, we will setup the <code>systemd</code> units for the Celery worker and Celery Beat scheduler.</p>
|
|
8265
8343
|
<h4 id="celery-worker">Celery Worker<a class="headerlink" href="#celery-worker" title="Permanent link">¶</a></h4>
|
|
8266
|
-
<
|
|
8267
|
-
<
|
|
8268
|
-
</
|
|
8344
|
+
<details class="version-added">
|
|
8345
|
+
<summary>Added in version 1.1.0</summary>
|
|
8346
|
+
</details>
|
|
8269
8347
|
<p>The Celery worker service consumes tasks from background task queues and is required for taking advantage of advanced
|
|
8270
8348
|
Nautobot features including <a href="../../platform-functionality/jobs/index.html">Jobs</a>, <a href="../../platform-functionality/customfield.html">Custom
|
|
8271
8349
|
Fields</a>, and <a href="../../platform-functionality/gitrepository.html">Git Repositories</a>, among others.</p>
|
|
8272
|
-
<p>To establish the <code>systemd</code> unit file for the Celery worker, copy and paste the following into
|
|
8273
|
-
<div class="
|
|
8274
|
-
<
|
|
8275
|
-
<
|
|
8276
|
-
<a id="__codelineno-
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
<
|
|
8280
|
-
<a id="__codelineno-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
<a id="__codelineno-
|
|
8286
|
-
<a id="__codelineno-
|
|
8287
|
-
<a id="__codelineno-
|
|
8288
|
-
<a id="__codelineno-4
|
|
8289
|
-
<a id="__codelineno-
|
|
8290
|
-
<a id="__codelineno-
|
|
8291
|
-
<a id="__codelineno-
|
|
8292
|
-
<a id="__codelineno-
|
|
8293
|
-
<a id="__codelineno-
|
|
8294
|
-
<a id="__codelineno-
|
|
8295
|
-
<a id="__codelineno-
|
|
8350
|
+
<p>To establish the <code>systemd</code> unit file for the Celery worker, copy and paste the following into the Celery service definition.</p>
|
|
8351
|
+
<div class="tabbed-set tabbed-alternate" data-tabs="3:2"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">Vim</label><label for="__tabbed_3_2">Nano</label></div>
|
|
8352
|
+
<div class="tabbed-content">
|
|
8353
|
+
<div class="tabbed-block">
|
|
8354
|
+
<div class="highlight"><span class="filename">Edit worker service with Vim</span><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>sudo vim /etc/systemd/system/nautobot-worker.service
|
|
8355
|
+
</code></pre></div>
|
|
8356
|
+
</div>
|
|
8357
|
+
<div class="tabbed-block">
|
|
8358
|
+
<div class="highlight"><span class="filename">Edit worker service with Nano</span><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>sudo nano /etc/systemd/system/nautobot-worker.service
|
|
8359
|
+
</code></pre></div>
|
|
8360
|
+
</div>
|
|
8361
|
+
</div>
|
|
8362
|
+
</div>
|
|
8363
|
+
<div class="highlight"><span class="filename">/etc/systemd/system/nautobot-worker.service</span><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="k">[Unit]</span>
|
|
8364
|
+
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="na">Description</span><span class="o">=</span><span class="s">Nautobot Celery Worker</span>
|
|
8365
|
+
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="na">Documentation</span><span class="o">=</span><span class="s">https://docs.nautobot.com/projects/core/en/stable/</span>
|
|
8366
|
+
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="na">After</span><span class="o">=</span><span class="s">network-online.target</span>
|
|
8367
|
+
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="na">Wants</span><span class="o">=</span><span class="s">network-online.target</span>
|
|
8368
|
+
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a>
|
|
8369
|
+
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="k">[Service]</span>
|
|
8370
|
+
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="na">Type</span><span class="o">=</span><span class="s">exec</span>
|
|
8371
|
+
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="na">Environment</span><span class="o">=</span><span class="s">"NAUTOBOT_ROOT=/opt/nautobot"</span>
|
|
8372
|
+
<a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a>
|
|
8373
|
+
<a id="__codelineno-10-11" name="__codelineno-10-11" href="#__codelineno-10-11"></a><span class="na">User</span><span class="o">=</span><span class="s">nautobot</span>
|
|
8374
|
+
<a id="__codelineno-10-12" name="__codelineno-10-12" href="#__codelineno-10-12"></a><span class="na">Group</span><span class="o">=</span><span class="s">nautobot</span>
|
|
8375
|
+
<a id="__codelineno-10-13" name="__codelineno-10-13" href="#__codelineno-10-13"></a><span class="na">PIDFile</span><span class="o">=</span><span class="s">/var/tmp/nautobot-worker.pid</span>
|
|
8376
|
+
<a id="__codelineno-10-14" name="__codelineno-10-14" href="#__codelineno-10-14"></a><span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/opt/nautobot</span>
|
|
8377
|
+
<a id="__codelineno-10-15" name="__codelineno-10-15" href="#__codelineno-10-15"></a>
|
|
8378
|
+
<a id="__codelineno-10-16" name="__codelineno-10-16" href="#__codelineno-10-16"></a><span class="na">ExecStart</span><span class="o">=</span><span class="s">/opt/nautobot/bin/nautobot-server celery worker --loglevel INFO --pidfile /var/tmp/nautobot-worker.pid</span>
|
|
8379
|
+
<a id="__codelineno-10-17" name="__codelineno-10-17" href="#__codelineno-10-17"></a>
|
|
8380
|
+
<a id="__codelineno-10-18" name="__codelineno-10-18" href="#__codelineno-10-18"></a><span class="na">Restart</span><span class="o">=</span><span class="s">always</span>
|
|
8381
|
+
<a id="__codelineno-10-19" name="__codelineno-10-19" href="#__codelineno-10-19"></a><span class="na">RestartSec</span><span class="o">=</span><span class="s">30</span>
|
|
8382
|
+
<a id="__codelineno-10-20" name="__codelineno-10-20" href="#__codelineno-10-20"></a><span class="na">PrivateTmp</span><span class="o">=</span><span class="s">true</span>
|
|
8383
|
+
<a id="__codelineno-10-21" name="__codelineno-10-21" href="#__codelineno-10-21"></a>
|
|
8384
|
+
<a id="__codelineno-10-22" name="__codelineno-10-22" href="#__codelineno-10-22"></a><span class="k">[Install]</span>
|
|
8385
|
+
<a id="__codelineno-10-23" name="__codelineno-10-23" href="#__codelineno-10-23"></a><span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span>
|
|
8296
8386
|
</code></pre></div>
|
|
8297
8387
|
<h4 id="celery-beat-scheduler">Celery Beat Scheduler<a class="headerlink" href="#celery-beat-scheduler" title="Permanent link">¶</a></h4>
|
|
8298
|
-
<
|
|
8299
|
-
<
|
|
8388
|
+
<details class="version-added">
|
|
8389
|
+
<summary>Added in version 1.2.0</summary>
|
|
8390
|
+
</details>
|
|
8391
|
+
<p>The Celery Beat scheduler enables the periodic execution of and scheduling of background tasks. It is required to take advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-approvals.html">job scheduling and approval</a> features.</p>
|
|
8392
|
+
<div class="admonition warning">
|
|
8393
|
+
<p class="admonition-title">Warning</p>
|
|
8394
|
+
<p>You should only have a single instance of the scheduler running. Having more than one scheduler will cause multiple task executions.</p>
|
|
8300
8395
|
</div>
|
|
8301
|
-
<p>The Celery Beat scheduler enables the periodic execution of and scheduling of background tasks. It is required to take
|
|
8302
|
-
advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-approvals.html">job scheduling and approval</a> features.</p>
|
|
8303
8396
|
<div class="admonition warning">
|
|
8304
8397
|
<p class="admonition-title">Warning</p>
|
|
8305
8398
|
<p>It's important that the <a href="../configuration/optional-settings.html#time_zone"><code>TIME_ZONE</code></a> setting on your Nautobot servers and Celery Beat server match to prevent scheduled jobs from running at the wrong time. See the <a href="../configuration/time-zones.html">time zones</a> documentation for more information.</p>
|
|
8306
8399
|
</div>
|
|
8307
|
-
<p>To establish the <code>systemd</code> unit file for the Celery Beat scheduler, copy and paste the following into
|
|
8308
|
-
<div class="
|
|
8309
|
-
<
|
|
8310
|
-
<
|
|
8311
|
-
<a id="__codelineno-
|
|
8312
|
-
|
|
8313
|
-
|
|
8314
|
-
<
|
|
8315
|
-
<a id="__codelineno-
|
|
8316
|
-
|
|
8317
|
-
|
|
8318
|
-
|
|
8319
|
-
|
|
8320
|
-
<a id="__codelineno-
|
|
8321
|
-
<a id="__codelineno-
|
|
8322
|
-
<a id="__codelineno-
|
|
8323
|
-
<a id="__codelineno-
|
|
8324
|
-
<a id="__codelineno-5
|
|
8325
|
-
<a id="__codelineno-
|
|
8326
|
-
<a id="__codelineno-
|
|
8327
|
-
<a id="__codelineno-
|
|
8328
|
-
<a id="__codelineno-
|
|
8329
|
-
<a id="__codelineno-
|
|
8330
|
-
<a id="__codelineno-
|
|
8400
|
+
<p>To establish the <code>systemd</code> unit file for the Celery Beat scheduler, copy and paste the following into the scheduler service file.</p>
|
|
8401
|
+
<div class="tabbed-set tabbed-alternate" data-tabs="4:2"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">Vim</label><label for="__tabbed_4_2">Nano</label></div>
|
|
8402
|
+
<div class="tabbed-content">
|
|
8403
|
+
<div class="tabbed-block">
|
|
8404
|
+
<div class="highlight"><span class="filename">Edit scheduler service file with Vim</span><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>sudo vim /etc/systemd/system/nautobot-scheduler.service
|
|
8405
|
+
</code></pre></div>
|
|
8406
|
+
</div>
|
|
8407
|
+
<div class="tabbed-block">
|
|
8408
|
+
<div class="highlight"><span class="filename">Edit scheduler service file with Nano</span><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>sudo nano /etc/systemd/system/nautobot-scheduler.service
|
|
8409
|
+
</code></pre></div>
|
|
8410
|
+
</div>
|
|
8411
|
+
</div>
|
|
8412
|
+
</div>
|
|
8413
|
+
<div class="highlight"><span class="filename">/etc/systemd/system/nautobot-scheduler.service</span><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="k">[Unit]</span>
|
|
8414
|
+
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="na">Description</span><span class="o">=</span><span class="s">Nautobot Celery Beat Scheduler</span>
|
|
8415
|
+
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="na">Documentation</span><span class="o">=</span><span class="s">https://docs.nautobot.com/projects/core/en/stable/</span>
|
|
8416
|
+
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="na">After</span><span class="o">=</span><span class="s">network-online.target</span>
|
|
8417
|
+
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="na">Wants</span><span class="o">=</span><span class="s">network-online.target</span>
|
|
8418
|
+
<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a>
|
|
8419
|
+
<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a><span class="k">[Service]</span>
|
|
8420
|
+
<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a><span class="na">Type</span><span class="o">=</span><span class="s">exec</span>
|
|
8421
|
+
<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a><span class="na">Environment</span><span class="o">=</span><span class="s">"NAUTOBOT_ROOT=/opt/nautobot"</span>
|
|
8422
|
+
<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a>
|
|
8423
|
+
<a id="__codelineno-13-11" name="__codelineno-13-11" href="#__codelineno-13-11"></a><span class="na">User</span><span class="o">=</span><span class="s">nautobot</span>
|
|
8424
|
+
<a id="__codelineno-13-12" name="__codelineno-13-12" href="#__codelineno-13-12"></a><span class="na">Group</span><span class="o">=</span><span class="s">nautobot</span>
|
|
8425
|
+
<a id="__codelineno-13-13" name="__codelineno-13-13" href="#__codelineno-13-13"></a><span class="na">PIDFile</span><span class="o">=</span><span class="s">/var/tmp/nautobot-scheduler.pid</span>
|
|
8426
|
+
<a id="__codelineno-13-14" name="__codelineno-13-14" href="#__codelineno-13-14"></a><span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/opt/nautobot</span>
|
|
8427
|
+
<a id="__codelineno-13-15" name="__codelineno-13-15" href="#__codelineno-13-15"></a>
|
|
8428
|
+
<a id="__codelineno-13-16" name="__codelineno-13-16" href="#__codelineno-13-16"></a><span class="na">ExecStart</span><span class="o">=</span><span class="s">/opt/nautobot/bin/nautobot-server celery beat --loglevel INFO --pidfile /var/tmp/nautobot-scheduler.pid</span>
|
|
8429
|
+
<a id="__codelineno-13-17" name="__codelineno-13-17" href="#__codelineno-13-17"></a>
|
|
8430
|
+
<a id="__codelineno-13-18" name="__codelineno-13-18" href="#__codelineno-13-18"></a><span class="na">Restart</span><span class="o">=</span><span class="s">always</span>
|
|
8431
|
+
<a id="__codelineno-13-19" name="__codelineno-13-19" href="#__codelineno-13-19"></a><span class="na">RestartSec</span><span class="o">=</span><span class="s">30</span>
|
|
8432
|
+
<a id="__codelineno-13-20" name="__codelineno-13-20" href="#__codelineno-13-20"></a><span class="na">PrivateTmp</span><span class="o">=</span><span class="s">true</span>
|
|
8433
|
+
<a id="__codelineno-13-21" name="__codelineno-13-21" href="#__codelineno-13-21"></a>
|
|
8434
|
+
<a id="__codelineno-13-22" name="__codelineno-13-22" href="#__codelineno-13-22"></a><span class="k">[Install]</span>
|
|
8435
|
+
<a id="__codelineno-13-23" name="__codelineno-13-23" href="#__codelineno-13-23"></a><span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span>
|
|
8331
8436
|
</code></pre></div>
|
|
8332
8437
|
<h4 id="migrating-to-celery-from-rq">Migrating to Celery from RQ<a class="headerlink" href="#migrating-to-celery-from-rq" title="Permanent link">¶</a></h4>
|
|
8333
8438
|
<p>Prior to migrating, you need to determine whether you have any Apps installed that run custom background tasks that still rely on the RQ worker. There are a few ways to do this. Two of them are:</p>
|
|
@@ -8344,20 +8449,20 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8344
8449
|
<li>Replace each decorator of <code>@job</code> with <code>@nautobot_task</code></li>
|
|
8345
8450
|
</ul>
|
|
8346
8451
|
<p>For example:</p>
|
|
8347
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
8348
|
-
<a id="__codelineno-
|
|
8349
|
-
<a id="__codelineno-
|
|
8350
|
-
<a id="__codelineno-
|
|
8351
|
-
<a id="__codelineno-
|
|
8352
|
-
<a id="__codelineno-
|
|
8353
|
-
<a id="__codelineno-
|
|
8354
|
-
<a id="__codelineno-
|
|
8355
|
-
<a id="__codelineno-
|
|
8356
|
-
<a id="__codelineno-
|
|
8357
|
-
<a id="__codelineno-
|
|
8358
|
-
<a id="__codelineno-
|
|
8359
|
-
<a id="__codelineno-
|
|
8360
|
-
<a id="__codelineno-
|
|
8452
|
+
<div class="highlight"><span class="filename">Diff of tasks for celery vs rq</span><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="gh">diff --git a/task_example.py b/task_example.py</span>
|
|
8453
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="gh">index f84073fb5..52baf6096 100644</span>
|
|
8454
|
+
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="gd">--- a/task_example.py</span>
|
|
8455
|
+
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="gi">+++ b/task_example.py</span>
|
|
8456
|
+
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="gu">@@ -1,6 +1,6 @@</span>
|
|
8457
|
+
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a><span class="gd">-from django_rq import job</span>
|
|
8458
|
+
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a><span class="gi">+from nautobot.core.celery import nautobot_task</span>
|
|
8459
|
+
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a>
|
|
8460
|
+
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a>
|
|
8461
|
+
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a><span class="gd">-@job("default")</span>
|
|
8462
|
+
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a><span class="gi">+@nautobot_task</span>
|
|
8463
|
+
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a><span class="w"> </span>def example_task(*args, **kwargs):
|
|
8464
|
+
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a><span class="w"> </span> return "examples are cool!"
|
|
8465
|
+
<a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a>(END)
|
|
8361
8466
|
</code></pre></div>
|
|
8362
8467
|
<div class="admonition warning">
|
|
8363
8468
|
<p class="admonition-title">Warning</p>
|
|
@@ -8365,27 +8470,27 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8365
8470
|
</div>
|
|
8366
8471
|
<h3 id="configure-systemd">Configure systemd<a class="headerlink" href="#configure-systemd" title="Permanent link">¶</a></h3>
|
|
8367
8472
|
<p>Because we just added new service files, you'll need to reload the systemd daemon:</p>
|
|
8368
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
8473
|
+
<div class="highlight"><span class="filename">Reload the systemd daemon</span><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>sudo systemctl daemon-reload
|
|
8369
8474
|
</code></pre></div>
|
|
8370
8475
|
<p>Then, start the <code>nautobot</code>, <code>nautobot-worker</code>, and <code>nautobot-scheduler</code> services and enable them to initiate at boot time:</p>
|
|
8371
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
8476
|
+
<div class="highlight"><span class="filename">Enable Nautobot services</span><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>sudo systemctl enable --now nautobot nautobot-worker nautobot-scheduler
|
|
8372
8477
|
</code></pre></div>
|
|
8373
8478
|
<h3 id="verify-the-service">Verify the service<a class="headerlink" href="#verify-the-service" title="Permanent link">¶</a></h3>
|
|
8374
8479
|
<p>You can use the command <code>systemctl status nautobot.service</code> to verify that the WSGI service is running:</p>
|
|
8375
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
8376
|
-
<a id="__codelineno-
|
|
8377
|
-
<a id="__codelineno-
|
|
8378
|
-
<a id="__codelineno-
|
|
8379
|
-
<a id="__codelineno-
|
|
8380
|
-
<a id="__codelineno-
|
|
8381
|
-
<a id="__codelineno-
|
|
8382
|
-
<a id="__codelineno-
|
|
8383
|
-
<a id="__codelineno-
|
|
8384
|
-
<a id="__codelineno-
|
|
8385
|
-
<a id="__codelineno-
|
|
8386
|
-
<a id="__codelineno-
|
|
8387
|
-
<a id="__codelineno-
|
|
8388
|
-
<a id="__codelineno-
|
|
8480
|
+
<div class="highlight"><span class="filename">Validate services are running</span><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>● nautobot.service - Nautobot WSGI Service
|
|
8481
|
+
<a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a> Loaded: loaded (/etc/systemd/system/nautobot.service; enabled; vendor preset: enabled)
|
|
8482
|
+
<a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a> Active: active (running) since Fri 2021-03-05 22:23:33 UTC; 35min ago
|
|
8483
|
+
<a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a> Docs: https://docs.nautobot.com/projects/core/en/stable/
|
|
8484
|
+
<a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a> Main PID: 6992 (nautobot-server)
|
|
8485
|
+
<a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a> Tasks: 16 (limit: 9513)
|
|
8486
|
+
<a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a> Memory: 221.1M
|
|
8487
|
+
<a id="__codelineno-17-8" name="__codelineno-17-8" href="#__codelineno-17-8"></a> CGroup: /system.slice/nautobot.service
|
|
8488
|
+
<a id="__codelineno-17-9" name="__codelineno-17-9" href="#__codelineno-17-9"></a> ├─6992 /opt/nautobot/bin/python3 /opt/nautobot/bin/nautobot-server start />
|
|
8489
|
+
<a id="__codelineno-17-10" name="__codelineno-17-10" href="#__codelineno-17-10"></a> ├─7007 /opt/nautobot/bin/python3 /opt/nautobot/bin/nautobot-server start />
|
|
8490
|
+
<a id="__codelineno-17-11" name="__codelineno-17-11" href="#__codelineno-17-11"></a> ├─7010 /opt/nautobot/bin/python3 /opt/nautobot/bin/nautobot-server start />
|
|
8491
|
+
<a id="__codelineno-17-12" name="__codelineno-17-12" href="#__codelineno-17-12"></a> ├─7013 /opt/nautobot/bin/python3 /opt/nautobot/bin/nautobot-server start />
|
|
8492
|
+
<a id="__codelineno-17-13" name="__codelineno-17-13" href="#__codelineno-17-13"></a> ├─7016 /opt/nautobot/bin/python3 /opt/nautobot/bin/nautobot-server start />
|
|
8493
|
+
<a id="__codelineno-17-14" name="__codelineno-17-14" href="#__codelineno-17-14"></a> └─7019 /opt/nautobot/bin/python3 /opt/nautobot/bin/nautobot-server start />
|
|
8389
8494
|
</code></pre></div>
|
|
8390
8495
|
<div class="admonition note">
|
|
8391
8496
|
<p class="admonition-title">Note</p>
|
|
@@ -8395,25 +8500,28 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8395
8500
|
<h2 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permanent link">¶</a></h2>
|
|
8396
8501
|
<h3 id="operational-error-incorrect-string-value">Operational Error: Incorrect string value<a class="headerlink" href="#operational-error-incorrect-string-value" title="Permanent link">¶</a></h3>
|
|
8397
8502
|
<p>When using MySQL as a database backend, if you encounter a server error along the lines of <code>Incorrect string value: '\\xF0\\x9F\\x92\\x80' for column</code>, it is because you are running afoul of the legacy implementation of Unicode (aka <code>utf8</code>) encoding in MySQL. This often occurs when using modern Unicode glyphs like the famous poop emoji.</p>
|
|
8398
|
-
<p>Please see the <a href="../configuration/required-settings.html#
|
|
8503
|
+
<p>Please see the <a href="../configuration/required-settings.html#databases">configuration guide on MySQL Unicode settings</a> for instructions on how to address this.</p>
|
|
8399
8504
|
<p>Please see <a href="https://github.com/nautobot/nautobot/issues/645">Computed fields with fallback value that is unicode results in OperationalError (#645)</a> for more details.</p>
|
|
8400
8505
|
<h3 id="svg-images-not-rendered">SVG images not rendered<a class="headerlink" href="#svg-images-not-rendered" title="Permanent link">¶</a></h3>
|
|
8401
8506
|
<p>When serving Nautobot directly from uWSGI on RedHat or CentOS there may be a problem rendering .svg images to include the Nautobot logo. On the RedHat based operating systems there is no file <code>/etc/mime.types</code> by default, unfortunately, uWSGI looks for this file to serve static files (see <a href="https://uwsgi-docs.readthedocs.io/en/latest/StaticFiles.html#mime-types">Serving static files with uWSGI</a>). To work around this copy the file <code>/etc/mime.types</code> from a known good system for example an Ubuntu/Debian system or even the Nautobot container to /opt/nautobot/mime.types. Then add the following line to your <code>uwsgi.ini</code> file and restart the Nautobot services:</p>
|
|
8402
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
8507
|
+
<div class="highlight"><span class="filename">Add MIME file settings to uwsgi.ini</span><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>mime-file = /opt/nautobot/mime.types
|
|
8403
8508
|
</code></pre></div>
|
|
8404
8509
|
<p>Alternatively, host Nautobot behind Nginx as instructed in <a href="http-server.html">HTTP server setup</a>.</p>
|
|
8405
8510
|
<h3 id="test-redis-connectivity">Test Redis Connectivity<a class="headerlink" href="#test-redis-connectivity" title="Permanent link">¶</a></h3>
|
|
8511
|
+
<details class="info">
|
|
8512
|
+
<summary>Test Redis Connectivity with Python</summary>
|
|
8406
8513
|
<p>From a nautobot shell (<code>nautobot-server shell_plus</code>) use the following Python commands to test connectivity to your Redis server. If successful, python should not return any exceptions.</p>
|
|
8407
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
8408
|
-
<a id="__codelineno-
|
|
8409
|
-
<a id="__codelineno-
|
|
8410
|
-
<a id="__codelineno-
|
|
8411
|
-
<a id="__codelineno-
|
|
8412
|
-
<a id="__codelineno-
|
|
8413
|
-
<a id="__codelineno-
|
|
8414
|
-
<a id="__codelineno-
|
|
8415
|
-
<a id="__codelineno-
|
|
8514
|
+
<div class="highlight"><span class="filename">Test Redis Connectivity via Python</span><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="kn">import</span> <span class="nn">os</span>
|
|
8515
|
+
<a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="kn">import</span> <span class="nn">redis</span>
|
|
8516
|
+
<a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a><span class="kn">from</span> <span class="nn">nautobot.core.settings_funcs</span> <span class="kn">import</span> <span class="n">parse_redis_connection</span>
|
|
8517
|
+
<a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a>
|
|
8518
|
+
<a id="__codelineno-19-5" name="__codelineno-19-5" href="#__codelineno-19-5"></a><span class="n">connection</span> <span class="o">=</span> <span class="n">parse_redis_connection</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
|
8519
|
+
<a id="__codelineno-19-6" name="__codelineno-19-6" href="#__codelineno-19-6"></a><span class="n">client</span> <span class="o">=</span> <span class="n">redis</span><span class="o">.</span><span class="n">from_url</span><span class="p">(</span><span class="n">connection</span><span class="p">)</span>
|
|
8520
|
+
<a id="__codelineno-19-7" name="__codelineno-19-7" href="#__codelineno-19-7"></a><span class="n">client</span><span class="o">.</span><span class="n">ping</span><span class="p">()</span> <span class="c1"># test basic connectivity</span>
|
|
8521
|
+
<a id="__codelineno-19-8" name="__codelineno-19-8" href="#__codelineno-19-8"></a><span class="n">client</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> <span class="c1"># retrieve a list of keys in the redis database</span>
|
|
8522
|
+
<a id="__codelineno-19-9" name="__codelineno-19-9" href="#__codelineno-19-9"></a><span class="n">client</span><span class="o">.</span><span class="n">auth</span><span class="p">(</span><span class="n">password</span><span class="o">=</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="c1"># test password authentication</span>
|
|
8416
8523
|
</code></pre></div>
|
|
8524
|
+
</details>
|
|
8417
8525
|
|
|
8418
8526
|
|
|
8419
8527
|
|
|
@@ -8431,6 +8539,8 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8431
8539
|
</div>
|
|
8432
8540
|
|
|
8433
8541
|
|
|
8542
|
+
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
|
|
8543
|
+
|
|
8434
8544
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
8435
8545
|
</div>
|
|
8436
8546
|
|
|
@@ -8508,7 +8618,7 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8508
8618
|
|
|
8509
8619
|
|
|
8510
8620
|
<a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
|
|
8511
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.
|
|
8621
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
|
|
8512
8622
|
</a>
|
|
8513
8623
|
|
|
8514
8624
|
|
|
@@ -8516,7 +8626,7 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8516
8626
|
|
|
8517
8627
|
|
|
8518
8628
|
<a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
|
|
8519
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.
|
|
8629
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
|
|
8520
8630
|
</a>
|
|
8521
8631
|
|
|
8522
8632
|
|
|
@@ -8524,7 +8634,7 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8524
8634
|
|
|
8525
8635
|
|
|
8526
8636
|
<a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
|
|
8527
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.
|
|
8637
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
|
|
8528
8638
|
</a>
|
|
8529
8639
|
|
|
8530
8640
|
|
|
@@ -8532,7 +8642,7 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8532
8642
|
|
|
8533
8643
|
|
|
8534
8644
|
<a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
|
|
8535
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.
|
|
8645
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
|
8536
8646
|
</a>
|
|
8537
8647
|
|
|
8538
8648
|
|
|
@@ -8540,7 +8650,7 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8540
8650
|
|
|
8541
8651
|
|
|
8542
8652
|
<a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
|
|
8543
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.
|
|
8653
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
|
|
8544
8654
|
</a>
|
|
8545
8655
|
|
|
8546
8656
|
</div>
|
|
@@ -8555,10 +8665,10 @@ advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-a
|
|
|
8555
8665
|
</div>
|
|
8556
8666
|
|
|
8557
8667
|
|
|
8558
|
-
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
8668
|
+
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
8559
8669
|
|
|
8560
8670
|
|
|
8561
|
-
<script src="../../../assets/javascripts/bundle.
|
|
8671
|
+
<script src="../../../assets/javascripts/bundle.ebd0bdb7.min.js"></script>
|
|
8562
8672
|
|
|
8563
8673
|
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
|
8564
8674
|
|