v1.5.0 #2775
bryanculver
started this conversation in
General
v1.5.0
#2775
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Release Overview
Added
Custom Field Grouping (#899)
Custom fields can now be assigned to a free-text "grouping" to improve usability when a large number of custom fields are defined on a given model. In the UI, fields in the same grouping will be grouped together, and groupings can be expanded/collapsed for display purposes.
Device Redundancy Groups (#1892)
Device Redundancy Groups have been added to model groups of distinct devices that perform device clustering or failover high availability functions. This may be used to model whole device redundancy strategies across devices with separate control planes (ex: ASA failover), not devices that share a control plane (ex: stackwise switch stacks), or interface specific redundancy strategies (ex: hsrp). Device Redundancy Groups support grouping an arbitrary number of devices and may be assigned an optional secrets group and one or more optional failover strategies.
Custom Celery Task Queues (#2421)
A new optional job property
task_queues
has been introduced to allow Nautobot to leverage custom celery queues for jobs. This will allow you to send jobs to specific workers based on which queue is selected. This property can be set on the job class and overridden in the job model, similar to other overridable job fields. Iftask_queues
is not defined on the job class or job model, the job will only be able to use the default queue. A new field has been added to the job run form to allow you to select a queue when you run the job and an optional fieldtask_queue
has been added to the REST API job run endpoint for the same purpose.Added
nautobot-server generate_test_data
command (#2536)A new management command,
nautobot-server generate_test_data
, has been added that can be used to populate the Nautobot database with various data as a baseline for manual or automated testing. This is now used internally by Nautobot's unit testing suite to create a synthetic data set that looks and feels like real data with randomly-generated values. Most importantly, the objects are created with all of the fields fully and correctly populated, to assert that each object in the database is properly exercising all features.Nestable LocationTypes (#2608)
LocationType
definitions can now be flagged asnestable
. When this flag is set, Locations of this type may nest within one another, similar to how Regions work at present. This allows you to have a variable-depth hierarchy of Locations, for example:In the above example, only two LocationTypes are defined ("Building Group" and "Building") but the "Building Group" type is flagged as nestable, so one Building Group may contain another Building Group.
Required Relationships (#873)
Relationships can be marked as being required. By default, relationships are not marked as being required.
To mark a relationship as being required, select "Source objects MUST implement this relationship" or conversely "
Destination objects MUST implement this relationship" from the "Required on" field when editing or creating a
relationship:
Changed
Database Query Caching is now Disabled by Default (#1721)
In prior versions of Nautobot, database query caching using the
django-cacheops
application (aka Cacheops) was enabled by default. This is determined by the default value of theCACHEOPS_ENABLED
setting being set toTrue
.Through much trial and error we ultimately decided that this feature is more trouble than it is worth and we have begun to put more emphasis on improving performance of complex database queries over continuing to rely upon the various benefits and pitfalls of utilizing Cacheops.
As a result, the value of this setting now defaults to
False
, disabling database query caching entirely for new deployments. Cacheops will be removed entirely in a future release.Redesigned List Filtering UI (#1998)
Added a dynamic filter form that allows users to filter object tables/lists by any field and lookup expression combination supported by the corresponding FilterSet and API.
Added
DeviceRedundancyGroup
model for representing a logical grouping of physical hardware for the purposes of high-availability.task_queues
job property to support custom celery queues.invoke performance-test
totasks.py
.factory-boy
as development dependency. Added factories for Tenant, TenantGroup, RIR, and Aggregate models. Updated test runner global setup to use these factories to pre-populate baseline data.OrganizationalModelFactory
andPrimaryModelFactory
base classes.TenancyFilterTestCaseMixin
class.base_site
andsubtree
filters toLocationFilterSet
, allowing for filtering Locations by their root ancestor or its Site.nautobot-server generate_test_data
command.TEST_USE_FACTORIES
andTEST_FACTORY_SEED
optional settings.DeviceRole
,DeviceType
,Manufacturer
, andPlatform
.FilterTestCases
to find values suitable for testing multiple choice filters.Changed
Device
to havedevice_redundancy_group
relationship,device_redundancy_group_priority
numeric property.ConfigContext
to haveManyToManyField
todcim.DeviceRedundancyGroup
for the purposes of applying aConfigContext
based upon aDevice
sDeviceRedundancyGroup
membership.django-taggit
dependency to 3.0.0.celery
todefault
.django-constance
dependency to 2.9.1; updatedJinja2
dependency to 3.1.2; updatedblack
development dependency to 22.8.0.djangorestframework
to~3.14.0
,drf-spectacular
to0.24.2
.mkdocs
to 1.4.2 andmkdocs-material
to 8.5.8.django-debug-toolbar
to~3.7.0
coverage
to version 6.5.0.django-mptt
dependency to 0.14.0.GitPython
dependency from 3.1.27 to 3.1.29.ConfigContextFilterForm
sschema
filter form field to support added filter field onConfigContextFilterSet
.BaseNetworkQuerySet
andIPAddressQuerySet
to search both IPv6 and IPv4 when given search string is ambiguous.test_slug_not_modified
to ensure no collision on new slug source value as well as changing lookup expression from__contains
to__exact
.DeleteObjectViewTestCase.get_deletable_object
to throw a helpful failure message when deletable object not found.psycopg2-binary
dependency from 2.9.3 to 2.9.5.pyuwsgi
minimum version from 2.0.20 to 2.0.21.Pillow
package dependency from 9.2.0 to 9.3.0.LocationType
test case to not attempt to re-parent aLocationType
with descendantLocations
.Fixed
ConfigContextFilterSet
missingschema
filter but existed on form.Device(Form)TestCase
flaky test setup possibly not finding aDeviceType
with aManufacturer
with associatedPlatform
s that is full depth and 1U height.Location(View)TestCase
,RouteTarget(View)TestCase
flaky test setup possibly finding names forcsv_data
that might include commas but not escaped.PrefixFactory
may randomly decide to create a child of2.2.2.2/32
.BaseNetworkQuerySet
andIPAddressQuerySet
only searching non-abbreviated first hextet IPv6 addresses.DynamicFilterLookupExpressionTest
,VirtualChassis(Filter)TestCase
,Cluster(Filter)TestCase
,VirtualMachine(Filter)TestCase
had too narrow of a region lookup for supported tests.RackGroup(Model)Test
,Prefix(Model)Test
,VLANGroup(Model)Test
may randomly choose to update to the same site.Tenant(View)TestCase
,RIR(View)TestCase
may not find deletable objects.VLAN(View)TestCase
may not find enoughSite
s withLocation
s.latitude
,longitude
clean method for when valid string value entered.Removed
Contributors
Full Changelog: v1.4.10...v1.5.0
This discussion was created from the release v1.5.0.
Beta Was this translation helpful? Give feedback.
All reactions