Releases: netbox-community/netbox
v2.3-beta2 - 2018-02-06
NOTE: The data model for virtual chassis (#99) has been completely reworked to be more efficient. If upgrading from v2.3-beta1, you'll need to start from a stable database (v2.2.x) and re-apply migrations.
New Features
Virtual Chassis (#99)
A virtual chassis represents a set of physical devices with a shared control plane; for example, a stack of switches managed as a single device. Viewing the master device of a virtual chassis will show all member interfaces and IP addresses.
Interface VLAN Assignments (#150)
Interfaces can now be assigned an 802.1Q mode (access or trunked) and associated with particular VLANs. Thanks to John Anderson for his work on this!
Bulk Object Creation via the API (#1553)
The REST API now supports the creation of multiple objects of the same type using a single POST request. For example, to create multiple devices:
curl -X POST -H "Authorization: Token <TOKEN>" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/devices/ --data '[
{"name": "device1", "device_type": 24, "device_role": 17, "site": 6},
{"name": "device2", "device_type": 24, "device_role": 17, "site": 6},
{"name": "device3", "device_type": 24, "device_role": 17, "site": 6},
]'
Bulk creation is all-or-none: If any of the creations fails, the entire operation is rolled back.
Automatic Provisioning of Next Available Prefixes (#1694)
Similar to IP addresses, NetBox now supports automated provisioning of available prefixes from within a parent prefix. For example, to retrieve the next three available /28s within a parent /24:
curl -X POST -H "Authorization: Token <TOKEN>" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/ipam/prefixes/10153/available-prefixes/ --data '[
{"prefix_length": 28},
{"prefix_length": 28},
{"prefix_length": 28}
]'
If the parent prefix cannot accommodate all requested prefixes, the operation is cancelled and no new prefixes are created.
Bulk Renaming of Device/VM Components (#1781)
Device components (interfaces, console ports, etc.) can now be renamed in bulk via the web interface. This was implemented primarily to support the bulk renumbering of interfaces whose parent is part of a virtual chassis.
Enhancements
- #1283 - Added a
time_zone
field to the site model - #1321 - Added
created
andlast_updated
fields for relevant models to their API serializers - #1553 - Introduced support for bulk object creation via the API
- #1592 - Added tenancy assignment for rack reservations
- #1744 - Allow associating a platform with a specific manufacturer
- #1758 - Added a
status
field to the site model - #1821 - Added a
description
field to the site model - #1864* - Added a
status
field to the circuit model
* New in v2.3-beta2
Bug Fixes
- #1136 - Enforce model validation during bulk update
- #1645 - Simplified interface serialzier for IP addresses and optimized API view queryset
- #1838* - Fix KeyError when attempting to create a VirtualChassis with no devices selected
- #1847* - RecursionError when a virtual chasis master device has no name
- #1848* - Allow null value for interface encapsulation mode
- #1867* - Allow filtering on device status with multiple values
* New in v2.3-beta2
Breaking Changes
- Constants representing device status have been renamed for clarity. For example,
STATUS_ACTIVE
is nowDEVICE_STATUS_ACTIVE
.
API Changes
- API creation calls now accept either a single JSON object or a list of JSON objects. If multiple objects are passed and one or more them fail validation, no objects will be created.
- Added
created
andlast_updated
fields for objects inheriting from CreatedUpdatedModel. - Removed the
parent
filter for prefixes (usewithin
orwithin_include
instead). - The IP address serializer now includes only a minimal nested representation of thre assigned interface (if any) and its parent device or virtual machine.
- The rack reservation serializer now includes a nested representation of its owning user (as well as the assigned tenant, if any).
- Added endpoints for virtual chassis and VC memberships.
- Added
status
,time_zone
(pytz format), anddescription
fields to dcim.Site. - Added a
manufacturer
foreign key field on dcim.Platform. - Added a
status
field on circuits.Circuit.
v2.2.9 - 2018-01-31
Enhancements
- #144 - Implemented bulk import/edit/delete views for InventoryItems
- #1073 - Include prefixes/IPs from all VRFs when viewing the children of a container prefix in the global table
- #1366 - Enable searching for regions by name/slug
- #1406 - Display tenant description as title text in object tables
- #1824 - Add virtual machine count to platforms list
- #1835 - Consistent positioning of previous/next rack buttons
Bug Fixes
- #1621 - Tweaked LLDP interface name evaluation logic
- #1765 - Improved rendering of null options for model choice fields in filter forms
- #1807 - Populate VRF from parent when creating a new prefix
- #1809 - Populate tenant assignment from parent when creating a new prefix
- #1818 - InventoryItem API serializer no longer requires specifying a null value for items with no parent
- #1845 - Correct display of VMs in list with no role assigned
- #1850 - Fix TypeError when attempting IP address import if only unnamed devices exist
v2.3-beta1 - 2017-01-25
New Features
Virtual Chassis (#99)
A virtual chassis represents a set of physical devices with a shared control plane; for example, a stack of switches managed as a single device. Viewing the master device of a virtual chassis will show all interfaces and IP addresses belonging to other VC member devices.
Interface VLAN Assignments (#150)
Interfaces can now be assigned an 802.1Q mode (access or trunked) and associated with particular VLANs. Thanks to John Anderson for his work on this!
Bulk Object Creation via the API (#1553)
The REST API now supports the creation of multiple objects of the same type using a single POST
request. For example, to create multiple devices:
curl -X POST -H "Authorization: Token <TOKEN>" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
http://localhost:8000/api/dcim/devices/ \
--data '[
{"name": "device1", "device_type": 24, "device_role": 17, "site": 6},
{"name": "device2", "device_type": 24, "device_role": 17, "site": 6},
{"name": "device3", "device_type": 24, "device_role": 17, "site": 6},
]'
Bulk creation is all-or-none: If any single object fails to validate, the entire operation is rolled back.
Automatic Provisioning of Next Available Prefixes (#1694)
Similar to IP addresses, NetBox now supports automated provisioning of available prefixes from within a parent prefix. For example, to create the first three available /28s within a parent /24:
curl -X POST -H "Authorization: Token <TOKEN>" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
http://localhost:8000/api/ipam/prefixes/<PK>/available-prefixes/ \
--data '[
{"prefix_length": 28},
{"prefix_length": 28},
{"prefix_length": 28}
]'
If the parent prefix cannot accommodate all requested prefixes, the operation is cancelled and no new prefixes are created.
Bulk Renaming of Device/VM Components (#1781)
Device components (interfaces, console ports, etc.) can now be renamed in bulk via the web interface. This was implemented primarily to support the bulk renumbering of interfaces whose parent is part of a virtual chassis.
Enhancements
- #1283 - Added a
time_zone
field to the site model - #1321 - Added
created
andlast_updated
fields for relevant models to their API serializers - #1553 - Introduced support for bulk object creation via the API
- #1592 - Added tenancy assignment for rack reservations
- #1744 - Allow associating a platform with a specific manufacturer
- #1758 - Added a
status
field to the site model - #1821 - Added a
description
field to the site model - Removed support for NAPALM v1.x
Bug Fixes
- #1136 - Enforce model validation during bulk update
- #1645 - Simplified interface serialzier for IP addresses and optimized API view queryset
API Changes
- API creation calls now accept either a single JSON object or a list of JSON objects. If multiple objects are passed and one or more them fail validation, no objects will be created.
- Added
created
andlast_updated
fields for objects inheriting from CreatedUpdatedModel. - Removed the
parent
filter for prefixes (usewithin
orwithin_include
instead). - The IP address serializer now includes only a minimal nested representation of thre assigned interface (if any) and its parent device or virtual machine.
- The rack reservation serializer now includes a nested representation of its owning user (as well as the assigned tenant, if any).
- Added endpoints for virtual chassis and VC memberships.
- Added
status
,time_zone
(pytz format), anddescription
fields to dcim.Site. - Added a
manufacturer
foreign key field on dcim.Platform.
v2.2.8 - 2017-12-20
Enhancements
- #1771 - Added name filter for racks
- #1772 - Added position filter for devices
- #1773 - Moved child prefixes table to its own view
- #1774 - Include a button to refine search results for all object types under global search
- #1784 - Added
cluster_type
filters for virtual machines
Bug Fixes
- #1766 - Fixed display of "select all" button on device power outlets list
- #1767 - Use proper template for 404 responses
- #1778 - Preserve initial VRF assignment when adding IP addresses in bulk from a prefix
- #1783 - Added
vm_role
filter for device roles - #1785 - Omit filter forms from browsable API
- #1787 - Added missing site field to virtualization cluster CSV export
v2.2.7 - 2017-12-07
Enhancements
- #1722 - Added virtual machine count to site view
- #1737 - Added a
contains
API filter to find all prefixes containing a given IP or prefix
Bug Fixes
- #1712 - Corrected tenant inheritance for new IP addresses created from a parent prefix
- #1721 - Differentiated child IP count from utilization percentage for prefixes
- #1740 - Delete session_key cookie on logout
- #1741 - Fixed Unicode support for secret plaintexts
- #1743 - Include number of instances for device types in global search
- #1751 - Corrected filtering for IPv6 addresses containing letters
- #1756 - Improved natural ordering of console server ports and power outlets
v2.2.6 - 2017-11-16
Enhancements
- #1669 - Clicking "add an IP" from the prefix view will default to the first available IP within the prefix
Bug Fixes
- #1397 - Display global search in navigation menu unless display is less than 1200px wide
- #1599 - Reduce mobile cut-off for navigation menu to 960px
- #1715 - Added missing import buttons on object lists
- #1717 - Fixed interface validation for virtual machines
- #1718 - Set empty label to "Global" or VRF field in IP assignment form
v2.2.5 - 2017-11-14
Enhancements
- #1512 - Added a view to search for an IP address being assigned to an interface
- #1679 - Added IP address roles to device/VM interface lists
- #1683 - Replaced default 500 handler with custom middleware to provide preliminary troubleshooting assistance
- #1684 - Replaced prefix
parent
filter withwithin
andwithin_include
Bug Fixes
- #1471 - Correct bulk selection of IP addresses within a prefix assigned to a VRF
- #1642 - Validate device type classification when creating console server ports and power outlets
- #1650 - Correct numeric ordering for interfaces with no alphabetic type
- #1676 - Correct filtering of child prefixes upon bulk edit/delete from the parent prefix view
- #1689 - Disregard IP address mask when filtering for child IPs of a prefix
- #1696 - Fix for NAPALM v2.0+
- #1699 - Correct nested representation in the API of primary IPs for virtual machines and add missing primary_ip property
- #1701 - Fixed validation in
extras/0008_reports.py
migration for certain versions of PostgreSQL - #1703 - Added API serializer validation for custom integer fields
- #1705 - Fixed filtering of devices with a status of offline
v2.2.4 - 2017-10-31
v2.2.3 - 2017-10-31
Enhancements
- #999 - Display devices on which circuits are terminated in circuits list
- #1491 - Added initial data for the virtualization app
- #1620 - Loosen IP address search filter to match all IPs that start with the given string
- #1631 - Added a
post_run
method to the Report class - #1666 - Allow modifying the owner of a rack reservation
Bug Fixes
- #1513 - Correct filtering of custom field choices
- #1603 - Hide selection checkboxes for tables with no available actions
- #1618 - Allow bulk deletion of all virtual machines
- #1619 - Correct text-based filtering of IP network and address fields
- #1624 - Add VM count to device roles table
- #1634 - Cluster should not be a required field when importing child devices
- #1649 - Correct filtering on null values (e.g. ?tenant_id=0) for django-filters v1.1.0+
- #1653 - Remove outdated description for DeviceType's
is_network_device
flag - #1664 - Added missing
serial
field in default rack CSV export
v2.2.2 - 2017-10-17
Enhancements
- #1580 - Allow cluster assignment when bulk importing devices
- #1587 - Add primary IP column for virtual machines in global search results
Bug Fixes
- #1498 - Avoid duplicating nodes when generating topology maps
- #1579 - Devices already assigned to a cluster cannot be added to a different cluster
- #1582 - Add
virtual_machine
attribute to IPAddress - #1584 - Colorized virtual machine role column
- #1585 - Fixed slug-based filtering of virtual machines
- #1605 - Added clusters and virtual machines to object list for global search
- #1609 - Added missing
virtual_machine
field to IP address interface serializer