Upgrading from Nautobot v1.X¶
Dependency Changes¶
- Nautobot no longer uses or supports the use of
django-mptt. - Nautobot no longer uses or supports the use of
django-rq.
Database (ORM) Changes¶
Database Behavior Changes¶
| Model | Field | Changes |
|---|---|---|
| JobLogEntry | absolute_url |
No longer accepts null values, use "" instead |
log_object |
No longer accepts null values, use "" instead |
|
| ScheduledJob | queue |
No longer accepts null values, use "" instead |
| Webhook | ca_file_path |
No longer accepts null values, use "" instead |
Renamed Database Fields¶
| Model | Renamed Field | New Name |
|---|---|---|
| CablePath | circuittermination |
circuits_circuittermination_related |
consoleport |
dcim_consoleport_related |
|
consoleserverport |
dcim_consoleserverport_related |
|
interface |
dcim_interface_related |
|
powerfeed |
dcim_powerfeed_related |
|
poweroutlet |
dcim_poweroutlet_related |
|
powerport |
dcim_powerport_related |
|
| Circuit | termination_a |
circuit_termination_a |
termination_z |
circuit_termination_z |
|
terminations |
circuit_terminations |
|
type |
circuit_type |
|
| Cluster | group |
cluster_group |
type |
cluster_type |
|
| ConfigContextSchema | device_set |
dcim_device_related |
virtualmachine_set |
virtualization_virtualmachine_related |
|
| Device | device_role |
role |
local_context_data |
local_config_context_data |
|
local_context_data_owner_content_type |
local_config_context_data_owner_content_type |
|
local_context_data_owner_object_id |
local_config_context_data_owner_object_id |
|
local_context_schema |
local_config_context_schema |
|
| InventoryItem | child_items |
children |
level |
tree_depth |
|
| RackGroup | level |
tree_depth |
| Region | level |
tree_depth |
| Service | ipaddresses |
ip_addresses |
| Tenant | group |
tenant_group |
| TenantGroup | level |
tree_depth |
| VirtualMachine | local_context_data |
local_config_context_data |
local_context_data_owner_content_type |
local_config_context_data_owner_content_type |
|
local_context_data_owner_object_id |
local_config_context_data_owner_object_id |
|
local_context_schema |
local_config_context_schema |
|
| VLAN | group |
vlan_group |
Removed Database Fields¶
| Model | Removed Field |
|---|---|
| InventoryItem | lft |
rght |
|
tree_id |
|
| RackGroup | lft |
rght |
|
tree_id |
|
| Region | lft |
rght |
|
tree_id |
|
| TenantGroup | lft |
rght |
|
tree_id |
Replaced Models¶
The ipam.Role, dcim.RackRole, and dcim.DeviceRole models have been removed and replaced by a single extras.Role model. This means that any references to the removed models in the code now use the extras.Role model instead.
| Removed Model | Replaced With |
|---|---|
dcim.DeviceRole |
extras.Role |
dcim.RackRole |
extras.Role |
ipam.Role |
extras.Role |
GraphQL and REST API Changes¶
API Behavior Changes¶
| Model | Field | Changes |
|---|---|---|
| IPAddress | role |
/ipam/ip-addresses/ endpoint now uses role nested serializer for the role field, rather than a string. |
| RackGroup | rack_count |
Now only counts Racks directly belonging to this RackGroup, not those belonging to its descendants. |
| Region | site_count |
Now only counts Sites directly belonging to this Region, not those belonging to its descendants. |
| TenantGroup | tenant_count |
Now only counts Tenants directly belonging to this TenantGroup, not those belonging to its descendants. |
Renamed Serializer Fields¶
| Model | Renamed Field | New Name |
|---|---|---|
| Circuit | termination_a |
circuit_termination_a |
termination_z |
circuit_termination_z |
|
type |
circuit_type |
|
| Cluster | group |
cluster_group |
type |
cluster_type |
|
| Device | device_role |
role |
local_context_data |
local_config_context_data |
|
local_context_schema |
local_config_context_schema |
|
| InventoryItem | _depth |
tree_depth |
| RackGroup | _depth |
tree_depth |
| Region | _depth |
tree_depth |
| Service | ipaddresses |
ip_addresses |
| Tenant | group |
tenant_group |
| TenantGroup | _depth |
tree_depth |
| VirtualMachine | local_context_data |
local_config_context_data |
local_context_schema |
local_config_context_schema |
|
| VLAN | group |
vlan_group |
Removed Serializer Fields¶
| Model/Endpoint | Removed Field | Comments |
|---|---|---|
/api/status/ |
rq-workers-running |
Removed as RQ is no longer supported |
Replaced Endpoints¶
These endpoints /ipam/roles/, /dcim/rack-roles/ and /dcim/device-roles/ are no longer available. Instead, use the /extras/roles/ endpoint to retrieve and manipulate role data.
| Removed Endpoints | Replaced With |
|---|---|
/dcim/device-roles/ |
/extras/roles/ |
/dcim/rack-roles/ |
/extras/roles/ |
/ipam/roles/ |
/extras/roles/ |
UI, GraphQL, and REST API Filter Changes¶
Renamed Filter Fields¶
| Model | Renamed Filter Field | New Name | UI and Rest API endpoints Available in v2.X |
|---|---|---|---|
| Cable | tag |
tags |
/dcim/cables/?tags=<slug> |
| Circuit | tag |
tags |
/circuits/circuits/?tags=<slug> |
type |
circuit_type |
/circuits/circuits/?circuit_type=<uuid/slug> |
|
| ConsolePort | cabled |
has_cable |
/dcim/console-ports/?has_cable=True/False |
| ConsoleServerPort | cabled |
has_cable |
/dcim/console-server-ports/?has_cable=True/False |
| Device | cluster_id |
cluster |
/dcim/devices/?cluster=<uuid/slug> |
device_type_id |
device_type |
/dcim/devices/?device_type=<uuid/slug> |
|
local_context_data |
local_config_context_data |
/dcim/devices/?local_config_context_data=True/False |
|
local_context_schema_id |
local_config_context_schema_id |
/dcim/devices/?local_config_context_schema_id=<uuid> |
|
local_context_schema |
local_config_context_schema |
/dcim/devices/?local_config_context_schema=<slug> |
|
rack_group_id |
rack_group |
/dcim/devices/?rack_group=<uuid/slug> |
|
rack_id |
rack |
/dcim/devices/?rack=<uuid/slug> |
|
tag |
tags |
/dcim/devices/?tags=<slug> |
|
virtual_chassis_id |
virtual_chassis |
/dcim/devices/?virtual_chassis=<uuid/slug> |
|
| DeviceBay | tag |
tags |
/dcim/device-bays/?tags=<slug> |
| DeviceRedundancyGroup | tag |
tags |
/dcim/device-redundancy-groups/?tag=<slug> |
| DeviceType | tag |
tags |
/dcim/device-types/?tags=<slug> |
| FrontPort | cabled |
has_cable |
/dcim/front-ports/?has_cable=True/False |
tag |
tags |
/dcim/front-ports/?tags=<slug> |
|
| Interface | cabled |
has_cable |
/dcim/interfaces/?has_cable=True/False |
| InventoryItem | child_items |
children |
/dcim/inventory-items/?children=<uuid/name> |
has_child_items |
has_children |
/dcim/inventory-items/?has_children=True/False |
|
tag |
tags |
/dcim/inventory-items/?tags=<slug> |
|
| Location | tag |
tags |
/dcim/locations/?tags=<slug> |
| PowerFeed | cabled |
has_cable |
/dcim/power-feeds/?has_cable=True/False |
tag |
tags |
/dcim/power-feeds/?tags=<slug> |
|
| PowerOutlet | cabled |
has_cable |
/dcim/power-outlets/?has_cable=True/False |
| PowerPanel | tag |
tags |
/dcim/power-panels/?tags=<slug> |
| PowerPort | cabled |
has_cable |
/dcim/power-ports/?has_cable=True/False |
| Provider | tag |
tags |
/circuits/provider/?tags=<slug> |
| ProviderNetwork | tag |
tags |
/circuits/provider-networks/?tags=<slug> |
| Rack | tag |
tags |
/dcim/racks/?tags=<slug> |
| RackReservation | tag |
tags |
/dcim/rack-reservations/?tags=<slug> |
| RearPort | cabled |
has_cable |
/dcim/rear-ports/?has_cable=True/False |
tag |
tags |
/dcim/rear-ports/?tags=<slug> |
|
| Site | tag |
tags |
/dcim/sites/?tags=<slug> |
| Tenant | tag |
tags |
/tenancy/tenants/?tags=<slug> |
| VirtualMachine | local_context_data |
local_config_context_data |
/virtualization/virtual-machines/?local_config_context_data=True/False |
local_context_schema_id |
local_config_context_schema_id |
/virtualization/virtual-machines/?local_config_context_schema_id=<uuid> |
|
local_context_schema |
local_config_context_schema |
/virtualization/virtual-machines/?local_config_context_schema=<slug> |
Enhanced Filter Fields¶
Below is a table documenting enhanced filter field changes in v2.x.
| Model | Enhanced Filter Field | Changes | UI and Rest API endpoints Available in v2.X |
|---|---|---|---|
| Circuit | circuit_type |
Enhanced to support primary key UUIDs in addition to slugs | /circuits/circuits/?circuit_type=<uuid/slug> |
provider |
Enhanced to support primary key UUIDs in addition to slugs | /circuits/circuits/?provider=<uuid/slug> |
|
site |
Enhanced to support primary key UUIDs in addition to slugs | /circuits/circuits/?site=<uuid/slug> |
|
| ConsolePort | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/console-ports/?device=<uuid/name> |
| ConsoleServerPort | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/console-server-ports/?device=<uuid/name> |
| Device | cluster_id |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?cluster=<uuid/slug> |
device_type_id |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?device_type=<uuid/slug> |
|
manufacturer |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?manufacturer=<uuid/slug> |
|
model |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?model=<uuid/slug> |
|
platform |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?platform=<uuid/slug> |
|
role |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?role=<uuid/slug> |
|
rack_id |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?rack=<uuid/slug> |
|
rack_group_id |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?rack_group=<uuid/slug> |
|
serial |
Enhanced to permit filtering on multiple values | /dcim/devices/?serial=<value>&serial=<value>... |
|
secrets_group |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?secrets_group=<uuid/slug> |
|
site |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?site=<uuid/slug> |
|
virtual_chassis_id |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/devices/?virtual_chassis=<uuid/slug> |
|
| DeviceBay | cable |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/regions/?parent=<uuid/slug> |
device |
Enhanced to support primary key UUIDs in addition to names | /dcim/device-bays/?device=<uuid/name> |
|
| DeviceType | manufacturer |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/device-types/?manufacturer=<uuid/slug> |
| FrontPort | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/front-ports/?device=<uuid/name> |
| Interface | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/interfaces/?device=<uuid/name> |
| InventoryItem | device |
Enhanced to support primary key UUIDs in addition to name | /dcim/inventory-items/?device=<uuid/name> |
manufacturer |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/inventory-items/?manufacturer=<uuid/slug> |
|
serial |
Enhanced to permit filtering on multiple values | /dcim/inventory-items/?serial=<value>&serial=<value>... |
|
site |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/inventory-items/?site=<uuid/slug> |
|
| Platform | manufacturer |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/platforms/?manufacturer=<uuid/slug> |
| PowerFeed | site |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/power-feeds/?site=<uuid/slug> |
| PowerOutlet | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/power-outlets/?device=<uuid/name> |
| PowerPort | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/power-ports/?device=<uuid/name> |
| Provider | site |
Enhanced to support primary key UUIDs in addition to slugs | /circuits/providers/?site=<uuid/slug> |
| ProviderNetwork | provider |
Enhanced to support primary key UUIDs in addition to slugs | /circuits/provider-networks/?provider=<uuid/slug> |
| Rack | role |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/racks/?role=<uuid/slug> |
serial |
Enhanced to permit filtering on multiple values | /dcim/racks/?serial=<value>&serial=<value>... |
|
| RackGroup | parent |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/rack-groups/?parent=<uuid/slug> |
| RackReservation | user |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/rack-reservations/?user=<uuid/slug> |
| RearPort | device |
Enhanced to support primary key UUIDs in addition to names | /dcim/rear-ports/?device=<uuid/name> |
| Region | parent |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/regions/?parent=<uuid/slug> |
| Tenant | tenant_group |
Enhanced to support primary key UUIDs in addition to slugs | /tenancy/tenants/?tenant_group=<uuid/slug> |
| VirtualChassis | master |
Enhanced to support primary key UUIDs in addition to name | /dcim/virtual-chassis/?master=<uuid/name> |
site |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/virtual-chassis/?site=<uuid/slug> |
|
tenant |
Enhanced to support primary key UUIDs in addition to slugs | /dcim/virtual-chassis/?tenant=<uuid/slug> |
|
| VLAN | vlan_group |
Enhanced to support primary key UUIDs in addition to slugs | /ipam/vlans/?vlan_group=<uuid/slug> |
Corrected Filter Fields¶
Below is a table documenting corrected filter field changes in v2.x.
| Model | Changed Filter Field | Before | After |
|---|---|---|---|
| Device | console_ports |
/dcim/devices/?console_ports=True |
/dcim/devices/?console_ports=<uuid> or ?has_console_ports=<True/False> |
console_server_ports |
/dcim/devices/?console_server_ports=True |
/dcim/devices/?console_server_ports=<uuid> or ?has_console_server_ports=<True/False> |
|
device_bays |
/dcim/devices/?device_bays=True |
/dcim/devices/?device_bays=<uuid> or ?has_device_bays=<True/False> |
|
front_ports |
/dcim/devices/?front_ports=True |
/dcim/devices/?front_ports=<uuid> or ?has_front_ports=<True/False> |
|
interfaces |
/dcim/devices/?interfaces=True |
/dcim/devices/?interfaces=<uuid> or ?has_interfaces=<True/False> |
|
power_ports |
/dcim/devices/?power_ports=True |
/dcim/devices/?power_ports=<uuid> or ?has_power_ports=<True/False> |
|
power_outlets |
/dcim/devices/?power_outlets=True |
/dcim/devices/?power_outlets=<uuid> or ?has_power_outlets=<True/False> |
|
rear_ports |
/dcim/devices/?rear_ports=True |
/dcim/devices/?rear_ports=<uuid> or ?has_rear_ports=<True/False> |
Removed Redundant Filter Fields¶
Below is a table documenting removed redundant filter field changes in v2.x.
Unless stated otherwise, all of the *_id=<uuid> filters have been replaced by generic filters that support both uuid and slug.
For example /circuits/circuits/?provider_id=<uuid> has been replaced by /circuits/circuits/?provider=<uuid>.
| Model | Removed Filter Field | UI and API endpoints that are no longer supported in v2.X |
|---|---|---|
| Aggregate | tenant_group_id |
|
| Circuit | provider_id |
|
provider_network_id |
||
region_id |
||
site_id |
||
tenant_group_id |
||
type_id |
instead of /circuits/circuits/?type_id=<uuid>, use circuit_type=<uuid> |
|
| CircuitTermination | circuit_id |
|
provider_network_id |
||
region_id |
||
site_id |
||
| Cluster | region_id |
|
site_id |
||
tenant_group_id |
||
| ConfigContext | role_id |
|
| ConsolePort | device_id |
|
region_id |
||
| ConsoleServerPort | device_id |
|
region_id |
||
| Device | manufacturer_id |
|
model |
instead of /dcim/devices/?model=<uuid>, use device_type=<uuid> |
|
pass_through_ports |
instead of /dcim/devices/?pass_through_ports=<bool>, use has_front_ports/has_rear_ports |
|
platform_id |
||
region_id |
||
role_id |
||
secrets_group_id |
||
site_id |
||
tenant_group_id |
||
| DeviceBay | device_id |
|
region_id |
||
| DeviceType | manufacturer_id |
|
| FrontPort | device_id |
|
region_id |
||
| Interface | bridge_id |
|
device_id |
||
lag_id |
||
parent_interface_id |
||
region_id |
||
| InventoryItem | device_id |
|
manufacturer_id |
||
parent_id |
||
region_id |
||
site_id |
||
| IPAddress | tenant_group_id |
|
| Location | tenant_group_id |
|
| Provider | region_id |
|
site_id |
||
| ProviderNetwork | provider_id |
|
| Rack | group_id |
|
region_id |
||
role_id |
||
site_id |
||
tenant_group_id |
||
| RackGroup | parent_id |
|
region_id |
||
site_id |
||
| RackReservation | group_id |
|
rack_id |
||
site_id |
||
tenant_group_id |
||
user_id |
||
| RearPort | device_id |
|
region_id |
||
| Region | parent_id |
|
| RouteTarget | tenant_group_id |
|
| Platform | manufacturer_id |
|
| PowerOutlet | device_id |
|
region_id |
||
| PowerFeed | power_panel_id |
|
rack_id |
||
region_id |
||
site_id |
||
| PowerPanel | rack_group_id |
|
region_id |
||
site_id |
||
| PowerPort | region_id |
|
device_id |
||
| Prefix | region_id |
|
site_id |
||
tenant_group_id |
||
| Site | region_id |
|
tenant_group_id |
||
| Tenant | group_id |
|
| TenantGroup | parent_id |
|
| VirtualChassis | master_id |
|
region_id |
||
site_id |
||
tenant_id |
||
| VirtualMachine | tenant_group_id |
|
| VLANGroup | region_id |
|
site_id |
||
| VLAN | group_id |
|
group |
instead of /ipam/vlans/?group=<slug>, use vlan_group=<slug> |
|
region_id |
||
site_id |
||
tenant_group_id |
||
| VMInterface | bridge_id |
|
parent_interface_id |
||
| VRF | tenant_group_id |
Python Code Location Changes¶
The below is mostly relevant only to authors of Jobs and Nautobot Apps. End users should not be impacted by the changes in this section.
| Old Module | Class/Function(s) | New Module |
|---|---|---|
nautobot.core.api.utils |
TreeModelSerializerMixin |
nautobot.core.api.serializers |
nautobot.core.fields |
* |
nautobot.core.models.fields |
nautobot.core.forms |
SearchForm |
nautobot.core.forms.search |
nautobot.core.utilities |
* |
nautobot.core.views.utils |
nautobot.dcim.fields |
MACAddressCharField |
nautobot.core.models.fields |
nautobot.dcim.forms |
MACAddressField |
nautobot.core.forms |
nautobot.utilities.api |
* |
nautobot.core.api.utils |
nautobot.utilities.apps |
* |
nautobot.core.apps |
nautobot.utilities.checks |
* |
nautobot.core.checks |
nautobot.utilities.choices |
* |
nautobot.core.choices |
nautobot.utilities.config |
* |
nautobot.core.utils.config |
nautobot.utilities.constants |
* |
nautobot.core.constants |
nautobot.utilities.deprecation |
* |
nautobot.core.utils.deprecation |
nautobot.utilities.error_handlers |
* |
nautobot.core.views.utils |
nautobot.utilities.exceptions |
* |
nautobot.core.exceptions |
nautobot.utilities.factory |
* |
nautobot.core.factory |
nautobot.utilities.fields |
* |
nautobot.core.models.fields |
nautobot.utilities.filters |
* |
nautobot.core.filters |
nautobot.utilities.forms |
* |
nautobot.core.forms |
nautobot.utilities.git |
* |
nautobot.core.utils.git |
nautobot.utilities.logging |
* |
nautobot.core.utils.logging |
nautobot.utilities.management |
* |
nautobot.core.management |
nautobot.utilities.ordering |
* |
nautobot.core.utils.ordering |
nautobot.utilities.paginator |
* |
nautobot.core.views.paginator |
nautobot.utilities.permissions |
* |
nautobot.core.utils.permissions |
nautobot.utilities.query_functions |
* |
nautobot.core.models.query_functions |
nautobot.utilities.querysets |
* |
nautobot.core.models.querysets |
nautobot.utilities.tables |
* |
nautobot.core.tables |
nautobot.utilities.tasks |
* |
nautobot.core.tasks |
nautobot.utilities.templatetags |
* |
nautobot.core.templatetags |
nautobot.utilities.testing |
* |
nautobot.core.testing |
nautobot.utilities.tree_queries |
* |
nautobot.core.models.tree_queries |
nautobot.utilities.utils |
array_to_string |
nautobot.core.models.utils |
convert_querydict_to_factory_formset_acceptable_querydict |
nautobot.core.utils.requests |
|
copy_safe_request |
nautobot.core.utils.requests |
|
count_related |
nautobot.core.models.querysets |
|
csv_format |
nautobot.core.views.utils |
|
deepmerge |
nautobot.core.utils.data |
|
dict_to_filter_params |
nautobot.core.api.utils |
|
dynamic_import |
nautobot.core.api.utils |
|
ensure_content_type_and_field_name_inquery_params |
nautobot.core.utils.requests |
|
flatten_dict |
nautobot.core.utils.data |
|
flatten_iterable |
nautobot.core.utils.data |
|
foreground_color |
nautobot.core.utils.color |
|
get_all_lookup_expr_for_field |
nautobot.core.utils.filtering |
|
get_api_version_serializer |
nautobot.core.api.utils |
|
get_changes_for_model |
nautobot.core.utils.lookup |
|
get_filterset_field |
nautobot.core.utils.filtering |
|
get_filterset_for_model |
nautobot.core.utils.lookup |
|
get_filterable_params_from_filter_params |
nautobot.core.utils.requests |
|
get_form_for_model |
nautobot.core.utils.lookup |
|
get_model_from_name |
nautobot.core.utils.lookup |
|
get_related_class_for_model |
nautobot.core.utils.lookup |
|
get_route_for_model |
nautobot.core.utils.lookup |
|
get_table_for_model |
nautobot.core.utils.lookup |
|
hex_to_rgb |
nautobot.core.utils.color |
|
is_taggable |
nautobot.core.models.utils |
|
is_uuid |
nautobot.core.utils.data |
|
lighten_color |
nautobot.core.utils.color |
|
normalize_querydict |
nautobot.core.utils.requests |
|
prepare_cloned_fields |
nautobot.core.views.utils |
|
pretty_print_query |
nautobot.core.models.utils |
|
render_jinja2 |
nautobot.core.utils.data |
|
rgb_to_hex |
nautobot.core.utils.color |
|
SerializerForAPIVersions |
nautobot.core.api.utils |
|
serialize_object |
nautobot.core.models.utils |
|
serialize_object_v2 |
nautobot.core.models.utils |
|
shallow_compare_dict |
nautobot.core.utils.data |
|
slugify_dots_to_dashes |
nautobot.core.models.fields |
|
slugify_dashes_to_underscores |
nautobot.core.models.fields |
|
to_meters |
nautobot.core.utils.data |
|
UtilizationData |
nautobot.core.utils.data |
|
versioned_serializer_selector |
nautobot.core.api.utils |
|
nautobot.utilities.validators |
* |
nautobot.core.models.validators |
nautobot.utilities.views |
* |
nautobot.core.views.mixins |