[PR #6180] [MERGED] Release v2.11.0 #13104

Closed
opened 2025-12-29 22:25:26 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbox-community/netbox/pull/6180
Author: @jeremystretch
Created: 4/16/2021
Status: Merged
Merged: 4/16/2021
Merged by: @jeremystretch

Base: masterHead: develop


📝 Commits (10+)

  • 0a6ebde Upgrade Django to 3.2b1
  • bec7ea7 Standardize model types based on function
  • 3208c83 Switch docs to mkdocs-material
  • 992657c Introduce SelectSpeedWidget
  • 2a517cd Add support for form fieldsets
  • 42e82f0 Update object edit template to use fieldsets where possible
  • cef8204 Merge tags fields with primary object fields in form display
  • d6cf385 Update CircuitTermination fields to use SelectSpeedWidget
  • 664a399 Add custom field support for organizational models to API serializers
  • ed059d8 Introduce OrganizationalModelSerializer

📊 Changes

353 files changed (+14600 additions, -6991 deletions)

View changed files

📝 base_requirements.txt (+4 -0)
📝 docs/additional-features/change-logging.md (+1 -1)
📝 docs/additional-features/custom-fields.md (+2 -1)
📝 docs/additional-features/custom-scripts.md (+4 -9)
📝 docs/additional-features/export-templates.md (+6 -1)
docs/additional-features/journaling.md (+5 -0)
📝 docs/additional-features/webhooks.md (+14 -2)
📝 docs/core-functionality/circuits.md (+1 -0)
📝 docs/core-functionality/devices.md (+2 -0)
📝 docs/core-functionality/sites-and-racks.md (+3 -2)
docs/development/models.md (+98 -0)
📝 docs/installation/1-postgresql.md (+18 -19)
📝 docs/installation/2-redis.md (+10 -10)
📝 docs/installation/3-netbox.md (+28 -28)
📝 docs/installation/index.md (+3 -3)
📝 docs/models/circuits/circuittermination.md (+3 -3)
docs/models/circuits/providernetwork.md (+5 -0)
📝 docs/models/dcim/device.md (+1 -1)
📝 docs/models/dcim/interface.md (+8 -4)
docs/models/dcim/location.md (+5 -0)

...and 80 more files

📄 Description

New Features

Journaling Support (#151)

NetBox now supports journaling for all primary objects. The journal is a collection of human-generated notes and comments about an object maintained for historical context. It supplements NetBox's change log to provide additional information about why changes have been made or to convey events which occur outside NetBox. Unlike the change log, in which records typically expire after some time, journal entries persist for the life of the associated object.

Parent Interface Assignments (#1519)

Virtual device and VM interfaces can now be assigned to a "parent" interface by setting the parent field on the interface object. This is helpful for associating subinterfaces with their physical counterpart. For example, you might assign virtual interfaces Gi0/0.100 and Gi0/0.200 as children of the physical interface Gi0/0.

Pre- and Post-Change Snapshots in Webhooks (#3451)

In conjunction with the newly improved change logging functionality (#5913), outgoing webhooks now include both pre- and post-change representations of the modified object. These are available in the rendering context as a dictionary named snapshots with keys prechange and postchange. For example, here are the abridged snapshots resulting from renaming a site and changing its status:

"snapshots": {
    "prechange": {
        "name": "Site 1",
        "slug": "site-1",
        "status": "active",
        ...
    },
    "postchange": {
        "name": "Site 2",
        "slug": "site-2",
        "status": "planned",
        ...
    }
}

Note: The pre-change snapshot for a newly created will always be null, as will the post-change snapshot for a deleted object.

Mark as Connected Without a Cable (#3648)

Cable termination objects (circuit terminations, power feeds, and most device components) can now be marked as "connected" without actually attaching a cable. This helps simplify the process of modeling an infrastructure boundary where we don't necessarily know or care what is connected to an attachment point, but still need to reflect the termination as being occupied.

In addition to the new mark_connected boolean field, the REST API representation of these objects now also includes a read-only boolean field named _occupied. This conveniently returns true if either a cable is attached or mark_connected is true.

Allow Assigning Devices to Locations (#4971)

Devices can now be assigned to locations (formerly known as rack groups) within a site without needing to be assigned to a particular rack. This is handy for assigning devices to rooms or floors within a building where racks are not used. The location foreign key field has been added to the Device model to support this.

Dynamic Object Exports (#4999)

When exporting a list of objects in NetBox, users now have the option of selecting the "current view". This will render CSV output matching the current configuration of the table being viewed. For example, if you modify the sites list to display only the site name, tenant, and status, the rendered CSV will include only these columns, and they will appear in the order chosen.

The legacy static export behavior has been retained to ensure backward compatibility for dependent integrations. However, users are strongly encouraged to adapt custom export templates where needed as this functionality will be removed in v2.12.

Variable Scope Support for VLAN Groups (#5284)

In previous releases, VLAN groups could be assigned only to a site. To afford more flexibility in conveying the true scope of an L2 domain, a VLAN group can now be assigned to a region, site group (new in v2.11), site, location, or rack. VLANs assigned to a group will be available only to devices and virtual machines which exist within its scope.

For example, a VLAN within a group assigned to a location will be available only to devices assigned to that location (or one of its child locations), or to a rack within that location.

New Site Group Model (#5892)

This release introduces the new SiteGroup model, which can be used to organize sites similar to the existing Region model. Whereas regions are intended for geographically arranging sites into countries, states, and so on, the new site group model can be used to organize sites by functional role or other arbitrary classification. Using regions and site groups in conjunction provides two dimensions along which sites can be organized, offering greater flexibility to the user.

Improved Change Logging (#5913)

The ObjectChange model (which is used to record the creation, modification, and deletion of NetBox objects) now explicitly records the pre-change and post-change state of each object, rather than only the post-change state. This was done to present a more clear depiction of each change being made, and to prevent the erroneous association of a previous unlogged change with its successor.

Provider Network Modeling (#5986)

A new provider network model has been introduced to represent the boundary of a network that exists outside the scope of NetBox. Each instance of this model must be assigned to a provider, and circuits can now terminate to either provider networks or to sites. The use of this model will likely be extended by future releases to support overlay and virtual circuit modeling.

Enhancements

  • #4833 - Allow assigning config contexts by device type
  • #5344 - Add support for custom fields in tables
  • #5370 - Extend custom field support to organizational models
  • #5375 - Add speed attribute to console port models
  • #5401 - Extend custom field support to device component models
  • #5425 - Create separate tabs for VMs and devices under the cluster view
  • #5451 - Add support for multiple-selection custom fields
  • #5608 - Add REST API endpoint for custom links
  • #5610 - Add REST API endpoint for webhooks
  • #5757 - Add unique identifier to every object view
  • #5830 - Add as_attachment to ExportTemplate to control download behavior
  • #5848 - Filter custom fields by content type in format <app_label>.<model>
  • #5891 - Add display field to all REST API serializers
  • #5894 - Use primary keys when filtering object lists by related objects in the UI
  • #5895 - Rename RackGroup to Location
  • #5901 - Add created and last_updated fields to device component models
  • #5971 - Add dedicated views for organizational models
  • #5972 - Enable bulk editing for organizational models
  • #5975 - Allow partial (decimal) vCPU allocations for virtual machines
  • #6001 - Paginate component tables under device views
  • #6038 - Include tagged objects list on tag view
  • #6088 - Improved table configuration form
  • #6097 - Redirect old slug-based object views
  • #6125 - Add locations count to home page
  • #6146 - Add bulk disconnect support for power feeds
  • #6149 - Support image attachments for locations

Bug Fixes (from v2.11-beta1)

  • #5583 - Eliminate redundant change records when adding/removing tags
  • #6100 - Fix VM interfaces table "add interfaces" link
  • #6104 - Fix location column on racks table
  • #6105 - Hide checkboxes for VMs under cluster VMs view
  • #6106 - Allow assigning a virtual interface as the parent of an existing interface
  • #6107 - Fix rack selection field on device form
  • #6110 - Fix handling of TemplateColumn values for table export
  • #6123 - Prevent device from being assigned to mismatched site and location
  • #6124 - Location parent filter should return all child locations (not just those directly assigned)
  • #6130 - Improve display of assigned models in custom fields list
  • #6155 - Fix admin links for plugins, background tasks
  • #6171 - Fix display of horizontally-scrolling object lists
  • #6173 - Fix assigned device/VM count when bulk editing/deleting device roles
  • #6176 - Correct position of MAC address field when creating VM interfaces
  • #6177 - Prevent VM interface from being assigned as its own parent

Other Changes

  • #1638 - Migrate all primary keys to 64-bit integers
  • #5873 - Use numeric IDs in all object URLs
  • #5938 - Deprecated support for Python 3.6
  • #5990 - Deprecated display_field parameter for custom script ObjectVar and MultiObjectVar fields
  • #5995 - Dropped backward compatibility for queryset parameter on ObjectVar and MultiObjectVar (use model instead)
  • #6014 - Moved the virtual machine interfaces list to a separate view
  • #6071 - Cable traces now traverse circuits

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/netbox-community/netbox/pull/6180 **Author:** [@jeremystretch](https://github.com/jeremystretch) **Created:** 4/16/2021 **Status:** ✅ Merged **Merged:** 4/16/2021 **Merged by:** [@jeremystretch](https://github.com/jeremystretch) **Base:** `master` ← **Head:** `develop` --- ### 📝 Commits (10+) - [`0a6ebde`](https://github.com/netbox-community/netbox/commit/0a6ebdee487d10702123de49646317bd0a28a0e7) Upgrade Django to 3.2b1 - [`bec7ea7`](https://github.com/netbox-community/netbox/commit/bec7ea7072364d7e99b28968a5e197050b0e5c54) Standardize model types based on function - [`3208c83`](https://github.com/netbox-community/netbox/commit/3208c8317d0cac095cd8486d5fb8d087688d64c1) Switch docs to mkdocs-material - [`992657c`](https://github.com/netbox-community/netbox/commit/992657cbe053560b71f3a0e2ac3fd50d71563276) Introduce SelectSpeedWidget - [`2a517cd`](https://github.com/netbox-community/netbox/commit/2a517cde9f929846f7bb806dbe0ee37fb17f0832) Add support for form fieldsets - [`42e82f0`](https://github.com/netbox-community/netbox/commit/42e82f0ead06fd1aa19a7d46ff5b9db6dcff0552) Update object edit template to use fieldsets where possible - [`cef8204`](https://github.com/netbox-community/netbox/commit/cef8204f4024d49eb99720fac975a70475cffb7f) Merge tags fields with primary object fields in form display - [`d6cf385`](https://github.com/netbox-community/netbox/commit/d6cf385a3c5363c63007b3d40b8e3152e708170a) Update CircuitTermination fields to use SelectSpeedWidget - [`664a399`](https://github.com/netbox-community/netbox/commit/664a39911cf28c22c45253e2077693bc2cd39ba6) Add custom field support for organizational models to API serializers - [`ed059d8`](https://github.com/netbox-community/netbox/commit/ed059d80d696e355624b24cc744388f6da11ede6) Introduce OrganizationalModelSerializer ### 📊 Changes **353 files changed** (+14600 additions, -6991 deletions) <details> <summary>View changed files</summary> 📝 `base_requirements.txt` (+4 -0) 📝 `docs/additional-features/change-logging.md` (+1 -1) 📝 `docs/additional-features/custom-fields.md` (+2 -1) 📝 `docs/additional-features/custom-scripts.md` (+4 -9) 📝 `docs/additional-features/export-templates.md` (+6 -1) ➕ `docs/additional-features/journaling.md` (+5 -0) 📝 `docs/additional-features/webhooks.md` (+14 -2) 📝 `docs/core-functionality/circuits.md` (+1 -0) 📝 `docs/core-functionality/devices.md` (+2 -0) 📝 `docs/core-functionality/sites-and-racks.md` (+3 -2) ➕ `docs/development/models.md` (+98 -0) 📝 `docs/installation/1-postgresql.md` (+18 -19) 📝 `docs/installation/2-redis.md` (+10 -10) 📝 `docs/installation/3-netbox.md` (+28 -28) 📝 `docs/installation/index.md` (+3 -3) 📝 `docs/models/circuits/circuittermination.md` (+3 -3) ➕ `docs/models/circuits/providernetwork.md` (+5 -0) 📝 `docs/models/dcim/device.md` (+1 -1) 📝 `docs/models/dcim/interface.md` (+8 -4) ➕ `docs/models/dcim/location.md` (+5 -0) _...and 80 more files_ </details> ### 📄 Description ### New Features #### Journaling Support ([#151](https://github.com/netbox-community/netbox/issues/151)) NetBox now supports journaling for all primary objects. The journal is a collection of human-generated notes and comments about an object maintained for historical context. It supplements NetBox's change log to provide additional information about why changes have been made or to convey events which occur outside NetBox. Unlike the change log, in which records typically expire after some time, journal entries persist for the life of the associated object. #### Parent Interface Assignments ([#1519](https://github.com/netbox-community/netbox/issues/1519)) Virtual device and VM interfaces can now be assigned to a "parent" interface by setting the `parent` field on the interface object. This is helpful for associating subinterfaces with their physical counterpart. For example, you might assign virtual interfaces Gi0/0.100 and Gi0/0.200 as children of the physical interface Gi0/0. #### Pre- and Post-Change Snapshots in Webhooks ([#3451](https://github.com/netbox-community/netbox/issues/3451)) In conjunction with the newly improved change logging functionality ([#5913](https://github.com/netbox-community/netbox/issues/5913)), outgoing webhooks now include both pre- and post-change representations of the modified object. These are available in the rendering context as a dictionary named `snapshots` with keys `prechange` and `postchange`. For example, here are the abridged snapshots resulting from renaming a site and changing its status: ```json "snapshots": { "prechange": { "name": "Site 1", "slug": "site-1", "status": "active", ... }, "postchange": { "name": "Site 2", "slug": "site-2", "status": "planned", ... } } ``` Note: The pre-change snapshot for a newly created will always be null, as will the post-change snapshot for a deleted object. #### Mark as Connected Without a Cable ([#3648](https://github.com/netbox-community/netbox/issues/3648)) Cable termination objects (circuit terminations, power feeds, and most device components) can now be marked as "connected" without actually attaching a cable. This helps simplify the process of modeling an infrastructure boundary where we don't necessarily know or care what is connected to an attachment point, but still need to reflect the termination as being occupied. In addition to the new `mark_connected` boolean field, the REST API representation of these objects now also includes a read-only boolean field named `_occupied`. This conveniently returns true if either a cable is attached or `mark_connected` is true. #### Allow Assigning Devices to Locations ([#4971](https://github.com/netbox-community/netbox/issues/4971)) Devices can now be assigned to locations (formerly known as rack groups) within a site without needing to be assigned to a particular rack. This is handy for assigning devices to rooms or floors within a building where racks are not used. The `location` foreign key field has been added to the Device model to support this. #### Dynamic Object Exports ([#4999](https://github.com/netbox-community/netbox/issues/4999)) When exporting a list of objects in NetBox, users now have the option of selecting the "current view". This will render CSV output matching the current configuration of the table being viewed. For example, if you modify the sites list to display only the site name, tenant, and status, the rendered CSV will include only these columns, and they will appear in the order chosen. The legacy static export behavior has been retained to ensure backward compatibility for dependent integrations. However, users are strongly encouraged to adapt custom export templates where needed as this functionality will be removed in v2.12. #### Variable Scope Support for VLAN Groups ([#5284](https://github.com/netbox-community/netbox/issues/5284)) In previous releases, VLAN groups could be assigned only to a site. To afford more flexibility in conveying the true scope of an L2 domain, a VLAN group can now be assigned to a region, site group (new in v2.11), site, location, or rack. VLANs assigned to a group will be available only to devices and virtual machines which exist within its scope. For example, a VLAN within a group assigned to a location will be available only to devices assigned to that location (or one of its child locations), or to a rack within that location. #### New Site Group Model ([#5892](https://github.com/netbox-community/netbox/issues/5892)) This release introduces the new SiteGroup model, which can be used to organize sites similar to the existing Region model. Whereas regions are intended for geographically arranging sites into countries, states, and so on, the new site group model can be used to organize sites by functional role or other arbitrary classification. Using regions and site groups in conjunction provides two dimensions along which sites can be organized, offering greater flexibility to the user. #### Improved Change Logging ([#5913](https://github.com/netbox-community/netbox/issues/5913)) The ObjectChange model (which is used to record the creation, modification, and deletion of NetBox objects) now explicitly records the pre-change and post-change state of each object, rather than only the post-change state. This was done to present a more clear depiction of each change being made, and to prevent the erroneous association of a previous unlogged change with its successor. #### Provider Network Modeling ([#5986](https://github.com/netbox-community/netbox/issues/5986)) A new provider network model has been introduced to represent the boundary of a network that exists outside the scope of NetBox. Each instance of this model must be assigned to a provider, and circuits can now terminate to either provider networks or to sites. The use of this model will likely be extended by future releases to support overlay and virtual circuit modeling. ### Enhancements * [#4833](https://github.com/netbox-community/netbox/issues/4833) - Allow assigning config contexts by device type * [#5344](https://github.com/netbox-community/netbox/issues/5344) - Add support for custom fields in tables * [#5370](https://github.com/netbox-community/netbox/issues/5370) - Extend custom field support to organizational models * [#5375](https://github.com/netbox-community/netbox/issues/5375) - Add `speed` attribute to console port models * [#5401](https://github.com/netbox-community/netbox/issues/5401) - Extend custom field support to device component models * [#5425](https://github.com/netbox-community/netbox/issues/5425) - Create separate tabs for VMs and devices under the cluster view * [#5451](https://github.com/netbox-community/netbox/issues/5451) - Add support for multiple-selection custom fields * [#5608](https://github.com/netbox-community/netbox/issues/5608) - Add REST API endpoint for custom links * [#5610](https://github.com/netbox-community/netbox/issues/5610) - Add REST API endpoint for webhooks * [#5757](https://github.com/netbox-community/netbox/issues/5757) - Add unique identifier to every object view * [#5830](https://github.com/netbox-community/netbox/issues/5830) - Add `as_attachment` to ExportTemplate to control download behavior * [#5848](https://github.com/netbox-community/netbox/issues/5848) - Filter custom fields by content type in format `<app_label>.<model>` * [#5891](https://github.com/netbox-community/netbox/issues/5891) - Add `display` field to all REST API serializers * [#5894](https://github.com/netbox-community/netbox/issues/5894) - Use primary keys when filtering object lists by related objects in the UI * [#5895](https://github.com/netbox-community/netbox/issues/5895) - Rename RackGroup to Location * [#5901](https://github.com/netbox-community/netbox/issues/5901) - Add `created` and `last_updated` fields to device component models * [#5971](https://github.com/netbox-community/netbox/issues/5971) - Add dedicated views for organizational models * [#5972](https://github.com/netbox-community/netbox/issues/5972) - Enable bulk editing for organizational models * [#5975](https://github.com/netbox-community/netbox/issues/5975) - Allow partial (decimal) vCPU allocations for virtual machines * [#6001](https://github.com/netbox-community/netbox/issues/6001) - Paginate component tables under device views * [#6038](https://github.com/netbox-community/netbox/issues/6038) - Include tagged objects list on tag view * [#6088](https://github.com/netbox-community/netbox/issues/6088) - Improved table configuration form * [#6097](https://github.com/netbox-community/netbox/issues/6097) - Redirect old slug-based object views * [#6125](https://github.com/netbox-community/netbox/issues/6125) - Add locations count to home page * [#6146](https://github.com/netbox-community/netbox/issues/6146) - Add bulk disconnect support for power feeds * [#6149](https://github.com/netbox-community/netbox/issues/6149) - Support image attachments for locations ### Bug Fixes (from v2.11-beta1) * [#5583](https://github.com/netbox-community/netbox/issues/5583) - Eliminate redundant change records when adding/removing tags * [#6100](https://github.com/netbox-community/netbox/issues/6100) - Fix VM interfaces table "add interfaces" link * [#6104](https://github.com/netbox-community/netbox/issues/6104) - Fix location column on racks table * [#6105](https://github.com/netbox-community/netbox/issues/6105) - Hide checkboxes for VMs under cluster VMs view * [#6106](https://github.com/netbox-community/netbox/issues/6106) - Allow assigning a virtual interface as the parent of an existing interface * [#6107](https://github.com/netbox-community/netbox/issues/6107) - Fix rack selection field on device form * [#6110](https://github.com/netbox-community/netbox/issues/6110) - Fix handling of TemplateColumn values for table export * [#6123](https://github.com/netbox-community/netbox/issues/6123) - Prevent device from being assigned to mismatched site and location * [#6124](https://github.com/netbox-community/netbox/issues/6124) - Location `parent` filter should return all child locations (not just those directly assigned) * [#6130](https://github.com/netbox-community/netbox/issues/6130) - Improve display of assigned models in custom fields list * [#6155](https://github.com/netbox-community/netbox/issues/6155) - Fix admin links for plugins, background tasks * [#6171](https://github.com/netbox-community/netbox/issues/6171) - Fix display of horizontally-scrolling object lists * [#6173](https://github.com/netbox-community/netbox/issues/6173) - Fix assigned device/VM count when bulk editing/deleting device roles * [#6176](https://github.com/netbox-community/netbox/issues/6176) - Correct position of MAC address field when creating VM interfaces * [#6177](https://github.com/netbox-community/netbox/issues/6177) - Prevent VM interface from being assigned as its own parent ### Other Changes * [#1638](https://github.com/netbox-community/netbox/issues/1638) - Migrate all primary keys to 64-bit integers * [#5873](https://github.com/netbox-community/netbox/issues/5873) - Use numeric IDs in all object URLs * [#5938](https://github.com/netbox-community/netbox/issues/5938) - Deprecated support for Python 3.6 * [#5990](https://github.com/netbox-community/netbox/issues/5990) - Deprecated `display_field` parameter for custom script ObjectVar and MultiObjectVar fields * [#5995](https://github.com/netbox-community/netbox/issues/5995) - Dropped backward compatibility for `queryset` parameter on ObjectVar and MultiObjectVar (use `model` instead) * [#6014](https://github.com/netbox-community/netbox/issues/6014) - Moved the virtual machine interfaces list to a separate view * [#6071](https://github.com/netbox-community/netbox/issues/6071) - Cable traces now traverse circuits --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-29 22:25:26 +01:00
adam closed this issue 2025-12-29 22:25:26 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#13104