Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.5.0 #2660

Merged
merged 208 commits into from
Dec 10, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
208 commits
Select commit Hold shift + click to select a range
ac546a9
Closes #2000: Remove support for Python 2
jeremystretch Aug 14, 2018
980d62d
Removed Python 2 string compatibility
jeremystretch Aug 14, 2018
5f66710
Closes #2292: Remove the deprecated UserAction model
jeremystretch Aug 14, 2018
6dd62dc
Refactored log_change() methods for device components
jeremystretch Aug 14, 2018
7ec4155
Closes #2359: Implement custom makemigrations command to ignore extra…
jeremystretch Aug 15, 2018
7145f86
#2359: Extended exempt attributes to 'migrate' command
jeremystretch Aug 15, 2018
c4be440
Closes #2367: Remove deprecated RPCClient functionality
jeremystretch Aug 16, 2018
29380b1
Merge branch 'develop' into develop-2.5
jeremystretch Aug 16, 2018
19b737a
Added v2.5 notes (so far) to changelog
jeremystretch Aug 16, 2018
2ac60bd
Merge branch 'develop' into develop-2.5 (v2.4.4 release)
jeremystretch Aug 22, 2018
364bbde
Merged release v2.4.5
jeremystretch Oct 3, 2018
3eddeea
Initial work on #20 - patch panels
jeremystretch Oct 3, 2018
22ed4f1
Merge release v2.4.6
jeremystretch Oct 10, 2018
ea5121f
Preliminary work on Cables
jeremystretch Oct 18, 2018
d908dff
Fixed content type assignment within migration
jeremystretch Oct 19, 2018
59af8cc
Remove ConnectableModel
jeremystretch Oct 19, 2018
4cfe9fe
Merge branch 'develop' into develop-2.5
jeremystretch Oct 19, 2018
a36b120
Merge branch 'develop-2.5' into 20-physical-cabling
jeremystretch Oct 19, 2018
471bdde
WIP: Initial work on the cable connection form
jeremystretch Oct 22, 2018
ea0de62
Fixed cable creation form
jeremystretch Oct 23, 2018
1595a5e
Renamed ConsolePort.cs_port to connected_endpoint
jeremystretch Oct 24, 2018
2ec8dc8
Renamed PowerPort.power_outlet to connected_endpoint
jeremystretch Oct 24, 2018
f30367e
Deprecated the InterfaceConnection model
jeremystretch Oct 24, 2018
9985f2c
Added CableListView
jeremystretch Oct 24, 2018
54c917b
Renamed Cable endpoints to terminations
jeremystretch Oct 24, 2018
cca44d4
Added cable filter form
jeremystretch Oct 24, 2018
47c523a
Fixed interface connection rendering
jeremystretch Oct 24, 2018
35f80f5
First stab at cable path tracing and automatic endpoint connections
jeremystretch Oct 24, 2018
e79a156
Improved cable tracing
jeremystretch Oct 25, 2018
b19e203
Dropped 'Panel' from FrontPanelPort/RearPanelPort names
jeremystretch Oct 25, 2018
2664291
Removed 'is_patch_panel' from DeviceType
jeremystretch Oct 25, 2018
f134a6e
Introduced CableTermination abstract model to ptovide Cable access fr…
jeremystretch Oct 25, 2018
2d90fc6
Introduced CableView and CableEditView
jeremystretch Oct 25, 2018
6bea8cc
Added length and length_unit fields to Cable
jeremystretch Oct 26, 2018
957de0c
Added cable connections to component lists
jeremystretch Oct 26, 2018
4ad7882
Clever icon thing
jeremystretch Oct 26, 2018
3518d02
Implemented Cable API endpoint
jeremystretch Oct 26, 2018
83dec3b
Fixed color display
jeremystretch Oct 26, 2018
94946c5
Swapped the order of cable and connection fields
jeremystretch Oct 26, 2018
0c7510c
PEP8 cleanup
jeremystretch Oct 26, 2018
33cdecb
Remove errant print() statement
jeremystretch Oct 26, 2018
8573c8b
Remove is_console_server, is_pdu, and is_network_device from DeviceType
jeremystretch Oct 26, 2018
8f8df2b
Added cable types
jeremystretch Oct 26, 2018
dc67028
Corrected cable display
jeremystretch Oct 29, 2018
e21b23c
Introduced 'cable' field on CableTermination to cache connected Cable
jeremystretch Oct 29, 2018
05431aa
Added 'cable' field to device component serializers
jeremystretch Oct 29, 2018
17a71d3
Optimized front/rear port connection displays
jeremystretch Oct 29, 2018
1ab4344
Fix front/rear port connection styling
jeremystretch Oct 29, 2018
cb1bdcc
'cable' should be a read-only field
jeremystretch Oct 29, 2018
427226d
Optimized API views
jeremystretch Oct 29, 2018
d7766b9
Replace 'is_connected' boolean with Cable attachment
jeremystretch Oct 29, 2018
8ebf7a7
Standard naming of reverse relationship to Device from component models
jeremystretch Oct 29, 2018
e75ef5f
Replace references to Interface.connection with connected_endpoint
jeremystretch Oct 29, 2018
e3dc123
Introduced a 'trace' API endpoint for cable terminations
jeremystretch Oct 29, 2018
cbfb25f
Initial work on a cable tracing modal
jeremystretch Oct 29, 2018
4df7478
Extended Cables to connect CircuitTerminations
jeremystretch Oct 30, 2018
3420b5f
CircuitTermination should inherit from CableTermination
jeremystretch Oct 30, 2018
2fa1c81
Added initial tests for cable connections
jeremystretch Oct 30, 2018
aad4f58
Add 'cable' field to CircuitTermination serializer
jeremystretch Oct 30, 2018
60f5371
Fix front ports queryset
jeremystretch Oct 30, 2018
e1e9a45
PEP8 fix
jeremystretch Oct 30, 2018
10492de
Fix NestedCableSerializer
jeremystretch Oct 30, 2018
62ca511
Updated documentation
jeremystretch Oct 30, 2018
669fe1f
Add missing interfaces table
jeremystretch Oct 30, 2018
470aabe
Added dedicated cable trace view; removed modal
jeremystretch Oct 30, 2018
f2f9ff5
Cleaned up migrations
jeremystretch Oct 31, 2018
6f788fc
Tweaked display of connected circuits
jeremystretch Oct 31, 2018
939a52d
Changed variable names for clarity
jeremystretch Oct 31, 2018
8992c57
Remove reverse relationship to CableTermination.cable
jeremystretch Oct 31, 2018
d22c232
Moved cable caching logic from Cable.save() to signals
jeremystretch Oct 31, 2018
c2656c4
Added tests for Cable model
jeremystretch Oct 31, 2018
121a6af
Fixed typo in API URL template
jeremystretch Oct 31, 2018
f7e23d9
Expanded cable connection form
jeremystretch Oct 31, 2018
1862816
Removed old console/power connection views
jeremystretch Oct 31, 2018
4e9ace3
Optimized queryset for InterfaceConnectionsListView
jeremystretch Oct 31, 2018
cd243a9
connected_endpoint must be read-only on termination serializers
jeremystretch Oct 31, 2018
55c632a
Introduce CableBulkImportView
jeremystretch Oct 31, 2018
849db8f
Finished CableCSVForm
jeremystretch Nov 1, 2018
3bc6fc5
Added changelog view for Cable
jeremystretch Nov 1, 2018
5e7fccb
Add blank choice to ColorSelect widget
jeremystretch Nov 1, 2018
ad03a09
Fixed cable type filtering
jeremystretch Nov 1, 2018
79c110d
Create id_string on Cable to preserve access to pk after object deletion
jeremystretch Nov 1, 2018
571a3e9
Added cable column to console/power/interface connection tables
jeremystretch Nov 1, 2018
903dfb6
Added validation to Cable model
jeremystretch Nov 1, 2018
105f936
Fixed Cable model validation
jeremystretch Nov 1, 2018
a5f0dea
Put length and length_unit fields on same line in form
jeremystretch Nov 1, 2018
841ddd5
Add circuit termination as valid termination type for front/rear ports
jeremystretch Nov 1, 2018
2af3685
Added cables documentation
jeremystretch Nov 1, 2018
c3db719
Added bulk edit/delete views for cables
jeremystretch Nov 1, 2018
1119209
Added CSV export for cables
jeremystretch Nov 1, 2018
623de7d
Fixed cable list display for circuit terminations
jeremystretch Nov 1, 2018
7ffb5f1
Fix color display for cables
jeremystretch Nov 1, 2018
62da077
Suppress print() output from migrations during testing
jeremystretch Nov 1, 2018
91ce6c2
Cable migration for ExportTemplate
jeremystretch Nov 1, 2018
fa6c4db
Closes #2104: Add 'status' field to Rack
jeremystretch Nov 1, 2018
d4ec309
Changelog for #2104
jeremystretch Nov 2, 2018
4ffe186
Closes #1444: Add field to Rack model
jeremystretch Nov 2, 2018
c60c550
Closes #450: Add 'outer_width' and 'outer_depth' fields to Rack
jeremystretch Nov 2, 2018
43446cc
Added more detail to v2.5.0 release notes
jeremystretch Nov 2, 2018
af95ba4
Replaced is_console_server, is_pdu, and is_network_device filters on …
jeremystretch Nov 2, 2018
16d8308
Deprecated CableTermination.get_connected_cable()
jeremystretch Nov 2, 2018
cefec1b
Show connected circuit termination on interface view
jeremystretch Nov 2, 2018
cf9c8f3
Normalize ordering of cables by PK
jeremystretch Nov 2, 2018
3ea2978
Standardized naming of reverse relationships from component templates…
jeremystretch Nov 2, 2018
bb5c098
Fixed compatability with Django REST Framework v3.9.0
jeremystretch Nov 2, 2018
29d546a
Upgraded django-filter to 2.0.0
jeremystretch Nov 2, 2018
516faac
Fixed deprecation warnings from DRF 3.9
jeremystretch Nov 2, 2018
9804db4
Updated dependencies
jeremystretch Nov 2, 2018
b05171b
Upgraded django-tables2 to v2.0.2
jeremystretch Nov 2, 2018
0a71c63
Upgraded to Django 2.1
jeremystretch Nov 2, 2018
521a989
Removed Python2 hack
jeremystretch Nov 2, 2018
f8a961b
Cleaned up import statements
jeremystretch Nov 2, 2018
66ef5c7
Removed deprecated CableQuerySet
jeremystretch Nov 2, 2018
319869c
Update django is_safe_url calls to new API (#2546)
jkjuopperi Nov 5, 2018
e5f1210
Closes #2165: Re-implemented natural ordering for interfaces
jeremystretch Nov 5, 2018
976388f
Removed 'interface_ordering' field from DeviceType
jeremystretch Nov 5, 2018
53b6a07
Changelog for #2165
jeremystretch Nov 5, 2018
045856c
Introduced a placeholder template filter
jeremystretch Nov 5, 2018
1847e82
Closes #867: Add a 'description' field to CircuitTermination
jeremystretch Nov 5, 2018
e8caa46
Expanded v2.5 release notes
jeremystretch Nov 5, 2018
46e594f
Closes #1931: Added a count of assigned IP addresses to the interface…
jeremystretch Nov 5, 2018
82076d3
Changelog for #1931
jeremystretch Nov 5, 2018
e57b3bc
Closes #2057: Added description columns to interface connections list
jeremystretch Nov 5, 2018
01628cd
Updated base requirements
jeremystretch Nov 5, 2018
ce00226
Merge release v2.4.7 into develop-2.5
jeremystretch Nov 6, 2018
bb114ea
Re-implemented connected device API view & test
jeremystretch Nov 6, 2018
ad4e1f0
Improved templates for cable creation
jeremystretch Nov 6, 2018
5e06c5a
Added cable connection views for front/rear ports
jeremystretch Nov 6, 2018
6140dd9
Set unit_length to empty string when not specified during cable import
jeremystretch Nov 6, 2018
60452a7
Implemented DeviceComponentManager; removed natsort as a dependency
jeremystretch Nov 6, 2018
9f01692
Standardize usage of NaturalOrderingManager
jeremystretch Nov 6, 2018
f41f141
Removed unused class NullableModelMultipleChoiceField
jeremystretch Nov 6, 2018
338ce73
Removed deprecated expand_numeric_pattern()
jeremystretch Nov 6, 2018
e806b58
Release v2.5-beta1
jeremystretch Nov 6, 2018
f61cea6
Release v2.5-beta1
jeremystretch Nov 6, 2018
c063961
Add Cable count to home page (#2556)
Nov 7, 2018
d4e266d
Fixes #2563: Enable export templates for cables
jeremystretch Nov 7, 2018
1e36a88
Changelog for #2563
jeremystretch Nov 8, 2018
0dee558
Fixes #2567: Introduced proxy models to represent console/power/inter…
jeremystretch Nov 8, 2018
4b5181d
Fixes #2566: Prevent both ends of a cable from connecting to the same…
jeremystretch Nov 8, 2018
a228f1e
Closes #2569: Added LSH fiber type; removed SC duplex/simplex designa…
jeremystretch Nov 8, 2018
21fd889
Fix regression from #2566
jeremystretch Nov 8, 2018
bb5432d
PEP8 fix
jeremystretch Nov 8, 2018
3e92aa9
Fixes #2571: Enforce deletion of attached cable when deleting a termi…
jeremystretch Nov 8, 2018
30f8fb4
Fixes #2572: Add button to disconnect cable from circuit termination
jeremystretch Nov 8, 2018
788847e
Fixes #2573: Fix bulk console/power/interface disconnections
jeremystretch Nov 8, 2018
be5bf6b
Closes #2570: Add bulk disconnect view for front/rear pass-through ports
jeremystretch Nov 8, 2018
0316072
Fixes #2574: Remove duplicate interface links from topology maps
jeremystretch Nov 9, 2018
3bbf4a3
Fixes #2579: Add missing cable disconnect buttons for front/rear ports
jeremystretch Nov 9, 2018
04ae6ec
Fixes #2554: Fix cable trace display when following a rear port with …
jeremystretch Nov 9, 2018
75f0d8e
Closes #2578: Reorganized nested serializers
jeremystretch Nov 12, 2018
59589fd
Fixes #2580: Remove erroneous CSS class from "add components" button
jeremystretch Nov 12, 2018
bc8dbfd
Merge branch 'develop' into develop-2.5
jeremystretch Nov 12, 2018
9543b5e
fixed #2584 - validation for connecting front port to corresponding r…
lampwins Nov 13, 2018
7cd0e0b
#2584 changelog
lampwins Nov 13, 2018
8a6913f
fixed #2585 - connections with virtual interfaces
lampwins Nov 13, 2018
7887a70
#2585 changelog
lampwins Nov 13, 2018
65bc8f0
resolved #2586 - tests for the Cable model clean method
lampwins Nov 13, 2018
5649024
#2586 changelog
lampwins Nov 13, 2018
fc41359
removed blank line
lampwins Nov 13, 2018
f8e6cfb
Closes #2426: Introduced SESSION_FILE_PATH configuration setting for …
jeremystretch Nov 13, 2018
63bd480
Clean up cable termination types
jeremystretch Nov 14, 2018
641254b
Closes #2053: Introduced the LOGIN_TIMEOUT configuration setting
jeremystretch Nov 14, 2018
3c0181e
added logic to append &type=physical to interface API query for cable…
lampwins Nov 15, 2018
fd9b2f2
cleanup component filters and UI filter forms for device and device t…
lampwins Nov 15, 2018
dfe6ba5
#2583 changelog
lampwins Nov 15, 2018
7dde370
Fixes #2593: Fix toggling of connected cable's status
jeremystretch Nov 15, 2018
a324638
Improved logic for recording cable path connection status
jeremystretch Nov 19, 2018
55cc327
Updated migrations
jeremystretch Nov 19, 2018
8c3a294
Standardized behavior and display of connection_status
jeremystretch Nov 19, 2018
5ce955a
Fixed toggling of connection status for cable path endpoints
jeremystretch Nov 20, 2018
c29ae9b
Added missing import buttons to cables list
jeremystretch Nov 20, 2018
874acab
Merge v2.4.8
jeremystretch Nov 20, 2018
89622f1
Fixes #2602: Return HTTP 204 when no new IPs/prefixes are available f…
jeremystretch Nov 20, 2018
2b1516e
Changelog for #2602
jeremystretch Nov 20, 2018
240d226
Strip annotations from queryset when retrieving object count for API …
jeremystretch Nov 21, 2018
d59be29
Closes #2601: Added a description field to pass-through ports
jeremystretch Nov 21, 2018
a46f68c
Fixes #2608: Fixed null outer_unit error on rack import
jeremystretch Nov 26, 2018
2bae50f
Enforce consistent ordering of value/label keys for ChoiceField
jeremystretch Nov 26, 2018
7d8ae5e
Fixes #2609: Fixed exception when ChoiceField integer value is passed…
jeremystretch Nov 26, 2018
3f1b42d
Release v2.5-beta2
jeremystretch Nov 26, 2018
7d26229
Added a description and repo URL for each dependency
jeremystretch Nov 27, 2018
bd7aee7
Closes #2614: Simplify calls of super() for Python 3
jeremystretch Nov 27, 2018
4da755e
Formatting cleanup
jeremystretch Nov 27, 2018
5acd429
Fixes #2624: Delete associated content type and permissions when remo…
jeremystretch Nov 28, 2018
08b4b24
Fixes #2622: Enable filtering cables by multiple types/colors
jeremystretch Nov 28, 2018
a1a9396
Closes #2594: upgrade.sh no longer invokes sudo
jeremystretch Nov 30, 2018
d1cd366
Fixes #2616: Convert Rack outer_unit and Cable length_unit to integer…
jeremystretch Nov 30, 2018
a3ade01
Fixes #2639: Fix preservation of length/dimensions unit for racks and…
jeremystretch Dec 3, 2018
dffa2d3
Closes #2632: Change representation of null values from 0 to 'null'
jeremystretch Dec 4, 2018
f0874f4
Add missing choices for new cable and rack fields
jeremystretch Dec 4, 2018
ab4cb46
Additional API change notes
jeremystretch Dec 5, 2018
2a07e8f
Move queryset_to_csv() utility into ObjectListView to allow overridin…
jeremystretch Dec 5, 2018
870edbb
Fixes #2626: Remove extraneous permissions generated from proxy models
jeremystretch Dec 5, 2018
71dee27
Simplified filter_device() for Interfaces
jeremystretch Dec 6, 2018
64d37cd
Closes #2648: Include the connection_status field in nested represena…
jeremystretch Dec 6, 2018
360303f
Closes #2474: Add cabled and connection_status filters for device com…
jeremystretch Dec 6, 2018
45a1dfb
Closes #2649: Add connected_endpoint_type to connectable device compo…
jeremystretch Dec 6, 2018
703be25
Normalize connection_status for non-connected device components durin…
jeremystretch Dec 6, 2018
9689ba2
Fix representation of connected_endpoint_type for non-connected compo…
jeremystretch Dec 6, 2018
65edffe
Merge v2.5 work
jeremystretch Dec 7, 2018
77fbc42
Relax Python version requirement to 3.4
jeremystretch Dec 7, 2018
44a2919
Django 2.1 requires Python 3.5+
jeremystretch Dec 7, 2018
2bd9f8a
Updated installation docs for v2.5 release
jeremystretch Dec 7, 2018
baeb793
Updated requirements for v2.5 release
jeremystretch Dec 7, 2018
7d4fa69
Fixes #2657: Fix typo
jeremystretch Dec 10, 2018
4e6652d
Change pip command to pip3
jeremystretch Dec 10, 2018
acbe5f6
Release v2.5.0
jeremystretch Dec 10, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ addons:
postgresql: "9.4"
language: python
python:
- "2.7"
- "3.5"
install:
- pip install -r requirements.txt
Expand Down
79 changes: 79 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,82 @@
v2.5.0 (2018-12-10)

## Notes

### Python 3 Required

As promised, Python 2 support has been completed removed. Python 3.5 or higher is now required to run NetBox. Please see [our Python 3 migration guide](https://netbox.readthedocs.io/en/stable/installation/migrating-to-python3/) for assistance with upgrading.

### Removed Deprecated User Activity Log

The UserAction model, which was deprecated by the new change logging feature in NetBox v2.4, has been removed. If you need to archive legacy user activity, do so prior to upgrading to NetBox v2.5, as the database migration will remove all data associated with this model.

### View Permissions in Django 2.1

Django 2.1 introduces view permissions for object types (not to be confused with object-level permissions). Implementation of [#323](https://github.com/digitalocean/netbox/issues/323) is planned for NetBox v2.6. Users are encourage to begin assigning view permissions as desired in preparation for their eventual enforcement.

### upgrade.sh No Longer Invokes sudo

The `upgrade.sh` script has been tweaked so that it no longer invokes `sudo` internally. This was done to ensure compatibility when running NetBox inside a Python virtual environment. If you need elevated permissions when upgrading NetBox, call the upgrade script with `sudo upgrade.sh`.

## New Features

### Patch Panels and Cables ([#20](https://github.com/digitalocean/netbox/issues/20))

NetBox now supports modeling physical cables for console, power, and interface connections. The new pass-through port component type has also been introduced to model patch panels and similar devices.

## Enhancements

* [#450](https://github.com/digitalocean/netbox/issues/450) - Added `outer_width` and `outer_depth` fields to rack model
* [#867](https://github.com/digitalocean/netbox/issues/867) - Added `description` field to circuit terminations
* [#1444](https://github.com/digitalocean/netbox/issues/1444) - Added an `asset_tag` field for racks
* [#1931](https://github.com/digitalocean/netbox/issues/1931) - Added a count of assigned IP addresses to the interface API serializer
* [#2000](https://github.com/digitalocean/netbox/issues/2000) - Dropped support for Python 2
* [#2053](https://github.com/digitalocean/netbox/issues/2053) - Introduced the `LOGIN_TIMEOUT` configuration setting
* [#2057](https://github.com/digitalocean/netbox/issues/2057) - Added description columns to interface connections list
* [#2104](https://github.com/digitalocean/netbox/issues/2104) - Added a `status` field for racks
* [#2165](https://github.com/digitalocean/netbox/issues/2165) - Improved natural ordering of Interfaces
* [#2292](https://github.com/digitalocean/netbox/issues/2292) - Removed the deprecated UserAction model
* [#2367](https://github.com/digitalocean/netbox/issues/2367) - Removed deprecated RPCClient functionality
* [#2426](https://github.com/digitalocean/netbox/issues/2426) - Introduced `SESSION_FILE_PATH` configuration setting for authentication without write access to database
* [#2594](https://github.com/digitalocean/netbox/issues/2594) - `upgrade.sh` no longer invokes sudo

## Changes From v2.5-beta2

* [#2474](https://github.com/digitalocean/netbox/issues/2474) - Add `cabled` and `connection_status` filters for device components
* [#2616](https://github.com/digitalocean/netbox/issues/2616) - Convert Rack `outer_unit` and Cable `length_unit` to integer-based choice fields
* [#2622](https://github.com/digitalocean/netbox/issues/2622) - Enable filtering cables by multiple types/colors
* [#2624](https://github.com/digitalocean/netbox/issues/2624) - Delete associated content type and permissions when removing InterfaceConnection model
* [#2626](https://github.com/digitalocean/netbox/issues/2626) - Remove extraneous permissions generated from proxy models
* [#2632](https://github.com/digitalocean/netbox/issues/2632) - Change representation of null values from `0` to `null`
* [#2639](https://github.com/digitalocean/netbox/issues/2639) - Fix preservation of length/dimensions unit for racks and cables
* [#2648](https://github.com/digitalocean/netbox/issues/2648) - Include the `connection_status` field in nested represenations of connectable device components
* [#2649](https://github.com/digitalocean/netbox/issues/2649) - Add `connected_endpoint_type` to connectable device component API representations

## API Changes

* The `/extras/recent-activity/` endpoint (replaced by change logging in v2.4) has been removed
* The `rpc_client` field has been removed from dcim.Platform (see #2367)
* Introduced a new API endpoint for cables at `/dcim/cables/`
* New endpoints for front and rear pass-through ports (and their templates) in parallel with existing device components
* The fields `interface_connection` on Interface and `interface` on CircuitTermination have been replaced with `connected_endpoint` and `connection_status`
* A new `cable` field has been added to console, power, and interface components and to circuit terminations
* New fields for dcim.Rack: `status`, `asset_tag`, `outer_width`, `outer_depth`, `outer_unit`
* The following boolean filters on dcim.Device and dcim.DeviceType have been renamed:
* `is_console_server`: `console_server_ports`
* `is_pdu`: `power_outlets`
* `is_network_device`: `interfaces`
* The following new boolean filters have been introduced for dcim.Device and dcim.DeviceType:
* `console_ports`
* `power_ports`
* `pass_through_ports`
* The field `interface_ordering` has been removed from the DeviceType serializer
* Added a `description` field to the CircuitTermination serializer
* Added `ipaddress_count` to InterfaceSerializer to show the count of assigned IP addresses for each interface
* The `available-prefixes` and `available-ips` IPAM endpoints now return an HTTP 204 response instead of HTTP 400 when no new objects can be created
* Filtering on null values now uses the string `null` instead of zero

---

v2.4.9 (2018-12-07)

## Enhancements
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ or join us in the #netbox Slack channel on [NetworkToCode](https://networktocode

### Build Status

NetBox is built against both Python 2.7 and 3.5. Python 3.5 or higher is strongly recommended.

| | status |
|-------------|------------|
| **master** | [![Build Status](https://travis-ci.org/digitalocean/netbox.svg?branch=master)](https://travis-ci.org/digitalocean/netbox) |
Expand Down
69 changes: 58 additions & 11 deletions base_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,25 +1,72 @@
# django-filter-1.1.0 breaks with Django-2.1
Django>=1.11,<2.1
# The Python web framework on which NetBox is built
# https://github.com/django/django
Django

# Django middleware which permits cross-domain API requests
# https://github.com/OttoYiu/django-cors-headers
django-cors-headers

# Runtime UI tool for debugging Django
# https://github.com/jazzband/django-debug-toolbar
django-debug-toolbar
# django-filter-2.0.0 drops Python 2 support (blocked by #2000)
django-filter==1.1.0

# Library for writing reusable URL query filters
# https://github.com/carltongibson/django-filter
django-filter

# Modified Preorder Tree Traversal (recursive nesting of objects)
# https://github.com/django-mptt/django-mptt
django-mptt

# Abstraction models for rendering and paginating HTML tables
# https://github.com/jieter/django-tables2
django-tables2

# User-defined tags for objects
# https://github.com/alex/django-taggit
django-taggit

# A Django REST Framework serializer which represents tags
# https://github.com/glemmaPaul/django-taggit-serializer
django-taggit-serializer

# A Django field for representing time zones
# https://github.com/mfogel/django-timezone-field/
django-timezone-field
# https://github.com/encode/django-rest-framework/issues/6053
djangorestframework==3.8.1

# A REST API framework for Django projects
# https://github.com/encode/django-rest-framework
djangorestframework

# Swagger/OpenAPI schema generation for REST APIs
# https://github.com/axnsan12/drf-yasg
drf-yasg[validation]

# Python interface to the graphviz graph rendering utility
# https://github.com/xflr6/graphviz
graphviz
Markdown
natsort
ncclient

# Simple markup language for rendering HTML
# https://github.com/Python-Markdown/markdown
# py-gfm requires Markdown<3.0
Markdown<3.0

# Library for manipulating IP prefixes and addresses
# https://github.com/drkjam/netaddr
netaddr
paramiko

# Fork of PIL (Python Imaging Library) for image processing
# https://github.com/python-pillow/Pillow
Pillow

# PostgreSQL database adapter for Python
# https://github.com/psycopg/psycopg2
psycopg2-binary

# GitHub-flavored Markdown extensions
# https://github.com/zopieux/py-gfm
py-gfm

# Extensive cryptographic library (fork of pycrypto)
# https://github.com/Legrandin/pycryptodome
pycryptodome
xmltodict
2 changes: 1 addition & 1 deletion docs/administration/netbox-shell.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This will launch a customized version of [the built-in Django shell](https://doc
```
$ ./manage.py nbshell
### NetBox interactive shell (jstretch-laptop)
### Python 2.7.6 | Django 1.11.3 | NetBox 2.1.0-dev
### Python 3.5.2 | Django 2.0.8 | NetBox 2.4.3
### lsmodels() will show available models. Use help(<model>) for more info.
```

Expand Down
16 changes: 16 additions & 0 deletions docs/configuration/optional-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,14 @@ Setting this to True will permit only authenticated users to access any part of

---

## LOGIN_TIMEOUT

Default: 1209600 seconds (14 days)

The liftetime (in seconds) of the authentication cookie issued to a NetBox user upon login.

---

## MAINTENANCE_MODE

Default: False
Expand Down Expand Up @@ -223,6 +231,14 @@ The file path to the location where custom reports will be kept. By default, thi

---

## SESSION_FILE_PATH

Default: None

Session data is used to track authenticated users when they access NetBox. By default, NetBox stores session data in the PostgreSQL database. However, this inhibits authentication to a standby instance of NetBox without write access to the database. Alternatively, a local file path may be specified here and NetBox will store session data as files instead of using the database. Note that the user as which NetBox runs must have read and write permissions to this path.

---

## TIME_ZONE

Default: UTC
Expand Down
2 changes: 1 addition & 1 deletion docs/core-functionality/circuits.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Circuit types are fully customizable.

A circuit may have one or two terminations, annotated as the "A" and "Z" sides of the circuit. A single-termination circuit can be used when you don't know (or care) about the far end of a circuit (for example, an Internet access circuit which connects to a transit provider). A dual-termination circuit is useful for tracking circuits which connect two sites.

Each circuit termination is tied to a site, and optionally to a specific device and interface within that site. Each termination can be assigned a separate downstream and upstream speed independent from one another. Fields are also available to track cross-connect and patch panel details.
Each circuit termination is tied to a site, and may optionally be connected via a cable to a specific device interface or pass-through port. Each termination can be assigned a separate downstream and upstream speed independent from one another. Fields are also available to track cross-connect and patch panel details.

!!! note
A circuit represents a physical link, and cannot have more than two endpoints. When modeling a multi-point topology, each leg of the topology must be defined as a discrete circuit.
Expand Down
60 changes: 42 additions & 18 deletions docs/core-functionality/devices.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@ A device type represents a particular make and model of hardware that exists in

Device types are instantiated as devices installed within racks. For example, you might define a device type to represent a Juniper EX4300-48T network switch with 48 Ethernet interfaces. You can then create multiple devices of this type named "switch1," "switch2," and so on. Each device will inherit the components (such as interfaces) of its device type at the time of creation. (However, changes made to a device type will **not** apply to instances of that device type retroactively.)

The device type model includes three flags which inform what type of components may be added to it:

* `is_console_server`: This device type has console server ports
* `is_pdu`: This device type has power outlets
* `is_network_device`: This device type has network interfaces

Some devices house child devices which share physical resources, like space and power, but which functional independently from one another. A common example of this is blade server chassis. Each device type is designated as one of the following:

* A parent device (which has device bays)
Expand All @@ -32,6 +26,8 @@ Each device type is assigned a number of component templates which define the ph
* Power ports
* Power outlets
* Network interfaces
* Front ports
* Rear ports
* Device bays (which house child devices)

Whenever a new device is created, its components are automatically created per the templates assigned to its device type. For example, a Juniper EX4300-48T device type might have the following component templates defined:
Expand All @@ -56,32 +52,28 @@ When assigning a multi-U device to a rack, it is considered to be mounted in the

A device is said to be full depth if its installation on one rack face prevents the installation of any other device on the opposite face within the same rack unit(s). This could be either because the device is physically too deep to allow a device behind it, or because the installation of an opposing device would impede airflow.

## Device Roles

Devices can be organized by functional roles. These roles are fully customizable. For example, you might create roles for core switches, distribution switches, and access switches.

---

# Device Components
## Device Components

There are six types of device components which comprise all of the interconnection logic with NetBox:
There are eight types of device components which comprise all of the interconnection logic with NetBox:

* Console ports
* Console server ports
* Power ports
* Power outlets
* Network interfaces
* Front ports
* Rear ports
* Device bays

## Console
### Console

Console ports connect only to console server ports. Console connections can be marked as either *planned* or *connected*.

## Power
### Power

Power ports connect only to power outlets. Power connections can be marked as either *planned* or *connected*.

## Interfaces
### Interfaces

Interfaces connect to one another in a symmetric manner: If interface A connects to interface B, interface B therefore connects to interface A. Each type of connection can be classified as either *planned* or *connected*.

Expand All @@ -91,10 +83,20 @@ Each interface can also be enabled or disabled, and optionally designated as man

VLANs can be assigned to each interface as either tagged or untagged. (An interface may have only one untagged VLAN.)

## Device Bays
### Pass-through Ports

Pass-through ports are used to model physical terminations which comprise part of a longer path, such as a cable terminated to a patch panel. Each front port maps to a position on a rear port. A 24-port UTP patch panel, for instance, would have 24 front ports and 24 rear ports. Although this relationship is typically one-to-one, a rear port may have multiple front ports mapped to it. This can be useful for modeling instances where multiple paths share a common cable (for example, six different fiber connections sharing a 12-strand MPO cable).

Pass-through ports can also be used to model "bump in the wire" devices, such as a media convertor or passive tap.

### Device Bays

Device bays represent the ability of a device to house child devices. For example, you might install four blade servers into a 2U chassis. The chassis would appear in the rack elevation as a 2U device with four device bays. Each server within it would be defined as a 0U device installed in one of the device bays. Child devices do not appear within rack elevations, but they are included in the "Non-Racked Devices" list within the rack view.

## Device Roles

Devices can be organized by functional roles. These roles are fully customizable. For example, you might create roles for core switches, distribution switches, and access switches.

---

# Platforms
Expand All @@ -118,3 +120,25 @@ Inventory items represent hardware components installed within a device, such as
A virtual chassis represents a set of devices which share a single control plane: a stack of switches which are managed as a single device, for example. Each device in the virtual chassis is assigned a position and (optionally) a priority. Exactly one device is designated the virtual chassis master: This device will typically be assigned a name, secrets, services, and other attributes related to its management.

It's important to recognize the distinction between a virtual chassis and a chassis-based device. For instance, a virtual chassis is not used to model a chassis switch with removable line cards such as the Juniper EX9208, as its line cards are _not_ physically separate devices capable of operating independently.

---

# Cables

A cable represents a physical connection between two termination points, such as between a console port and a patch panel port, or between two network interfaces. Cables can be traced through pass-through ports to form a complete path between two endpoints. In the example below, three individual cables comprise a path between the two connected endpoints.

```
|<------------------------------------------ Cable Path ------------------------------------------->|

Device A Patch Panel A Patch Panel B Device B
+-----------+ +-------------+ +-------------+ +-----------+
| Interface | --- Cable --- | Front Port | | Front Port | --- Cable --- | Interface |
+-----------+ +-------------+ +-------------+ +-----------+
+-------------+ +-------------+
| Rear Port | --- Cable --- | Rear Port |
+-------------+ +-------------+
```

All connections between device components in NetBox are represented using cables. However, defining the actual cable plant is optional: Components can be be directly connected using cables with no type or other attributes assigned.

Cables are also used to associated ports and interfaces with circuit terminations. To do this, first create the circuit termination, then navigate the desired component and connect a cable between the two.
Loading