Compare commits

...

4649 Commits

Author SHA1 Message Date
Jeremy Stretch
91ea12344c Merge pull request #5455 from netbox-community/develop
Release v2.10.0
2020-12-14 14:38:23 -05:00
Jeremy Stretch
f572f66426 Release v2.10.0 2020-12-14 14:27:14 -05:00
Jeremy Stretch
872ba89cad Merge pull request #5454 from netbox-community/develop-2.10
Stage v2.10 release
2020-12-14 14:19:14 -05:00
Jeremy Stretch
1f2daaad59 Merge branch 'develop' into develop-2.10 2020-12-14 14:08:21 -05:00
esljaz
230b503b7a Clarify REMOTE_AUTH_HEADER documentation (#5430) 2020-12-14 14:03:13 -05:00
Jeremy Stretch
a371c08c86 Merge branch 'develop' into develop-2.10 2020-12-11 16:57:04 -05:00
Jeremy Stretch
55e8d37fb0 Post-release version bump 2020-12-11 16:49:13 -05:00
Jeremy Stretch
3f5a2b9c7a Merge pull request #5448 from netbox-community/develop
Release v2.9.11
2020-12-11 16:47:30 -05:00
Jeremy Stretch
a589022fcc Merge branch 'master' into develop 2020-12-11 16:46:41 -05:00
Jeremy Stretch
31fc8076e3 Release v2.9.11 2020-12-11 16:33:08 -05:00
John Anderson
53f330dbe8 fixes #5387 - Fix error when rendering config contexts when objects have multiple tags assigned (#5447) 2020-12-11 16:20:46 -05:00
Jeremy Stretch
13a13f3943 Fixes #5446: Fix validation for plugin version and required settings 2020-12-11 16:05:50 -05:00
Jeremy Stretch
00ca227292 Fixes #5433: Exclude SVG files from front/rear image upload for device types (currently unsupported) 2020-12-11 09:27:00 -05:00
Jeremy Stretch
5c8ed73608 Closes #5439: Add CS and SN fiber port types 2020-12-11 08:56:02 -05:00
Jeremy Stretch
5df01ed3e6 Encourage people to use GitHub discussions in place of the mailing list 2020-12-10 15:59:42 -05:00
Jeremy Stretch
43d7d5570e Merge branch 'develop' into develop-2.10 2020-12-10 10:26:15 -05:00
Jeremy Stretch
e062cbb79f Fixes #5436: Show assigned IP addresses in interfaces list 2020-12-10 08:52:55 -05:00
Jeremy Stretch
27e27788cd Closes #5424: Allow passing Python code to nbshell using --command 2020-12-08 16:14:52 -05:00
Jeremy Stretch
cc5c000a6d Move CI to GitHub Actions (#5431)
Replaces Travis CI with GitHub Actions
2020-12-08 14:55:06 -05:00
Jeremy Stretch
2c7fc5df75 Closes #5411: Include cable tags in trace view 2020-12-04 15:56:33 -05:00
Jeremy Stretch
f7e61cc153 Fixes #5417: Fix exception when viewing a device installed within a device bay 2020-12-04 15:21:33 -05:00
Jeremy Stretch
e7f64334c0 Fixes #5410: Restore tags field on cable connection forms 2020-12-04 08:57:19 -05:00
Jeremy Stretch
584b8109a0 Fixes #5408: Fix updating secrets without setting new plaintext 2020-12-03 15:23:39 -05:00
Jeremy Stretch
d75696b30a Fixes #5407: Add direct link to secret on secrets list 2020-12-03 14:15:48 -05:00
Jeremy Stretch
22bb700f94 Fixes #5396: Fix uniqueness constraint for virtual machine names 2020-12-03 13:40:42 -05:00
Jeremy Stretch
a4b2e1f2e2 Fix typo (from PR #5393) 2020-12-03 12:13:08 -05:00
Jeremy Stretch
6ee161bdc6 Add references to GitHub discussions 2020-12-03 12:11:44 -05:00
Hans Erasmus
13349dab6d Fixed small typo (#5393)
Very small typo fixed
2020-12-03 11:48:34 -05:00
Jeremy Stretch
1159976d99 Release v2.10-beta2 2020-12-03 09:02:44 -05:00
Jeremy Stretch
407b16c98c Fix device component template 2020-12-02 16:39:26 -05:00
Jeremy Stretch
96ce9122f4 Clean up breadcrumbs for device component views 2020-12-02 16:25:38 -05:00
Jeremy Stretch
a80f13243e Clean up tagged VLANs table column 2020-12-02 15:57:55 -05:00
Jeremy Stretch
c166852054 Remove warning message re: DEFAULT_TIMEOUT 2020-12-02 15:40:31 -05:00
Jeremy Stretch
ba00d57d37 Closes #4711: Rename Webhook.obj_type to content_types 2020-12-02 14:49:07 -05:00
Jeremy Stretch
f5133c6737 Include nested representation of nodes within each CablePath 2020-12-02 14:30:05 -05:00
Jeremy Stretch
5a4234fcb9 Standardize validation of interface VLAN assignments 2020-12-02 14:19:02 -05:00
Jeremy Stretch
3cbe8ddf02 Consolidate CableCSVForm validation logic 2020-12-02 13:17:30 -05:00
Jeremy Stretch
8461832a7b Fixes #5395: Fix cable tracing for rear ports with no corresponding front port 2020-12-02 12:03:25 -05:00
Jeremy Stretch
f504d1aa99 #5306: Standardize device/VM assignment for IP addresses & secrets 2020-12-02 10:53:40 -05:00
Jeremy Stretch
2b0ddd2a98 Closes #5399: Show options for cable endpoint types during bulk import 2020-12-02 10:08:41 -05:00
Jeremy Stretch
cc271aefe1 Closes #5400: Store custom field defaults as JSON values 2020-12-01 16:05:23 -05:00
Jeremy Stretch
0b57389af6 Add a better progress indicator for trace_paths 2020-12-01 13:30:59 -05:00
Jeremy Stretch
ef77961cf4 Fix tests 2020-12-01 12:01:10 -05:00
Jeremy Stretch
915cf3e715 Merge branch 'develop' into develop-2.10 2020-12-01 11:42:55 -05:00
Jeremy Stretch
cadba74b1f #5306: Introduce CSVContentTypeField for cable termination types 2020-12-01 11:03:05 -05:00
Jeremy Stretch
23b305847e Add changelog for #2755 2020-11-30 13:06:01 -05:00
Jeremy Stretch
f55e966c8f Closes #4865: Replace all Count() annotations with subqueries (#5385)
* Convert circuits to use subqueries

* Convert dcim to use subqueries

* Convert extras to use subqueries

* Convert ipam to use subqueries

* Convert secrets to use subqueries

* Convert virtualization to use subqueries

* Update global search view to use subqueries where appropriate

* Remove extraneous order_by() calls
2020-11-25 15:49:18 -05:00
Jeremy Stretch
77bbe5730b Fixes #5383: Fix setting user password via REST API 2020-11-25 11:47:53 -05:00
Jeremy Stretch
f8b523b97b Extend assertInstanceEqual to accept a list of data fields to exclude from comparison with the instance 2020-11-25 11:44:44 -05:00
Jeremy Stretch
d9c503a9ec Fixes #5176: Enforce content type restrictions when creating objects via the REST API 2020-11-25 10:24:41 -05:00
Jeremy Stretch
52aa123a9f Fix view tests 2020-11-25 09:22:24 -05:00
Jeremy Stretch
4e25c70f96 Merge branch 'develop' into develop-2.10 2020-11-24 16:50:21 -05:00
Jeremy Stretch
d250fd91a9 Post-release version bump 2020-11-24 16:48:55 -05:00
Jeremy Stretch
6a90295505 Merge pull request #5377 from netbox-community/develop
Release v2.9.10
2020-11-24 16:47:21 -05:00
Jeremy Stretch
b4c7727a82 Release v2.9.10 2020-11-24 16:36:46 -05:00
Jeremy Stretch
9ac64d57d0 Changelog for #5319 2020-11-24 16:29:09 -05:00
Jeremy Stretch
6f68be5aa7 Merge pull request #5362 from ndom91/5319-usb-power-outlet
Add: USB power outlet/ports
2020-11-24 16:26:26 -05:00
Jeremy Stretch
b68c79be6b Fixes #5376: Correct invalid custom field filter logic values 2020-11-24 10:28:34 -05:00
Jeremy Stretch
b3d674e170 Remove extraneous imports 2020-11-24 10:13:03 -05:00
ndom91
bff9bd5dbd chore: fix pep8 formatting fail 2020-11-24 16:07:22 +01:00
ndom91
e7e63796ac fix: typo 2020-11-24 15:50:10 +01:00
Jeremy Stretch
e1911a624b Merge branch 'develop-2.10' of https://github.com/netbox-community/netbox into develop-2.10 2020-11-24 09:44:54 -05:00
ndom91
825cc9a86f update: ordering / completeness of usb connectors 2020-11-24 15:44:51 +01:00
Jeremy Stretch
869c87e396 Add tests for per-device component views 2020-11-24 09:44:03 -05:00
Daniel Sheppard
e9fb91b197 Fixes: #5374 - Fix exception thrown when tracing mid-point 2020-11-24 08:41:48 -06:00
Jeremy Stretch
a081d0d93a Use smaller navigation tabs 2020-11-24 09:24:28 -05:00
Jeremy Stretch
54af29eb40 Move changelog for #5274 2020-11-24 09:14:45 -05:00
Jeremy Stretch
6cae4d7ee4 Fix CustomFieldSerializer content_types queryset 2020-11-23 18:55:17 -05:00
Jeremy Stretch
65d2994823 Changelog for #5274 2020-11-23 16:27:14 -05:00
Jeremy Stretch
8e0a6479ca Merge pull request #5372 from netbox-community/5274-custom-fields-api
Closes #5274: Enable REST API support for custom fields
2020-11-23 16:23:19 -05:00
Jeremy Stretch
98f2d2501b Add REST API test for custom fields 2020-11-23 16:01:51 -05:00
Jeremy Stretch
a05fe69043 Add REST API endpoint for custom fields 2020-11-23 15:54:42 -05:00
Jeremy Stretch
6fb080ff4c Rename CustomFieldFilterSet 2020-11-23 14:47:54 -05:00
Jeremy Stretch
9923548628 Note that maintenance mode disables last_active updates during login 2020-11-23 11:22:46 -05:00
Jeremy Stretch
181f5c991b Fixes #5309: Avoid extraneous database queries when manipulating objects 2020-11-20 15:40:09 -05:00
Jeremy Stretch
3dd2e4c84c Fixes #5360: Clear VLAN assignments when setting interface mode to none 2020-11-20 14:40:21 -05:00
ndom91
83f7f9f0e5 add: USB power outlet/ports 2020-11-19 23:59:51 +01:00
Jeremy Stretch
507fb5387b Merge pull request #5361 from netbox-community/5305-standardize-object-views
#5305: Optimize ObjectView to minimize view boilerplate
2020-11-19 16:47:23 -05:00
Jeremy Stretch
1d7bee5eee Move device template 2020-11-19 16:19:08 -05:00
Jeremy Stretch
1d922ee813 Migrate all ObjectView subclasses to use get_extra_context() 2020-11-19 15:59:11 -05:00
Jeremy Stretch
d237b97776 Update custom_fields_panel.html 2020-11-19 13:53:37 -05:00
Jeremy Stretch
790e1ee2e4 Update created_updated.html 2020-11-19 13:44:34 -05:00
Jeremy Stretch
e5caea04c1 Update UserKey views to use "object" context var 2020-11-19 13:43:17 -05:00
Jeremy Stretch
2f1ca902f7 Fall back to base template if object template doesn't exist 2020-11-19 13:31:59 -05:00
Jeremy Stretch
d5d87e0fdd Update templates to use "object" context var 2020-11-19 13:22:33 -05:00
Jeremy Stretch
3e7cf416f1 Update ObjectChangeLogView to use "object" context var 2020-11-19 11:49:37 -05:00
Jeremy Stretch
e2d2ff8586 Standardize on "object" for ObjectView template context 2020-11-19 11:29:18 -05:00
Jeremy Stretch
11fa348575 Fixes #5358: Fix user table configuration for VM interfaces 2020-11-19 09:45:01 -05:00
Jeremy Stretch
58668a6807 Add a "getting started" page for developers 2020-11-18 11:25:31 -05:00
Jeremy Stretch
6d379ad029 Refresh development documentation 2020-11-18 10:07:39 -05:00
Jeremy Stretch
a05fc091c8 Fixes #5356: Populate manufacturer field when adding a device component template 2020-11-17 16:30:58 -05:00
Jeremy Stretch
f2bc6f0f96 Fixes #5355: Limit rack groups by selected site when editing a rack 2020-11-17 16:25:20 -05:00
Jeremy Stretch
16a95beb22 Release v2.10-beta1 2020-11-17 15:53:31 -05:00
Jeremy Stretch
ef426deb53 Tweak help modal icon 2020-11-17 15:07:05 -05:00
Jeremy Stretch
6773709c34 Merge branch 'develop' into develop-2.10 2020-11-17 14:35:06 -05:00
Jeremy Stretch
e72db65be2 Clean up v2.10 release notes 2020-11-17 14:11:47 -05:00
Jeremy Stretch
5b9e1b04dc Fix badge icon CSS 2020-11-17 13:38:19 -05:00
Jeremy Stretch
c1c4f28f29 Update installation docs to use CentOS 8 2020-11-17 13:23:07 -05:00
Jeremy Stretch
59df724844 Updated installation docs 2020-11-17 12:01:10 -05:00
Jeremy Stretch
fc126d79cd Bump Django to 3.1.3 2020-11-17 10:32:06 -05:00
Jeremy Stretch
bb15f78ca5 Fix Cable model validation tests 2020-11-17 10:26:03 -05:00
Jeremy Stretch
83daadd575 Highlight the current termination 2020-11-16 16:07:29 -05:00
Jeremy Stretch
c559775135 Add support for tracing split paths 2020-11-16 15:49:07 -05:00
Jeremy Stretch
ba2ff0acb8 Fix icon class 2020-11-16 13:17:43 -05:00
Jeremy Stretch
5106e879c6 Fix CSS for dropdown menu icons 2020-11-16 12:15:27 -05:00
Jeremy Stretch
8c4d4532a4 Fixes #5235: Fix exception when editing IP address with a NAT IP assigned to a non-racked device 2020-11-16 10:59:41 -05:00
Jeremy Stretch
9a736170fe Fixes #5350: Filter available racks by selected group when creating a rack reservation 2020-11-16 10:38:57 -05:00
Jeremy Stretch
9f8f9e8b97 Fixes #5345: Fix non-deterministic ordering of prefixes and IP addresses 2020-11-16 10:17:05 -05:00
Jeremy Stretch
0ee4bc22e5 Add note about changelog 2020-11-16 09:40:50 -05:00
Jeremy Stretch
b9da0129ff Changelog for #5337 2020-11-16 09:38:00 -05:00
Jeremy Stretch
42c29d0f45 Merge pull request #5342 from JonathonReinhart/5337-add-splice-rearport-type
Closes #5337: Add "splice" port type
2020-11-16 09:34:12 -05:00
Jeremy Stretch
d0e6e9c837 Correct return URLs for device component actions 2020-11-13 15:37:34 -05:00
Jeremy Stretch
5f8b0cc40a Ensure consistent display of device component buttons 2020-11-13 15:29:37 -05:00
Jeremy Stretch
9736d6ba48 Separate device component lists into discrete views 2020-11-13 15:00:12 -05:00
Jeremy Stretch
052346364a Don't wrap component names 2020-11-13 13:14:10 -05:00
Jeremy Stretch
424d72a7b3 Fix up related paths list 2020-11-13 12:12:25 -05:00
Jeremy Stretch
eb5f6167a5 Add segment_count property to CablePath 2020-11-13 12:11:53 -05:00
Jeremy Stretch
e84a6b99a8 Improved cable trace UI 2020-11-12 16:55:02 -05:00
Jeremy Stretch
f3f3993963 Enforce custom field validation on the model 2020-11-12 14:23:08 -05:00
Jeremy Stretch
4a8a1ce45c Check for extraneous custom field data on clean() 2020-11-12 12:18:31 -05:00
Jonathon Reinhart
7aa9ecd17a Closes #5337: Add "splice" port type 2020-11-12 10:41:29 -05:00
Jeremy Stretch
aed25fea3a #259: Add present_in_vrf filters for IPAddress 2020-11-12 10:27:44 -05:00
Jeremy Stretch
cbea309786 Call out removal of DTL (#4360) at top of release notes 2020-11-12 10:17:19 -05:00
Jeremy Stretch
a3675854be Clean up generic view templates 2020-11-11 16:58:29 -05:00
Jeremy Stretch
b3c770216e Relocate and group generic views 2020-11-11 16:07:38 -05:00
Jeremy Stretch
8714c33e8a Move constants out of views.py 2020-11-11 15:36:57 -05:00
Jeremy Stretch
a0772fd7ba Move context processors under NetBox core 2020-11-11 15:28:07 -05:00
Jeremy Stretch
3d6baeaab0 Move selection field validation from admin form to model 2020-11-11 15:24:39 -05:00
Jeremy Stretch
d17bf67131 Rewrote documentation for custom fields 2020-11-11 15:23:35 -05:00
Jeremy Stretch
64d1f57276 Add custom get_operation_id() method to avoid monkey-patching coreapi 2020-11-11 14:25:43 -05:00
Jeremy Stretch
963df7e398 Correct FrontPortTemplate update data 2020-11-11 13:02:58 -05:00
Jeremy Stretch
5ed5ffea0e Bulk update should return complete object representation 2020-11-11 13:02:28 -05:00
Jeremy Stretch
d560e2da93 Fix tracing from front/rear ports 2020-11-11 11:48:55 -05:00
Jeremy Stretch
2b359ce1c7 Move rest_api_server_error() to utilities.api 2020-11-10 17:19:14 -05:00
Jeremy Stretch
4971469590 Move APIRootView to netbox.api.views 2020-11-10 17:13:22 -05:00
Jeremy Stretch
db0c61dea4 Consolidate middleware under NetBox core 2020-11-10 16:59:37 -05:00
Jeremy Stretch
c496b05630 Update Python dependencies 2020-11-10 16:44:19 -05:00
Jeremy Stretch
8348c5a674 Fix side panel width 2020-11-10 16:00:21 -05:00
Jeremy Stretch
d03c14d49c Closes #5154: Utilize all horizontal space for web UI 2020-11-10 13:55:53 -05:00
Jeremy Stretch
7a61354d8c Fix rack elevation image toggles 2020-11-10 13:42:48 -05:00
Jeremy Stretch
b9af6ef841 Tweak icons 2020-11-10 13:36:40 -05:00
Jeremy Stretch
de0e69840e Fix RegionTestCase 2020-11-10 13:13:01 -05:00
Jeremy Stretch
52312195b6 Ensure consistent inclusion of custom fields for newly-supporting models 2020-11-10 12:33:20 -05:00
Jeremy Stretch
fbe1ec3e6d Extend some CSV import tests to check ChoiceField slugs 2020-11-10 12:14:54 -05:00
Jeremy Stretch
46b48ee55d Add missing tenant attribute 2020-11-10 11:58:59 -05:00
Jeremy Stretch
f631f8c45b Correct label for RIR 2020-11-10 11:58:34 -05:00
Jeremy Stretch
1552681e6b Don't use responsive tables for device components 2020-11-10 11:53:40 -05:00
Jeremy Stretch
2377e04911 Fix up device component tab navigation & return URLs 2020-11-10 11:46:04 -05:00
Jeremy Stretch
aac930237a Fix permissions for REST API status view 2020-11-10 11:16:35 -05:00
Jeremy Stretch
97c588a8ba Clean up service form 2020-11-10 11:05:29 -05:00
Jeremy Stretch
3d6bf1e0f8 Clean up CustomField regex validation 2020-11-10 10:21:18 -05:00
Jeremy Stretch
b8a7870750 Fix bulk editing of device components 2020-11-10 09:22:50 -05:00
Jeremy Stretch
cb79a5a56d Remove old tables.py 2020-11-10 09:05:42 -05:00
Jeremy Stretch
0567f0d190 Merge branch 'develop' into develop-2.10 2020-11-09 20:58:59 -05:00
Jeremy Stretch
340e665817 Post release version bump 2020-11-09 20:57:35 -05:00
Jeremy Stretch
8ba50d0cf2 Merge pull request #5332 from netbox-community/develop
Release v2.9.9
2020-11-09 20:55:28 -05:00
Jeremy Stretch
a6f0154803 Release v2.9.9 2020-11-09 20:51:35 -05:00
Jeremy Stretch
652e128cfd Merge pull request #5317 from netbox-community/2755-material-design-icons
Closes #2755: Switch to Material Design icons
2020-11-09 20:46:23 -05:00
Jeremy Stretch
9b2dc89c6c Closes #5327: Be more strict when capturing anticipated ImportError exceptions 2020-11-09 16:49:05 -05:00
Jeremy Stretch
dc7da4f0f6 Fixes #5316: Dry running scripts should not trigger webhooks 2020-11-09 16:22:45 -05:00
Jeremy Stretch
ab33b3aa84 Fixes #5328: Fix CreatedUpdatedFilterTest when running in non-UTC timezone 2020-11-09 16:04:09 -05:00
Jeremy Stretch
bf836d4d46 Fixes #5331: Fix filtering of sites by null region 2020-11-09 15:58:59 -05:00
Jeremy Stretch
c3f2cc7648 Correct buttons() method in dummy plugin template content 2020-11-09 14:31:53 -05:00
Jeremy Stretch
d2c4c7fb10 Closes #5324: Add missing template extension tags for plugins for VM interface view 2020-11-09 14:19:22 -05:00
Jeremy Stretch
39f4dea051 Merge pull request #5326 from 991jo/patch-1
Fixed a UI Bug where there is no whitespace after grouped custom links.
2020-11-09 12:54:08 -05:00
991jo
7cf4095983 Fixed a UI Bug where there is no whitespace after grouped custom links.
See #5325 for details
2020-11-09 07:56:26 +01:00
John Anderson
0d27abc6fc fixes #5314 - Fix config context rendering when multiple tags are assgined to an object 2020-11-06 16:47:07 -05:00
Jeremy Stretch
62b0a68bef Don't use chevron-right icon for hierarchy 2020-11-06 16:26:16 -05:00
Jeremy Stretch
5db14f9410 Tweak CSS 2020-11-06 16:09:55 -05:00
Jeremy Stretch
6542a326c1 Clean up stray Font Awesome icons 2020-11-06 15:06:45 -05:00
Jeremy Stretch
72dace29b7 Replace Glyphicons with Material Design 2020-11-06 14:49:14 -05:00
Jeremy Stretch
867f308027 Replace Font Awesome icons with Material Design 2020-11-06 14:33:20 -05:00
Jeremy Stretch
d388472773 Add Material Design icons 2020-11-06 12:13:00 -05:00
Jeremy Stretch
39b322ae6b Closes #5313: Denote official support for Python 3.8 2020-11-05 16:08:33 -05:00
Jeremy Stretch
23cce55246 Merge branch 'develop' into develop-2.10 2020-11-05 15:33:07 -05:00
Jeremy Stretch
b39019cec9 Clarify cache invalidation instructions 2020-11-05 14:41:06 -05:00
Jeremy Stretch
f2cba78549 Closes #5310: Link to rack groups within rack list table 2020-11-05 14:24:22 -05:00
Jeremy Stretch
f845eeb117 Closes #5304: Return server error messages as JSON when handling REST API requests 2020-11-04 17:11:57 -05:00
Jeremy Stretch
c53990c739 Closes #5307: Add a region selector for every site form field 2020-11-04 15:27:41 -05:00
Jeremy Stretch
7d52b4d9a5 Changelog for #5271 2020-11-04 13:23:56 -05:00
Jeremy Stretch
a69d61c124 Merge pull request #5308 from netbox-community/5271-DynamicModelChoiceMixin-initial
Fixes #5271: Extend DynamicModelChoiceMixin to accept initial field values implied by child fields
2020-11-04 13:20:30 -05:00
Jeremy Stretch
798220cf9a Fix filter reference 2020-11-04 13:05:24 -05:00
Jeremy Stretch
7598b891c1 Add initial_params to all forms 2020-11-04 11:09:13 -05:00
Jeremy Stretch
1f0b1dd10e Add initial_params to DynamicModelChoiceMixin 2020-11-04 10:15:15 -05:00
Jeremy Stretch
f0bac741cc Move to lock-threads app 2020-11-04 08:58:20 -05:00
Jeremy Stretch
bd62611117 Skip signal processing when loading cables from fixtures 2020-11-03 13:32:05 -05:00
Jeremy Stretch
2bb79a2773 Add missing bulk update test data 2020-11-02 16:56:04 -05:00
Jeremy Stretch
9fae11a42f Add present_in_vrf filters 2020-11-02 15:39:46 -05:00
Jeremy Stretch
700aa1ad5c Add import/export RTs to VRFTable 2020-11-02 14:55:05 -05:00
Jeremy Stretch
9a9babfc35 Remove extraneous prefetch_related() calls from object list views 2020-10-30 16:54:41 -04:00
Jeremy Stretch
97c8306eeb Drop add_prefetch from BaseTable; improve dynamic prefetching for table querysets 2020-10-30 16:15:16 -04:00
Jeremy Stretch
8d02303515 Optimize cable termination tables 2020-10-30 13:57:17 -04:00
Jeremy Stretch
70e966923a Add CablePath.get_path() to prefetch path nodes 2020-10-30 13:32:10 -04:00
Jeremy Stretch
f82e2a8d20 Fixed up device & device type tab navigation 2020-10-30 11:41:51 -04:00
Jeremy Stretch
2424f684b9 Post-release version bump 2020-10-30 10:41:05 -04:00
Jeremy Stretch
6dcb2de28f Merge pull request #5293 from netbox-community/develop
Release v2.9.8
2020-10-30 10:38:17 -04:00
Jeremy Stretch
fcb5e6ae1c Merge branch 'develop' into develop-2.10 2020-10-30 10:38:05 -04:00
Jeremy Stretch
cbd155406b Release v2.9.8 2020-10-30 10:11:13 -04:00
Jeremy Stretch
70cc368225 Changelog for #4559, #5282, #5285 2020-10-30 09:14:52 -04:00
Jeremy Stretch
6d28eae5dc Merge pull request #5290 from nniehoff/5282-ldap-logging
Fixing #5282 - moving logging configuration from to configuration.py
2020-10-30 09:11:12 -04:00
Jeremy Stretch
ca932ecadc Merge pull request #5286 from netbox-community/5285-plugins-api-app_name
Fixes #5285: Include plugin API endpoints in root view without needing app_name set
2020-10-30 09:10:12 -04:00
Jeremy Stretch
04d763d814 Merge pull request #5266 from netbox-community/4559-config-context-rendering
4559 config context rendering
2020-10-30 09:09:40 -04:00
Nick Niehoff
97ea15e978 Removing logfile variable 2020-10-30 06:32:12 -06:00
John Anderson
28c17f33ab move get_queryset() to common mixin 2020-10-30 02:56:43 -04:00
John Anderson
db87a69488 convert region fields to f-string 2020-10-30 02:56:26 -04:00
Nick Niehoff
2b154dcfdf Fixing #5282 - moving logging configuration from authentication.py to configuration.py 2020-10-29 15:14:52 -06:00
Jeremy Stretch
1000039c74 Merge pull request #5277 from systeembeheerder/develop
Update upgrading.md
2020-10-29 17:11:04 -04:00
Jeremy Stretch
2ccc543542 Document the available template blocks within base.html 2020-10-29 17:10:19 -04:00
systeembeheerder
8ac2ee7b49 Update upgrading.md
make destination path for cp media absolute
2020-10-29 22:05:19 +01:00
Jeremy Stretch
db3fd27da2 Merge pull request #5283 from markkuleinio/develop
Fix #5265: Change systemctl status outputs to venv era
2020-10-29 16:49:34 -04:00
Jeremy Stretch
6edd65c4ed Merge pull request #5288 from netbox-community/5252-table-config
Closes #5252: Introduce an API endpoint for writing user preferences
2020-10-29 16:26:45 -04:00
Jeremy Stretch
aad32c4866 Add tests for UserConfig API endpoint 2020-10-29 16:05:59 -04:00
Jeremy Stretch
00e102fb0c Fix resetting column preferences 2020-10-29 14:42:40 -04:00
Jeremy Stretch
a43361170c Fix overwriting of existing preferences 2020-10-29 14:15:38 -04:00
Jeremy Stretch
acd4054e79 Customize device component tables for user 2020-10-29 14:07:36 -04:00
Jeremy Stretch
ffdb727e1c Update BaseTable to accept user instance directly 2020-10-29 14:03:08 -04:00
Jeremy Stretch
cf328ca51e Fix interfaces table header 2020-10-29 13:38:07 -04:00
Jeremy Stretch
b871d2a8c4 Fixes #5285: Include plugin API endpoints in root view without needing app_name set 2020-10-29 12:30:10 -04:00
Markku Leinio
02f348b15f Fix typo in weekday 2020-10-28 21:06:20 +02:00
Markku Leinio
4672f16fda Fix #5265: Change systemctl status outputs to venv era 2020-10-28 21:03:35 +02:00
systeembeheerder
6404657f99 Update upgrading.md
confirm 5275; use absolute paths
2020-10-27 16:07:38 +01:00
Jeremy Stretch
2f3557c18f Fixes #5273: Fix exception when validating a new permission with no models selected 2020-10-27 10:01:49 -04:00
John Anderson
047f03a58c clean up imports 2020-10-25 19:00:56 -04:00
John Anderson
606b015314 Merge branch 'develop' into 4559-config-context-rendering 2020-10-25 18:47:40 -04:00
John Anderson
478d82196a rebase develop 2020-10-25 18:20:21 -04:00
John Anderson
034ff2fb3f #3672 changelog 2020-10-25 18:19:20 -04:00
John Anderson
9bfb89fffd fixes #3672 - update django-cacheops to 5.1.0 2020-10-25 18:19:20 -04:00
John Anderson
26ff33c41a pep8 2020-10-25 17:56:42 -04:00
John Anderson
9e84e3b83b added tests 2020-10-25 16:49:18 -04:00
Jeremy Stretch
ce2210b7bc Introduce table_config_form template tag to simplify form generation 2020-10-23 16:47:53 -04:00
John Anderson
82f5d0070e account for null value annotations 2020-10-23 10:56:02 -04:00
John Anderson
22d2289ed2 add support for regions and vms 2020-10-23 01:18:04 -04:00
Jeremy Stretch
ff3d0b72b9 Tweak the table config form for generic use 2020-10-21 16:06:37 -04:00
Jeremy Stretch
4de7fcd758 Convert table config updates to use REST API 2020-10-21 14:52:50 -04:00
Jeremy Stretch
2845dd488e Add a REST API endpoint for updating user preferences 2020-10-21 09:05:33 -04:00
Jeremy Stretch
2e558ba031 Closes #5139: Omit utilization statistics from RIR list 2020-10-20 13:16:35 -04:00
John Anderson
3ba18633de initial work on config context performance improvements 2020-10-20 01:07:22 -04:00
Jeremy Stretch
9cbfc0ce9a Merge pull request #5251 from netbox-community/4786-device-component-tables
#4786: Convert device component templates to tables
2020-10-19 15:01:40 -04:00
Jeremy Stretch
55a2e0299c Standardize device component table columns 2020-10-19 13:55:02 -04:00
Jeremy Stretch
e304f105c9 Cleanup stray output 2020-10-16 17:03:14 -04:00
Jeremy Stretch
502b66367c Convert VM interfaces list to table 2020-10-16 17:01:55 -04:00
Jeremy Stretch
00caa368c5 Remove interface IPs toggle 2020-10-16 16:40:21 -04:00
Jeremy Stretch
a969b81e63 Change color for edit button 2020-10-16 16:36:12 -04:00
Jeremy Stretch
0a67926012 Fix up missing table columns 2020-10-16 16:33:08 -04:00
Jeremy Stretch
51821818e0 Add cable trace buttons 2020-10-16 16:14:05 -04:00
Jeremy Stretch
82c6fb6e19 Convert device inventory items list to table 2020-10-16 16:00:25 -04:00
Jeremy Stretch
7c1316619b Convert device device bays list to table 2020-10-16 15:51:46 -04:00
Jeremy Stretch
2146c38748 Convert device interfaces list to table 2020-10-16 15:42:48 -04:00
Jeremy Stretch
e3f98a011c Convert device rear ports list to table 2020-10-16 15:33:39 -04:00
Jeremy Stretch
68060cf9e9 Convert device front ports list to table 2020-10-16 15:28:28 -04:00
Jeremy Stretch
eed2e4a15b Convert device power outlets list to table 2020-10-16 15:16:36 -04:00
Jeremy Stretch
3a47e0e2ed Convert device power ports list to table 2020-10-16 15:09:23 -04:00
Jeremy Stretch
60c30b92ba Convert device console server ports list to table 2020-10-16 15:01:16 -04:00
Jeremy Stretch
99352a5d30 Convert device console ports list to table 2020-10-16 14:39:15 -04:00
Jeremy Stretch
35273c7bfe Add connection column for path endpoints 2020-10-16 11:41:24 -04:00
Jeremy Stretch
769b240164 Extend device component tables to include cable peer 2020-10-16 11:11:41 -04:00
Jeremy Stretch
823aa6b712 Add compatible types for PowerFeed 2020-10-16 11:05:42 -04:00
Jeremy Stretch
73bf3b9498 Reorganize DCIM tables 2020-10-16 10:39:13 -04:00
Jeremy Stretch
23d56a5758 Note REST API change for #4967 2020-10-16 10:04:33 -04:00
Daniel Sheppard
086b1d85c7 Update Change Notes 2020-10-15 21:23:32 -05:00
Daniel Sheppard
32274dec86 Closes: #4967 - Adds Tenancy to Aggregate model 2020-10-15 20:40:19 -05:00
Jeremy Stretch
dde52309d2 Fixes #5243: Redirect user to appropriate tab after modifying device components 2020-10-15 16:55:20 -04:00
Jeremy Stretch
c9c8d337a0 Closes #5011: Standardized name field lengths across all models 2020-10-15 15:37:34 -04:00
Jeremy Stretch
8781cf1c57 Closes #609: Add min/max value and regex validation for custom fields 2020-10-15 15:06:01 -04:00
John Anderson
87c13a876b fixes #5113 - incorrect caching of permission object assignments to user groups in the admin panel 2020-10-14 20:10:21 -04:00
Jeremy Stretch
e7d26ca5dc Move Cable and CablePath to cables.py 2020-10-14 16:54:30 -04:00
Jeremy Stretch
143f3cc27c #4711: Rename CustomField.obj_type to content_types 2020-10-14 15:26:46 -04:00
Jeremy Stretch
0d01a3fce8 Add schema migrations to plugins installation doc 2020-10-14 10:42:31 -04:00
Jeremy Stretch
defade84e4 Fix plugin name resolution 2020-10-13 17:18:13 -04:00
Jeremy Stretch
80c142ab7c Closes #4918: Add a REST API endpoint which returns NetBox's current operational status 2020-10-13 16:57:45 -04:00
Jeremy Stretch
c0c5f52ed9 Reorganize REST API components under netbox app 2020-10-13 15:57:21 -04:00
Jeremy Stretch
97ac6851d0 Merge branch 'develop' into develop-2.10 2020-10-12 09:51:54 -04:00
Jeremy Stretch
d4b96a5a27 Post-release version bump 2020-10-12 09:51:11 -04:00
Jeremy Stretch
1bbfc6da25 Merge pull request #5236 from netbox-community/develop
Release v2.9.7
2020-10-12 09:49:51 -04:00
Jeremy Stretch
1aabb2ed5d Release v2.9.7 2020-10-12 09:39:39 -04:00
Jeremy Stretch
f53810ebb2 Fixes #5231: Fix KeyError exception when viewing object with custom link and debugging is disabled 2020-10-09 15:53:45 -04:00
Jeremy Stretch
d61d62088f Ditch hard-coded filtering of ContentTypes API endpoint 2020-10-09 15:11:56 -04:00
Jeremy Stretch
3df3706f27 Closes #5190: Add a REST API endpoint for content types 2020-10-09 15:08:29 -04:00
Jeremy Stretch
66c4597525 Add RouteTarget to __all__ 2020-10-09 14:38:21 -04:00
Jeremy Stretch
30778a9c40 Closes #5225: CircuitTermination port_speed is now optional 2020-10-09 14:06:24 -04:00
Jeremy Stretch
96650b0216 Merge branch 'develop' into develop-2.10 2020-10-09 13:52:16 -04:00
Jeremy Stretch
7545599493 Post-release version bump 2020-10-09 13:31:28 -04:00
Jeremy Stretch
eecd51e08b Merge pull request #5230 from netbox-community/develop
Release v2.9.6
2020-10-09 13:27:42 -04:00
Jeremy Stretch
3047208e6a Release v2.9.6 2020-10-09 13:17:16 -04:00
Jeremy Stretch
a796e29c98 Fixes #5229: Fix AttributeError exception when LDAP authentication is enabled 2020-10-09 13:16:07 -04:00
Jeremy Stretch
26abd1f4e2 Merge pull request #5228 from netbox-community/develop
Release v2.9.5
2020-10-09 13:01:24 -04:00
Jeremy Stretch
5f0e04aebe Post-release version bump 2020-10-09 13:01:01 -04:00
Jeremy Stretch
918ca4fdcb Release v2.9.5 2020-10-09 12:57:14 -04:00
Jeremy Stretch
24e5dd0c78 Add scope warning to plugins development doc 2020-10-09 12:56:32 -04:00
Jeremy Stretch
f35715683e Closes #5202: Extend the available context data when rendering custom links 2020-10-09 12:36:09 -04:00
Jeremy Stretch
b5a65bc66c Fixes #5211: Add missing has_primary_ip filter for virtual machines 2020-10-09 11:46:16 -04:00
Jeremy Stretch
3a21f7ab26 Fixes #5226: Custom choice fields should be blank initially if no default choice has been designated 2020-10-09 11:34:50 -04:00
Jeremy Stretch
a2c012d2c4 Fixes #5224: Don't allow a rear port to have fewer positions than the number of mapped front ports 2020-10-08 16:24:08 -04:00
Jeremy Stretch
752b099d22 Exempt InventoryItem from queryset caching (MPTT) 2020-10-08 15:30:59 -04:00
Jeremy Stretch
6470613221 Merge pull request #5212 from netbox-community/4900-cable-paths
#4900: New model for cable paths
2020-10-08 15:15:40 -04:00
Jeremy Stretch
44caa402d0 Delete obsolete LoopDetected exception 2020-10-08 15:01:55 -04:00
Jeremy Stretch
a716ca705c Rewrite cablepath tests to create components within each test 2020-10-08 14:55:13 -04:00
Jeremy Stretch
75ddc63466 Handle split paths 2020-10-08 14:01:47 -04:00
Jeremy Stretch
0e41bc48b7 Add /trace API endpoints for CircuitTermination and PowerFeed 2020-10-08 13:55:29 -04:00
Daniel Sheppard
4896059162 Fixes: #5220 - Fix API patch request against IP-Address endpoint with null assigned_object_type 2020-10-08 12:50:29 -05:00
Jeremy Stretch
0c5efa243d Handle traces which split at a RearPort 2020-10-08 13:45:47 -04:00
Daniel Sheppard
eadecf3eda Fixes: #5221 - Fix bulk component creation over multiple VMs 2020-10-08 12:39:20 -05:00
Jeremy Stretch
29eebf9fbe Update REST API changes 2020-10-08 11:26:02 -04:00
Jeremy Stretch
ae1ceb26b9 Standardize cable/connection field ordering 2020-10-08 11:23:24 -04:00
Jeremy Stretch
55268c90c8 Replace connection_status with connected_endpoint_reachable on InterfaceConnectionSerializer 2020-10-08 11:15:09 -04:00
Jeremy Stretch
aa0ee2720b Add cable paths API detail view for pass-through ports 2020-10-08 10:32:17 -04:00
Jeremy Stretch
35759fdb70 Redo the cable trace UI (WIP) 2020-10-07 16:39:15 -04:00
Jeremy Stretch
39e4ab164e Fixes #5218: Raise validation error if a power port's allocated_draw exceeds its maximum_draw 2020-10-07 13:23:19 -04:00
Jeremy Stretch
5089df3ffd Fix error in OBJECTCHANGE_OBJECT table column template 2020-10-07 13:13:03 -04:00
Jeremy Stretch
9738257aa2 Fixes #5217: Prevent erroneous removal of prefetched GenericForeignKey data from tables 2020-10-07 13:09:08 -04:00
Jeremy Stretch
85439fd952 Fix PowerFeed display in cable traces 2020-10-07 11:33:47 -04:00
Jeremy Stretch
eaf8d95ce5 Clean up power utilization logic 2020-10-07 11:14:16 -04:00
Jeremy Stretch
f560693748 Rewrite trace_paths management command and call in upgrade.sh 2020-10-07 10:30:11 -04:00
Jeremy Stretch
6db3c65bcc Swap order of cabling migrations 2020-10-07 09:50:12 -04:00
Jeremy Stretch
693b32077a Update the netbox-discuss mailing list URL 2020-10-07 08:53:04 -04:00
Jeremy Stretch
c7c66626b6 Standardize 'cabled' and 'connected' filters; complete tests 2020-10-06 17:28:25 -04:00
Jeremy Stretch
44b842592a Restore total length count on trace view 2020-10-06 16:58:11 -04:00
Jeremy Stretch
2c9ae60dec Optimize path node representations 2020-10-06 16:34:03 -04:00
Jeremy Stretch
a072d40594 Update v2.10 changelog 2020-10-06 16:16:08 -04:00
Jeremy Stretch
a6e0ef8cd8 Clean up console/power/interface connections views 2020-10-06 16:15:18 -04:00
Jeremy Stretch
6b3a1998c8 Add test_is_connected to CircuitTerminationTestCase 2020-10-06 15:59:21 -04:00
Jeremy Stretch
534364a30f Improve model docstrings 2020-10-06 15:48:52 -04:00
Jeremy Stretch
52ec35b94f Correct serializer field lists 2020-10-06 15:27:40 -04:00
Jeremy Stretch
3870f5d246 Remove unused CablePathManager 2020-10-06 15:26:59 -04:00
Jeremy Stretch
23cde6d1b8 Include cable_peer on CableTermination serializers 2020-10-06 14:30:46 -04:00
Jeremy Stretch
c813ae4f04 Clean up power connection tables 2020-10-06 13:30:28 -04:00
Jeremy Stretch
d984dbd83b Extend device view to show local cable termination for all components 2020-10-06 13:08:41 -04:00
Jeremy Stretch
d59f0891e4 Cache peer termination on CableTerminations 2020-10-06 12:10:12 -04:00
Jeremy Stretch
6275c8c67d Prefetch path & destination for API views 2020-10-06 10:41:52 -04:00
Jeremy Stretch
ffdf5514ae Tweak component templates 2020-10-06 10:37:59 -04:00
Jeremy Stretch
56ee425227 Introduce PathContains lookup to allow filtering against objects in path directly 2020-10-06 09:41:45 -04:00
Jeremy Stretch
19430ddeb5 Extend cable trace view to show related paths 2020-10-05 16:03:30 -04:00
Jeremy Stretch
d5d6b0e856 Optimize path prefetching 2020-10-05 14:47:21 -04:00
Jeremy Stretch
32b8148da1 Standardize path endpoint templates 2020-10-05 13:23:55 -04:00
Jeremy Stretch
50aecd02f4 Fix up connection lists (pending additional work) 2020-10-05 12:05:29 -04:00
Jeremy Stretch
b2066bc4b7 Merge schema migrations 2020-10-05 11:47:24 -04:00
Jeremy Stretch
32aa2daea6 PowerFeedSerializer should subclass ConnectedEndpointSerializer 2020-10-05 11:39:17 -04:00
Jeremy Stretch
b846f631a4 Rename connection_status to connected_endpoint_reachable 2020-10-05 11:32:39 -04:00
Jeremy Stretch
3d34f1cdcb Rename CablePath.is_connected to is_active 2020-10-05 11:13:33 -04:00
Jeremy Stretch
13db22d392 Initial changelog notes for #4900 2020-10-05 11:07:03 -04:00
Jeremy Stretch
df73737128 Remove legacy connection_status fields 2020-10-05 10:47:41 -04:00
Jeremy Stretch
079c42291c Remove legacy connected endpoint fields 2020-10-05 09:56:46 -04:00
Jeremy Stretch
f8800b8303 Optimize console/power/interface connection lists 2020-10-02 21:44:16 -04:00
Jeremy Stretch
5737f6fca0 Cache each CablePath on its originating endpoint 2020-10-02 17:16:43 -04:00
Jeremy Stretch
8cb636bed2 Update console/power/interface connection tables 2020-10-02 15:10:49 -04:00
Jeremy Stretch
7ff247c57f Add trace view for PowerFeed 2020-10-02 14:57:50 -04:00
Jeremy Stretch
e9da84f91a Replace legacy trace() method 2020-10-02 14:54:16 -04:00
Jeremy Stretch
47ea75348c Changelog for #5197 2020-10-02 14:17:55 -04:00
Jeremy Stretch
cd9c425d9a Merge pull request #5208 from glennmatthews/gfm-issue-5197
5197: Limit main IPAddress view to a max of 10 duplicate addresses; add new duplicates view
2020-10-02 14:16:32 -04:00
Glenn Matthews
6612e0107e Limit main IPAddress view to a max of 10 duplicate addresses. Fixes #5197 2020-10-02 14:01:51 -04:00
Jeremy Stretch
ae0a481c64 Fixes #5206: Apply user pagination preferences to all paginated object lists 2020-10-02 13:54:57 -04:00
Jeremy Stretch
aa0d4c4145 Replace connection_status filter with is_connected 2020-10-02 12:25:31 -04:00
Jeremy Stretch
66355da04c CablePath.origin should be unique 2020-10-02 11:51:23 -04:00
Jeremy Stretch
e0abd7ef3e Remove dcim.tests.test_api.ConnectionTest 2020-10-02 11:45:42 -04:00
Jeremy Stretch
4fd1219814 Add tests for all PathEndpoint classes 2020-10-02 11:35:17 -04:00
Daniel Sheppard
1a43ef82d9 Fixes: #5201 - Fix bulk "all" operations on VLAN Groups 2020-10-02 09:59:16 -05:00
Jeremy Stretch
9f242216e6 Rename test elements to be more readable 2020-10-02 10:14:52 -04:00
Jeremy Stretch
9d10c57dc9 Remove legacy CablePathTestCase 2020-10-02 09:55:28 -04:00
Jeremy Stretch
d50a0d94be Add tests for multiple pass-through breakouts 2020-10-02 09:54:12 -04:00
Jeremy Stretch
3b0a75edf8 Add test for updated paths on cable status change 2020-10-01 17:25:44 -04:00
Jeremy Stretch
0d07b0346b Add test for connecting cables out of order 2020-10-01 16:53:13 -04:00
Jeremy Stretch
c974c5687c Capture path end-to-end status in CablePath 2020-10-01 16:42:57 -04:00
Jeremy Stretch
610420c020 Drop support for split paths 2020-10-01 14:24:34 -04:00
Jeremy Stretch
cd398b15d8 retrace_paths should ignore case in model names 2020-10-01 13:10:08 -04:00
Jeremy Stretch
8abc05544c CircuitTermination and PowerFeed are path endpoints 2020-10-01 13:05:00 -04:00
Jeremy Stretch
105c0fd3d2 Introduce retrace_paths management command 2020-10-01 12:18:42 -04:00
Jeremy Stretch
19a3a4d4ef Add GenericRelation to originating cable paths on PathEndpoint 2020-10-01 11:30:03 -04:00
Daniel Sheppard
f2bc824a8e Fixes: #5199 - Change default logging for LDAP to INFO 2020-10-01 09:27:17 -05:00
Daniel Sheppard
23a9cb2fad Fixes: #5199 - Change default logging for LDAP to INFO 2020-10-01 09:25:56 -05:00
Jeremy Stretch
46df5a97b2 Remove extraneous test objects 2020-09-30 17:12:38 -04:00
Jeremy Stretch
e53ae1d584 Extend cable path tests 2020-09-30 17:10:22 -04:00
Jeremy Stretch
cd71799373 Ignore the position stack when traversing single-position rear ports 2020-09-30 17:09:39 -04:00
Jeremy Stretch
319329e2b2 Extend cable path tests 2020-09-30 16:17:22 -04:00
Jeremy Stretch
985197788b Add initial tests 2020-09-30 15:15:27 -04:00
Jeremy Stretch
587e6fcf72 Initial work on cable paths (WIP) 2020-09-30 15:13:06 -04:00
Daniel Sheppard
22a80c5558 Update pre-commit script to support virtual environment within IDE 2020-09-30 08:28:48 -05:00
Daniel Sheppard
14ef7fa869 Update version-2.9.md 2020-09-29 19:55:59 -05:00
Daniel Sheppard
068803dc86 Update 2.9 Release notes with 4523 2020-09-29 19:55:40 -05:00
Daniel Sheppard
ee7f43abe1 Fixes #4523 - Add site vlan to certain scenarios where sites are the same 2020-09-29 14:45:02 -05:00
Jeremy Stretch
015e25c618 Merge pull request #5185 from kobayashi/5184-power-util
Fixes #5184: Fix missing Power Utilization
2020-09-28 09:17:49 -04:00
kobayashi
5c8694ad65 Fixes #5184: Fix missing Power Utilization 2020-09-27 16:33:47 -04:00
Jeremy Stretch
12e2537222 General cleanup of tables 2020-09-25 14:18:29 -04:00
Jeremy Stretch
28f0da0bc1 Introduce LinkedCountColumn to standardize approach to counting related items in tables 2020-09-25 12:42:17 -04:00
Jeremy Stretch
18a8a91d57 Introduce ChoiceFieldColumn to replace template columns 2020-09-25 10:52:14 -04:00
Jeremy Stretch
1b55285167 Relocate CSS classes for ChoiceFields from model to ChoiceSet 2020-09-24 16:35:53 -04:00
Jeremy Stretch
bddd010310 Annotate REST API changes fro #259 2020-09-24 14:45:14 -04:00
Jeremy Stretch
ee63cbe7e9 Merge pull request #5178 from netbox-community/259-route-targets
#259: Route target support
2020-09-24 14:36:26 -04:00
Jeremy Stretch
cca2173886 Documentation for #259 2020-09-24 14:18:08 -04:00
Jeremy Stretch
47fd9cab1c Add tests for route targets; extend VRF tests 2020-09-24 13:51:17 -04:00
Jeremy Stretch
f684d07c61 Model import/export route targets on VRFs 2020-09-24 12:09:28 -04:00
Jeremy Stretch
dfb5a06d9d Introduce the RouteTarget model 2020-09-24 11:25:52 -04:00
Jeremy Stretch
ff42c89cc4 Closes #5177: Note permissions required for running reports and custom scripts 2020-09-24 10:32:15 -04:00
Jeremy Stretch
856500b014 Fixes #5174: Ensure consistent alignment of rack elevations 2020-09-24 10:11:34 -04:00
Jeremy Stretch
380f59ac0b Fixes #5175: Fix toggling of rack elevation order 2020-09-24 10:01:02 -04:00
Jeremy Stretch
9b16d6df2e Merge v2.9.4 release 2020-09-23 16:11:00 -04:00
Jeremy Stretch
d30874e0de Post-release version bump 2020-09-23 15:39:36 -04:00
Jeremy Stretch
28925c12eb Merge pull request #5172 from netbox-community/develop
Release v2.9.4
2020-09-23 15:38:09 -04:00
Jeremy Stretch
31fcad4dbb Release v2.9.4 2020-09-23 15:24:59 -04:00
Jeremy Stretch
e2a840ff0b Closes #5053: Mention local_requirements.txt when an ImportError occurs 2020-09-23 15:19:42 -04:00
Jeremy Stretch
0a40418614 Fixes #5066: Update view_reportresult to view_report permission 2020-09-23 13:40:15 -04:00
Jeremy Stretch
90dbe9bf60 Closes #5171: Introduce the RQ_DEFAULT_TIMEOUT configuration parameter 2020-09-23 13:28:05 -04:00
Jeremy Stretch
09dc271eec Fix reference to update_data 2020-09-23 12:20:45 -04:00
Jeremy Stretch
1f0a4cc548 Closes #5075: Include a VLAN membership view for VM interfaces 2020-09-23 11:48:32 -04:00
Jeremy Stretch
c0b94e4e8e Fixes #5137: Correct permission for viewing report results is extras.view_reportresult 2020-09-23 10:16:22 -04:00
Jeremy Stretch
e404f4efd2 Closes #5164: Show total rack count per rack group under site view 2020-09-23 09:46:52 -04:00
Jeremy Stretch
116b20cb9f Fix ImageAttachmentTestCase 2020-09-22 16:26:08 -04:00
Jeremy Stretch
afa1449f89 Fixes #5167: Support filtering ObjectChanges by multiple users 2020-09-22 16:17:39 -04:00
Jeremy Stretch
0c3fafdfef Closes #4897: Allow filtering by content type identified as <app>.<model> string 2020-09-22 16:06:38 -04:00
Jeremy Stretch
5ba4252388 Changelog for #4882 2020-09-22 14:49:49 -04:00
Jeremy Stretch
6195a34db5 Merge pull request #5166 from netbox-community/4882-api-bulk-update
#4882: Support bulk updates via REST API
2020-09-22 14:13:05 -04:00
Jeremy Stretch
c3eb2eb601 Add documentation for API bulk updates 2020-09-22 14:02:31 -04:00
Jeremy Stretch
38ed612cb9 Add test for API bulk updates 2020-09-22 13:50:55 -04:00
Jeremy Stretch
5677fab2f9 Support bulk operations for both PUT and PATCH 2020-09-22 11:55:46 -04:00
Jeremy Stretch
a998c826a8 Introduce BulkUpdateModelMixin; rename BulkDeleteSerializer 2020-09-22 11:50:43 -04:00
Jeremy Stretch
935d239eab Changelog for #3436 2020-09-22 10:36:16 -04:00
Jeremy Stretch
961a491ea4 Merge pull request #5163 from netbox-community/3436-api-bulk-delete
#3436: Support for bulk deletion via REST API
2020-09-22 10:29:41 -04:00
Jeremy Stretch
54a4f84708 Add REST API documentation for bulk object deletion 2020-09-22 10:18:15 -04:00
Jeremy Stretch
c1b57af771 Monkey-patch DRF to treat bulk_destroy as a built-in operation 2020-09-22 10:06:13 -04:00
Jeremy Stretch
2b689239ae Merge pull request #5151 from netbox-community/1503-secret-assignment
#1503: Extend secrets assignment to virtual machines
2020-09-22 09:26:57 -04:00
Jeremy Stretch
d44c2ba8fe Merge branch 'develop-2.10' into 1503-secret-assignment 2020-09-22 09:24:03 -04:00
Jeremy Stretch
d540728f50 Closes #5149: Add rack group field to device edit form 2020-09-21 15:26:32 -04:00
Jeremy Stretch
12402f4c30 Fixes #5156: Add missing "add" button to rack reservations list 2020-09-21 15:14:44 -04:00
Jeremy Stretch
3e1961b435 Changelog for #2179 2020-09-21 14:49:39 -04:00
Jeremy Stretch
4c23b59090 Merge pull request #5161 from netbox-community/2179-service-port-arrays
#2179: Support multiple port numbers for services
2020-09-21 14:47:36 -04:00
Jeremy Stretch
3a90366538 Fix filtering services by port number 2020-09-21 14:36:58 -04:00
Jeremy Stretch
b85990daa6 Fix return URL when editing a service 2020-09-21 13:34:39 -04:00
Jeremy Stretch
e77f1bdd85 Introduce array_to_string() utility function; add port_list property to Service 2020-09-21 13:31:38 -04:00
Jeremy Stretch
f97d8963f2 Initial work on #2179: Allow a service to have multiple ports 2020-09-21 13:21:41 -04:00
Jeremy Stretch
975e7e60ff Changelog for #1503 2020-09-21 11:12:17 -04:00
Jeremy Stretch
c986321402 Fix "add secret" link for VMs 2020-09-21 10:54:04 -04:00
Jeremy Stretch
0b33c53f47 Update secrets API, views 2020-09-18 16:58:51 -04:00
Jeremy Stretch
b2a14d4654 Extend secret filters 2020-09-18 16:35:36 -04:00
Jeremy Stretch
64adbf8769 Fix migrations to ensure secret assigned_object is required 2020-09-18 16:00:21 -04:00
Jeremy Stretch
43f3e682c5 Support assignment of secrets to virtual machines 2020-09-18 15:39:41 -04:00
Jeremy Stretch
ec095e58b7 #1503: Initial work on generic secret assignments (WIP) 2020-09-18 14:51:09 -04:00
Jeremy Stretch
0cc2a6b2cf Closes #5003: CSV import now accepts slug values for choice fields 2020-09-18 13:03:38 -04:00
Jeremy Stretch
70ec5b9f37 Annotate REST API changes in release notes 2020-09-18 11:51:38 -04:00
Jeremy Stretch
584b076886 Closes #4956: Include inventory items on primary device view 2020-09-18 11:35:15 -04:00
Jeremy Stretch
52dc80209c Closes #1692: Allow assigment of inventory items to parent items in web UI 2020-09-18 11:05:31 -04:00
Jeremy Stretch
230e7bbe34 Closes #1846: Enable MPTT for InventoryItem hierarchy 2020-09-18 10:18:03 -04:00
Jeremy Stretch
0030fe1779 Fixes #5146: Add custom fields support for cables, power panels, rack reservations, and virtual chassis 2020-09-17 14:22:14 -04:00
Jeremy Stretch
91eca8cac9 Changelog for #4878 2020-09-17 13:25:18 -04:00
Jeremy Stretch
dbfb9b2cee Merge pull request #5145 from netbox-community/4878-custom-fields
4878 custom fields
2020-09-17 13:19:05 -04:00
Jeremy Stretch
61cf903028 Clean up CustomField admin form 2020-09-17 12:43:08 -04:00
Jeremy Stretch
3d2f6c0703 Simplify form field for boolean CustomFields 2020-09-17 12:26:02 -04:00
Jeremy Stretch
4ecd3d23f7 Disable bulk deletion of CustomFields in admin UI 2020-09-17 12:14:02 -04:00
Jeremy Stretch
2d56a658b3 Clean up stale data when a custom field is changed/deleted 2020-09-16 17:03:31 -04:00
Jeremy Stretch
2bc524a2ee Standardize usage of BooleanColumn 2020-09-16 14:25:07 -04:00
Jeremy Stretch
43f1fbf5b3 Fixes #5136: Fix exception when bulk editing interface 802.1Q mode 2020-09-16 13:07:55 -04:00
Jeremy Stretch
e983f44fd3 Closes #5128: Increase maximum rear port positions from 64 to 1024 2020-09-16 12:53:11 -04:00
Jeremy Stretch
4d9da4a1f8 Closes #5134: Display full hierarchy in breadcrumbs for sites/racks 2020-09-16 12:44:49 -04:00
Jeremy Stretch
9d30712fb2 Changelog for #5133 (fixed in #5105) 2020-09-16 11:20:00 -04:00
Jeremy Stretch
03b207d154 Fixes #5105: Validation should fail when reassigning a primary IP from device to VM 2020-09-16 11:10:30 -04:00
Jeremy Stretch
a743102567 Fix serialization of custom_fields for change logging 2020-09-15 15:53:59 -04:00
Jeremy Stretch
eba2ea06ff Add test for bulk API deletions 2020-09-15 14:36:38 -04:00
Jeremy Stretch
6694ec78bc Implement support for bulk deletion of objects via a single REST API request 2020-09-15 13:36:36 -04:00
Jeremy Stretch
df6ad680ce Closes #1755: Toggle order in which rack elevations are displayed 2020-09-14 14:22:21 -04:00
Jeremy Stretch
b1b63513e7 Changelog for #5108 2020-09-14 10:41:04 -04:00
Jeremy Stretch
22e30b93d5 Merge pull request #5126 from netbox-community/5108-report-management-command-fix
fixes #5108 - correct the runreport management command to work with JobResult model
2020-09-14 10:39:33 -04:00
John Anderson
c5e82a3895 fixes #5108 - correct the runreport management command to work with JobResults model 2020-09-10 17:43:41 -04:00
Jeremy Stretch
4466458076 Fixes #5118: Specifying an empty list of tags should clear assigned tags (REST API) 2020-09-09 13:43:10 -04:00
Jeremy Stretch
47a6fc19ca Fixes #5109: Fix representation of custom choice field values for webhook data 2020-09-09 11:47:21 -04:00
Jeremy Stretch
c891f43b14 Fixes #5050: Fix potential failure on 0016_replicate_interfaces schema migration from old release 2020-09-09 10:29:17 -04:00
Jeremy Stretch
1509650462 Closes #5107: Add note about dropping backward compatibility for old REDIS configuration format 2020-09-09 10:00:50 -04:00
Jeremy Stretch
695e9ec5d7 Fixes #5111: Allow use of tuples when specifying ObjectVar query_params 2020-09-09 09:52:57 -04:00
Jeremy Stretch
c5ab89d71e Merge branch 'develop-2.10' into 4878-custom-fields 2020-09-04 16:14:06 -04:00
Jeremy Stretch
08c492f1f4 Merge develop into develop-2.10 2020-09-04 16:09:05 -04:00
Jeremy Stretch
0c8d45f679 Post-release version bump 2020-09-04 15:57:28 -04:00
Jeremy Stretch
d0ac4332ab Merge pull request #5100 from netbox-community/develop
Release v2.9.3
2020-09-04 15:55:47 -04:00
Jeremy Stretch
08b9eedcec Correct changelog for #5095 2020-09-04 15:46:39 -04:00
Jeremy Stretch
5f9e687c9c Release v2.9.3 2020-09-04 15:45:23 -04:00
Jeremy Stretch
f1877fcea9 Closes #5048: Show the device/VM name when editing a component 2020-09-04 15:10:34 -04:00
Jeremy Stretch
78d104e60c Fixes #5046: Disabled plugin menu items are no longer clickable 2020-09-04 14:13:35 -04:00
Jeremy Stretch
dd0185816c Changelog for #4977, #5095 2020-09-04 13:57:29 -04:00
Jeremy Stretch
83eede8bc5 Merge pull request #5071 from n0emis/redirect-when-logged-in
Redirect users away from /login, if they are already logged in
2020-09-04 13:53:51 -04:00
Jeremy Stretch
b22d4cb9ca Merge pull request #5097 from jeremystretch/5095-vlan-prefixes
Fixes #5095: Fix display of assigned prefixes in VLANs list
2020-09-03 11:47:03 -04:00
Jeremy Stretch
de081d0205 Fixes #5095: Fix display of assigned prefixes in VLANs list 2020-09-03 11:28:25 -04:00
Simeon Keske
f92569d468 move redirect code to own function 2020-09-02 22:33:39 +02:00
Jeremy Stretch
bbbfc27593 Fixes #5072: Add REST API filters for image attachments 2020-09-02 16:10:07 -04:00
Jeremy Stretch
d289b26034 Fixes #5089: Redirect to device view after editing component 2020-09-02 13:45:15 -04:00
Jeremy Stretch
babdc1db38 Link to console/power ports in connection views 2020-09-02 13:33:59 -04:00
Jeremy Stretch
b559c827d2 Fixes #5091: Avoid KeyError when handling invalid table preferences 2020-09-02 13:30:19 -04:00
Jeremy Stretch
268aa755c4 Closes #5080: Add 8P6C, 8P4C, 8P2C port types 2020-09-02 10:21:22 -04:00
Jeremy Stretch
5d7935c855 Fixes #5090: Fix status display for console/power/interface connections 2020-09-01 16:28:11 -04:00
Jeremy Stretch
6305a35a4f Fixes #5085: Fix ordering by assignment in IP addresses table 2020-09-01 15:18:47 -04:00
Jeremy Stretch
a0103036e4 Fixes #5087: Restore label field when editing console server ports, power ports, and power outlets 2020-09-01 13:59:50 -04:00
Jeremy Stretch
b3b7e08c50 Closes #5076: Specify pip3 2020-09-01 10:24:17 -04:00
Jeremy Stretch
7dbeaf7a01 Fixes #5078: Fix assignment of existing IP addresses to interfaces via web UI 2020-09-01 10:19:28 -04:00
Jeremy Stretch
967073eaaf Fixes #5081: Fix exception during webhook processing with custom select field 2020-09-01 09:54:45 -04:00
Jeremy Stretch
473d76c9d1 Fixes #5074: Fix inclusion of VC member interfaces when viewing VC master 2020-08-31 15:34:40 -04:00
Jeremy Stretch
5bff50cade Fixes #5063: Fix "add device" link in rack elevations for opposite side of half-depth devices 2020-08-31 15:26:00 -04:00
Simeon Keske
bfcbd9da6c Redirect users away from /login, if they are already logged in 2020-08-30 01:44:27 +02:00
Jeremy Stretch
2435c177f5 Post-release version bump 2020-08-27 14:15:09 -04:00
Jeremy Stretch
8e5aa69321 Merge pull request #5062 from netbox-community/develop
Release v2.9.2
2020-08-27 14:13:58 -04:00
Jeremy Stretch
f3e4911c68 Release v2.9.2 2020-08-27 14:03:51 -04:00
Jeremy Stretch
e8e4ff4111 Closes #5056: Add interface and parent columns to IP address list 2020-08-27 13:46:31 -04:00
Jeremy Stretch
523c32b8af Fixes #5061: Allow adding/removing tags when bulk editing virtual machine interfaces 2020-08-27 13:26:41 -04:00
Jeremy Stretch
5cdccb47f4 Fixes #5060: Fix validation when bulk-importing child devices 2020-08-27 11:27:17 -04:00
Jeremy Stretch
fa73bf8e87 Closes #5505: Add tags column to device/VM component list tables 2020-08-27 09:43:20 -04:00
Jeremy Stretch
5fe4e6cc96 Fixes #5058: Correct URL for front rack elevation images when using external storage 2020-08-27 09:26:56 -04:00
Jeremy Stretch
f23900fc8c Fixes #5059: Fix inclusion of checkboxes for interfaces in virtual machine view 2020-08-27 09:22:53 -04:00
Jeremy Stretch
53e09a924c Restore and rename CustomChoiceFieldInspector 2020-08-26 15:04:22 -04:00
Jeremy Stretch
bde25e69f8 Add CustomFieldsDataFieldInspector for OpenAPI spec 2020-08-26 14:36:45 -04:00
Jeremy Stretch
d2b7eb161c Cache CustomField assignments for API queries 2020-08-25 16:44:59 -04:00
Jeremy Stretch
378c0ac259 Fix filtering by custom field value 2020-08-25 16:21:54 -04:00
Jeremy Stretch
a9086b0679 Fix import test 2020-08-25 15:31:01 -04:00
Jeremy Stretch
d0f1c733e7 Replace CustomFieldsSerializer with CustomFieldsDataField 2020-08-25 15:22:32 -04:00
Jeremy Stretch
0b7d019c02 Remove unused CustomChoiceFieldInspector 2020-08-25 15:16:20 -04:00
Jeremy Stretch
5b3de8defe Use DjangoJSONEncoder for encoding custom field data 2020-08-25 13:57:18 -04:00
Jeremy Stretch
fb8904af54 Remove unused attributes, methods 2020-08-25 13:49:23 -04:00
Jeremy Stretch
f7b8d6ede5 Add choices ArrayField to CustomField; drop CustomFieldChoice 2020-08-25 13:24:46 -04:00
Jeremy Stretch
d9e5adc032 Update serializer to access custom_field_data directly 2020-08-25 10:43:04 -04:00
Jeremy Stretch
a0790e9119 Changelog for #5002 2020-08-24 15:17:36 -04:00
Jeremy Stretch
236db7d42d Merge pull request #5039 from innovationnorway/5002-available-prefixes-swagger
Use correct serializer for available-prefixes POST response
2020-08-24 15:09:58 -04:00
Jeremy Stretch
c85a45e520 Further work on custom fields 2020-08-24 14:11:13 -04:00
Jeremy Stretch
5da7590eea Fixes #4988: Fix ordering of rack reservations with identical creation times 2020-08-24 12:04:48 -04:00
Jeremy Stretch
df97eb2f72 Fixes #5045: Allow assignment of interfaces to non-master VC peer LAG during import 2020-08-24 11:33:45 -04:00
Jeremy Stretch
32a0e519ad Fixes #5041: Fix form tabs when assigning an IP to a VM interface 2020-08-24 10:56:23 -04:00
Jeremy Stretch
78d6561e39 Fixes #5040: Limit SLAAC status to IPv6 addresses 2020-08-24 10:51:47 -04:00
Jeremy Stretch
9147823305 Fixes #5042: Fix display of SLAAC label for IP addresses status 2020-08-24 10:47:26 -04:00
Jeremy Stretch
e7cf87be97 Fixes #5035: Fix exception when modifying an IP address assigned to a VM 2020-08-24 10:39:41 -04:00
Jeremy Stretch
6e28490b84 Fixes #5038: Fix validation of primary IPs assigned to virtual machines 2020-08-24 09:41:04 -04:00
Joakim Bakke Hellum
fcc15d2e33 Use correct serializer for available-prefixes POST response
POST `/ipam/prefixes/{id}/available-prefixes/` returns single `Prefix` object, not list of `AvailablePrefix` objects.
2020-08-23 20:49:50 +02:00
Jeremy Stretch
3522eafd2c Post-release version bump 2020-08-22 21:06:06 -04:00
Jeremy Stretch
848cfeb353 Merge pull request #5034 from netbox-community/develop
Release v2.9.1 - 2020-08-22
2020-08-22 21:05:08 -04:00
Jeremy Stretch
35a280eb31 Release v2.9.1 2020-08-22 21:03:51 -04:00
Jeremy Stretch
aedba0e8be Closes #5030: Call out required minimum versions for depdencies in upgrade documentation 2020-08-22 20:53:21 -04:00
Jeremy Stretch
728088f5fa Closes #5033: Support backward compatibility for REMOTE_AUTH_BACKEND 2020-08-22 20:39:46 -04:00
Jeremy Stretch
2116b928b6 Add link to v2.9 release notes 2020-08-21 16:44:13 -04:00
Jeremy Stretch
2276603ac3 Drop CustomFieldValue 2020-08-21 16:21:11 -04:00
Jeremy Stretch
879166d939 Initial work on reimplementing custom fields 2020-08-21 15:16:33 -04:00
Jeremy Stretch
f37997ac54 Closes #4814: Allow nested LAG interfaces 2020-08-21 13:35:03 -04:00
Jeremy Stretch
ed65603632 Closes #4540: Add IP address status type for SLAAC 2020-08-21 13:17:41 -04:00
Jeremy Stretch
802af06c0f Closes #4991: Add Python and NetBox versions to error page 2020-08-21 12:58:48 -04:00
Jeremy Stretch
ec66e1a5c0 Closes #4349: Drop support for embedded graphs 2020-08-21 11:57:46 -04:00
Jeremy Stretch
ee34e28986 Drop backward compatibility for REMOTE_AUTH_DEFAULT_PERMISSIONS defined as a list 2020-08-21 11:18:57 -04:00
Jeremy Stretch
d1071b79e3 Closes #4360: Drop support for the Django template language in export templates 2020-08-21 11:16:30 -04:00
Jeremy Stretch
2339fe22ae Closes #4941: commit argument is now required argument in a custom script's run() method 2020-08-21 11:06:36 -04:00
Jeremy Stretch
e02590ac96 Post-release version bump 2020-08-21 09:56:29 -04:00
Jeremy Stretch
7b05a18173 Merge pull request #5026 from netbox-community/develop
Release v2.9.0
2020-08-21 09:52:01 -04:00
Jeremy Stretch
b22995a6d7 Snip beta warning 2020-08-21 09:41:28 -04:00
Jeremy Stretch
6c1436174c Release v2.9.0 2020-08-21 09:39:31 -04:00
Jeremy Stretch
b2aa9b82c8 Merge pull request #5000 from netbox-community/develop-2.9
Stage v2.9 release
2020-08-21 09:32:00 -04:00
Jeremy Stretch
23aae52992 Merge branch 'develop' into develop-2.9 2020-08-21 09:21:18 -04:00
Jeremy Stretch
8b5e701ba4 Cleaned up release notes for v2.9.0 2020-08-21 09:18:28 -04:00
Jeremy Stretch
8f88d2afab Closes #5024: List available options for choice fields within CSV import forms 2020-08-20 15:44:30 -04:00
Jeremy Stretch
8d351178ac Fixes #5022: Fix exception when editing IP address with NAT inside IP assigned 2020-08-20 14:38:58 -04:00
Jeremy Stretch
bc0e6cc8dd Fixes #5012: Return details of exceptions resulting from report/script execution 2020-08-20 12:47:26 -04:00
Jeremy Stretch
bf4fee1592 Fixes #5020: Correct handling of dependent objects during bulk deletion 2020-08-20 09:44:45 -04:00
Jeremy Stretch
e1cf27a3ac Refactor DCIM models into separate submodules 2020-08-19 16:37:23 -04:00
Jeremy Stretch
db5bb8e5bb Fix changelog tests 2020-08-19 16:02:10 -04:00
Jeremy Stretch
3ebef04a11 Closes #5016: assertHttpStatus() should report form validation errors 2020-08-18 17:02:47 -04:00
Jeremy Stretch
0d9fc309d5 Update test script ObjectVars 2020-08-18 14:43:21 -04:00
Jeremy Stretch
c9c79dabef Fixes #5004: Permit assignment of an interface to a LAG on any peer virtual chassis member 2020-08-18 14:41:47 -04:00
Jeremy Stretch
5fad6a63ca Merge pull request #5009 from kobayashi/4989-vmcount
Fixes #4989: Fix no vm count for cluster in global search
2020-08-18 14:03:57 -04:00
Jeremy Stretch
82900fb65d Changelog for #4990 2020-08-18 14:01:59 -04:00
Jeremy Stretch
046272ff37 Merge pull request #5010 from netbox-community/4990-custom-script-changelog
Fixes #4990: Object change logging during custom script execution
2020-08-18 13:57:21 -04:00
Jeremy Stretch
bc5f800a8b Refactor tests (again) 2020-08-18 13:30:16 -04:00
Jeremy Stretch
36d86e6220 Avoid using post_data() for form data 2020-08-18 13:13:13 -04:00
Jeremy Stretch
986ef2b8e6 Move changelog signals setup to a context manager 2020-08-18 13:05:41 -04:00
Jeremy Stretch
5629124755 Tweak passing of tags 2020-08-18 12:37:07 -04:00
Jeremy Stretch
0bfb64dc09 Simplify tag creation 2020-08-18 11:33:23 -04:00
Jeremy Stretch
c482dcd8cb Dump full response content on unexpected status code 2020-08-18 10:41:28 -04:00
Jeremy Stretch
881cab051b Add changelog tests for UI views 2020-08-18 10:05:58 -04:00
Jeremy Stretch
afebf525d1 Move housekeeping to _handle_changed_object() 2020-08-18 09:13:07 -04:00
Jeremy Stretch
0e5d0a43f9 Fix serialization of tags for REST API updates 2020-08-17 16:18:47 -04:00
Jeremy Stretch
cf086cd7b2 Remove errant import 2020-08-17 14:15:02 -04:00
Jeremy Stretch
81c72739b5 Attach object modification signals before running a custom script 2020-08-17 13:43:48 -04:00
Jeremy Stretch
ff5a3c1055 Cache custom fields on instance during bulk edit 2020-08-17 12:29:40 -04:00
Jeremy Stretch
bc04543b33 Cache custom fields on instance prior to calling create()/update() 2020-08-17 12:22:37 -04:00
Jeremy Stretch
dd707c97af Cache custom fields on instance prior to save() 2020-08-17 11:08:14 -04:00
kobayashi
34708a8fa5 Fixes #4989: Fix no vm count for cluster in global search 2020-08-17 10:59:01 -04:00
Jeremy Stretch
4ee8e473eb Move ObjectChange creation into signal receivers 2020-08-14 17:03:45 -04:00
Jeremy Stretch
b4299241fe Cast all query param values to string 2020-08-14 11:38:15 -04:00
Jeremy Stretch
66c91484f5 Clean up display_name for various models 2020-08-14 10:20:34 -04:00
Jeremy Stretch
808d621eda VC member selection should use display_name 2020-08-14 10:09:54 -04:00
Jeremy Stretch
943c2230ba Bump version for upcoming v2.9 release 2020-08-13 13:12:09 -04:00
Jeremy Stretch
d4fd0df02c Release v2.9-beta2 2020-08-13 13:04:33 -04:00
Jeremy Stretch
fd139a77f5 Closes #4997: Introduce OrderedDefaultRouter; move root API views to views.py 2020-08-13 12:49:49 -04:00
Jeremy Stretch
a08418bff8 Closes #4996: Add "connect" buttons to individual device component views 2020-08-13 11:14:33 -04:00
Jeremy Stretch
bdc4189812 Fixes #4995: Fix missing buttons to add console/power ports under device view 2020-08-13 10:53:34 -04:00
Jeremy Stretch
e252de319e Add region field to device form 2020-08-13 10:45:01 -04:00
Jeremy Stretch
0e91d837a0 Allow selecting NAT IP address by assigned virtual machine 2020-08-13 10:42:19 -04:00
Jeremy Stretch
71c2e235a8 Use display_name in VRF selection widgets 2020-08-13 10:32:57 -04:00
Jeremy Stretch
ed0e212ce0 Closes #4994: Add cable attribute to PowerFeed API serializer 2020-08-13 10:30:28 -04:00
Jeremy Stretch
b405e8294b Merge branch 'develop' into develop-2.9 2020-08-13 10:20:39 -04:00
Jeremy Stretch
a7cd09d6d4 Fixes #4993: Add cable to nested CircuitTermination serializer 2020-08-13 10:19:50 -04:00
Jeremy Stretch
bc61393256 Merge branch 'develop' into develop-2.9 2020-08-13 10:06:03 -04:00
Jeremy Stretch
acd5f21866 Fixes #4992: Add display_name to nested VRF serializer 2020-08-13 09:56:03 -04:00
Jeremy Stretch
3bff9b647c Changelog for #4922, #4982 2020-08-13 09:36:06 -04:00
Jeremy Stretch
6d8cb6dac3 Merge pull request #4978 from netbox-community/4922-optimize-interface-replication
Closes #4922: Optimize schema migration for VM interface replication
2020-08-13 09:34:24 -04:00
Jeremy Stretch
76dc80a45d Merge pull request #4987 from netbox-community/4982-apiselect-improvements
Closes #4982: Overhaul the APISelect widget and support ObjectVar filtering
2020-08-13 09:32:32 -04:00
Jeremy Stretch
53f9f82317 Set display_field where needed 2020-08-13 09:27:21 -04:00
Jeremy Stretch
0b14b66727 Update ObjectVar documentation 2020-08-12 15:40:06 -04:00
Jeremy Stretch
fe1ffdcbb7 Extend ObjectVars to accept display_field, query_params, and null_option 2020-08-12 14:51:58 -04:00
Jeremy Stretch
b891b407d4 Add brief_mode to DynamicModelChoiceMixin 2020-08-12 14:15:34 -04:00
Jeremy Stretch
5372492785 Clean up Select2 widget Javascript 2020-08-12 14:03:58 -04:00
Jeremy Stretch
c40df97ffa Rename add_additional_query_param() 2020-08-12 13:59:11 -04:00
Jeremy Stretch
9e14e28d89 Remove unused arguments from APISelect widget 2020-08-12 13:57:34 -04:00
Jeremy Stretch
e9e77fc689 Add disabled_indicator to DynamicModelChoiceMixin 2020-08-12 13:30:49 -04:00
Jeremy Stretch
779686425a Use brief mode when fetching cable termination objects 2020-08-12 13:20:30 -04:00
Jeremy Stretch
09849391e3 Remove filter_for argument from Select2 widgets 2020-08-12 13:03:59 -04:00
Jeremy Stretch
c45a57ff43 Update cable termination forms to use DynamicModelChoiceField 2020-08-12 12:58:32 -04:00
Jeremy Stretch
100c8fef20 Add support for referencing peer field values in query_params 2020-08-12 12:37:17 -04:00
Jeremy Stretch
d752c36ea8 Fix virtual chassis member add form 2020-08-12 10:17:21 -04:00
Jeremy Stretch
d8d752b623 Fix form for adding devices to a cluster 2020-08-12 10:14:21 -04:00
Jeremy Stretch
b917403c93 Replace 'nullable' attribute with null_option 2020-08-12 10:05:12 -04:00
Jeremy Stretch
8a8b4e728a Move null_option to DynamicModelChoiceMixin 2020-08-12 09:47:13 -04:00
Jeremy Stretch
f3fb85933f Add query_params attribute to DynamicModelChoiceMixin 2020-08-12 09:28:24 -04:00
Jeremy Stretch
a831e525da Remove value_field from APISelect; reference to_field_name on field 2020-08-11 17:19:40 -04:00
Jeremy Stretch
fdc43f8279 Add display_field kwarg to DynamicModelChoiceMixin 2020-08-11 17:00:28 -04:00
Jeremy Stretch
2c64d45c69 Drop support for conditional_query_params on APISelect 2020-08-11 16:23:36 -04:00
Jeremy Stretch
5b438c3f30 Refactor utility form resources into separate modules 2020-08-11 15:14:06 -04:00
Jeremy Stretch
3c395e7c9f Closes #4885: Add MultiChoiceVar for custom scripts 2020-08-11 13:23:39 -04:00
Jeremy Stretch
eadd2d6854 Remove obsolete livesearch Javascript 2020-08-11 12:56:27 -04:00
Jeremy Stretch
c163ec1e8d Clean up custom script templates 2020-08-10 16:27:24 -04:00
Jeremy Stretch
93da6b6edf #2006: Clean up report views 2020-08-10 15:56:55 -04:00
Jeremy Stretch
d7e2acd0ad Optimize schema migration for VM interface replication 2020-08-10 13:53:28 -04:00
Jeremy Stretch
365b6f5e17 Changelog for #4969 2020-08-10 11:28:41 -04:00
Jeremy Stretch
70321ba4fb Merge pull request #4972 from netbox-community/4969-remove-secretrole-users-groups
#4969: Remove user and group assignment from SecretRoles
2020-08-10 11:27:15 -04:00
Jeremy Stretch
e6bc55af85 #4969: Remove user and group assignment from SecretRole 2020-08-07 16:19:18 -04:00
Jeremy Stretch
aca3ca9d65 Simplify the aggregation of constraint sets 2020-08-07 14:09:55 -04:00
Jeremy Stretch
1dfed14bc9 Fixes #4968: Fix exception when activating user keys in admin UI 2020-08-07 12:06:53 -04:00
Jeremy Stretch
09015c98c4 Fixes #4903: Fix member count when searching for virtual chassis 2020-08-07 08:54:02 -04:00
Jeremy Stretch
14724f3e1a Bump Django to 3.1 2020-08-06 16:22:18 -04:00
Jeremy Stretch
2b9dad934c Changelog for #4946 2020-08-06 16:17:31 -04:00
Jeremy Stretch
86c3eec3e4 Merge pull request #4963 from netbox-community/4946-objectpermission-or-constraints
Closes #4946: Extend ObjectPermission constraints to OR multiple JSON objects
2020-08-06 16:10:15 -04:00
Jeremy Stretch
4a516103a6 Extend ObjectPermission constraints to OR multiple JSON objects 2020-08-06 15:53:23 -04:00
Jeremy Stretch
b1ec332a56 Fixes #4951: Redirect to device inventory view after creting a new inventory item 2020-08-06 13:20:12 -04:00
Jeremy Stretch
6367105302 Changelog for #4639 2020-08-06 09:44:33 -04:00
Jeremy Stretch
c1e58291b2 Merge pull request #4959 from netbox-community/4639-prefix-annotate-depth
Closes #4639: Replace annotate_depth() on Prefix manager
2020-08-06 09:42:12 -04:00
Jeremy Stretch
0f397fa410 Replicate 'max length' field in PrefixFilterForm for consistency 2020-08-06 09:20:20 -04:00
Jeremy Stretch
c36d8b2256 Fix default display of child count in prefix tables 2020-08-06 09:14:20 -04:00
Jeremy Stretch
d384f25ec2 Replace expand/collpase with max mask length for prefixes list 2020-08-05 16:48:45 -04:00
Jeremy Stretch
e8df9be702 Add LTE and GTE filters for prefix mask length 2020-08-05 16:16:51 -04:00
Jeremy Stretch
0d68d0c059 Replace annotate_depth() with annotate_tree() 2020-08-05 15:55:47 -04:00
Jeremy Stretch
8709c50a9e Remove unused wiki images 2020-08-05 14:10:08 -04:00
Jeremy Stretch
bdb8263610 Standardize API requests 2020-08-05 14:04:59 -04:00
Jeremy Stretch
043c34c510 Merge pull request #4958 from netbox-community/docs-refresh
Documentation refresh for v2.9 release
2020-08-05 13:55:23 -04:00
Jeremy Stretch
e0f67c9ee9 Merge branch 'develop-2.9' into docs-refresh 2020-08-05 13:53:06 -04:00
Jeremy Stretch
73756f7483 Finished updating REST API documentation 2020-08-05 13:40:06 -04:00
Jeremy Stretch
42ebf0a546 Closes #4945: Add a user-friendly 403 error page 2020-08-05 10:40:45 -04:00
Jeremy Stretch
e6df6dc7f4 Fixes #4950: Include inventory item label in API serializer, UI view 2020-08-05 10:11:38 -04:00
Jeremy Stretch
bd24eebbf2 Fixes #4952: Default to VM tab when creating/editing an IP address for a VM 2020-08-05 09:29:29 -04:00
Jeremy Stretch
65b42c93b0 Merge branch 'develop' into develop-2.9 2020-08-05 09:15:10 -04:00
Jeremy Stretch
65af012d60 Started refreshing REST API documentation 2020-08-04 17:07:45 -04:00
Jeremy Stretch
9c3b67048a Post-release version bump 2020-08-04 12:41:29 -04:00
Jeremy Stretch
2ce99929e2 Merge pull request #4947 from netbox-community/develop
v2.8.9 - 2020-08-04
2020-08-04 12:39:55 -04:00
Jeremy Stretch
22c482bdc3 Release v2.8.9 2020-08-04 12:31:38 -04:00
systeembeheerder
c358097d52 Update upgrading.md (#4937)
include the local_requirements.txt file to keep ldap from breaking during upgrades.

Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-08-04 12:26:21 -04:00
Jeremy Stretch
26e37c1da6 Fixes #4455: Fix ordering of prefixes beneath aggregate when available space is hidden 2020-08-04 12:09:10 -04:00
Jeremy Stretch
053c600b67 Closes #4943: Add a 'description' field to ObjectPermission 2020-08-03 16:37:37 -04:00
Jeremy Stretch
ce2dada9fd Closes #4942: Make ObjectPermission's 'name' field required 2020-08-03 16:10:51 -04:00
Jeremy Stretch
ccb2bf4344 Exclude permission, userconfig inlines when creating a new user 2020-08-03 14:16:21 -04:00
Jeremy Stretch
8517434733 Add notes to admin UI encouraging Jinja2 over legacy Django templating 2020-08-03 14:09:32 -04:00
Jeremy Stretch
b410674f9e Log a warning for scripts whose run() method does not accept a commit argument 2020-08-03 13:56:10 -04:00
Jeremy Stretch
31e65a09e8 Closes #4940: Added an occupied field to rack unit representations for rack elevation views 2020-08-03 13:37:32 -04:00
Jeremy Stretch
cdfec4d865 Fixes #4939: Fix linking to LAG interfaces on other VC members 2020-08-03 12:57:04 -04:00
Jeremy Stretch
af98e349e9 Fixes #4938: Show add, import buttons on virtual chassis list view 2020-08-03 12:52:00 -04:00
Jeremy Stretch
c3c27ac664 Refreshed admin docs 2020-08-03 11:42:24 -04:00
Jeremy Stretch
2644330452 Refreshed "additional features" docs 2020-08-03 11:03:19 -04:00
Jeremy Stretch
eacbec9c68 Update caching, change logging documentation 2020-07-30 14:57:34 -04:00
Jeremy Stretch
9e3bfdd57c Update virtualization documentation 2020-07-30 13:48:05 -04:00
Jeremy Stretch
f49998980f Update power documentation 2020-07-30 13:36:40 -04:00
Jeremy Stretch
190a2ff92b Update tenancy documentation 2020-07-30 13:02:53 -04:00
Jeremy Stretch
96d2a8b30a Update IPAM model documentation 2020-07-30 12:55:51 -04:00
Jeremy Stretch
d42a37f866 Update docs for tags, config contexts 2020-07-30 11:36:46 -04:00
Jeremy Stretch
7b45d06631 Fixes #4931: Fix DoesNotExist exception when deleting devices 2020-07-30 10:08:36 -04:00
Jeremy Stretch
cea6c98f54 Fixes #4930: Replicate label values when instantiating device type components 2020-07-30 10:05:29 -04:00
Jeremy Stretch
fd564f09d1 #4923: Separate user creation instructions for Ubuntu/CentOS 2020-07-30 09:15:20 -04:00
Jeremy Stretch
76c2fd3414 Fixes #4926: Fix ordering of VM interfaces in REST API endpoint 2020-07-30 09:10:06 -04:00
Jeremy Stretch
712e850951 Fixes #4927: Fix validation error when updating an existing secret 2020-07-30 08:57:45 -04:00
Jeremy Stretch
24cedab04b Fixes #4929: Correct log message when creating a new object 2020-07-30 08:51:01 -04:00
Jeremy Stretch
95348b1044 Update site and rack documentation 2020-07-29 16:27:38 -04:00
Jeremy Stretch
55ee3db5bc #4919: Allow adding/changing assigned permissions within group and user admin views 2020-07-29 12:12:00 -04:00
Jeremy Stretch
73f9d615bc Fixes #4921: Render non-viewable devices as unavailable space in rack elevations 2020-07-29 09:43:13 -04:00
Jeremy Stretch
4262e2ef09 Closes #4916: Clarify plugin config behavior when specifying a default value for a required setting 2020-07-28 17:12:46 -04:00
Jeremy Stretch
2dd494bc42 Closes #4913: Upgrade jQuery to v3.5.1 2020-07-28 14:25:05 -04:00
Jeremy Stretch
8faf586e14 Merge pull request #4915 from tyler-8/docs_exclude_api
Add note describing the exclude config context functionality
2020-07-28 13:21:27 -04:00
Tyler Bigler
08975b5ef9 Add note describing the exclude config context functionality 2020-07-28 13:01:26 -04:00
Jeremy Stretch
d1a505d07f Fixes #4914: Fix toggling cable status under device view 2020-07-28 12:54:21 -04:00
Jeremy Stretch
1e4615aa75 Update device documentation 2020-07-28 11:42:10 -04:00
Jeremy Stretch
0616127503 Update device type and component template documentation 2020-07-28 11:04:57 -04:00
Jeremy Stretch
b8783078eb Updated documentation for device components 2020-07-28 10:58:43 -04:00
Jeremy Stretch
31c156f792 Updated cable documentation 2020-07-28 09:48:55 -04:00
Jeremy Stretch
a770dd4836 Updated circuits documentation 2020-07-28 09:18:13 -04:00
Jeremy Stretch
bfdb01244d Refresh configuration docs 2020-07-27 20:35:00 -04:00
Jeremy Stretch
a206b422fb Fixes #4912: Fix image attachment API endpoint; add API view tests 2020-07-27 14:24:15 -04:00
Jeremy Stretch
9f363f493b Closes #4909: Check for contents in local_requirements.txt before calling pip 2020-07-27 12:01:21 -04:00
Jeremy Stretch
2972993a84 Fixes #4910: Unpin redis dependency to fix exception in RQ worker 2020-07-27 11:52:27 -04:00
Jeremy Stretch
b17e47101c Fixes #4905: Fix front port count on device type view 2020-07-27 10:19:24 -04:00
Jeremy Stretch
9e1edd55d6 Closes #4898: Add MAC address search field to interfaces list 2020-07-24 16:46:29 -04:00
Jeremy Stretch
61ce8d1cb0 Closes #4899: Add MAC address column to interfaces table 2020-07-24 16:43:30 -04:00
Jeremy Stretch
e2718973ce Update the CONTRIBUTING guide 2020-07-24 16:11:46 -04:00
Jeremy Stretch
b081864e66 Allow stalebot to tag issues marked as under review 2020-07-24 14:58:05 -04:00
Jeremy Stretch
a912d6ed1e Update feature request triage workflow 2020-07-24 14:04:41 -04:00
Jeremy Stretch
e45ebdffb1 Add issue triage images 2020-07-24 13:18:13 -04:00
Jeremy Stretch
5734c5e093 Update stalebot config 2020-07-24 11:51:08 -04:00
Jeremy Stretch
cb570790e6 Fixes #4895: Force UTF-8 encoding when embedding model documentation 2020-07-24 09:26:20 -04:00
Jeremy Stretch
bb4f21d5ee Fixes #4894: Fix display of device/VM counts on platforms list 2020-07-24 09:16:14 -04:00
Jeremy Stretch
fe20c30a81 Fix parameters for ObjectChangeTestCase 2020-07-23 14:57:35 -04:00
Jeremy Stretch
7eb688bdcd Release v2.9-beta1 2020-07-23 14:46:06 -04:00
Jeremy Stretch
22ee6703ad Merge branch 'develop' into develop-2.9 2020-07-23 14:35:34 -04:00
Jeremy Stretch
b734c72be7 Fix VirtualChassis search by name 2020-07-23 14:32:30 -04:00
Jeremy Stretch
9bcfefa31e Fix ordering for Tags 2020-07-23 14:28:22 -04:00
Jeremy Stretch
37706f1c87 Use RestrictedQuerySet for default Tag manager 2020-07-23 14:20:56 -04:00
Jeremy Stretch
78bb2e12fe Clean up migration output 2020-07-23 14:03:19 -04:00
Jeremy Stretch
84d4b2db77 Clean up resolution of HTTP verbs to permission actions 2020-07-23 13:53:36 -04:00
Jeremy Stretch
b47a9f251d Change ObjectChangeFilterForm user field to be API-driven 2020-07-23 13:47:19 -04:00
Jeremy Stretch
46ebeba28f Set default ordering for user and group API endpoints 2020-07-23 13:46:40 -04:00
Jeremy Stretch
a262a8320b Changelog for #4887 2020-07-23 13:13:49 -04:00
Jeremy Stretch
d39cda2e45 Merge pull request #4888 from jvanderaa/napalm_lookup_hostname
Removes IP Address Check for NAPALM Information Gathering
2020-07-23 13:11:07 -04:00
Jeremy Stretch
cb36f9fdb3 Remove restriction enforcement from RestrictedQuerySet 2020-07-23 12:48:03 -04:00
Josh VanDeraa
b69d2f1367 Merge remote-tracking branch 'upstream/develop' into napalm_lookup_hostname 2020-07-23 09:33:40 -05:00
Josh VanDeraa
3fd3c7a383 Removes IP address check for NAPALM in HTML 2020-07-23 09:24:02 -05:00
Jeremy Stretch
8c4add38f4 Update release instructions 2020-07-23 10:17:57 -04:00
Jeremy Stretch
d28cece264 Merge pull request #4883 from kobayashi/4880-tagged-vlans
#4880: Fix remove untagged-vlans if not assigned in bulk interfaces edit
2020-07-23 09:01:56 -04:00
kobayashi
a12d94a3bc Fixes #4880: Fix remove untagged-vlans if not assigned in bulk interfaces edit 2020-07-23 01:36:31 -04:00
Jeremy Stretch
d23f97abc8 Merge branch 'develop' into develop-2.9 2020-07-22 17:11:35 -04:00
Jeremy Stretch
9f4c1e64ce Refactor clone_button() to avoid undefined URL 2020-07-22 17:06:08 -04:00
Jeremy Stretch
86956c8fc3 Fixes #4875: Fix documentation for image attachments 2020-07-22 16:48:56 -04:00
Jeremy Stretch
0991a8edaa Fixes #4876: Fix labels for sites in staging or decommissioning status 2020-07-22 16:43:25 -04:00
Jeremy Stretch
380d30e612 Add filters for ObjectPermissions 2020-07-22 16:34:16 -04:00
Jeremy Stretch
4f54ffa9aa Admin UI cleanup 2020-07-22 16:00:28 -04:00
Jeremy Stretch
7cdb0cf560 Allow the assignment of ObjectPermissions to users, groups, and permissions 2020-07-22 15:25:06 -04:00
Jeremy Stretch
798810b3dd Changelog for #4877 2020-07-22 14:41:39 -04:00
Jeremy Stretch
1fcefc486c Merge pull request #4879 from netbox-community/4877-users-api-endpoint
4877 users api endpoint
2020-07-22 14:35:14 -04:00
Jeremy Stretch
79f1248119 Add filter tests for group, users 2020-07-22 13:58:12 -04:00
Jeremy Stretch
2cc4f032b0 Correct FilterSet naming 2020-07-22 13:48:04 -04:00
Jeremy Stretch
64a3bd37e7 Move EXEMPT_EXCLUDE_MODELS to settings; add Group and User models 2020-07-22 12:13:07 -04:00
Jeremy Stretch
b4cf85149b Add tests for users and groups API endpoints 2020-07-22 12:04:14 -04:00
Jeremy Stretch
788f8c9a1c Add view_namespace attrbiute to APITestCase to override model's app_label 2020-07-22 11:51:10 -04:00
Jeremy Stretch
e9199d6ca5 Look for auth model serializers in users app 2020-07-22 11:50:20 -04:00
Jeremy Stretch
1ac215bf87 Introduce API endpoints for Users and Groups 2020-07-22 11:21:51 -04:00
Jeremy Stretch
3e6b257fa0 Exclude ObjectPermissions API endpoint from EXEMPT_VIEW_PERMISSIONS 2020-07-21 17:39:56 -04:00
Jeremy Stretch
a3d1ee474c Clean up v2.9 release notes 2020-07-21 16:58:31 -04:00
Jeremy Stretch
1714902f88 Merge branch 'develop' into develop-2.9 2020-07-21 12:57:02 -04:00
Jeremy Stretch
f1e82a3647 Merge pull request #4873 from netbox-community/develop
Release v2.8.8
2020-07-21 12:21:04 -04:00
Jeremy Stretch
357bf671ad Post-release version bump 2020-07-21 12:16:04 -04:00
Jeremy Stretch
183d475dc8 Release v2.8.8 2020-07-21 12:12:22 -04:00
Jeremy Stretch
136d3118d2 Fixes #4872: Enable filtering virtual machine interfaces by tag 2020-07-21 09:41:00 -04:00
Jeremy Stretch
c6fd6ab329 Remove cacheops monkey patch for RestrictedQuerySet 2020-07-20 16:54:24 -04:00
Jeremy Stretch
0ef016db07 Update installation docs 2020-07-20 16:53:04 -04:00
Jeremy Stretch
08a5e82afc Merge pull request #4852 from glennmatthews/gfm-2006-continued
Some additional fixes to scripts/reports background running (2.9)
2020-07-20 13:10:56 -04:00
Jeremy Stretch
8514a5427c Update related object counts to use dunders in accessor 2020-07-20 13:00:33 -04:00
Jeremy Stretch
de6202c160 Merge pull request #4861 from netbox-community/django-31
Upgrade to Django 3.1 (v2.9)
2020-07-20 12:47:49 -04:00
Jeremy Stretch
0f679e1f03 Closes #4871: Specify ordering for querysets using annotate() to count related objects 2020-07-20 12:07:19 -04:00
Jeremy Stretch
39dc1f882a Merge branch 'develop-2.9' into django-31 2020-07-20 11:15:01 -04:00
Jeremy Stretch
5b43fa0e12 Upgrade Django to 3.1RC1 2020-07-20 11:10:55 -04:00
Jeremy Stretch
2f5e623284 Merge pull request #4870 from glennmatthews/gfm-issue-4862
Treat minified/packed JS/CSS files as binary. Fixes #4862
2020-07-20 10:46:47 -04:00
Glenn Matthews
a7829a2deb Treat minified/packed JS/CSS files as binary. Fixes #4862 2020-07-20 10:31:24 -04:00
Jeremy Stretch
ba50bfa939 Address some of the django_tables2 deprecation warnings 2020-07-16 16:52:45 -04:00
Jeremy Stretch
9d243103f4 Fixes #4595: Ensure consistent display of non-racked and child devices on rack view 2020-07-16 15:45:27 -04:00
Jeremy Stretch
16f44305e4 Update static dependencies 2020-07-16 15:22:31 -04:00
Jeremy Stretch
1dbf776279 Fix handling of ProtectedError exceptions 2020-07-16 13:45:02 -04:00
Jeremy Stretch
bdf41451eb Pin Django version to 3.1-beta1 for v2.9 beta 2020-07-16 13:04:19 -04:00
Jeremy Stretch
82cd24a7de Remove deprecated ifequal template tags 2020-07-16 13:01:31 -04:00
Jeremy Stretch
21a750e8ec Change Postgres-specific JSONField to stock Django field 2020-07-16 12:02:49 -04:00
Jeremy Stretch
68ecddccdb Convert NullBooleanField to BooleanField(null=True) 2020-07-16 11:56:35 -04:00
Jeremy Stretch
8dd41b771e Update import locations for Django 3.1 2020-07-16 11:54:08 -04:00
Jeremy Stretch
a4829198ff Update dependencies for v2.9 2020-07-16 11:28:19 -04:00
Jeremy Stretch
5cfc4ec3a0 Merge pull request #4858 from netbox-community/4857-remove-legacy-choice-ids
Closes #4857: Drop support for legacy numeric choice field values
2020-07-15 17:07:42 -04:00
Jeremy Stretch
19d0d6ff10 Closes #4857: Drop support for legacy numeric choice field values 2020-07-15 16:54:33 -04:00
Jeremy Stretch
7461e76606 Fix regex for Python 3.7 2020-07-15 16:19:30 -04:00
Glenn Matthews
d8b0a11a49 Save JobResult even for a script run with commit=False 2020-07-15 12:58:01 -04:00
Jeremy Stretch
1f9a440598 Fixes #4856: Redirect user back to circuit after connecting a termination 2020-07-15 10:09:31 -04:00
Jeremy Stretch
1d0b27c99e Fixes #4851: Show locally connected peer on circuit terminations 2020-07-15 10:01:01 -04:00
Jeremy Stretch
48576919b2 Closes #4854: Add staging and decommissioning statuses for sites 2020-07-15 09:35:46 -04:00
Jeremy Stretch
0174983208 Changelog for, #3240, #4803, #4805 2020-07-15 09:15:18 -04:00
Jeremy Stretch
a7776d2f53 Merge pull request #4849 from glennmatthews/gfm-issue-4803
#4803: Family of nested address/prefix/aggregate serializes as integer, not as string
2020-07-15 09:13:12 -04:00
Jeremy Stretch
85254eb8b5 Merge pull request #4850 from glennmatthews/gfm-issue-3240
#3240: Use correct serializer class for available-prefixes POST
2020-07-15 09:10:23 -04:00
Jeremy Stretch
9078cb29cc Merge pull request #4813 from glennmatthews/gfm-issue-4805
Don't ignore ImportErrors raised when loading a plugin. Fixes #4805
2020-07-15 09:05:42 -04:00
Glenn Matthews
0fd3c83861 Refactor repeated import code 2020-07-14 17:15:17 -04:00
Jeremy Stretch
1291fc4187 Add missing changelog view tests 2020-07-14 16:31:55 -04:00
Jeremy Stretch
04d8ab3792 Clean up device component creation forms 2020-07-14 15:51:13 -04:00
Jeremy Stretch
cf0e31ac0f Introduce BulkRenameObjectsViewTestCase 2020-07-14 13:19:00 -04:00
Jeremy Stretch
4458ce69df Enforce constrained permissions when bulk renaming objects 2020-07-14 13:18:22 -04:00
Jeremy Stretch
81ed03575d Rename BulkCreateObjectsViewTestCase to CreateMultipleObjectsViewTestCase 2020-07-14 11:08:59 -04:00
Glenn Matthews
49c6bee6d7 Fix jobresult success label spelling 2020-07-14 09:45:36 -04:00
Jeremy Stretch
d47ea04ec4 Add "add interfaces" button to virtual machine view 2020-07-13 16:59:46 -04:00
Jeremy Stretch
d5a5a4a8d1 Skip report/script execution tests if RQ worker is not running 2020-07-13 16:48:44 -04:00
Glenn Matthews
087ad30d3c Use correct serializer class for available-prefixes POST. Fixes #3240 2020-07-13 16:26:05 -04:00
Jeremy Stretch
9f7ed25e74 Add assigned IP addresses and VLANs to interface tables 2020-07-13 16:18:17 -04:00
Jeremy Stretch
013a2a35e0 Add cluster and virtual machine filters to VM interfaces list 2020-07-13 15:43:54 -04:00
Jeremy Stretch
9cece39ee9 Remove incorrect bulk edit test data 2020-07-13 15:26:06 -04:00
Jeremy Stretch
05aa008ce1 #2006: Prevent script/report execution if no RQ worker is running 2020-07-13 15:11:58 -04:00
Glenn Matthews
9c1dd159de Address/prefix/aggregate family is an integer, not a string. Fixes #4803 2020-07-13 14:50:58 -04:00
Jeremy Stretch
bc7535c4d2 Changelog for #4829, #4831 2020-07-13 13:35:12 -04:00
Jeremy Stretch
df20abf283 Merge pull request #4844 from jvanderaa/napalm_lookup_hostname
Adds name lookup to NAPALM if no primary IP address exists for device
2020-07-13 13:32:32 -04:00
Jeremy Stretch
96c539c0ee Merge pull request #4830 from mandrewdx/L15P_Ports
Add NEMA 15/L15 Power Types
2020-07-13 13:29:09 -04:00
Jeremy Stretch
e53839ca2a Add progress counter to VM interface replication migration 2020-07-13 13:13:37 -04:00
Josh VanDeraa
ba8b99d3b8 Moves location of the IP address / hostname check and assignment 2020-07-13 08:36:15 -05:00
Josh VanDeraa
cac48924ae Adds verification of device.name configured 2020-07-10 16:18:58 -05:00
Josh VanDeraa
7788bf3ce3 Adds to NAPALM, name lookup if no primary IP address for device 2020-07-10 15:12:25 -05:00
Jeremy Stretch
fa9ffb23ad Fixes #4838: Fix rack power utilization display for racks without devices 2020-07-10 15:59:27 -04:00
Jeremy Stretch
a260019a7f #4843: Use subqueries when counting multiple types of related objects 2020-07-10 15:38:54 -04:00
Jeremy Stretch
f83ec7256f Add model documentation for VM interfaces 2020-07-10 13:01:02 -04:00
Jeremy Stretch
96b3de7916 Remove extraneous queryset filter 2020-07-10 10:27:07 -04:00
Jeremy Stretch
b1686c2db9 Fix bulk editing, deletion of VM interfaces 2020-07-10 10:26:43 -04:00
Jeremy Stretch
c8418fe550 Fix RestrictedQuerySet evaluation for VLAN CSV export 2020-07-10 10:09:51 -04:00
Jeremy Stretch
9f025747a7 Tweak queryset for Service views to prefetch related IPs with unrestricted() 2020-07-10 09:56:23 -04:00
Jeremy Stretch
59091efa86 Closes #4840: Enable change logging for config contexts 2020-07-09 17:09:03 -04:00
Jeremy Stretch
8d7001fe56 Move abstract ChangeLoggedModel under extras 2020-07-09 17:07:25 -04:00
Jeremy Stretch
c3a7939a77 Merge branch 'develop' into develop-2.9 2020-07-09 16:38:37 -04:00
Jeremy Stretch
683ba5eed3 #4835: Cleanup and improved error handling 2020-07-09 16:35:02 -04:00
Jeremy Stretch
4f00b5af4a Miscellaneous RestrictedQuerySet cleanup 2020-07-09 15:11:18 -04:00
Jeremy Stretch
26e81546eb Fix REST API version calculation 2020-07-09 13:08:13 -04:00
Jeremy Stretch
1692fbf5d8 #4837: Fix API tests 2020-07-09 12:06:13 -04:00
Jeremy Stretch
15525392a2 Closes #4837: Use dynamic form widget for relationships to MPTT objects 2020-07-09 09:50:01 -04:00
Jeremy Stretch
b535608519 Refactor imports 2020-07-09 09:13:58 -04:00
Jeremy Stretch
0a44ed1355 Fix permissions evaluation for session-authenticated API requests 2020-07-08 17:51:25 -04:00
Sander Steffann
d70140f148 Fix typo in format string 2020-07-08 22:20:20 +02:00
Jeremy Stretch
ccdbf820ba Use monospaced font for ObjectPermission constraints 2020-07-08 16:07:07 -04:00
Jeremy Stretch
56c0b48302 Enable filtering ObjectPermissions by enabled, action, and object type 2020-07-08 14:38:19 -04:00
Jeremy Stretch
4c2fdf3b1c Admin UI should use unrestricted queryset for ObjectPermissions 2020-07-08 13:59:57 -04:00
Jeremy Stretch
4eddec4b1e #4806: Add url field to ObjectPermissionSerializer 2020-07-08 13:57:50 -04:00
Jeremy Stretch
39248f9e2f Enable bulk enabling/disabling of permissions 2020-07-08 13:54:09 -04:00
Jeremy Stretch
fac0da224a Add name, enabled fields to ObjectPermission 2020-07-08 13:44:19 -04:00
Jeremy Stretch
6e50ed084d Fix tags display 2020-07-08 13:10:40 -04:00
Jeremy Stretch
bf7bd68b6a Fix tag population for object cloning 2020-07-08 13:07:53 -04:00
Jeremy Stretch
5fd5dbab7b Merge branch 'develop' into develop-2.9 2020-07-08 13:04:57 -04:00
Jeremy Stretch
fec3ee6f08 Closes #4835: Support passing multiple initial values for multiple choice fields 2020-07-08 12:50:12 -04:00
Jeremy Stretch
85b284be54 Fix permissions evaluation for available IPs endpoint 2020-07-08 09:31:10 -04:00
Jeremy Stretch
02a6e2190f Monkey-patch cacheops' _pre_save() receiver to tweak sender's QuerySet 2020-07-07 17:09:41 -04:00
Jeremy Stretch
847fbfd71a Fix unrestricted querysets 2020-07-07 16:46:57 -04:00
Jeremy Stretch
327a93136a TreeManager should provide an unrestricted QuerySet for MPTT use 2020-07-07 16:09:47 -04:00
Jeremy Stretch
353d88f0a6 Use unrestricted querysets for prefetching related objects 2020-07-07 15:45:46 -04:00
Jeremy Stretch
25e1319864 Update filter tests to use unrestricted querysets 2020-07-07 14:26:14 -04:00
Jeremy Stretch
88033c0801 Fix queryset for get_peer_termination() 2020-07-07 14:13:58 -04:00
Andrew Martin
5700ade1a1 Add NEMA 15/L15 Power Types
Reference - https://www.stayonline.com/product-resources/
2020-07-07 11:12:32 -07:00
Jeremy Stretch
f6d05f3906 Tweak ObjectChange queryset for cleanup 2020-07-07 13:54:49 -04:00
Jeremy Stretch
2fbe138c71 Refactor APITestCase to provide dynamic queryset specification 2020-07-07 13:13:19 -04:00
Jeremy Stretch
a2d957ba0d Use stock manager as default for Tag model 2020-07-07 12:18:14 -04:00
Glenn Matthews
f807d3a024 Don't ignore ImportErrors raised when loading a plugin. Fixes #4805 2020-07-07 09:14:33 -04:00
Jeremy Stretch
15f5719f44 Remove unused class IPAddressInterfaceSerializer 2020-07-06 16:51:23 -04:00
Jeremy Stretch
924f319343 Closes #4806: Add a url field to all API serializers 2020-07-06 16:41:08 -04:00
Jeremy Stretch
9a075130f1 Changelog for #2006 2020-07-06 14:02:06 -04:00
Jeremy Stretch
6d0281adc8 Merge pull request #4799 from netbox-community/2006-scripts-reports-background
2006 scripts reports background
2020-07-06 13:45:12 -04:00
Jeremy Stretch
592ad18317 Provide a default view for Report instances 2020-07-06 13:30:13 -04:00
Jeremy Stretch
1f905e72d9 Fix stray reference to LOG_LEVEL_CODES 2020-07-06 11:51:28 -04:00
Jeremy Stretch
e02936a44a Fix reports API test case 2020-07-06 11:15:20 -04:00
Jeremy Stretch
4ea4112490 Fix up schema migration; PEP8 cleanup 2020-07-06 10:44:36 -04:00
Jeremy Stretch
20ee8ec107 Closes #4821: Restrict group options by selected site when bulk editing VLANs 2020-07-06 10:04:08 -04:00
John Anderson
6547a2bc50 merge conflict 2020-07-06 02:10:52 -04:00
John Anderson
4a74927fa2 Merge branch 'develop-2.9' into 2006-scripts-reports-background 2020-07-06 02:06:53 -04:00
John Anderson
41f92ef8e6 review updates 2020-07-06 02:00:16 -04:00
John Anderson
f092c107b5 PR review updates 2020-07-06 02:00:16 -04:00
Jeremy Stretch
f4c14d4854 Replace get_component_template_actions() with ButtonsColumn 2020-07-02 16:47:28 -04:00
Jeremy Stretch
1ed152cd49 Fix unrestricted queries for Tags 2020-07-02 16:25:13 -04:00
Jeremy Stretch
e635dc1fb3 Arrange device components within tabs 2020-07-02 15:10:56 -04:00
Jeremy Stretch
7b33fac71d Display component templates under tabs 2020-07-02 14:35:36 -04:00
Jeremy Stretch
a1e5a8b86a Introduce badge template tag 2020-07-02 14:29:23 -04:00
Jeremy Stretch
92c889ef9e #4416: Provide bulk rename ability for device component templates 2020-07-02 13:58:53 -04:00
Jeremy Stretch
eb2da300b0 Fix form initialization for interface import 2020-07-02 13:27:54 -04:00
Jeremy Stretch
6abb7e8f4d #4721: Tweak migrations to ensure Interface.device cannot be null 2020-07-02 13:12:37 -04:00
Jeremy Stretch
1f9cdc71d4 Move device and device_type ForeignKeys to abstract component models 2020-07-02 13:07:32 -04:00
Jeremy Stretch
d03d302eef Closes #4817: Standardize device/VM component name field to 64 characters 2020-07-02 12:08:19 -04:00
Jeremy Stretch
c5362f5931 Fix permissions evaluation for nonstandard tests 2020-07-02 11:43:03 -04:00
Jeremy Stretch
f28bde179e Extend label field to all device components 2020-07-02 11:18:08 -04:00
Jeremy Stretch
f98fa364c0 Merge branch 'develop-2.9' into 2006-scripts-reports-background 2020-07-02 11:00:59 -04:00
Daniel Sheppard
e67f08c745 #4695 - Add metadata class to other classes 2020-07-02 09:26:08 -05:00
Jeremy Stretch
8d7377ba04 Merge branch 'develop' into develop-2.9 2020-07-02 10:01:01 -04:00
Jeremy Stretch
1c5af01a82 Merge pull request #4816 from netbox-community/develop
Release v2.8.7
2020-07-02 09:42:41 -04:00
Jeremy Stretch
95462ce0ec Post-release version bump 2020-07-02 09:39:15 -04:00
Jeremy Stretch
9f614452b4 Release NetBox v2.8.7 2020-07-02 09:37:20 -04:00
Jeremy Stretch
fa0c7a76cb Fix permission evaluation for add console/power port buttons 2020-07-01 15:14:06 -04:00
Jeremy Stretch
06ae424b80 #4416: Add bulk rename view for InventoryItem 2020-07-01 15:12:05 -04:00
Jeremy Stretch
e4b5045ec7 #4416: Add bulk_add view for InventoryItems 2020-07-01 14:55:11 -04:00
Jeremy Stretch
7e3e18faea #4416: Add individual & changelog views for InventoryItem 2020-07-01 14:46:12 -04:00
Jeremy Stretch
225b6c6958 Fix collection of assigned IPs when editing a device 2020-07-01 14:23:21 -04:00
Jeremy Stretch
57b73c485f #4416: Remove individual view for extras.Tag 2020-07-01 14:21:51 -04:00
Jeremy Stretch
c484fa99e2 Introduce ButtonsColumn to reduce boilerplate and standardize organizational object links 2020-07-01 13:47:01 -04:00
Jeremy Stretch
8959d2e0a7 #4416: Add individual delete views for organizational objects 2020-07-01 12:08:26 -04:00
Jeremy Stretch
4613b69c28 Extend GetReturnURLMixin to automatically resolve default return URL for querysets 2020-07-01 11:50:31 -04:00
Jeremy Stretch
43d610405f Add changelog for #4695 and #4708 2020-07-01 11:06:49 -04:00
Jeremy Stretch
7e8a4a2a77 Merge pull request #4797 from netbox-community/4695_fix_api_cable_choices_termination_types
Fixes #4695 - Add Metadata class that returns content type choices
2020-07-01 11:03:01 -04:00
Jeremy Stretch
56ec4a6360 Merge pull request #4706 from netbox-community/4604_check_position_stack
4708: more flexible checks on RearPort usage
2020-07-01 10:59:17 -04:00
Jeremy Stretch
0b1df1483f Automatically import ContentType when entering nbshell 2020-06-30 16:34:53 -04:00
Jeremy Stretch
7fab929194 Fix evaluation of empty label_pattern 2020-06-30 16:30:54 -04:00
Jeremy Stretch
89ea34015d Enable bulk editing of device component labels 2020-06-30 16:15:17 -04:00
Jeremy Stretch
7defa22b0b Remove reference to choices API endpoints 2020-06-30 15:55:15 -04:00
Jeremy Stretch
88e3ac30b6 Closes #4807: Add bulk edit ability for device bay templates 2020-06-30 15:22:30 -04:00
Jeremy Stretch
52a13b1960 Closes #4793: Add description field to device component templates 2020-06-30 15:12:53 -04:00
Jeremy Stretch
52cff1ee50 Fixes #4771: Fix add/remove tag population when bulk editing objects 2020-06-30 09:55:54 -04:00
Jeremy Stretch
8a26f475a7 Fixes #4774: Fix exception when deleting a device with device bays 2020-06-30 09:43:05 -04:00
John Anderson
1d922a1848 fix previous job result deletion 2020-06-30 09:29:50 -04:00
Jeremy Stretch
51e9b0a22a Closes #4796: Introduce configuration parameters for default rack elevation size 2020-06-30 09:26:32 -04:00
Jeremy Stretch
268b4c854e Closes #4802: Allow changing page size when displaying only a single page of results 2020-06-30 09:00:42 -04:00
Jeremy Stretch
af778f8fca TagFilter should call unrestricted() on its queryset 2020-06-29 16:07:14 -04:00
Jeremy Stretch
15f32bdd73 Wrap ComponentTraceMixin in a parent class 2020-06-29 15:14:12 -04:00
Jeremy Stretch
36498c9dd2 Base manager for Tag should use RestrictedQuerySet 2020-06-29 14:57:29 -04:00
Jeremy Stretch
66703d8963 Fix evaluation of RestrictedQuerySet 2020-06-29 14:42:37 -04:00
Jeremy Stretch
71812d1bd5 Fix evaluation of RestrictedQuerySet 2020-06-29 14:41:43 -04:00
Jeremy Stretch
5ed6136915 Introduce ComponentTraceMixin to minimize boilerplate 2020-06-29 14:40:36 -04:00
John Anderson
f48a079ae6 fix tests and cleanup 2020-06-29 14:34:42 -04:00
Jeremy Stretch
a47a100cb7 Fix unrestricted evaluations of RestrictedQuerySet 2020-06-29 13:31:26 -04:00
Jeremy Stretch
9ea4f82eaa Prefetch tagged VLANs for VMInterfaces 2020-06-29 12:18:59 -04:00
Jeremy Stretch
617e20af0b Standardize VMInterfaceTest 2020-06-29 12:06:36 -04:00
Jeremy Stretch
89ff59d048 Add graphs endpoint to VMInterfaceViewSet 2020-06-29 12:05:00 -04:00
Jeremy Stretch
6ecbf45974 Fix evaluation of RestrictedQuerySets 2020-06-29 11:48:36 -04:00
Jeremy Stretch
eb45ad600e Fix evaluation of RestrictedQuerySets 2020-06-29 11:35:13 -04:00
Jeremy Stretch
10e6b6ca66 Fix RestrictedQuerySet evaluation in tests 2020-06-29 11:27:23 -04:00
Jeremy Stretch
5732466e56 Signal receiver should call unrestricted() 2020-06-29 11:07:11 -04:00
Jeremy Stretch
ce55d0c791 Tweak querysets to work with restriction 2020-06-29 10:57:09 -04:00
Jeremy Stretch
6ab4640cdc Update API tests to work with RestrictedQuerySet 2020-06-29 10:39:06 -04:00
Jeremy Stretch
a6b03b8884 Update WritableNestedSerializer to call unrestricted() on RestrictedQuerySets 2020-06-29 10:38:32 -04:00
Jeremy Stretch
0dbe248df8 Call restrict() when retrieving related Graphs 2020-06-29 10:14:43 -04:00
John Anderson
1681dbfa39 refactor migration 2020-06-29 04:22:01 -04:00
John Anderson
3777fbccc3 Implements #2006 - run reports and scripts in the background 2020-06-29 03:50:05 -04:00
Jeremy Stretch
86d1370512 Apply restrict_form_fields() to import views 2020-06-26 16:26:22 -04:00
Jeremy Stretch
8c0adc9c61 Update test methods to call unrestricted() on RestrictedQuerySets 2020-06-26 16:15:21 -04:00
Ryan Merolle
c8461095c9 add missing NEMA power ports/outlets (#4784)
* add various NEMA power ports/outlets
2020-06-26 15:34:38 -04:00
Jeremy Stretch
a452e78fa6 Use unrestricted() when compiling ObjectPermissions for user 2020-06-26 15:28:08 -04:00
Jeremy Stretch
04571ce920 Fix the initial permissions check on create/edit view tests 2020-06-26 15:21:59 -04:00
Jeremy Stretch
5dfa80c0b9 Fix the initial permissions check on create/edit/delete view tests 2020-06-26 15:17:07 -04:00
Jeremy Stretch
40c416618a Link to cable termination objects 2020-06-26 15:13:41 -04:00
Jeremy Stretch
9a1531442a Apply restrict_form_fields() to bulk edit views 2020-06-26 15:11:05 -04:00
Jeremy Stretch
6128ef4b37 Remove redundant ObjectPermissionViewTestCase 2020-06-26 15:00:47 -04:00
Jeremy Stretch
84db1adfaf Fix create, edit view test methods 2020-06-26 14:48:04 -04:00
Jeremy Stretch
2c354c7f86 Fix automatic creation of UserConfig for user created via admin UI 2020-06-26 14:29:24 -04:00
Jeremy Stretch
edc65a6a34 Introduce restrict_form_fields() to automatically restrict field querysets based on user 2020-06-26 13:59:53 -04:00
Jeremy Stretch
8412f9481c Force restriction of RestrictedQuerySet even for superusers 2020-06-26 13:18:12 -04:00
Sander Steffann
b26fc81187 Sort the list for consistent output 2020-06-26 18:42:08 +02:00
Sander Steffann
0455947597 Make sure that the endpoint is actually a CableTermination 2020-06-26 18:24:04 +02:00
Jeremy Stretch
95965d65c9 Fix some instances where RestrictedQuerySet is evaluated prematurely 2020-06-26 12:22:02 -04:00
Daniel Sheppard
8179cfa4c1 #4695 - Rename LimitedMetaData to ContentTypeMetadata 2020-06-26 11:09:27 -05:00
Daniel Sheppard
d21881e207 #4695 - Add Metadata class that returns content type choices 2020-06-26 10:59:21 -05:00
Jeremy Stretch
9777f25b9f Set the default action to 'view' for restrict() 2020-06-26 11:57:07 -04:00
Jeremy Stretch
6e3a32567c Move utility functions to utils.py 2020-06-26 11:56:30 -04:00
Sander Steffann
25926e32f0 Replace is_connected_endpoint with simple isinstance check
It was only used in a single location anyway…
2020-06-26 17:30:59 +02:00
Sander Steffann
3fdc8e7d3d Replace is_path_endpoint with simple isinstance check
It was only used in a single location anyway…
2020-06-26 17:25:07 +02:00
Jeremy Stretch
71afba4d2e Fixes #4791: Update custom script documentation for ObjectVar 2020-06-25 17:33:41 -04:00
Jeremy Stretch
319799b5ce Closes #4795: Add bulk disconnect capability for console and power ports 2020-06-25 17:08:51 -04:00
Jeremy Stretch
128327b8a3 Split url_name template filter into viewname() and validated_viewname() 2020-06-25 16:50:35 -04:00
Jeremy Stretch
6f8f3f98b4 Tweak ObjectChangeLogView to work with both restricted and unrestricted querysets 2020-06-25 15:58:13 -04:00
Jeremy Stretch
2e272132b0 Add test method for changelog view 2020-06-25 15:43:47 -04:00
Jeremy Stretch
1dbae5b64c Closes #4792: Add bulk rename capability for console and power ports 2020-06-25 14:18:29 -04:00
Jeremy Stretch
6d23d9ebb7 Merge pull request #4790 from netbox-community/4788-component-views
#4788: Add individual views for device components
2020-06-25 13:38:09 -04:00
Jeremy Stretch
ec9b33ac97 Fix typo 2020-06-25 13:36:54 -04:00
Jeremy Stretch
5aa2a6eefe Add plugin buttons & content to device component views 2020-06-25 13:27:01 -04:00
Jeremy Stretch
103a44991a Changelog for #4788 2020-06-25 12:22:21 -04:00
Jeremy Stretch
0fcdd63941 Linkify components under device view 2020-06-25 12:21:25 -04:00
Jeremy Stretch
8695714c65 Fix device component changelog display 2020-06-25 12:09:56 -04:00
Jeremy Stretch
2001cfe864 Update and simplify device component tables 2020-06-25 12:03:44 -04:00
Jeremy Stretch
3badfd756c Extend DeviceComponentViewTestCase to include GetObjectViewTestCase 2020-06-25 11:04:42 -04:00
Jeremy Stretch
b08d9a5a8e Add individual views for device components 2020-06-25 11:01:18 -04:00
Jeremy Stretch
ecf40e1525 Add/update device component templates 2020-06-25 11:00:25 -04:00
Jeremy Stretch
909ddd653c Extend ObjectView to provide a default get() method 2020-06-25 10:53:00 -04:00
Jeremy Stretch
2f19350ff5 Tweak url_name template filter to work with URLs which need a PK 2020-06-25 10:49:30 -04:00
Jeremy Stretch
68ef5177f0 Introduce template filters for checking dynamic permissions 2020-06-25 10:48:21 -04:00
Jeremy Stretch
ba138de53b Fix display of tags 2020-06-24 16:27:44 -04:00
Jeremy Stretch
2303034c92 Changelog for #2018 2020-06-24 16:22:37 -04:00
Jeremy Stretch
2ceed475d5 Merge pull request #4787 from netbox-community/2018-virtual-chassis-name
#2018: Add name field to VirtualChassis model
2020-06-24 16:14:21 -04:00
Jeremy Stretch
e2398c8c0e Fix signal logic 2020-06-24 15:57:52 -04:00
Jeremy Stretch
36cf40f25c Enable CSV import for virtual chassis 2020-06-24 15:29:25 -04:00
Jeremy Stretch
59c1e34024 Initial work on #2018: Add name to VirtualChassis 2020-06-24 15:21:42 -04:00
Jeremy Stretch
2ac53afd96 Update changelog for #4721 2020-06-24 12:44:00 -04:00
Jeremy Stretch
d60a2d3723 Merge pull request #4781 from netbox-community/4721-virtualmachine-interface
#4721: Move VM interfaces to a separate model (WIP)
2020-06-24 12:10:20 -04:00
Jeremy Stretch
4d2c75a824 Restore ability to assign interface when editing an IPAddress 2020-06-24 11:30:28 -04:00
Jeremy Stretch
99c72c78c1 Update VMInterface view names 2020-06-24 10:09:22 -04:00
Jeremy Stretch
052555c3f7 Add bulk renaming function for VM interfaces 2020-06-24 10:02:40 -04:00
Jeremy Stretch
9a0bc16c86 Update device/VM interface templates 2020-06-24 09:52:22 -04:00
Jeremy Stretch
6663844a86 Rename 'vm_interface' to 'vminterface'; misc cleanup 2020-06-24 09:27:30 -04:00
Jeremy Stretch
d6386f739e Restore interface filtering for IPAddresses 2020-06-24 09:22:35 -04:00
Sander Steffann
ed1717f858 Revert "Bumping version just to test the GitHub Action"
This reverts commit 1cf0868e
2020-06-24 13:09:11 +02:00
Sander Steffann
1cf0868e30 Bumping version just to test the GitHub Action 2020-06-24 13:07:54 +02:00
Jeremy Stretch
afda46d587 Fix VMInterface bulk creation 2020-06-23 17:28:34 -04:00
Jeremy Stretch
603c804535 Add VMInterface CSV import view 2020-06-23 17:09:21 -04:00
Jeremy Stretch
fce19a363d Add VMInterface list view 2020-06-23 16:52:05 -04:00
Jeremy Stretch
e3820e93b7 Misc cleanup, renaming 2020-06-23 16:39:43 -04:00
Jeremy Stretch
459e485555 Restore interface assignment for IPAddress CSV import 2020-06-23 16:09:31 -04:00
Jeremy Stretch
548127cc88 Rename VMInterface serializers 2020-06-23 15:46:20 -04:00
Jeremy Stretch
a1b816b403 Remove 'parent' attribute from VMinterface 2020-06-23 15:31:53 -04:00
Jeremy Stretch
5ad5994b9d Update interface view templates 2020-06-23 15:09:32 -04:00
Jeremy Stretch
25d6bbf659 Update view and permission names for VMInterface 2020-06-23 14:48:37 -04:00
Jeremy Stretch
75354a8a78 Rename Interface to VMInterface 2020-06-23 13:21:44 -04:00
Jeremy Stretch
d1bd010e05 Fix Interface tag replication in schema migration 2020-06-23 12:50:22 -04:00
Jeremy Stretch
bb6be8e3d3 Disable editing assigned interface under IPAddress form 2020-06-22 16:36:06 -04:00
Jeremy Stretch
fc2d08c407 Set related_query_name for GenericRelations to IPAddress 2020-06-22 16:27:13 -04:00
Jeremy Stretch
40938f0c8a Retain ip_addresses name for related IPAddress objects 2020-06-22 16:13:18 -04:00
Jeremy Stretch
490dee1fa0 Merge branch 'develop-2.9' into 4721-virtualmachine-interface 2020-06-22 16:04:20 -04:00
Jeremy Stretch
27796bbd08 Add queryset to IPAddressBulkCreateView 2020-06-22 15:58:47 -04:00
Jeremy Stretch
b5d53fa850 Fix schema deconstruction for NaturalOrderingField 2020-06-22 15:49:09 -04:00
Jeremy Stretch
7b24984280 Update IPAddressSerializer 2020-06-22 15:39:57 -04:00
Jeremy Stretch
37564d630a Misc test fixes 2020-06-22 15:22:03 -04:00
Jeremy Stretch
380a5cf8a7 Fix IP choices for DeviceForm 2020-06-22 15:12:35 -04:00
Jeremy Stretch
f2b26282b8 Disable VM interface bulk creation testing 2020-06-22 15:09:16 -04:00
Jeremy Stretch
31bb70d9a2 Fixed IPAM tests 2020-06-22 14:46:25 -04:00
Jeremy Stretch
2608b3f9f3 Separate VM interface view and template 2020-06-22 14:33:53 -04:00
Jeremy Stretch
e76b1f1daa Fix assigned_object field 2020-06-22 13:50:14 -04:00
Jeremy Stretch
6cb31a274f Initial work on #4721 (WIP) 2020-06-22 13:10:56 -04:00
Jeremy Stretch
181bcd70ad Fix schema migrations for device components 2020-06-22 12:01:57 -04:00
Jeremy Stretch
eb8c0539c5 Update REST API changes for #4615 2020-06-18 14:24:50 -04:00
Jeremy Stretch
4f3fde8055 #4615: Add label field to component tables 2020-06-18 13:57:15 -04:00
Jeremy Stretch
c832e3c2c7 #4615: Add missing label field to device bay forms 2020-06-18 13:35:11 -04:00
Jeremy Stretch
88bf183af5 Merge branch 'develop' into develop-2.9 2020-06-18 13:20:32 -04:00
Jeremy Stretch
462f992a2b Introduce ComponentCreateForm to standardize forms for device component creation 2020-06-18 12:09:28 -04:00
Jeremy Stretch
c5dc075fb0 Fixes #4775: Allow selecting an alternate device type when creating component templates 2020-06-18 11:59:24 -04:00
Jeremy Stretch
11a247edc2 Fix up tests 2020-06-18 10:32:22 -04:00
Jeremy Stretch
328d639886 Merge branch 'develop' into develop-2.9 2020-06-17 16:57:17 -04:00
Jeremy Stretch
0800279325 Standardize SecretTest 2020-06-17 15:37:28 -04:00
Jeremy Stretch
26770515e1 Refactor TestCase to provide model_to_dict(), prepare_instance() 2020-06-17 15:36:56 -04:00
Jeremy Stretch
b0c24de596 Fixes #4772: Fix "brief" format for the secrets REST API endpoint 2020-06-17 14:22:55 -04:00
Jeremy Stretch
fd18395f78 Fix queryset for TagBulkImportView 2020-06-17 13:31:26 -04:00
Jeremy Stretch
360c56ec34 Fix permission evaluation for BulkComponentCreateViews 2020-06-17 13:30:00 -04:00
Jeremy Stretch
3890d17c61 Clean up errant references to TagField 2020-06-17 13:29:27 -04:00
Jeremy Stretch
2d4694e72d Merge pull request #4770 from netbox-community/3703-limit-tag-creation
Closes #3703: Restrict tag creation
2020-06-17 12:28:04 -04:00
Jeremy Stretch
54ece346bc DummyQuerySet should be iterable to allow for serialization 2020-06-17 12:20:56 -04:00
Jeremy Stretch
5e71bad5cf Fix serialization of tags upon object deletion 2020-06-17 12:00:50 -04:00
Jeremy Stretch
d1adc5ea9b Update release notes for #3703 2020-06-17 11:29:59 -04:00
Jeremy Stretch
bb755daf8b Update tests 2020-06-17 11:14:41 -04:00
Sander Steffann
715ddc6b02 Define is_path_endpoint and is_connected_endpoint separately, as a CableTermination is a possible connected endpoint but not always the end of the path. 2020-06-17 17:11:28 +02:00
Jeremy Stretch
ef978b2ebf Update TaggedItemTest 2020-06-17 10:50:37 -04:00
Jeremy Stretch
d0f0aef2ef Remove django-taggit-serializer 2020-06-17 10:00:21 -04:00
Jeremy Stretch
448dc1442c Replace TaggitSerializer and TagListSerializerField with TaggedObjectSerializer 2020-06-17 09:57:17 -04:00
Jeremy Stretch
e23a5ad141 Fixes #4766: Fix redirect after login when next is not specified 2020-06-17 09:15:03 -04:00
Jeremy Stretch
4ae05dddeb Tag should use a stock manager by default 2020-06-16 17:02:03 -04:00
Jeremy Stretch
b318bde76c Fix queryset reference under BulkDeleteView 2020-06-16 16:40:16 -04:00
Sander Steffann
3876efe494 Fix is_path_endpoint flag on CableTermination 2020-06-16 21:56:46 +02:00
Sander Steffann
f075339c5f Improve test comments and remove over-enthusiastic tests 2020-06-16 21:48:26 +02:00
Sander Steffann
abaf0daa6e Store the front ports on the position_stack so we can provide better feedback to the user 2020-06-16 21:47:37 +02:00
Sander Steffann
4a11800d9e Better comments 2020-06-16 21:47:10 +02:00
Sander Steffann
cafecb091d Replace temporary comment with proper one 2020-06-16 21:46:16 +02:00
Jeremy Stretch
7cf0e6034b Optimize tag population under prepare_cloned_fields() 2020-06-16 15:12:50 -04:00
Jeremy Stretch
c7aa0a2321 Fix prepare_cloned_fields() inefficiency 2020-06-16 15:08:14 -04:00
Jeremy Stretch
58f4e3756c Fix ObjectChangeLogView 2020-06-16 15:04:34 -04:00
Jeremy Stretch
067e89f6a0 Allow unrestricted access to assigned tags 2020-06-16 14:59:22 -04:00
Jeremy Stretch
efed2bc262 Fix restriction violations for rack model 2020-06-16 14:53:51 -04:00
Jeremy Stretch
adf0255bdf Allow unrestricted access to assigned tags 2020-06-16 14:17:40 -04:00
Jeremy Stretch
1e259f3043 Allow unrestricted retrieval of MPTT ancestors 2020-06-16 14:10:56 -04:00
Jeremy Stretch
ffa3a229b5 Fix restriction violations for provider, circuit models 2020-06-16 14:00:43 -04:00
Jeremy Stretch
0f8df8c985 Add unrestricted() to Rack methods 2020-06-16 13:31:51 -04:00
Jeremy Stretch
ed0b38c7a7 Bypass restriction for querysets used for filtering by related object 2020-06-16 13:15:58 -04:00
Jeremy Stretch
fa0ff8be39 Restrict ExportTemplates available via export button 2020-06-16 13:06:03 -04:00
Jeremy Stretch
5d724f6b84 Fix up permissions enforcement for home view, global search 2020-06-16 13:03:38 -04:00
Jeremy Stretch
ffb43a8534 Introduce unrestricted() method on RestrictedQuerySet 2020-06-16 12:20:21 -04:00
Jeremy Stretch
ce5fd7955f Catch and log evaluation of RestrictedQuerySet without calling restrict() 2020-06-16 10:39:15 -04:00
Jeremy Stretch
e917535380 Merge branch 'develop' into develop-2.9 2020-06-15 16:04:32 -04:00
Jeremy Stretch
a5512dd4c4 Post-release version bump 2020-06-15 14:57:05 -04:00
Jeremy Stretch
bac3ace8fc Merge pull request #4762 from netbox-community/develop
Release v2.8.6
2020-06-15 14:45:01 -04:00
Jeremy Stretch
60deb3f0ba Release v2.8.6 2020-06-15 14:37:36 -04:00
Jeremy Stretch
eaaaaec5a5 Fixes #4710: Fix merging of form fields among custom scripts 2020-06-15 14:20:00 -04:00
Jeremy Stretch
5bcf85e57d Closes #4744: Hide IP addresses tab when viewing a container prefix 2020-06-15 13:33:16 -04:00
Jeremy Stretch
1d466d6fd1 Closes #4761: Enable tag assignment during bulk creation of IP addresses 2020-06-15 13:24:34 -04:00
Jeremy Stretch
57cfb4ed7e Fixes #4760: Enable power port template assignment when bulk editing power outlet templates 2020-06-15 13:18:26 -04:00
Jeremy Stretch
9fa4cbdfa5 Correction for #4756 2020-06-15 12:43:08 -04:00
Jeremy Stretch
5af2b3c2f5 Closes #4717: Introduce ALLOWED_URL_SCHEMES configuration parameter to mitigate dangerous hyperlinks 2020-06-15 11:53:47 -04:00
Jeremy Stretch
2e5058c4c9 Fixes #4756: Filter parent group by site when creating rack groups 2020-06-15 10:02:35 -04:00
Jeremy Stretch
9fc4a4f24a Closes #4755: Enable creation of rack reservations directly from navigation menu 2020-06-12 15:11:27 -04:00
Jeremy Stretch
e905a36fb2 Update tests for tag changes 2020-06-12 11:33:23 -04:00
Jeremy Stretch
7dc4f8d5cc Remove TagField 2020-06-12 10:01:39 -04:00
Jeremy Stretch
da906f48d9 Standardize add, import, and export functionality for tags 2020-06-12 09:48:23 -04:00
Jeremy Stretch
057a022205 Clean up and improve UI view tests 2020-06-11 16:12:50 -04:00
Jeremy Stretch
7a54bd9f2a Changelog and migrations fix for #4615 2020-06-11 13:42:20 -04:00
Jeremy Stretch
9b48a26aef Merge pull request #4723 from jsenecal/4615_interface_label
Closes: #4615 Physical labels
2020-06-11 13:03:46 -04:00
Jonathan Senecal
a37d06064a Add label to DeviceBay models and serializers 2020-06-11 10:19:53 -04:00
Jonathan Senecal
c1eea166c9 Fix tests for LabeledComponentForm
* Added docstring
* Removed redundant tests since refactoration
2020-06-10 22:58:52 -04:00
Jonathan Senecal
25cbab2ea4 Avoid checking field twice on all iterations
Yields a small performance improvement

Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-06-10 22:16:46 -04:00
Jonathan Senecal
cf81a8979f Avoid component_type on subclasses 2020-06-10 22:10:45 -04:00
Jonathan Senecal
e3a8638471 Move __str__() to the abstract class 2020-06-10 22:04:45 -04:00
Jeremy Stretch
d26fcc9918 Annotated blocked TODO items 2020-06-10 16:56:24 -04:00
Jeremy Stretch
8e9dc9f20e Add EditObjectViewTestCase for VirtualChassis 2020-06-10 16:51:35 -04:00
Jonathan Senecal
81d08ac50b Stay consistent with codebase: i vs pos 2020-06-10 16:41:52 -04:00
Jeremy Stretch
e13320f58d Fix permissions enforcement for VirtualChassisEditView 2020-06-10 16:37:35 -04:00
Jeremy Stretch
1f727f565f Adopted fix from #4743 and updated API tests 2020-06-10 16:11:28 -04:00
Jeremy Stretch
9fd36279ab Fixes #4743: Allow users to create "next available" IPs without needing permission to create prefixes 2020-06-10 16:06:11 -04:00
Jeremy Stretch
4078d9b669 Remove extraneous test 2020-06-10 15:22:49 -04:00
Jonathan Senecal
3b54d6f8e5 No need to reference the model itself 2020-06-10 15:11:47 -04:00
Jeremy Stretch
58b4f6abca Update v2.9 release notes 2020-06-10 15:05:15 -04:00
Jonathan Senecal
f041c762ac Prevent the table cell from rendering empty for interface.label
Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-06-10 14:59:23 -04:00
Jeremy Stretch
88ae522c9a Closes #4742: Add tagging for cables, power panels, and rack reservations 2020-06-10 14:55:46 -04:00
Jonathan Senecal
5cdaaed311 Use a single migration for labels 2020-06-10 14:04:55 -04:00
Jeremy Stretch
40947f8cb2 Merge pull request #4734 from tyler-8/bulk_api_docs
Add example of bulk object creation in documentation
2020-06-10 11:39:44 -04:00
Jeremy Stretch
9abc67bbeb Fixes #4737: Introduce ColoredLabelColumn for consistent display of colored labels 2020-06-10 11:38:23 -04:00
Jeremy Stretch
16cdf3006f Fixes #4736: Add cable trace endpoints for pass-through ports 2020-06-09 15:12:10 -04:00
Jeremy Stretch
15004c654f Add missing API cable trace test for interfaces 2020-06-09 14:47:05 -04:00
Tyler Bigler
062a319a7c Add example of bulk object creation 2020-06-09 13:35:44 -04:00
Jeremy Stretch
ed9ca270a7 Add missing API tests for pass-through port templates 2020-06-09 13:24:07 -04:00
Jonathan Senecal
e0037c7f70 pycodestyle 2020-06-08 23:07:53 -04:00
Jonathan Senecal
4301c06d17 Refactorization into LabeledComponentForm 2020-06-08 23:07:12 -04:00
Jonathan Senecal
90bc1cd951 Test forms and views with labels 2020-06-08 20:04:31 -04:00
Jeremy Stretch
67784c0568 Merge pull request #4713 from netbox-community/4348-ldap-auth-backend
Closes #4348: Introduce LDAPBackend
2020-06-08 17:07:52 -04:00
Jeremy Stretch
20ec700045 Changelog for #4674 2020-06-08 17:00:47 -04:00
Jonathan Senecal
892c0e3d8b Leftover fix 2020-06-08 17:00:07 -04:00
Jeremy Stretch
ecd3963b7c Merge pull request #4718 from netbox-community/4674-drf_yasg_definitions
Fixes #4674 - Fix available-ips and available-prefixes swagger definitions
2020-06-08 16:59:04 -04:00
Jeremy Stretch
54dd20cdb4 Merge pull request #4733 from netbox-community/4730-api-test-permissions
Closes #4730: Update REST API tests to enforce ObjectPermissions
2020-06-08 16:53:22 -04:00
Jeremy Stretch
2f53411efc Extend assertInstanceEqual() to handle M2M relations to ContentType 2020-06-08 16:32:50 -04:00
Jeremy Stretch
7a858cea23 Extend test_bulk_create_objects() to inspect created objects 2020-06-08 15:58:54 -04:00
Jeremy Stretch
987414ed7b Introduce NestedObjectPermissionSerializer 2020-06-08 15:44:16 -04:00
Jeremy Stretch
047286f9c0 Add a third initial object to VirtualChassisTest 2020-06-08 15:27:55 -04:00
Jeremy Stretch
a2955196af Remove extraneous permission class from SecretRoleViewSet 2020-06-08 15:21:11 -04:00
Jeremy Stretch
62224857f0 Standardize ObjectPermissionTest 2020-06-08 14:01:15 -04:00
Jeremy Stretch
c1a37db871 Fix managers on Graph and ExportTemplate 2020-06-08 13:41:12 -04:00
Jeremy Stretch
a8145fe4c2 Add permission assignment to custom test methods 2020-06-08 13:40:46 -04:00
Jeremy Stretch
3b44e7c1c4 Update API test methods to evaluate permissions assignment 2020-06-08 11:52:29 -04:00
Jeremy Stretch
830fd5f83a Remove duplicate test method 2020-06-08 11:22:12 -04:00
Jeremy Stretch
f83e435a90 Move APIViewTestCases to api.py 2020-06-08 10:46:53 -04:00
Jeremy Stretch
0ebd87bcb9 Merge branch 'develop' into develop-2.9 2020-06-08 10:33:23 -04:00
Jeremy Stretch
1ea368856b Merge pull request #4728 from netbox-community/4722-api-tests
Closes #4722: Standardize API view tests
2020-06-08 10:16:10 -04:00
Jeremy Stretch
a8077e6ed1 Extend assertInstanceEqual() to accommodate REST API data 2020-06-08 09:47:14 -04:00
Jeremy Stretch
7def37961a Correct exempted test methods on InterfaceTestCase 2020-06-05 16:17:10 -04:00
Jeremy Stretch
4f830c9c22 Fix list_brief tests 2020-06-05 16:09:55 -04:00
Jeremy Stretch
032f87caec Merge branch 'develop' into 4722-api-tests 2020-06-05 15:50:14 -04:00
Jeremy Stretch
e616aad911 Fixes #4725: Fix "brief" rendering of various REST API endpoints 2020-06-05 15:49:06 -04:00
Jeremy Stretch
c2f6f5a7cd Fix ProviderTest 2020-06-05 15:18:18 -04:00
Jeremy Stretch
d3fbaca228 Standardize virtualization API tests 2020-06-05 15:06:08 -04:00
Jeremy Stretch
ae913f14ce Standardize tenancy API tests 2020-06-05 14:30:01 -04:00
Jeremy Stretch
1ee79ee61e Standardize SecretRoleTest 2020-06-05 14:18:38 -04:00
Jeremy Stretch
b5ebfd0b07 Standardize IPAM API tests 2020-06-05 14:09:54 -04:00
Jonathan Senecal
286a3e6ca2 Add label to forms, views and templates 2020-06-05 13:59:59 -04:00
Jeremy Stretch
665646707c Standardize extras API tests 2020-06-05 13:41:54 -04:00
Jeremy Stretch
279ae7ea10 Standardize DCIM API tests 2020-06-05 13:23:33 -04:00
Jonathan Senecal
d65cead212 Return an empty list if value is None 2020-06-05 12:34:09 -04:00
Jonathan Senecal
e21cbf2a06 Add the label to the string representation 2020-06-05 11:01:39 -04:00
Jonathan Senecal
1fae9aff0c Add label to *port serializers 2020-06-05 10:42:13 -04:00
Jonathan Senecal
a06d74472d Add label to *ports models 2020-06-05 10:32:59 -04:00
Jeremy Stretch
8cc1dc9f1c Fix update data 2020-06-05 10:05:54 -04:00
Jeremy Stretch
86e5a09b01 Optimize test_get_provider_graphs() 2020-06-05 09:36:38 -04:00
Jeremy Stretch
1d5f2fbd11 Correct test method name 2020-06-05 09:19:31 -04:00
Jonathan Senecal
f8851121ab Add the label to the string representation 2020-06-04 17:11:27 -04:00
Jonathan Senecal
e9f8640ee6 Add label to Interface serializers 2020-06-04 16:50:51 -04:00
Jeremy Stretch
4219691e62 Update circuits API tests to use APIViewTestCases 2020-06-04 16:47:15 -04:00
Jeremy Stretch
4ae1879b87 Introduce APIViewTestCases for standardized API view testing 2020-06-04 16:45:03 -04:00
Jonathan Senecal
cde1db4436 Add label to interface models 2020-06-04 16:44:25 -04:00
Jeremy Stretch
d2dce6db25 Merge pull request #4719 from netbox-community/4715-avoid-unnecessary-queries
Fixes #4715: Avoid unnecessary queries in Cable.from_db
2020-06-04 13:13:17 -04:00
Jeremy Stretch
fae115b995 Closes #4698: Improve display of template code for object in admin UI 2020-06-04 13:11:24 -04:00
Sander Steffann
8f9dcf5a97 Avoid unnecessary queries in Cable.from_db 2020-06-04 17:46:09 +02:00
Jeremy Stretch
91ba44cc96 Add local_requirements.txt to .gitignore 2020-06-04 11:44:16 -04:00
Daniel Sheppard
5330914431 #4674 - Correct many=False to many=True on the response serializers 2020-06-04 09:42:00 -05:00
Daniel Sheppard
927c012fc9 #4674 - Fix available-ips and available-prefixes swagger definitions 2020-06-04 09:35:58 -05:00
Jeremy Stretch
dc161d9f2f Update LDAP configuration documentation 2020-06-03 15:57:11 -04:00
Jeremy Stretch
040fadb0c3 Move LDAP authentication support to LDAPBackend 2020-06-03 15:42:24 -04:00
Jeremy Stretch
bb1484a444 Dropped backward compatibility for the /admin/webhook-backend-status URL 2020-06-03 14:15:29 -04:00
Jeremy Stretch
b31cc89478 Dropped backward compatibility for 'webhooks' Redis queue 2020-06-03 14:13:18 -04:00
Jeremy Stretch
05c851301e Merge pull request #4705 from netbox-community/554-object-permissions
Closes #554: Implement object-based permissions
2020-06-03 13:29:16 -04:00
Jeremy Stretch
dbf6c0a075 Split ObjectPermission model documentation 2020-06-03 13:20:35 -04:00
Jeremy Stretch
3084d58da1 Add REST API endpoint for ObjectPermissions 2020-06-03 13:08:04 -04:00
Jeremy Stretch
19b57aa1ea Update permissions documentation 2020-06-03 10:03:15 -04:00
Jeremy Stretch
d157818d7e Rename attrs to constraints 2020-06-03 09:43:46 -04:00
Jeremy Stretch
ddcd172af1 Rename content_types to object_types 2020-06-03 09:27:20 -04:00
Jeremy Stretch
19407ba3bc Uodate script and report views to use ObjectPermissionRequiredMixin 2020-06-02 15:40:39 -04:00
Jeremy Stretch
3502398d1d Remove delete_token permission from TokenDeleteView 2020-06-02 15:36:31 -04:00
Jeremy Stretch
205acd2c4d Update VirtualChassis views to support ObjectPermissions 2020-06-02 15:33:41 -04:00
Jeremy Stretch
e463430d51 Change CableCreateView to use ObjectEditView 2020-06-02 15:15:57 -04:00
Jeremy Stretch
cae412d280 Update ObjectImportView to support ObjectPermissions 2020-06-02 14:23:04 -04:00
Jeremy Stretch
56f6698ba5 Fixes #4707: Fix prefix_count population on VLAN API serializer 2020-06-02 13:40:14 -04:00
Jeremy Stretch
a62b98ac50 Admin UI improvements 2020-06-02 13:21:58 -04:00
Jeremy Stretch
7a7634de2d Accomodate custom legacy permission in schema migration 2020-06-02 10:50:58 -04:00
Jeremy Stretch
c6e85970d4 Remove activate_userkey permission 2020-06-02 09:51:56 -04:00
Jeremy Stretch
110bad7041 Update custom napalm_read, napalm_write permissions 2020-06-02 09:46:32 -04:00
Jeremy Stretch
85e932bfc1 Clean up permissions utility functions 2020-06-02 09:31:59 -04:00
Sander Steffann
886b59f400 Update tests for cables 2020-06-02 13:14:51 +02:00
Sander Steffann
8bd9b460cb Only complete path when there are not split_ends or position_stack 2020-06-02 13:14:38 +02:00
Sander Steffann
34ae57dfa3 Show warning when position stack is not empty after trace 2020-06-02 13:13:41 +02:00
Sander Steffann
81a322eaaf Add position_stack to returned values from trace() 2020-06-02 13:13:10 +02:00
Sander Steffann
2479b8a57f Validate against is_path_endpoint instead of specific classes, and only when positions > 1 2020-06-02 13:11:35 +02:00
Jeremy Stretch
2fe4656db4 Permit connection of a multi-position RearPort to a FrontPort 2020-06-02 12:03:02 +02:00
Jeremy Stretch
6fc7c6a7d0 Update path validation tests for single-position rear port scenarios 2020-06-02 12:03:02 +02:00
Jeremy Stretch
1d33d7d205 Call full_clean() when saving Cable instances 2020-06-02 12:03:02 +02:00
Sander Steffann
56898f7e37 Restore original test_connection_via_single_rear_port test and make separate test for one-on-one panels 2020-06-02 12:03:02 +02:00
Sander Steffann
3278cc8cc0 Recreate the model instance instead of re-saving a deleted model
Same end result, but easier to read
2020-06-02 12:03:02 +02:00
Sander Steffann
112dfb865b Integrate patch panel building into one list 2020-06-02 12:03:02 +02:00
Sander Steffann
a0f4d481dc make single front/rear port work when between panels 2020-06-02 12:03:02 +02:00
Jeremy Stretch
7b01ba9776 Fix external auth permissions test 2020-06-01 16:46:14 -04:00
Jeremy Stretch
32620dd556 Changelog for #554 2020-06-01 16:30:20 -04:00
Jeremy Stretch
76f74f479b Support permission attribute assignment via REMOTE_AUTH_DEFAULT_PERMISSIONS 2020-06-01 16:23:45 -04:00
Jeremy Stretch
e9831442cd Drafted documentation for object-based permissions 2020-06-01 15:28:36 -04:00
Jeremy Stretch
5d4cc5bf3d Fix ordering of group and user fields in ObjectPermission admin 2020-06-01 13:59:58 -04:00
Jeremy Stretch
26d7c21314 Move authentication backends 2020-06-01 13:47:34 -04:00
Jeremy Stretch
a4af270ea8 Restrict querysets for home, search views 2020-06-01 13:36:57 -04:00
Jeremy Stretch
b6c38ceb73 Call permission_is_exempt() to check for exempt permissions 2020-06-01 13:17:59 -04:00
Jeremy Stretch
3a9512f086 Refine queryset restriction logic 2020-06-01 13:09:34 -04:00
Jeremy Stretch
9679557747 Add permission_is_exempt() 2020-06-01 12:31:18 -04:00
Jeremy Stretch
3c334a0238 Update views to restrict all querysets 2020-06-01 11:43:49 -04:00
Jeremy Stretch
5574aaa8cb Tweak restrict() to accept only an action keyword 2020-06-01 10:45:49 -04:00
Jeremy Stretch
edf15532d2 Fixes #4702: Catch IntegrityError exception when adding a non-unique secret 2020-06-01 10:00:32 -04:00
Jeremy Stretch
d23b18beb5 Fixes #4704: Update example template code 2020-06-01 09:40:58 -04:00
Jeremy Stretch
e23b2c4c4f Implement RestrictedQuerySet as a manager 2020-05-29 16:27:36 -04:00
Jeremy Stretch
5b6a6fb63e Move restrict_queryset() function to RestrictedQuerySet 2020-05-29 15:09:08 -04:00
Jeremy Stretch
58989b85c8 Introduce restrict_queryset() 2020-05-29 14:12:24 -04:00
Jeremy Stretch
8786bb25c5 Fix instance evaluation 2020-05-29 13:57:38 -04:00
Jeremy Stretch
670139492d Fix permission action evaluation 2020-05-29 13:47:19 -04:00
Jeremy Stretch
5d3cf8074b Add migration for replicating legact permissions to ObjectPermissions 2020-05-29 13:42:38 -04:00
Jeremy Stretch
85c54703ec Improve the admin form for ObjectPermissions 2020-05-29 12:08:51 -04:00
Jeremy Stretch
02687453f2 Add ArrayField on ObjectPermission to store actions 2020-05-29 11:25:13 -04:00
Jeremy Stretch
90828cedae Introduce proxy models for User and Group to organize admin UI 2020-05-29 10:43:12 -04:00
Jeremy Stretch
f65b2278f0 Enable many-to-many model assignment for ObjectPermissions 2020-05-28 15:04:46 -04:00
Jeremy Stretch
bdfc0364d5 Fix up ObjectPermission content type assignment 2020-05-28 14:20:18 -04:00
Jeremy Stretch
65bd3fbddb Remove built-in permission assignment from admin UI 2020-05-28 14:03:08 -04:00
Jeremy Stretch
f8e29ea66a Remove ObjectPermissionManager 2020-05-28 13:47:52 -04:00
Jeremy Stretch
a8ed04c4d2 Expose assigned ObjectPermissions on User instance 2020-05-28 13:25:37 -04:00
Jeremy Stretch
73b7eb0c7f Skip queryset filtering for superusers 2020-05-28 13:25:12 -04:00
Jeremy Stretch
486f1a74ab Standardize base classes for view test cases 2020-05-28 12:05:54 -04:00
Jeremy Stretch
5d36d81ae1 Restore model-level permission tests 2020-05-28 11:08:35 -04:00
Jeremy Stretch
dc56e49410 Introduce resolve_permission() utility function 2020-05-28 10:35:59 -04:00
Jeremy Stretch
ca199cdefe Reduce ObjectPermission creation boilerplate 2020-05-28 10:27:25 -04:00
Jeremy Stretch
b2ba9d68c9 Fix default permissions assignment under RemoteUserBackend 2020-05-28 10:04:19 -04:00
Jeremy Stretch
00ce3588d3 Fix secrets API tests 2020-05-28 09:51:02 -04:00
Jeremy Stretch
814aff78b5 Update ObjectPermission evaluation to support null attrs 2020-05-28 09:39:27 -04:00
Jeremy Stretch
a261d10bfd Fix permissions assignment for SecretTest 2020-05-27 17:10:45 -04:00
Jeremy Stretch
ce46512c74 Fix permission assignment in tests 2020-05-27 16:53:30 -04:00
Jeremy Stretch
fb7446487e Fix up permissions evaluation 2020-05-27 11:31:07 -04:00
Jeremy Stretch
a6a88a0d2e Delete extraneous test case 2020-05-27 11:30:36 -04:00
Jeremy Stretch
4cee506710 Rebase RemoteUserBackend on BaseBackend 2020-05-27 10:52:59 -04:00
Jeremy Stretch
5dddf6846b Disable built-in model permissions 2020-05-27 10:48:56 -04:00
Jeremy Stretch
03da9348e5 Merge branch 'develop-2.9' into 554-object-permissions 2020-05-26 16:42:39 -04:00
Jeremy Stretch
28a14cf5ae Merge branch 'develop' into develop-2.9 2020-05-26 16:39:23 -04:00
Jeremy Stretch
56b7ab1734 Post-release version bump 2020-05-26 16:30:36 -04:00
Jeremy Stretch
68599351aa Merge pull request #4693 from netbox-community/develop
Release v2.8.5
2020-05-26 16:27:36 -04:00
Jeremy Stretch
c9a7527f33 Release v2.8.5 2020-05-26 16:17:01 -04:00
Jeremy Stretch
5f9b25453d Merge pull request #4692 from netbox-community/4525-objectvar-initial-data
Fixes #4525: Allow passing initial data to custom script MultiObjectVar
2020-05-26 15:54:25 -04:00
Jeremy Stretch
ccc31b2c7c Fixes #4525: Allow passing initial data to custom script MultiObjectVar 2020-05-26 15:34:29 -04:00
Jeremy Stretch
e54d441433 Remove "disable plugins" from bug report to prevent irrelevant search results 2020-05-26 10:06:46 -04:00
Jeremy Stretch
88cffca270 Closes #4650: Expose INTERNAL_IPS configuration parameter 2020-05-26 10:01:49 -04:00
Jeremy Stretch
92f49b4711 Closes #4672: Set default color for rack and devices roles 2020-05-26 09:36:27 -04:00
Jeremy Stretch
faf3885775 Merge pull request #4689 from kobayashi/4684-devicetype-import-comment
Fixes #4684: Fix ignored comment when importing DeviceType
2020-05-26 09:12:14 -04:00
Jeremy Stretch
f04340679e Merge branch 'develop' into 4684-devicetype-import-comment 2020-05-26 09:11:50 -04:00
Jeremy Stretch
7f5583c7ae Merge pull request #4690 from kobayashi/4676-docs-default-remote-auth
Closes #4676: Set `False` as default value of REMOTE_AUTH_AUTO_CREATE_USER
2020-05-26 09:07:26 -04:00
Jeremy Stretch
a5785552d9 Changelog for #4651, #4652 2020-05-26 09:05:18 -04:00
Jeremy Stretch
abcd26da43 Merge pull request #4682 from netbox-community/4651-csrf-in-plugintemplateextension
4651: Add `csrf_token` to PluginTemplateExtension context
2020-05-26 09:03:07 -04:00
Jeremy Stretch
4545c15173 Merge branch 'develop' into 4651-csrf-in-plugintemplateextension 2020-05-26 09:02:39 -04:00
Jeremy Stretch
b7cf85e8c8 Merge pull request #4681 from netbox-community/4652-perms-in-plugintemplateextension
4652: Add `perms` to PluginTemplateExtension context
2020-05-26 09:02:08 -04:00
kobayashi
9cde377133 Closes #4676: Set default value of REMOTE_AUTH_AUTO_CREATE_USER as False in docs 2020-05-26 01:26:26 -04:00
kobayashi
74c29b0bb7 Fixes #4684: Fix ignored comment when importing DeviceType 2020-05-26 01:17:10 -04:00
Jeremy Stretch
635fefcb5c Update exempted tests 2020-05-22 16:33:56 -04:00
Sander Steffann
ff3b348771 Add csrf_token to PluginTemplateExtension context 2020-05-22 22:28:04 +02:00
Sander Steffann
27700d316f Add perms to PluginTemplateExtension context 2020-05-22 22:24:39 +02:00
Jeremy Stretch
77a49fa40e Extend bulk import/edit/delete view tests to support object-level permissions 2020-05-22 16:04:43 -04:00
Jeremy Stretch
5273b9d0ee Rename ImportObjectsViewTestCase 2020-05-22 14:57:35 -04:00
Jeremy Stretch
ae7445ee8e Test object permissions for individual/list model views 2020-05-22 14:53:52 -04:00
Jeremy Stretch
3ef4287d57 Add additional_permissions to ObjectPermissionRequiredMixin 2020-05-22 12:41:20 -04:00
Jeremy Stretch
581dc4e070 Enforce object-level permissions for CableTraceView 2020-05-22 12:05:34 -04:00
Jeremy Stretch
1bce148be2 Enforce object-level permissions for ObjectConfigContextView 2020-05-22 11:55:56 -04:00
Jeremy Stretch
eb9147a575 Enforce object-level permissions for DeviceBay population views 2020-05-22 11:52:19 -04:00
Jeremy Stretch
781334b615 Enforce object-level permissions for RackElevationListView 2020-05-22 11:51:04 -04:00
Jeremy Stretch
5282ae2250 Enforce object-level permissions for cluster add/remove devices views 2020-05-22 11:30:46 -04:00
Jeremy Stretch
bae050e689 Replace legacy add/edit secret views with SecretEditView 2020-05-22 11:24:49 -04:00
Jeremy Stretch
ab60a5d73d Enforce object-level permissions for IPAddressAssignView, VLANGroupVLANsView 2020-05-22 09:51:57 -04:00
Jeremy Stretch
71d4b5c5df Enforce object-level permissions for circuit termination swap view 2020-05-22 09:45:29 -04:00
Jeremy Stretch
7e64d3e653 Transition BulkComponentCreateView to use ObjectPermissionRequiredMixin 2020-05-22 09:23:00 -04:00
Jeremy Stretch
e7fde2795f Fix BulkDisconnectView 2020-05-21 16:34:15 -04:00
Jeremy Stretch
f36c797e98 Transition ComponentCreateView to use ObjectPermissionRequiredMixin 2020-05-21 16:28:11 -04:00
Jeremy Stretch
49b780358e Transition BulkRenameView, BulkDisconnectView to use ObjectPermissionRequiredMixin 2020-05-21 16:11:46 -04:00
Jeremy Stretch
af8e1a6472 Strip 'param' indicators from docstrings 2020-05-21 16:00:18 -04:00
Jeremy Stretch
91362b0f82 Transition BulkCreateView to use ObjectPermissionRequiredMixin 2020-05-21 15:53:50 -04:00
Jeremy Stretch
e61fc1f709 Introduce ObjectView to enforce object-level permissions for individual object views 2020-05-21 15:53:00 -04:00
Jeremy Stretch
8fd860a413 Transition BulkDeleteView to use ObjectPermissionRequiredMixin 2020-05-21 15:14:29 -04:00
Jeremy Stretch
82c247f3cf Transition BulkEditView to use ObjectPermissionRequiredMixin 2020-05-21 15:07:20 -04:00
Jeremy Stretch
5e5038d780 Transition BulkImportView to use ObjectPermissionRequiredMixin 2020-05-21 14:43:27 -04:00
Jeremy Stretch
2b32430a10 Transition ObjectDeleteView to use ObjectPermissionRequiredMixin 2020-05-21 14:34:40 -04:00
Jeremy Stretch
5381c4e0ae Tweak evaluation of required permission for ObjectEditView 2020-05-21 14:26:56 -04:00
Jeremy Stretch
406b076b95 Transition ObjectEditView to use ObjectPermissionRequiredMixin 2020-05-21 13:59:19 -04:00
Jeremy Stretch
993ee8c900 Transition ObjectListView to use ObjectPermissionRequiredMixin 2020-05-21 13:22:09 -04:00
Jeremy Stretch
cc6e74dfd5 Move ObjectPermissionRequiredMixin to utilities.views 2020-05-21 13:12:15 -04:00
Jeremy Stretch
40c590f445 Add queryset to all BulkImportViews 2020-05-21 12:01:42 -04:00
Jeremy Stretch
5486cff441 Add object permission support, tests for bulk import/edit/delete views 2020-05-21 11:49:50 -04:00
Jeremy Stretch
a928d337d9 Add object permission support for create/update/delete API views 2020-05-21 10:51:40 -04:00
Jeremy Stretch
fa8407371b Swap position of REMOTE_AUTH_BACKEND 2020-05-20 16:56:40 -04:00
Jeremy Stretch
8c40148ca7 Add object permission tests for get and list API views 2020-05-20 16:47:33 -04:00
Jeremy Stretch
8eb4d0a36b Remove ViewExemptBackend; use same for model- and object-level permissions 2020-05-20 16:27:56 -04:00
Jeremy Stretch
64f60228ec Add web UI view tests for object-level permissions 2020-05-20 13:35:54 -04:00
Jeremy Stretch
1f5d2520c3 Formatting fix 2020-05-20 10:37:26 -04:00
Jeremy Stretch
d2e1428c75 Closes #4665: Add NEMA L14 and L21 power port/outlet types 2020-05-20 09:36:55 -04:00
Jeremy Stretch
f3b22acc9a Merge branch 'develop' into develop-2.9 2020-05-15 11:29:07 -04:00
Jeremy Stretch
cd236aa886 Closes #4645: Update minimum required version of PostgreSQL to 9.6 2020-05-15 10:11:36 -04:00
Jeremy Stretch
3c8e7e739d Fixes #4649: Fix interface assignment for bulk-imported IP addresses 2020-05-15 09:44:00 -04:00
Jeremy Stretch
a64351279d Fixes #4648: Fix bulk CSV import of child devices 2020-05-15 09:36:16 -04:00
Jeremy Stretch
ba91b3aa2e Fixes #4646: Correct UI link for reports with custom name 2020-05-15 09:13:51 -04:00
Jeremy Stretch
8394ff5537 Fixes #4644: Fix ordering of services table by parent 2020-05-15 09:02:56 -04:00
John Anderson
14744da8f6 fixes #4647 - caching invalidation related to assinging new IP addresses to interfaces 2020-05-15 02:45:48 -04:00
John Anderson
2c2d6c6d47 fixes #3304 - primary IP address caching invalidation 2020-05-15 02:31:45 -04:00
Jeremy Stretch
aeb32104a4 Enforce object-level permissions for API views 2020-05-14 17:44:46 -04:00
Jeremy Stretch
73895b1c88 Bypass permission caching for anonymous users 2020-05-14 17:44:15 -04:00
Jeremy Stretch
f54fb67efc Add object-level support to TokenPermissions 2020-05-14 13:49:52 -04:00
Jeremy Stretch
422eeddbef Post-release version bump 2020-05-13 17:32:27 -04:00
Jeremy Stretch
86755029ef Merge pull request #4642 from netbox-community/develop
Release v2.8.4
2020-05-13 17:31:12 -04:00
Jeremy Stretch
2900013118 Release v2.8.4 2020-05-13 17:24:25 -04:00
Jeremy Stretch
cfe8882f72 Merge pull request #4623 from tyler-8/metrics_docs
Notes on multiprocessing metrics and gunicorn vs uwsgi
2020-05-13 17:17:26 -04:00
Tyler Bigler
29abcbced8 Grammar improvements 2020-05-13 17:13:41 -04:00
Jeremy Stretch
e0ebb8e7d8 Fixes #4617: Restore IP prefix depth notation in list view 2020-05-13 17:08:48 -04:00
Tyler Bigler
96e05fb12d Notes on multiprocessing and gunicorn vs uwsgi 2020-05-13 17:07:32 -04:00
Jeremy Stretch
07fd92cd4c Fixes #4629: Replicate assigned interface when cloning IP addresses 2020-05-13 16:25:22 -04:00
Daniel Sheppard
38d8b0a1ec Merge pull request #4637 from netbox-community/4634-InventoryItemException
#4634 - Correct inventory item table accessor definition on manufacturer column
2020-05-13 10:46:29 -05:00
Daniel Sheppard
fd0be35d99 #4634 - Correct inventory item table accessor definition on manufacturer column 2020-05-13 09:33:48 -05:00
Jeremy Stretch
1461be2004 Fixes #4613: Fix tag assignment on config contexts (regression from #4527) 2020-05-13 10:28:48 -04:00
Jeremy Stretch
569d4ee201 Closes #4632: Extend email configuration parameters to support SSL/TLS 2020-05-13 09:20:24 -04:00
Jeremy Stretch
1d93d9a63a Fixes #4633: Bump django-rq to v2.3.2 to fix ImportError with rq 1.4.0 2020-05-13 08:53:29 -04:00
Jeremy Stretch
be5962fb3a ObjectPermissionRequiredMixin should exempt superusers 2020-05-12 17:00:03 -04:00
Jeremy Stretch
94d0ebbd7d Fix ObjectPermission attribute consolidation 2020-05-12 16:51:46 -04:00
Jeremy Stretch
a275a30dca Reimplement the ViewExemptModelBackend to explicitly cache all exempted view permissions on the User instance 2020-05-12 16:07:07 -04:00
Jeremy Stretch
c90f680284 Cache object-level permissions on the User instance for evaluation 2020-05-12 15:42:44 -04:00
Jeremy Stretch
daa2c6ff21 Always pass obj=None to ModelBackend 2020-05-11 17:19:11 -04:00
Daniel Sheppard
41361ce2a2 Fixes: #4618 - Add group creation and correct user creation group syntax 2020-05-11 16:10:23 -05:00
Jeremy Stretch
63f842c7db Implement ObjectPermissionManager 2020-05-11 16:02:42 -04:00
Jeremy Stretch
06aca2e1d5 Merge branch 'develop-2.9' into 554-object-permissions 2020-05-11 12:48:36 -04:00
Jeremy Stretch
3abb52a085 #4624: Refactor ObjectDeleteView to use a queryset 2020-05-11 12:47:01 -04:00
Jeremy Stretch
87fa6bc252 #4624: Refactor ObjectEditView to use a queryset 2020-05-11 12:37:22 -04:00
Jeremy Stretch
4b5d64939d Introduced ObjectPermissionRequiredMixin 2020-05-11 11:51:11 -04:00
Jeremy Stretch
91e46ceb77 Merge pull request #4616 from kobayashi/4607-token-context-help
Fix: 4607 Missing token context help
2020-05-11 09:21:01 -04:00
weisdd
cea01e037a Fix: incorrect DeviceConnectionsReport in reports.md (#4606)
Since the CONNECTION_STATUS_PLANNED constant is gone from dcim.constants, the DeviceConnectionsReport script is no longer correct.
The suggested fix is based on the fact that console_port.connection_status and power_port.connection_status currently have the following set of values:
* None = A cable is not connected to a Console Server Port or it's connected to a Rear/Front Port;
* False = A cable is connected to a Console Server Port and marked as Planned;
* True = A cable is connected to a Console Server Port and marked as Installed.
2020-05-11 09:14:25 -04:00
kobayashi
465d3ae1af Fix: 4607 Missing token context help 2020-05-09 23:08:14 -04:00
Jeremy Stretch
6624fc6076 Initial work on #554 (WIP) 2020-05-08 17:30:25 -04:00
Jeremy Stretch
d5b9722533 Merge pull request #4608 from netbox-community/3226-customfield-manager
Closes #3226: Implement a custom manager for CustomField
2020-05-08 12:55:13 -04:00
Jeremy Stretch
745c9a9c2b Add test for CustomFieldManager.get_for_model() 2020-05-08 12:18:08 -04:00
Jeremy Stretch
e3be5f8468 Remove local caching attempt 2020-05-08 10:05:05 -04:00
Jeremy Stretch
2c19390d7c Introduce CustomFieldManager (WIP) 2020-05-07 17:20:32 -04:00
Jeremy Stretch
da8380c62c Refactor extras.models 2020-05-07 16:59:27 -04:00
Jeremy Stretch
e14e217fcd Fixes #4604: Multi-position rear ports may only be connected to other rear ports 2020-05-07 16:22:04 -04:00
Jeremy Stretch
b7a96a33ef Fixes #4598: Display error message when invalid cable length is specified 2020-05-07 10:34:33 -04:00
Jeremy Stretch
7c6faff405 Post-release version bump 2020-05-06 23:50:41 -04:00
Jeremy Stretch
c507ab30e9 Merge pull request #4594 from netbox-community/develop
Release v2.8.3
2020-05-06 23:49:27 -04:00
Jeremy Stretch
af96ffb3e9 Release v2.8.3 2020-05-06 23:46:52 -04:00
Jeremy Stretch
5c1adf9e37 Fixes #4593: Fix AttributeError exception when viewing object lists as a non-authenticated user 2020-05-06 23:44:06 -04:00
Jeremy Stretch
3711283de5 Extend ViewTestCases to get and list objects as a non-authenticated user 2020-05-06 23:43:46 -04:00
Jeremy Stretch
43ad9aa2b1 Fix version 2020-05-06 15:20:28 -04:00
Jeremy Stretch
5dfcca96c8 Post-release version bump 2020-05-06 15:17:06 -04:00
Jeremy Stretch
7d1614b933 Merge pull request #4589 from netbox-community/develop
Release v2.8.2
2020-05-06 15:14:45 -04:00
Jeremy Stretch
c9d0293bd0 Release v2.8.2 2020-05-06 15:04:01 -04:00
Jeremy Stretch
2e25f6b217 Update release notes index 2020-05-06 15:03:35 -04:00
Jeremy Stretch
cd0eb0d8ce Fixes #4588: Restore ability to add/remove tags on services, virtual chassis in bulk 2020-05-06 15:00:01 -04:00
Jeremy Stretch
a4dbd2dae5 Closes #3064: Include tags in object lists as a toggleable table column 2020-05-06 14:42:51 -04:00
Jeremy Stretch
fbc8b46d13 Cosmetic tweaks to the user area 2020-05-06 13:25:17 -04:00
Jeremy Stretch
881b0a6add Changelog for #4584 2020-05-06 12:49:04 -04:00
Jeremy Stretch
5378f01462 Merge pull request #4586 from netbox-community/4584-id-filters
Fixes #4584
2020-05-06 12:47:38 -04:00
Jeremy Stretch
3baf983e86 Updated REST API documentation 2020-05-06 12:46:24 -04:00
Jeremy Stretch
1ccb3162ff Ensure all model FilterSets support the 'id' field 2020-05-06 12:33:52 -04:00
Jeremy Stretch
4d5d298ee1 Update super() call for get_filters() 2020-05-06 11:47:05 -04:00
Jeremy Stretch
b1aa7fa7f8 Changelog for #3147 2020-05-06 10:16:23 -04:00
Jeremy Stretch
9312dea2b2 Merge pull request #4564 from netbox-community/3147-csv-import-fields
Closes #3147: Allow dynamic access to related objects during CSV import
2020-05-06 10:15:00 -04:00
Jeremy Stretch
270d61ce1b Remove boilerplate error messages from CSV model choice fields 2020-05-06 09:58:12 -04:00
Jeremy Stretch
70d0a5f665 Introduce CSVModelChoiceField to provide better validation for CSV model choices 2020-05-06 09:43:10 -04:00
Jeremy Stretch
607744813a Extend tests for CSV import 2020-05-05 16:49:16 -04:00
Jeremy Stretch
839e999a71 Introduce CSVModelForm for dynamic CSV imports 2020-05-05 16:15:09 -04:00
Jeremy Stretch
0239be9be5 Fixes #4578: Prevent setting 0U height on device type with racked instances 2020-05-05 13:41:23 -04:00
Jeremy Stretch
6e2c68ef42 Fixes #4652: Update repo RPM link for PosgtreSQL on CentOS 2020-05-05 13:05:54 -04:00
Jeremy Stretch
d85d963842 Remove example choices from CSV import form 2020-05-04 16:30:21 -04:00
Jeremy Stretch
3d8001ae1c Changelog for #492 2020-05-04 15:14:52 -04:00
Jeremy Stretch
80f08e6830 Merge pull request #4555 from netbox-community/492-table-column-ordering
Closes #492: Table column ordering
2020-05-04 15:12:29 -04:00
Jeremy Stretch
7c4d634ae6 Fix group column on RackTable 2020-05-04 14:56:29 -04:00
Jeremy Stretch
51ccbdf6c4 Remove descriptions from interface connections list 2020-05-04 14:10:40 -04:00
Jeremy Stretch
b0478a7e5b Enable dynamic queryset field prefetching based on table columns 2020-05-04 14:08:11 -04:00
koratfood
e6598fac20 Replace supervisord with systemd in LDAP troubleshooting (#4569)
Update the LDAP troubleshooting steps so that they are consistent with the rest of the documentaiton, which nowadays expects us to be running netbox via systemd instead of supervisord. Fixes #4504.
2020-05-04 09:56:03 -04:00
Jeremy Stretch
f9f7c19d81 Clean up CSV import table 2020-05-01 16:01:55 -04:00
Jeremy Stretch
4486957b9a Clean up comments 2020-05-01 16:01:30 -04:00
Jeremy Stretch
718ff4a743 Update help_texts for models, import forms 2020-05-01 15:40:34 -04:00
Jeremy Stretch
fa630c048c Overhaul CSV import template 2020-05-01 14:26:04 -04:00
Jeremy Stretch
4b8ef6b09a Removed FlexibleModelChoiceField 2020-05-01 13:40:52 -04:00
Jeremy Stretch
61ae4be16a Add tests for CSVDataField 2020-05-01 13:32:28 -04:00
Jeremy Stretch
34a17d4571 Enable the specifcation of related objects by arbitrary attribute during CSV import 2020-05-01 12:18:04 -04:00
Jeremy Stretch
6ab046ba8f Fix tests for #4502 2020-04-30 15:43:33 -04:00
Jeremy Stretch
05cb47e650 Closes #4502: Enable configuration of proxies for outbound HTTP requests 2020-04-30 14:59:13 -04:00
Jeremy Stretch
e75c4c012d Closes #4554: Add HDOT Cx power outlet type 2020-04-30 13:39:12 -04:00
Jeremy Stretch
bcb7899b04 Fixes #4548: Fix tracing cables through a single RearPort 2020-04-29 16:32:30 -04:00
Jeremy Stretch
81ffa0811e Closes #4556: Update form for adding devices to clusters 2020-04-29 15:50:16 -04:00
Jeremy Stretch
f8060ce112 Ignore clearing of invalid user config keys 2020-04-29 15:05:29 -04:00
Jeremy Stretch
3b6d9dc552 Add button to select all columns 2020-04-29 14:56:22 -04:00
Jeremy Stretch
c096232cb1 #492: Extend virtualization tables 2020-04-29 11:42:44 -04:00
Jeremy Stretch
33c44c2dd9 #492: Extend tenancy tables 2020-04-29 11:34:51 -04:00
Jeremy Stretch
cd0ee4cd69 #492: Extend secrets tables 2020-04-29 11:32:53 -04:00
Jeremy Stretch
6e9e6af2f0 #492: Extend IPAM tables 2020-04-29 11:29:30 -04:00
Jeremy Stretch
7ad27a2b65 #492: Extend extras tables 2020-04-29 11:03:49 -04:00
Jeremy Stretch
e3cfc9ad80 #492: Extend DCIM tables 2020-04-29 10:58:08 -04:00
Jeremy Stretch
88687608e7 Always include the 'actions' column, if present 2020-04-29 10:17:52 -04:00
Jeremy Stretch
ed21ff52ee Merge branch 'develop' into 492-table-column-ordering 2020-04-29 10:08:56 -04:00
Jeremy Stretch
f98a236a5b Changelog for #4545 2020-04-29 09:46:24 -04:00
Jeremy Stretch
5f8970e6bf Merge pull request #4552 from netbox-community/4545-remove-squashed-migrations
Fixes #4545: Remove squashed migrations
2020-04-29 09:45:09 -04:00
Jeremy Stretch
f535ef4924 Update development docs to remove squashing instructions 2020-04-29 09:44:41 -04:00
Jeremy Stretch
6e832de4a9 Remove squashed migrations 2020-04-29 09:31:52 -04:00
Jeremy Stretch
3226e7f6df Merge pull request #4550 from kobayashi/4549-webhook-utf8
Fix: #4549 encode webhook body in utf-8
2020-04-29 08:57:17 -04:00
kobayashi
39ea14202e Fix 4549 webhook body encode in utf-8 2020-04-29 01:48:53 -04:00
Jeremy Stretch
55b40d92d4 Extend DCIM tables (WIP) 2020-04-28 17:06:16 -04:00
Jeremy Stretch
8ec2e3cc7b Introduce default_columns Meta parameter to reduce boilerplate 2020-04-28 16:33:06 -04:00
Jeremy Stretch
725e3cdbf3 Extend circuits tables to include all relevant model fields 2020-04-28 16:20:11 -04:00
Jeremy Stretch
96eafe6dc1 Document table columns preference 2020-04-28 14:32:32 -04:00
Jeremy Stretch
f51e7519dc Enable reordering table columns 2020-04-28 14:27:27 -04:00
Jeremy Stretch
3442ec77a7 Enable setting/clearing of table column prefs 2020-04-28 13:21:58 -04:00
Jeremy Stretch
e8d493578b Create form for setting table preferences 2020-04-28 12:14:51 -04:00
Jeremy Stretch
0ee1112d9d Initial support for table column reordering 2020-04-27 16:56:25 -04:00
Jeremy Stretch
4971054c34 Standardize import statement as django_rq is no longer optional 2020-04-24 15:43:58 -04:00
Jeremy Stretch
d8cb58c746 #4416: Add bulk edit & delete views for VirtualChassis 2020-04-24 15:20:52 -04:00
Jeremy Stretch
eb14c08cab #4416: Enable custom links for virtual chassis 2020-04-24 15:01:23 -04:00
Jeremy Stretch
fed9408b90 #4416: Establish a dedicated view for VirtualChassis objects 2020-04-24 14:59:38 -04:00
Jeremy Stretch
ffba1c1d43 Add extras.configcontext.format to preferences doc 2020-04-24 13:11:01 -04:00
Jeremy Stretch
bdbf21b3e2 Closes #4421: Retain user's preference for config context format 2020-04-24 12:01:41 -04:00
Jeremy Stretch
f019c8d2ce Fixes #4527: Fix assignment of certain tags to config contexts 2020-04-24 11:31:01 -04:00
Jeremy Stretch
ad099d79f2 Changelog for #3294, #4531 2020-04-24 11:03:14 -04:00
Jeremy Stretch
7feaa896e5 Merge pull request #4532 from netbox-community/3294-user-prefs
Closes #3294: User preference tracking
2020-04-24 11:00:48 -04:00
Jeremy Stretch
178052b2f6 Prepare for merge into 2.8 2020-04-24 10:38:09 -04:00
Jeremy Stretch
dc9617c7aa Fix returning default for unknown userconfig key 2020-04-24 10:37:02 -04:00
Jeremy Stretch
587339bea0 Add page for user to view/clear preferences 2020-04-24 10:29:06 -04:00
Jeremy Stretch
7c8c85e435 Add all() method to UserConfig 2020-04-24 09:50:26 -04:00
Jeremy Stretch
d8494e44e7 Document available user preferences 2020-04-24 09:46:02 -04:00
Jeremy Stretch
30c3d6ee40 Remember user's per_page preference (POC for UserConfig) 2020-04-23 16:48:13 -04:00
Jeremy Stretch
f3012ed839 Automatically create UserConfig for users 2020-04-23 16:46:36 -04:00
Jeremy Stretch
afa0565a44 Show user config in admin UI 2020-04-23 15:53:43 -04:00
Jeremy Stretch
750deac2cf Initial implementation of UserConfig model 2020-04-23 15:34:32 -04:00
Jeremy Stretch
c0b1ae4923 Initialize v2.9 development 2020-04-23 11:02:35 -04:00
Jeremy Stretch
14b9a12a2f Post-release version bump 2020-04-23 10:27:33 -04:00
Jeremy Stretch
a77d1e502c Merge pull request #4528 from netbox-community/develop
Release v2.8.1
2020-04-23 10:24:08 -04:00
Jeremy Stretch
e5e5725a24 Fix typo in validation error message 2020-04-23 10:12:56 -04:00
Jeremy Stretch
92343469e7 Correct release date 2020-04-23 10:11:11 -04:00
Jeremy Stretch
3ece4f137f Release v2.8.1 2020-04-23 10:09:13 -04:00
Sander Steffann
70b8b9ecdb Fix minor typo 2020-04-23 14:10:58 +02:00
John Anderson
11ee6f417f fix #4459 - Fix caching issue resulting in erroneous nested data for regions, rack groups, and tenant groups 2020-04-22 16:45:26 -04:00
Jeremy Stretch
5ea92dda4b Changelog for #4139 2020-04-22 14:15:41 -04:00
Jeremy Stretch
ca08125d55 Merge pull request #4524 from netbox-community/4139-component-bulk-create
Fixes #4139: Extend forms for bulk device component creation
2020-04-22 14:11:07 -04:00
Jeremy Stretch
7b50f2b0eb Fix tag assignment when bulk creating components 2020-04-22 14:05:27 -04:00
Jeremy Stretch
6a61f0911d Update InterfaceBulkCreateForm for VMs 2020-04-22 12:09:40 -04:00
Jeremy Stretch
e975f1b216 Update device component bulk edit forms to use form_from_model() 2020-04-22 11:47:26 -04:00
Jeremy Stretch
62cdf0d928 Add bulk creation view for rear ports 2020-04-22 11:26:04 -04:00
Jeremy Stretch
97b8e73716 Introduce model-specific bulk create forms for device components 2020-04-22 11:15:39 -04:00
Jeremy Stretch
131d2c97ca Fixes #4336: Ensure interfaces without a subinterface ID are ordered before subinterface zero 2020-04-21 16:13:34 -04:00
Jeremy Stretch
ada55dfdfb Fixes #4510: Enforce address family for device primary IPv4/v6 addresses 2020-04-21 14:50:15 -04:00
Jeremy Stretch
cc721efe97 Fixes #3356: Correct Swagger schema specification for the available prefixes/IPs API endpoints 2020-04-21 14:12:49 -04:00
Jeremy Stretch
b362c6a967 Fixes #2994: Prevent modifying termination points of existing cable to ensure end-to-end path integrity 2020-04-21 13:41:38 -04:00
Jeremy Stretch
5eef6bc527 Changelog for #4388 2020-04-21 12:51:43 -04:00
Jeremy Stretch
8a3a5a8cb1 Merge pull request #4521 from netbox-community/4388-cable-tracing
Fixes #4388: Improve connection endpoint detection
2020-04-21 12:49:48 -04:00
Jeremy Stretch
ca762588ca Pretty-up cable trace template 2020-04-21 11:59:14 -04:00
Jeremy Stretch
26c335fc68 Extend tests for #4388 2020-04-21 10:53:21 -04:00
Jeremy Stretch
f80eb16060 Closes #4505: Fix typo in application stack diagram 2020-04-20 11:06:52 -04:00
Jeremy Stretch
8ea611df44 Changelog for #4464 2020-04-20 11:04:15 -04:00
Jeremy Stretch
3db83dd3a2 Merge pull request #4501 from toerb/develop
add rack width of 21 inches for ETSI racks
2020-04-20 11:03:09 -04:00
Jeremy Stretch
29707cd496 Adapt tracing view to account for split ends (WIP) 2020-04-15 17:09:04 -04:00
Jeremy Stretch
5205c4963f Refactor cable tracing logic 2020-04-15 15:46:41 -04:00
Jeremy Stretch
5aadfff1de Merge pull request #4492 from kobayashi/4361-type-connection_status
Fix #4361 Set correct type of connection_status in swagger schema
2020-04-15 09:45:39 -04:00
Jeremy Stretch
cb84e3bb2e Closes #4491: Update docs to indicate support for nesting objects 2020-04-15 09:41:57 -04:00
Jeremy Stretch
e0f819691f Fixes #4496: Fix exception when validating certain models via REST API 2020-04-15 09:37:30 -04:00
kobayashi
1ce0191a74 Fixes #4361: Set correct type of connection_state 2020-04-15 01:02:11 -04:00
Jeremy Stretch
788909de94 Fixes #4489: Fix display of parent/child role on device type view 2020-04-14 12:13:05 -04:00
Jeremy Stretch
2dbc04c6fb Fix typo 2020-04-14 10:03:02 -04:00
Jeremy Stretch
fc1feec8bf Fix format string 2020-04-14 09:43:12 -04:00
Jeremy Stretch
819f842cf1 Call out requirement for Python 3.6 or later 2020-04-13 14:38:26 -04:00
Jeremy Stretch
0ffc74c669 Fix link to logging configuration docs 2020-04-13 14:37:11 -04:00
Jeremy Stretch
9ed0494b45 Clarify requirement for Python 3.6 or later 2020-04-13 14:22:17 -04:00
Jeremy Stretch
d37a74846a Remove format strings to ensure compilation under old Python releases 2020-04-13 14:07:44 -04:00
Jeremy Stretch
e97205922c Fixes #4481: Remove extraneous material from example configuration file 2020-04-13 13:49:34 -04:00
Jeremy Stretch
8b57a888e7 Post-release version bump 2020-04-13 11:31:16 -04:00
Jeremy Stretch
d79ed76d80 Merge pull request #4479 from netbox-community/develop
Release v2.8.0
2020-04-13 11:29:33 -04:00
Jeremy Stretch
488129d7ad Release v2.8.0 2020-04-13 11:21:33 -04:00
Jeremy Stretch
dc9f991e5f Update dependencies for v2.8 release 2020-04-13 11:09:39 -04:00
Jeremy Stretch
c691ec843d Fixes #4476: Correct typo in slugs for Infiniband interface types 2020-04-13 10:51:25 -04:00
Jeremy Stretch
67f2cdc921 Fixes #4474: Fix population of device types when bulk editing devices 2020-04-13 10:34:44 -04:00
Jeremy Stretch
ee51dae73f Merge pull request #4473 from netbox-community/develop-2.8
Merge v2.8 work into develop
2020-04-13 10:17:27 -04:00
Jeremy Stretch
0316063ba9 Update v2.8 release notes 2020-04-10 11:56:52 -04:00
Jeremy Stretch
8939d4de92 Use packaging.version.parse directly 2020-04-10 11:18:01 -04:00
Jeremy Stretch
5de085d83d Tweak PluginMenuButton icon_class to require additional "fa" class 2020-04-10 10:36:03 -04:00
Jeremy Stretch
19a10cee82 Rename base template 2020-04-10 10:21:02 -04:00
Jeremy Stretch
db70f04447 Minor tweaks to plugins development doc 2020-04-10 10:20:36 -04:00
Jeremy Stretch
d5dbd5ccf1 Update bug report template to denote disabling plugins 2020-04-09 15:55:17 -04:00
Jeremy Stretch
b5aff1575d Add plugins settings to example config 2020-04-09 15:45:38 -04:00
Jeremy Stretch
884d648cc2 Set X_FRAME_OPTIONS to SAMEORIGIN (changed in Django 3.0) 2020-04-09 15:31:18 -04:00
Jeremy Stretch
ed05198c45 Add static file collection to plugins installation doc 2020-04-09 14:52:18 -04:00
Jeremy Stretch
c593eca936 Minor improvements to installation docs 2020-04-09 14:43:22 -04:00
Jeremy Stretch
cfc09bfcc8 Merge pull request #4471 from qaxi/patch-2
#4470 correct Ubuntu package name
2020-04-09 10:06:35 -04:00
Petr Klíma
2daf1e2004 #4470 wrong Ubuntu package name 2020-04-09 16:02:57 +02:00
Jeremy Stretch
5266bf93a3 Merge branch 'develop' into develop-2.8 2020-04-08 13:50:15 -04:00
Jeremy Stretch
e04a5dc81f Post-release version bump 2020-04-08 13:34:36 -04:00
Jeremy Stretch
ccf8059452 Merge pull request #4467 from netbox-community/develop
Release v2.7.12
2020-04-08 13:31:49 -04:00
Jeremy Stretch
b86c61dcdb Release v2.7.12 2020-04-08 13:26:33 -04:00
toerb
f7e7699d93 add rack width of 21 inches for ETSI racks 2020-04-08 09:30:14 +02:00
Jeremy Stretch
eb2e960af4 Merge pull request #4462 from netbox-community/4460-webhook-listener
Closes #4460: Add a webhook listener for troubleshooting
2020-04-07 13:56:35 -04:00
Jeremy Stretch
2357928e72 Add documentation for webhook_receiver 2020-04-07 13:51:20 -04:00
Jeremy Stretch
ae58af4bb7 Added webhook_receiver management command 2020-04-07 13:37:48 -04:00
Jeremy Stretch
902b1b2c32 Fixes #4458: Remove custom admin site to avoid conflict with django-rq 2.3.0 2020-04-07 10:17:34 -04:00
Daniel Sheppard
225ba4cc35 Fixes: #4395 - Fix typing on interface serializer 2020-04-07 08:36:13 -05:00
Daniel Sheppard
fe088dba7a Fixes: #4396 - Fix typing on interface serializer 2020-04-07 08:33:00 -05:00
Jeremy Stretch
46b896b2cf Merge branch 'develop' into develop-2.8 2020-04-06 13:51:05 -04:00
Jeremy Stretch
52ef488208 Fix nav menu w/plugins enabled 2020-04-06 13:27:41 -04:00
Jeremy Stretch
34c33549b8 Add tests for plugins caching config 2020-04-06 12:00:28 -04:00
Jeremy Stretch
76230cad53 Remove extraneous plugin config 2020-04-06 11:51:03 -04:00
Jeremy Stretch
9ffc404027 Add tests for plugin configuration, min/max version 2020-04-06 11:44:38 -04:00
Jeremy Stretch
58442b1af6 Correct author name parameter 2020-04-06 11:43:52 -04:00
Jeremy Stretch
5f6b63e978 Remove extraneous package from Apache installation instructions 2020-04-03 16:03:50 -04:00
Jeremy Stretch
ad08935c57 Move nginx/Apache configs to discrete files 2020-04-03 15:46:48 -04:00
Jeremy Stretch
af405a8ab2 Closes #4391: Extend installation docs to include enabling SSL 2020-04-03 15:35:45 -04:00
Jeremy Stretch
1ffbeba181 #4439: Fix null integer field display 2020-04-03 13:47:58 -04:00
Jeremy Stretch
630788731e Closes #4448: Allow connecting cables between two circuit terminations 2020-04-03 13:44:41 -04:00
Jeremy Stretch
721368ea8d Closes #4147: Use absolute URLs in rack elevation SVG renderings 2020-04-03 13:16:35 -04:00
Jeremy Stretch
1f3a21ba20 Fixes #4449: Fix reservation edit/delete button URLs on rack view 2020-04-03 12:13:36 -04:00
Jeremy Stretch
6cfd68d9fb Merge pull request #4446 from netbox-community/plugin-testing
Plugin testing
2020-04-03 09:24:44 -04:00
Jeremy Stretch
6413d47fb2 Skip PluginTest if dummy_plugin not in PLUGINS list 2020-04-02 16:13:15 -04:00
Jeremy Stretch
9e0aa0d11e Naming tweaks 2020-04-02 15:43:23 -04:00
Jeremy Stretch
ee4c5ef64a Fix CI tests 2020-04-02 15:11:19 -04:00
Jeremy Stretch
4ab3854d66 Fixes #4438: Fix exception when disconnecting a cable from a power feed 2020-04-02 10:19:50 -04:00
Jeremy Stretch
354f87c888 Fixes #4439: Tweak display of unset custom integer fields 2020-04-02 10:06:01 -04:00
Jeremy Stretch
92fc28aa09 Remove errant references to external plugin 2020-04-01 17:18:15 -04:00
Jeremy Stretch
30e330c887 Initial implementation of tests for plugins framework 2020-04-01 17:08:47 -04:00
Jeremy Stretch
093181c186 Correct path to test configuration file 2020-04-01 13:29:54 -04:00
Jeremy Stretch
f316958943 Establish a separate configuration file for testing 2020-04-01 13:23:29 -04:00
Jeremy Stretch
0432b1a6f9 Move default caching_config to PluginConfig class 2020-04-01 12:10:19 -04:00
Jeremy Stretch
b2f4ef06c7 Merge pull request #4433 from netbox-community/plugins-list
Change PLUGINS_ENABLED to a list of specific plugins (PLUGINS)
2020-04-01 11:44:41 -04:00
Jeremy Stretch
f469c794ce Change PLUGINS_ENABLED to a list of specific plugins (PLUGINS) 2020-04-01 10:10:29 -04:00
Jeremy Stretch
221e014a25 Remove survey notification from README 2020-03-31 11:36:53 -04:00
Jeremy Stretch
fb2868f8bb Fixes #4418: Fail cleanly when trying to import multiple device types simultaneously 2020-03-30 16:44:04 -04:00
Jeremy Stretch
aa38dcf490 Closes #3676: Reference VRF by name rather than RD during IP/prefix import 2020-03-30 15:54:35 -04:00
Jeremy Stretch
06116cdde7 Add developer docs for application registry 2020-03-30 15:31:13 -04:00
Jeremy Stretch
5f1329c71c Changelog for #3351 2020-03-30 13:09:10 -04:00
Jeremy Stretch
613e37837b Update Python dependencies for v2.8 release 2020-03-30 12:39:45 -04:00
Jeremy Stretch
a914a7c438 Update serializer context assignment for DRF 3.11 2020-03-30 12:39:15 -04:00
Jeremy Stretch
8c7b3a1f9b Merge pull request #4385 from netbox-community/3351-plugins
Implements 3351 plugins
2020-03-27 14:19:11 -04:00
Jeremy Stretch
9c16d5a747 Misc cleanup of PluginConfig processing logic 2020-03-27 13:57:11 -04:00
Jeremy Stretch
0d9d0b0446 Convert installed_plugins_admin_view to a class-based view 2020-03-27 13:35:25 -04:00
Jeremy Stretch
cb344a3792 Clean up plugin URL registration 2020-03-27 13:26:53 -04:00
Jeremy Stretch
dd9fc4173d Expose regsitry in templates using existing context processor for settings 2020-03-27 13:18:51 -04:00
Jeremy Stretch
fd6739f0cc Improved menu item/button validation 2020-03-27 13:12:58 -04:00
Jeremy Stretch
fa83750e72 Merge branch 'develop-2.8' into 3351-plugins 2020-03-27 13:05:34 -04:00
Jeremy Stretch
a72d5c899e Merge branch 'develop' into develop-2.8 2020-03-27 12:53:55 -04:00
Jeremy Stretch
5cf872d000 Post-release version bump 2020-03-27 12:49:48 -04:00
Jeremy Stretch
3d3d1bc623 Merge pull request #4417 from netbox-community/develop
Release v2.7.11
2020-03-27 12:47:28 -04:00
Jeremy Stretch
59e6386361 Release v2.7.11 2020-03-27 12:40:21 -04:00
Jeremy Stretch
9c1eda0d9a Closes #4404: Add cable trace button for circuit terminations 2020-03-27 12:35:36 -04:00
Daniel Sheppard
785119f5bb Fixes: #4415 - Add site on validate_unique() for device model 2020-03-27 08:37:48 -05:00
Jeremy Stretch
8a3ebf64bc Rename obj to object; clean up docstrings 2020-03-26 21:46:56 -04:00
Jeremy Stretch
af302d8368 Avoid instantiating PluginTemplateExtension subclasses when the specified method has not been defined 2020-03-26 21:25:10 -04:00
Jeremy Stretch
f03cc96050 Restrict context data available to PluginTemplateExtensions 2020-03-26 16:50:55 -04:00
Jeremy Stretch
e7f7b14214 Extend menu items and buttons to accept a list of required permissions 2020-03-26 16:04:12 -04:00
Jeremy Stretch
84d2db0d35 Tweak variable naming 2020-03-26 13:37:52 -04:00
Jeremy Stretch
74e56a890c Remove unused PluginSignal class 2020-03-26 12:26:58 -04:00
Jeremy Stretch
b94ef39a51 Standardize naming of menu items 2020-03-26 12:25:36 -04:00
Jeremy Stretch
877417d68f Rename PluginTemplateContent to PluginTemplateExtension 2020-03-26 12:18:58 -04:00
Jeremy Stretch
62f14f0473 Convert PluginConfig attrs list to a table 2020-03-26 12:03:10 -04:00
Jeremy Stretch
66a99e13bb Fix up styling of tables in documentation 2020-03-26 11:54:58 -04:00
Jeremy Stretch
d316d8ac61 Rename PluginNavMenuButton to PluginMenuButton 2020-03-26 11:30:42 -04:00
Jeremy Stretch
40574b65af Rename PluginNavMenuLink to PluginMenuItem 2020-03-26 11:29:05 -04:00
Jeremy Stretch
81c9177c09 Add a default button color 2020-03-26 11:26:11 -04:00
Jeremy Stretch
68ef5dd2a4 Revised plugins documentation 2020-03-26 11:09:20 -04:00
Jeremy Stretch
59815ea53d Merge pull request #4407 from netbox-community/4402-plugins-template-content
Closes #4402: Rework template content registration for plugins
2020-03-26 09:05:07 -04:00
Jeremy Stretch
5540079e81 Add documentation for PluginTemplateContent 2020-03-25 16:32:16 -04:00
Jeremy Stretch
68a0e76ca6 Rework template content registration to work like menu items 2020-03-25 16:06:00 -04:00
Jeremy Stretch
1d9fbeed81 Merge pull request #4403 from netbox-community/4401-plugins-navlinks
Closes #4401: Simplify registration process for pluin menu items
2020-03-25 14:55:21 -04:00
Jeremy Stretch
d0edd9d5c1 Update documentation for #4401 2020-03-25 14:33:32 -04:00
Jeremy Stretch
9ea30c057f Replace get_menu_items() with static attribute 2020-03-25 13:51:37 -04:00
Jeremy Stretch
c1f2ad90ef Simplify the mechanism for plugins to register navigation menu items 2020-03-25 11:32:50 -04:00
Jeremy Stretch
2a47bb8b54 Rename url_slug to base_url 2020-03-24 16:20:47 -04:00
Jeremy Stretch
b6686a5fcb Merge pull request #4397 from netbox-community/plugins-docs
Add documentation for the plugins framework
2020-03-24 15:55:14 -04:00
Jeremy Stretch
16b8a45ed6 Get menu header via apps.get_config 2020-03-24 15:24:14 -04:00
Jeremy Stretch
579c365808 Extend plugins docs to include nav menu links 2020-03-24 15:22:57 -04:00
Jeremy Stretch
745ac294a5 Tweak plugin template docs 2020-03-24 14:21:08 -04:00
Jeremy Stretch
eedda6e648 Incorporate John's feedback 2020-03-24 09:42:24 -04:00
Jeremy Stretch
5ec1b31804 Add disclaimer/warning to PLUGINS_ENABLED 2020-03-24 09:41:46 -04:00
Jeremy Stretch
8e661c34e9 Merge branch '3351-plugins' into plugins-docs 2020-03-23 14:03:35 -04:00
Jeremy Stretch
ce0b1733fe Derive API URLs app_name for plugins from url_slug 2020-03-23 14:03:04 -04:00
Jeremy Stretch
0a8b09a11a Add docs for plugin API endpoints 2020-03-23 13:58:45 -04:00
Jeremy Stretch
0b77702626 Add docs for plugin models, views 2020-03-23 13:28:56 -04:00
Jeremy Stretch
a4382f0b27 Merge branch '3351-plugins' into plugins-docs 2020-03-23 12:02:18 -04:00
Jeremy Stretch
2732e7c3d9 Specify path to PluginConfig in INSTALLED_APPS 2020-03-23 12:01:24 -04:00
Jeremy Stretch
2188b0982c More work on plugins development docs 2020-03-23 12:00:10 -04:00
Jeremy Stretch
eeb9633854 Merge branch '3351-plugins' into plugins-docs 2020-03-23 10:20:53 -04:00
John Anderson
60b6c48775 remove duplicate import 2020-03-20 22:21:00 -04:00
John Anderson
4e84e8048f added admin and api views for listing all plugins, and refactored urls import 2020-03-20 20:10:02 -04:00
John Anderson
e220c38b97 Merge pull request #4392 from netbox-community/refactor-plugins-import
Refactor plugins import
2020-03-20 17:04:33 -04:00
Jeremy Stretch
ad1522f428 Update plugin URL loading logic 2020-03-20 15:51:14 -04:00
Jeremy Stretch
bc50c2aa55 Introduce PluginConfig 2020-03-20 15:50:47 -04:00
Jeremy Stretch
28b5e88c50 Rename entry point group; simplify import 2020-03-20 14:35:54 -04:00
Jeremy Stretch
33ca352fd9 Initial documentation for plugins framework 2020-03-20 14:21:49 -04:00
Jeremy Stretch
058c78d8be Closes #4389: Add a bulk edit view for device bays 2020-03-19 16:32:08 -04:00
Jeremy Stretch
05fdf5e9a0 Closes #4386: Update admin links for Django RQ to reflect multiple queues 2020-03-19 13:54:49 -04:00
Jeremy Stretch
533521b29d Changelog for #4255 2020-03-19 11:03:35 -04:00
Jeremy Stretch
2dff093305 Merge pull request #4258 from netbox-community/4255-dynamic_object_vars
Fixes: #4255 - Modify script ObjectVars to utilize DynamicModelChoiceField
2020-03-19 11:02:07 -04:00
Jeremy Stretch
ba6ce07759 Changelog for #3193 2020-03-19 10:56:42 -04:00
Jeremy Stretch
33eb5e11de Merge pull request #4387 from netbox-community/3193-cable-tracing
Fixes #3193: Fix cable tracing across multiple rear ports
2020-03-19 10:55:24 -04:00
Jeremy Stretch
8d3801896f Rewrite and extend cabling logic tests 2020-03-19 10:43:51 -04:00
Jeremy Stretch
f1236e9bf7 Tweak tracing logic to ensure consistent behavior 2020-03-19 10:42:53 -04:00
dansheps
fa1548f3ce Remove extraneous import 2020-03-19 08:11:14 -05:00
dansheps
0995e10d87 Modify script ObjectVars to use DynamicModelChoiceFields 2020-03-19 08:09:31 -05:00
Jeremy Stretch
e143158f12 Remove unused follow_circuits arg for cable tracing 2020-03-18 21:14:53 -04:00
Jeremy Stretch
40bfb55370 Improved cable tracing logic 2020-03-18 20:47:27 -04:00
John Anderson
dab313897e Merge branch 'develop-2.8' into 3351-plugins 2020-03-18 18:30:47 -04:00
John Anderson
c7fb2ff894 add version contraints and cacheops config 2020-03-18 18:28:27 -04:00
Jeremy Stretch
ced6fe313a Fix RackGroupForm field 2020-03-18 15:41:23 -04:00
Jeremy Stretch
7f5571200c Closes #4382: Enable custom links for rack reservations 2020-03-18 14:50:49 -04:00
John Anderson
fd879c7cf5 Merge branch 'develop-2.8' into 3351-plugins 2020-03-18 14:48:11 -04:00
Jeremy Stretch
a9d04547d1 Closes #4381: Enable export templates for rack reservations 2020-03-18 14:46:23 -04:00
John Anderson
09e09e43ba Merge branch 'develop' into develop-2.8 2020-03-18 14:44:18 -04:00
Jeremy Stretch
87f0b19dc0 Closes #4380: Enable webhooks for rack reservations 2020-03-18 14:43:19 -04:00
Jeremy Stretch
eab79faaeb Changelog for #738 2020-03-18 14:02:24 -04:00
Jeremy Stretch
dbbb2cdaba Merge pull request #4366 from netbox-community/738-detect-new-releases
Closes #738: Automatically detect new releases
2020-03-18 14:00:01 -04:00
Jeremy Stretch
7246fd667e Move releases.py to netbox/ 2020-03-18 13:54:41 -04:00
Jeremy Stretch
fe4f4bddc8 Tweaked logging; renamed release config parameters 2020-03-18 13:46:47 -04:00
Jeremy Stretch
f7ba766de3 Merge pull request #4379 from netbox-community/refactor-registry
Refactor registry to behave as a dictionary
2020-03-18 13:21:55 -04:00
Jeremy Stretch
70c29051b3 Raise specific exceptions 2020-03-18 13:15:22 -04:00
Jeremy Stretch
043b1c28d2 Refactor the registry into a dictionary object 2020-03-18 12:00:31 -04:00
Jeremy Stretch
022653f446 Fix Python 3.5 compatability for tests 2020-03-17 15:07:45 -04:00
Jeremy Stretch
1706db38df Fix Python 3.5 compatability for tests 2020-03-17 15:00:39 -04:00
Jeremy Stretch
81287833ee Update tests 2020-03-17 14:44:49 -04:00
Jeremy Stretch
2f12d09663 Clean up URL damping 2020-03-17 12:14:17 -04:00
Jeremy Stretch
3ace83c5aa Cache only the most recent NetBox release 2020-03-17 11:58:17 -04:00
Jeremy Stretch
356de985d2 Tweak release template variables 2020-03-17 11:49:45 -04:00
Jeremy Stretch
ab93606e4a Check for an existing job before queuing a new one 2020-03-17 11:37:35 -04:00
Jeremy Stretch
ec2dc8d7a4 Fix template logic 2020-03-17 11:28:35 -04:00
Jeremy Stretch
a2eb2e7da6 Introduce a new 'check_releases' RQ queue 2020-03-17 11:22:56 -04:00
Jeremy Stretch
3590ed378d Rename 'webhooks' REDIS config to 'tasks' 2020-03-17 10:22:56 -04:00
John Anderson
2f37357a1b added support for prepending elements to middleware 2020-03-17 02:35:34 -04:00
John Anderson
981c982237 added support for plugin nav bar links 2020-03-17 02:35:12 -04:00
John Anderson
457354c244 inject origional context as obj_context 2020-03-17 00:03:58 -04:00
Jeremy Stretch
00afe7aa94 Merge pull request #4375 from netbox-community/4374-dynamic-fields-api-url
Closes #4374: Automatically derive API endpoint for dynamic choice fields
2020-03-16 16:02:25 -04:00
Jeremy Stretch
450615e0bb Change IPAddressForm.nat_vrf to DynamicModelChoiceField 2020-03-16 14:29:01 -04:00
Jeremy Stretch
73881ad1e0 Change CircuitTerminationForm.site to a DynamicModelChoiceField 2020-03-16 14:24:17 -04:00
John Anderson
2522b88fc6 Merge branch 'develop-2.8' into 3351-plugins 2020-03-16 14:21:05 -04:00
Jeremy Stretch
0068108c57 Remove APISelect widget/api_url argument from dynamic fields 2020-03-16 14:08:48 -04:00
Jeremy Stretch
400f6fc5fb Dynamically resolve the API URL for dynamic choice fields 2020-03-16 13:30:35 -04:00
John Anderson
901143b72a Merge branch 'develop' into develop-2.8 2020-03-16 12:17:00 -04:00
John Anderson
9a38586e13 rename FeatureQuery class 2020-03-16 11:58:35 -04:00
Jeremy Stretch
62ad7734b2 Merge pull request #4373 from kobayashi/2769-validate-prefixlength
Fixes #2769: improve prefix_length validations
2020-03-16 10:44:13 -04:00
kobayashi
7ef9a6c0a7 Fixes #2769: improve prefix_length validations 2020-03-16 03:20:15 -04:00
John Anderson
8364694fb4 added plugin template content injection to primary model detail views 2020-03-15 23:45:18 -04:00
John Anderson
683c5a22db Merge branch 'develop-2.8' into 3351-plugins 2020-03-15 00:55:25 -04:00
John Anderson
0574ac7530 fixed migration order 2020-03-15 00:48:05 -04:00
John Anderson
a955f90a7e Merge branch 'develop-2.8' into 3351-plugins 2020-03-15 00:26:33 -04:00
John Anderson
2dc31c0edd Revert "implemented registry for extras model functionality"
This reverts commit 235d99021b.
2020-03-15 00:25:46 -04:00
John Anderson
6ea15cec6f Revert "refactor extras registry"
This reverts commit c189895f6c.
2020-03-15 00:24:05 -04:00
John Anderson
9df238c5f2 Merge branch 'develop' into develop-2.8 2020-03-15 00:18:32 -04:00
John Anderson
9466802a95 closes #4368 - extras features model registration 2020-03-14 03:03:22 -04:00
Jeremy Stretch
36130965f2 Merge pull request #4370 from netbox-community/4078-standardize-fields
Closes #4078: Standardize description fields
2020-03-13 17:07:07 -04:00
Jeremy Stretch
d4f6909859 Rename Tag.comments to description 2020-03-13 17:00:00 -04:00
Jeremy Stretch
1a8554fd32 Changelog for #4078 2020-03-13 16:42:47 -04:00
Jeremy Stretch
9f5b138b0f Add migrations for description fields 2020-03-13 16:35:36 -04:00
Jeremy Stretch
cebe580484 Add a description field to all organizational models 2020-03-13 16:33:28 -04:00
Jeremy Stretch
3b4ec5926d Standardize existing description fields to a length of 200 chars 2020-03-13 15:49:58 -04:00
Jeremy Stretch
c5776d9da4 Closes #4369: Add a dedicated view for rack reservations 2020-03-13 13:53:44 -04:00
Jeremy Stretch
9e45cafac4 Cleaned up new release notification banner 2020-03-13 12:20:00 -04:00
Jeremy Stretch
2033d15b2f Tweak UPDATE_REPO_URL to convey the full URL 2020-03-13 12:14:27 -04:00
Jeremy Stretch
e2123f4a9e Clean up logging 2020-03-13 11:55:06 -04:00
Jeremy Stretch
f6dfd2fa43 Simplify update repo URL validation 2020-03-13 10:20:09 -04:00
Jeremy Stretch
1f382f9252 Merge branch 'develop' into 738-detect-new-releases 2020-03-13 10:05:24 -04:00
Jeremy Stretch
459bcd88a9 Fixes #4365: Fix exception raised on IP address bulk add view 2020-03-13 09:07:03 -04:00
Jeremy Stretch
1487b5004d Closes #4309: Add descriptive tooltip to custom fields on object views 2020-03-12 21:43:34 -04:00
Jeremy Stretch
a28509019a Closes #4363: Standardize secret creation URL 2020-03-12 21:14:14 -04:00
John Anderson
c189895f6c refactor extras registry 2020-03-12 18:12:12 -04:00
Jeremy Stretch
5e971994ff Closes #4362: Standardize URL for creation of RackReservations 2020-03-12 17:43:11 -04:00
Jeremy Stretch
f108049142 Remove outdated TODOs 2020-03-12 11:57:26 -04:00
Jeremy Stretch
9fc1e88d9f Update minimum Python version to 3.6 2020-03-12 11:46:11 -04:00
Jeremy Stretch
2cd44d0234 Changelog for #3416 2020-03-12 11:38:39 -04:00
Jeremy Stretch
16bc262a4f Merge pull request #4359 from netbox-community/3416-remove-API-choices
Closes #3416: Remove API _choices endpoints
2020-03-12 11:29:31 -04:00
Jeremy Stretch
ef5c20dc6f Update documentation 2020-03-12 11:14:27 -04:00
Jeremy Stretch
a53f854187 Remove tests for API _choices endpoints 2020-03-12 10:48:53 -04:00
Jeremy Stretch
ea9de37dd1 Remove FieldChoicesViewSet 2020-03-12 10:48:17 -04:00
John Anderson
235d99021b implemented registry for extras model functionality 2020-03-12 04:07:54 -04:00
John Anderson
8af4cf87b5 Merge branch 'develop-2.8' into 3351-plugins 2020-03-12 01:19:15 -04:00
Jeremy Stretch
997247ee77 Update changelog for #1754, #3939 2020-03-11 21:22:06 -04:00
Jeremy Stretch
b92e518370 Merge pull request #4353 from netbox-community/3939-nested-tenantgroups
Closes #3939: Nested tenant groups
2020-03-11 21:20:14 -04:00
Jeremy Stretch
b5d57262f9 Update tests for nested TenantGroups 2020-03-11 21:14:53 -04:00
Jeremy Stretch
45f6ea211d Implement support for nested TenantGroups 2020-03-11 21:12:55 -04:00
Jeremy Stretch
a4a276083a Merge pull request #4351 from netbox-community/1754-nested-rackgroups
Closes #1754: Nested rack groups
2020-03-11 20:03:50 -04:00
Jeremy Stretch
c42613cf4d Update filter fields 2020-03-11 14:57:48 -04:00
Jeremy Stretch
84de0458aa Implement nested RackGroups 2020-03-11 14:40:29 -04:00
Jeremy Stretch
2b33e91e2c Changelog for #2328 2020-03-11 11:27:47 -04:00
Jeremy Stretch
71c363ebc8 Merge pull request #4299 from netbox-community/2328-external-authentication
Closes #2328: External user authentication
2020-03-11 11:17:40 -04:00
Jeremy Stretch
7ffc00159e Tweak settings/middleware to support testing; improve tests 2020-03-11 11:10:26 -04:00
Jeremy Stretch
79aba5edf2 Fixes #4343: Fix Markdown support for tables 2020-03-11 09:52:02 -04:00
John Anderson
a504f5f309 closes #4340 - Enforce unique constraints for device and virtual machine names in the API 2020-03-10 19:15:24 -04:00
Jeremy Stretch
90144ccd9a Add tests for remote authentication configuration 2020-03-10 16:57:34 -04:00
Jeremy Stretch
8c6d35645d Remote auth cleanup 2020-03-10 16:56:57 -04:00
John Anderson
0706c65ce6 Merge branch 'develop-2.8' into 3351-plugins 2020-03-10 15:15:23 -04:00
Jeremy Stretch
0dc3a72912 Merge branch 'develop-2.8' into 2328-external-authentication 2020-03-10 15:07:19 -04:00
Jeremy Stretch
0de857bf7a Merge branch 'develop' into develop-2.8 2020-03-10 15:06:37 -04:00
Jeremy Stretch
55558cb272 Post-release version bump 2020-03-10 14:03:22 -04:00
Jeremy Stretch
e66d065b6d Merge pull request #4339 from netbox-community/develop
Release v2.7.10
2020-03-10 13:59:50 -04:00
Jeremy Stretch
7bf1420463 Release v2.7.10 2020-03-10 13:50:17 -04:00
Jeremy Stretch
3a0b28144f Force mkdocs to v1.1 for RTD build 2020-03-10 13:37:31 -04:00
Jeremy Stretch
bc19072dc6 Update upgrade documentation for non-git installations 2020-03-10 13:24:10 -04:00
Jeremy Stretch
1eddac4066 Fixes #4338: Catch AddrFormatError exception when filtering aggregates/prefixes by an invalid prefix 2020-03-10 11:58:34 -04:00
Jeremy Stretch
2571f22ae5 Revert initial fix for #4336 2020-03-10 11:43:00 -04:00
Jeremy Stretch
5346efe009 Fixes #4337: Allow bulk editing/deletion of all device components matching a query 2020-03-10 10:18:48 -04:00
Jeremy Stretch
bb3f37ca35 Fixes #4336: Ensure interfaces without a channel/unit are ordered before a channel/unit of zero 2020-03-10 10:03:42 -04:00
Jeremy Stretch
0e49a7a1fd Closes #4332: Redirect to a user-friendly error page when CSS/JS resources fail to load 2020-03-09 15:33:57 -04:00
Jeremy Stretch
93159fec4b Update changelog 2020-03-09 14:28:06 -04:00
Jeremy Stretch
ab2ea5697f Closes #4322: Introduce and document local_requirements.txt support for installation/upgrade of optional dependencies 2020-03-09 14:22:27 -04:00
Jeremy Stretch
0eaec6bd83 Merge pull request #4335 from netbox-community/4325-rack-reservation-import
Closes #4325: Add suport for rack reservations CSV import
2020-03-09 13:45:38 -04:00
Jeremy Stretch
8cca22d79c Add nav menu entry for rack reservations import 2020-03-09 13:39:12 -04:00
Jeremy Stretch
e364a25e46 Add test for RackReservation import 2020-03-09 13:35:44 -04:00
Jeremy Stretch
049da81bf2 Convert units to SimpleArrayField 2020-03-09 12:46:12 -04:00
Jeremy Stretch
947affd78f Extend BulkImportView._save_obj to pass request context 2020-03-09 12:39:07 -04:00
Jeremy Stretch
cdcbf20d6a Merge pull request #4334 from netbox-community/4320-clean-up-template-tags-filters
Closes #4320: Clean up template tags filters
2020-03-09 10:56:41 -04:00
Jeremy Stretch
15ab30d0c6 Replace model_name and model_name_verbose filters with meta 2020-03-09 10:50:46 -04:00
Jeremy Stretch
16d3cebf3e Update markdown filter name 2020-03-09 10:42:32 -04:00
Jeremy Stretch
1069ad21d8 Remove unused contains filter 2020-03-09 10:38:29 -04:00
Jeremy Stretch
1423fd9024 Rename gfm filter to render_markdown 2020-03-09 10:31:29 -04:00
Jeremy Stretch
0439be2870 Remove unused getlist and getkey filters 2020-03-09 10:24:37 -04:00
Jeremy Stretch
22246353e2 Remove oneline filter 2020-03-09 10:22:30 -04:00
Jeremy Stretch
02bf6bd3a6 Changelog for #4217 2020-03-09 10:15:18 -04:00
Jeremy Stretch
8d511b0f72 Merge pull request #4333 from netbox-community/4217-contextual-docs
Closes #4217: Implement contextual documentation for models
2020-03-09 10:13:14 -04:00
Jeremy Stretch
4edd0b1fd6 Merge branch 'develop' into 4217-contextual-docs 2020-03-09 09:56:14 -04:00
Jeremy Stretch
f9073a2f07 Fixes #4326: Exclude Python modules without Script classes from scripts list 2020-03-06 20:59:32 -05:00
Jeremy Stretch
ad9dfec894 Started on #4325 (WIP) 2020-03-06 17:14:26 -05:00
Jeremy Stretch
9a829500cd Fix typo 2020-03-06 16:40:00 -05:00
Jeremy Stretch
9fa5004a35 Closes #4324: Add CSV import view for services 2020-03-06 16:33:43 -05:00
Jeremy Stretch
2a5bf2a222 Fixes #4323: Add bulk edit view for power panels 2020-03-06 16:05:26 -05:00
Jeremy Stretch
b22bf0c4b0 Fix upgrade.sh to show virtualenv warning only when needed 2020-03-06 15:07:29 -05:00
Jeremy Stretch
17c76e413d Install wheel before NetBox dependencies 2020-03-06 13:59:19 -05:00
Jeremy Stretch
803287a514 Closes #4313: Remove id__in filters 2020-03-06 12:05:53 -05:00
Jeremy Stretch
1a89e35729 Merge branch 'develop' into develop-2.8 2020-03-06 11:34:01 -05:00
Jeremy Stretch
5950bedfae Post-release version bump 2020-03-06 11:26:59 -05:00
Jeremy Stretch
c1ef87e009 Merge pull request #4321 from netbox-community/develop
Release v2.7.9
2020-03-06 11:23:42 -05:00
Jeremy Stretch
09298dab7a Release v2.7.9 2020-03-06 11:17:17 -05:00
Jeremy Stretch
afcd9b801f Delete squashed migration to avoid 'pending trigger events' exception under certain conditions 2020-03-06 10:32:12 -05:00
Jeremy Stretch
12bedac28a Tweak upgrade script to exit immediately if any individual tasks fail 2020-03-06 10:26:12 -05:00
Jeremy Stretch
c50714ec42 Introduce DOCS_ROOT configuration parameter 2020-03-06 09:35:58 -05:00
kobayashi
9f8d1d2436 Merge pull request #4063 from deathbeam/issue-4062
List choices for choice fields as enums in Swagger openapi spec
2020-03-05 23:58:43 -05:00
kobayashi
920078a738 set fix#4062 to release note 2020-03-05 23:52:33 -05:00
Tomas Slusny
4136a5fd5e List choices for choice fields as enums
Fixes #4062

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2020-03-05 23:44:37 -05:00
Jeremy Stretch
7d236b607e Tweak navigation max depth 2020-03-05 17:30:55 -05:00
Jeremy Stretch
f2d1c7d82a Update release notes navigation; ditch v1.x release notes 2020-03-05 17:27:59 -05:00
Jeremy Stretch
a7c133daa6 Reset documentation hierarchy 2020-03-05 17:23:56 -05:00
Jeremy Stretch
f89773f4a3 Cleaned up model documentation hierarchy 2020-03-05 17:03:03 -05:00
Jeremy Stretch
363c4acadc Drop GitHub-flavored Markdown (py-gfm) 2020-03-05 16:30:12 -05:00
Jeremy Stretch
b9d66f010f Add missing nav link for device types 2020-03-05 16:26:23 -05:00
Jeremy Stretch
57df250128 Add doc pages for device component templates 2020-03-05 15:24:02 -05:00
Jeremy Stretch
1657d6a0b8 Add missing docs page for tags 2020-03-05 15:16:15 -05:00
Jeremy Stretch
3b200bbffc Remove title from docs modal 2020-03-05 14:54:48 -05:00
Jeremy Stretch
121c7ada1f Add admonition support for embedded docs 2020-03-05 14:49:52 -05:00
Jeremy Stretch
25f4cae3ff Add model doc modal to object add/edit template 2020-03-05 13:56:03 -05:00
Jeremy Stretch
9f42bce16a Update modal template 2020-03-05 13:55:27 -05:00
Jeremy Stretch
defe59d79e Introduce get_docs() template filter for models 2020-03-05 13:52:34 -05:00
Jeremy Stretch
8a23811831 Add missing model doc pages 2020-03-05 13:48:47 -05:00
Jeremy Stretch
5190710aef Refactored device component docs 2020-03-05 11:44:18 -05:00
Jeremy Stretch
04ddc0487a Standardize circuits page 2020-03-05 11:26:10 -05:00
Jeremy Stretch
f9c9cf9ad2 Refactor virtualization docs 2020-03-05 11:24:57 -05:00
Jeremy Stretch
b8b02c7b25 Refactor tenancy docs 2020-03-05 11:21:52 -05:00
Jeremy Stretch
a061a03860 Refactor service docs 2020-03-05 11:20:10 -05:00
Jeremy Stretch
7793f281c5 Refactor secrets docs 2020-03-05 11:18:57 -05:00
Jeremy Stretch
593374764d Refactor IPAM docs 2020-03-05 11:16:54 -05:00
Jeremy Stretch
a320b54c2f Refactor power docs 2020-03-05 11:13:06 -05:00
Jeremy Stretch
6ba24c3296 Refactor site/rack docs 2020-03-05 11:10:09 -05:00
Jeremy Stretch
92949ddcdb Refactor device docs 2020-03-05 11:05:48 -05:00
Jeremy Stretch
b2bc1bf74a Refactor circuits docs 2020-03-05 10:52:56 -05:00
Jeremy Stretch
70397461eb Enable support for Markdown inclusions 2020-03-05 10:47:12 -05:00
Jeremy Stretch
aefed0df89 Add user survey note to README 2020-03-05 08:51:03 -05:00
John Anderson
bc954bc7be Merge branch 'develop-2.8' into 3351-plugins 2020-03-04 22:17:14 -05:00
Jeremy Stretch
e4cfeb1977 Add reminder to reload systemctl daemon if needed 2020-03-04 17:19:16 -05:00
Jeremy Stretch
e4e4af1b2d Delete obsolete old_requirements.txt 2020-03-04 16:07:19 -05:00
Jeremy Stretch
2bd3f1fcc3 Merge pull request #4315 from netbox-community/4195-application-logging
Closes #4195: Application logging
2020-03-04 14:39:12 -05:00
Jeremy Stretch
7454efe648 Documentation and changelog for #4195 2020-03-04 14:33:55 -05:00
Jeremy Stretch
9df2769383 Enable system logging for reports 2020-03-04 14:22:30 -05:00
Jeremy Stretch
36cbbac870 Enable system logging for custom scripts 2020-03-04 14:05:59 -05:00
Jeremy Stretch
406b88777c Add logging for DRF views 2020-03-04 13:32:45 -05:00
Jeremy Stretch
113313e000 Merge pull request #4001 from steffann/738-automatically-check-for-new-releases
Fixes: #738: Automatically check for new versions
2020-03-04 12:22:57 -05:00
Jeremy Stretch
f7c6df6e6a Improved verbosity of upgrade script 2020-03-04 12:20:06 -05:00
Jeremy Stretch
9e92520266 Changelog for #4121 2020-03-04 11:53:53 -05:00
Jeremy Stretch
1dd07337fd Merge pull request #4189 from netbox-community/4121-filter-lookup-expressions
4121 filter lookup expressions
2020-03-04 11:51:19 -05:00
Jeremy Stretch
746bfd8bca Closes #4119: Extend upgrade script to clear expired user sessions 2020-03-04 10:29:22 -05:00
Jeremy Parker
10dee9b57b Fix typo in caching.md (#4310)
Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-03-04 10:07:58 -05:00
Jeremy Stretch
31e5d9ffe6 Changelog for #4298 2020-03-04 10:03:39 -05:00
Jeremy Stretch
a45b18b335 Merge pull request #4311 from netbox-community/4298-custom-fields-api
Fixes #4298: Bulk creation of objects with custom fields via API
2020-03-04 10:02:23 -05:00
Jeremy Stretch
57b6ac7cb1 Finish work on improved custom fields API tests 2020-03-04 09:53:49 -05:00
Jeremy Stretch
4611536ca9 Revise custom field API tests to check for single/multiple objects with/without custom field values 2020-03-03 17:07:43 -05:00
Jeremy Stretch
e4abfd192e Introduce CustomFieldDefaultValues class to handle default custom field values 2020-03-03 14:54:48 -05:00
Jeremy Stretch
c85bcbcf31 Merge branch 'develop' into develop-2.8 2020-03-03 13:20:00 -05:00
Jeremy Stretch
cb7932ecda Merge pull request #4308 from kobayashi/4229-docs-python-version
Fix #4229: Describe supported Python version
2020-03-03 12:14:10 -05:00
Jeremy Stretch
e4fc37e91a Merge pull request #4304 from dstarner/4288-incorrect-swagger-type
Set local_context_data serializer on Device and VM to method
2020-03-03 12:13:06 -05:00
Jeremy Stretch
74821c2c17 Closes #4218: Allow negative voltage for DC power feeds 2020-03-03 12:10:08 -05:00
Dan Starner
e6ee9803d4 use FieldInspector for JSONField type 2020-03-03 12:04:46 -05:00
kobayashi
fa992853b0 Describe supported Python version 2020-03-03 10:52:56 -05:00
Jeremy Stretch
1e4dd102bd Closes #4290: Include device name in tooltip on rack elevations 2020-03-03 10:35:07 -05:00
Jeremy Stretch
0f9c37fbc7 Closes #4284: Add MRJ21 port and cable types 2020-03-03 10:13:21 -05:00
Jeremy Stretch
a261060e5c Closes #4305: Add 10-inch option for rack width 2020-03-03 10:07:20 -05:00
Jeremy Stretch
78a1aad6c0 Fixes #4306: Fix toggling of device images for all racks in elevations view 2020-03-03 10:04:35 -05:00
Jeremy Stretch
7b6bd75c22 #4295 follow-up: Tweak handling of initial data for bulk edit forms 2020-03-03 09:43:56 -05:00
Jeremy Stretch
c983dac771 Add logging output to login/logout views 2020-03-02 17:04:54 -05:00
Jeremy Stretch
7a10748355 Add logging output to API viewsets 2020-03-02 16:52:21 -05:00
Jeremy Stretch
ca1186dca1 Add logging output to utility views 2020-03-02 16:38:51 -05:00
Daniel Starner
3070c7e991 fix linting mistake 2020-03-02 15:45:58 -05:00
Dan Starner
406708218b set local_context_data serializer on device and vm to method 2020-03-02 13:47:07 -05:00
Jeremy Stretch
c7b74b2090 Fixes #4300: Pass "commit" argument when executing scripts via REST API 2020-03-02 13:29:32 -05:00
Jeremy Stretch
1b38f3ad3a Merge pull request #4303 from kobayashi/4274-prefix-schema
Fix #4274: Set correct value schema for int typed ChoiceField
2020-03-02 13:14:04 -05:00
Jeremy Stretch
1e1c6526b2 Add BaseFilterSetTest to validate automatic generation of filters 2020-03-02 12:25:21 -05:00
kobayashi
0be5488104 Fix #4274: Set correct value schema for int typed ChoiceField 2020-03-02 11:26:56 -05:00
Jeremy Stretch
13fcdc0c1e Fixes #4301: Fix exception when deleting device type with components 2020-03-02 09:41:37 -05:00
John Anderson
5f5edbc10e added config option to disable plugins 2020-03-01 03:42:05 -05:00
John Anderson
71a8a13644 add api urls and signals interface for detail route buttons 2020-03-01 03:24:17 -05:00
John Anderson
a17c22746d initial work on #3351 2020-02-29 02:23:01 -05:00
John Anderson
e5f8f15293 added lookup map for treenode filter 2020-02-28 19:58:06 -05:00
Jeremy Stretch
22ec11c766 Fix up CentOS installation instructions; add troubleshooting guide 2020-02-28 17:31:51 -05:00
Jeremy Stretch
1b6f721e50 Extend installation docs to include creation of a specific netbox user 2020-02-28 16:25:43 -05:00
Jeremy Stretch
9c88f12abe Add note about Redis config to installation instructions 2020-02-28 15:58:55 -05:00
Jeremy Stretch
e285d0b547 Remove obsolete querydict_to_dict() utility function 2020-02-28 15:47:59 -05:00
Jeremy Stretch
5dc956fbe1 First stab at external authentication support 2020-02-28 15:16:31 -05:00
Jeremy Stretch
1449dfc966 Fixes #4295: Fix assignment of parent LAG during interface bulk edit 2020-02-28 09:44:41 -05:00
Sander Steffann
fcf3b14712 Add unittests 2020-02-27 21:54:43 +01:00
Sander Steffann
28473fa3e0 Disable update check by default 2020-02-27 19:40:06 +01:00
Sander Steffann
8ce106cb4b Move request to background task 2020-02-27 19:36:02 +01:00
Jeremy Stretch
bdf9857e6f Closes #4294: Add tenancy filter tests for all models 2020-02-27 13:28:08 -05:00
Sander Steffann
22ac9f63a1 Don't overwrite the header block, append to it 2020-02-27 18:27:36 +01:00
Sander Steffann
0de7f4712f Fix check for permissions 2020-02-27 18:27:36 +01:00
Sander Steffann
8d92089487 Improve comments and error message on invalid characters in URL 2020-02-27 18:27:36 +01:00
Sander Steffann
3a0849699f Rename settings to be more generic, not GitHub-only 2020-02-27 18:27:36 +01:00
Sander Steffann
008fc5623e Full URL for API, more consistent naming, only enabled for staff and better configuration validation 2020-02-27 18:27:36 +01:00
Sander Steffann
9d66ac4a6a Refactor the code to be more readable 2020-02-27 18:26:15 +01:00
Sander Steffann
405d93c6f2 Update versions.py 2020-02-27 18:26:15 +01:00
Sander Steffann
2fcdc90d3f Automatically check for new versions 2020-02-27 18:26:15 +01:00
dansheps
27e3b6f377 Remove second variables, make widget mandatory on ObjectVar and MultiObjectVar 2020-02-27 07:45:11 -06:00
Jeremy Stretch
faf676e6e0 Closes #4281: Allow filtering device component list views by type 2020-02-26 17:22:53 -05:00
Jeremy Stretch
624566b04e Fixes #4282: Fix label on export button for device types 2020-02-26 16:49:39 -05:00
Jeremy Stretch
5a00939512 Fixes #4285: Include A/Z termination sites in provider circuits table 2020-02-26 16:41:59 -05:00
Jeremy Stretch
4431259cd8 Merge pull request #4287 from netbox-community/3949-virtualenv-install
Closes #3949: Revise installation docs to use a Python virtual environment
2020-02-26 16:04:51 -05:00
Jeremy Stretch
87c914bece Reorganize .gitignore; add /venv/ 2020-02-26 15:59:26 -05:00
Jeremy Stretch
56c26f80b3 Changelog for #3949 2020-02-26 15:56:26 -05:00
Jeremy Stretch
215dbef7a0 Improved formatting of upgrade script messages 2020-02-26 15:40:05 -05:00
Jeremy Stretch
64c9bf27c1 Fix exit statement in upgrade script 2020-02-26 15:34:42 -05:00
Jeremy Stretch
1abc82e718 Update upgrade script & instructions to better accomodate moving to a venv 2020-02-26 15:26:12 -05:00
Jeremy Stretch
be9df3c07d Simplify the systemctl commands 2020-02-26 14:38:25 -05:00
Jeremy Stretch
798ecfc8f0 Clean up the upgrade guide 2020-02-26 14:09:54 -05:00
Jeremy Stretch
015a339202 Update systemd migration guide 2020-02-26 14:09:27 -05:00
Jeremy Stretch
2ee06c13f9 Remove Python 2 migration guide 2020-02-26 13:56:44 -05:00
Jeremy Stretch
0851b97ba5 Update the upgrade script & instructions to use a virtual environment 2020-02-26 13:54:07 -05:00
Jeremy Stretch
1b64f67f2b Update installation instructions to use a Python virtual environment 2020-02-26 12:28:35 -05:00
John Anderson
c908f132ec Merge branch 'develop' into 4121-filter-lookup-expressions 2020-02-26 12:05:27 -05:00
Jeremy Stretch
c78df40cb0 Refactor installtion docs 2020-02-26 11:40:31 -05:00
Jeremy Stretch
5a61bbec26 Fixes #4277: Fix filtering of clusters by tenant 2020-02-26 09:11:38 -05:00
John Anderson
3b4607d30d refactor lookup map logic 2020-02-25 15:16:27 -05:00
Jeremy Stretch
5befe66aa5 Post-release version bump 2020-02-25 15:11:04 -05:00
Jeremy Stretch
3c249a40a0 Merge pull request #4275 from netbox-community/develop
Release v2.7.8
2020-02-25 15:09:41 -05:00
Jeremy Stretch
7e81d5fe11 Release v2.7.8 2020-02-25 15:04:08 -05:00
Jeremy Stretch
6b4858303b Fix object list table width when no filter_form is present 2020-02-25 15:03:27 -05:00
Jeremy Stretch
5000f7f8d7 Extend custom scripts to pass the 'commit' value via run() 2020-02-25 14:49:41 -05:00
Jeremy Stretch
f643af13d7 Fix field label for Prefix.vrf 2020-02-25 14:12:53 -05:00
John Anderson
afc8c9bfe9 fix tenancy filterset bases 2020-02-25 13:50:31 -05:00
Jeremy Stretch
a6e859d9b7 Remove extraneous prefetches from racks queryset 2020-02-25 12:35:27 -05:00
Jeremy Stretch
5bf68493df Changelog & cleanup for #4267 2020-02-25 12:34:48 -05:00
Jeremy Stretch
43f3488270 Merge pull request #4271 from ananace/4267-rack-roles-in-elevations
Fixes #4267: Display rack roles in elevation list view
2020-02-25 12:18:31 -05:00
Jeremy Stretch
62efe0621f Fixes #4272: Interface type should be required by API serializer 2020-02-25 11:20:43 -05:00
Jeremy Stretch
161f03217e Merge pull request #4269 from hSaria/4227-omit-private-changelog
Fixes #4227: Omit internal fields from the change log data
2020-02-25 11:02:22 -05:00
Jeremy Stretch
40b56d7f62 Merge branch 'develop' into 4227-omit-private-changelog 2020-02-25 11:02:11 -05:00
Jeremy Stretch
4eb731cfae Merge pull request #4263 from netbox-community/4237-custom-webhooks
Closes #4237: Enable custom templating for webhook request content
2020-02-25 10:54:30 -05:00
Jeremy Stretch
35786966c6 Changelog for #4237 2020-02-25 10:46:16 -05:00
Jeremy Stretch
c3b64164ba Always use a JSON object to convey change data when no body template is present 2020-02-25 10:43:14 -05:00
Jeremy Stretch
644b4aa42d Revised webhook documentation 2020-02-25 10:24:27 -05:00
Alexander Olofsson
838291c3f3 Display rack roles in elevation list view 2020-02-25 16:00:21 +01:00
Saria Hajjar
3296298d21 Fixes #4227: Omit internal fields from the change log data 2020-02-25 14:48:11 +00:00
Jeremy Stretch
211311be9f Add http_method field to Webhook 2020-02-24 20:42:24 -05:00
Jeremy Stretch
9a532b1eb2 Extend templatization ability to additional_headers field 2020-02-24 17:47:17 -05:00
Jeremy Stretch
1fbd3a2c26 Convert additional_headers to a TextField 2020-02-24 16:59:35 -05:00
Jeremy Stretch
99038ffc44 Enable custom templating for webhook request content 2020-02-24 16:12:46 -05:00
John Anderson
67565ca191 added docs and more tests 2020-02-24 15:03:07 -05:00
Jeremy Stretch
81d001d49e Add a note about X-Frame-Options to the HTTP daemon instructions 2020-02-24 14:30:03 -05:00
Jeremy Stretch
cc4a22b2d1 Merge pull request #4261 from netbox-community/3145-cable-status-decommissioning
Closes #3145: Add a "decommissioning" status for cables
2020-02-24 14:24:34 -05:00
Jeremy Stretch
4d1749cc71 Remove CONNECTION_STATUS_CONNECTED and CONNECTION_STATUS_PLANNED constants 2020-02-24 14:18:19 -05:00
Jeremy Stretch
f7b620c6a2 Closes #3145: Add 'decommissioning' status for cables 2020-02-24 14:09:36 -05:00
Jeremy Stretch
76138f3080 Fixes #4222: Escape double quotes on encapsulated values during CSV export 2020-02-24 13:29:00 -05:00
Jeremy Stretch
36f8d6d259 Disconnect post_save & pre_delete signals after the response has been received 2020-02-24 12:42:51 -05:00
Jeremy Stretch
909971f237 Fixes #4221: Fix exception when deleting a device with interface connections when an interfaces webhook is defined 2020-02-24 12:41:55 -05:00
Jeremy Stretch
4e76e4ec9c Merge pull request #4253 from hSaria/3612-update-screenshots
Fixes #3612: Update screenshots
2020-02-24 11:45:15 -05:00
Saria Hajjar
87d90adaef Downscaled pictures to 50% (~1600 x ~1000) 2020-02-24 16:41:32 +00:00
dansheps
8ed0d0400f Add tests 2020-02-24 10:30:57 -06:00
Jeremy Stretch
cfd813772d Merge pull request #4257 from netbox-community/4250-extend-view-tests
Extend ViewTestCases for create/edit/delete/import views
2020-02-24 11:30:01 -05:00
Jeremy Stretch
2b484955aa Extend ViewTestCases for create/edit/delete/import views to also check non-data-bound GET requests 2020-02-24 11:23:42 -05:00
dansheps
a5853427d4 Update __all__ for #4255 2020-02-24 10:21:17 -06:00
dansheps
d0bd1ad25b Fixes: #4255 - Add new script variable types based on dynamic model fields 2020-02-24 10:18:19 -06:00
dansheps
d9dcc92300 Update release notes for #4230 2020-02-24 09:31:52 -06:00
Daniel Sheppard
d0c82c23bd Merge pull request #4244 from netbox-community/4230-filter_rack_unit_on_elevations
Fixes: #4230 - Fixes rack units filtering on elevation endpoint
2020-02-24 09:25:42 -06:00
Saria Hajjar
6cdb86931e Added separators between screenshots 2020-02-24 15:22:33 +00:00
Saria Hajjar
23d0241865 Updated screenshots with v2.7.7 2020-02-24 15:21:17 +00:00
Jeremy Stretch
61c0a4cc61 Fixes #4252: Fix power port assignment for power outlet templates created via REST API 2020-02-24 10:13:47 -05:00
Jeremy Stretch
b97d3b0716 Fixes #4246: Fix duplication of field attributes when multiple IPNetworkVars are present in a script 2020-02-24 10:01:31 -05:00
Jeremy Stretch
25d126d4ff Call prepare_value() to avoid passing model instances directly to the filterset 2020-02-24 09:31:31 -05:00
Dan Sheppard
2b75e05ea7 Fixes: #4230 - Fixes filtering by position on elevation endpoint
* Add tests for rack elevation filtering
* Add q variable to serializers for RackElevationDetailFilterSerializer
* Add code to allow filtering of position on the rack elevation
2020-02-22 08:24:26 -06:00
Jeremy Stretch
1a997610c7 Fixes #4241: Correct IP address hyperlinks on interface view 2020-02-21 21:43:04 -05:00
Jeremy Stretch
04ee55a40c Fixes #4240: Fix exception when filtering foreign keys by NULL 2020-02-21 21:38:25 -05:00
Jeremy Stretch
1c72d75b62 Fixes #4239: Fix exception when selecting all filtered objects during bulk edit 2020-02-21 20:44:53 -05:00
Jeremy Stretch
9128dc961c Closes #4173: Return graceful error message when webhook queuing fails 2020-02-21 17:21:04 -05:00
Jeremy Stretch
28e3b7af18 Merge branch 'develop' into develop-2.8 2020-02-21 15:26:55 -05:00
Jeremy Stretch
12602a95ea All fields on RenderedGraphSerializer should be read-only 2020-02-21 14:45:07 -05:00
Jeremy Stretch
11d012de4e Fixes #4235: Fix API representation of content_type for export templates 2020-02-21 14:38:38 -05:00
Jeremy Stretch
45cdac6f36 Changelog for #4228 2020-02-21 14:19:02 -05:00
Jeremy Stretch
2c4136f514 Merge pull request #4233 from netbox-community/4228-rack-elevation-images
Fixes #4228: Fix display of device images in rack elevations
2020-02-21 13:55:32 -05:00
Jeremy Stretch
a14c7980f6 Fixes #4232: Enforce consistent background striping in rack elevations 2020-02-21 13:49:28 -05:00
Jeremy Stretch
329740d2a7 Add "Save SVG" link beneath rack elevation display 2020-02-21 13:28:18 -05:00
Jeremy Stretch
8ffba6a279 Clean up rack view CSS 2020-02-21 13:19:45 -05:00
Jeremy Stretch
5a02dc457c Fixes #4228: Fit device images to rack unit; tweak default aspect ratio 2020-02-21 12:43:24 -05:00
Jeremy Stretch
cf312e9690 Changelog for #4224 2020-02-21 09:42:07 -05:00
Jeremy Stretch
20b36f910f Merge pull request #4225 from LuPo/develop
rear rack face doesn't draw if full-height device type assigned only front image
2020-02-21 09:40:23 -05:00
LuPo
0b3111c47f Fix drawing rear elevation when full-height device has been assigned only front image 2020-02-21 13:42:52 +02:00
Jeremy Stretch
493d68a57a Post-release version bump 2020-02-20 14:59:00 -05:00
Jeremy Stretch
5092641157 Merge pull request #4216 from netbox-community/develop
Release v2.7.7
2020-02-20 14:56:27 -05:00
Jeremy Stretch
2b134ea0f0 Release v2.7.7 2020-02-20 14:48:23 -05:00
Jeremy Stretch
58ff08be4e #1529: Add front/rear image fields to DeviceType serializer 2020-02-20 14:37:08 -05:00
Jeremy Stretch
682fd40fff Changelog for #4206 2020-02-20 14:27:26 -05:00
Jeremy Stretch
cdcc63fdf6 Merge pull request #4208 from wtinetworkgear/rj11add
Added serial console_port type rj-11 for a POTS modem connection
2020-02-20 14:26:24 -05:00
Jeremy Stretch
c0052eb416 Closes #4209: Enable filtering interfaces list view by enabled 2020-02-20 14:24:22 -05:00
Jeremy Stretch
74e3e2e5e1 Changelog for #4213 2020-02-20 14:17:18 -05:00
Jeremy Stretch
214470fb84 Rearrange powerfeed view 2020-02-20 14:16:18 -05:00
Jeremy Stretch
e76ea2a03c Merge pull request #4214 from ironick09/develop
Fix Power Feed page to render Custom Fields and Tags
2020-02-20 14:14:57 -05:00
Jeremy Stretch
6c272adb0e Clean up rack headers and border 2020-02-20 14:10:48 -05:00
Jeremy Stretch
51f7b7a5bf Changelog for #1529 2020-02-20 13:49:34 -05:00
Jeremy Stretch
b81622222d Merge pull request #4215 from netbox-community/1529-rack-elevation-images
Closes #1529: Rack elevation images
2020-02-20 13:48:44 -05:00
Jeremy Stretch
e8a8b39c47 Tweak gitignore to include devicetype-images directory 2020-02-20 13:42:23 -05:00
Jeremy Stretch
c78d30d47e Enable toggling of device images on elevations list 2020-02-20 13:20:58 -05:00
Jeremy Stretch
ba6562a5db Add ability to toggle the inclusion of device images when rendering a rack elevation SVG 2020-02-20 13:09:43 -05:00
Josh Niec
b28729baff Fix rendering for powerfeeds_list to show any added custom fields or tags on object
Signed-off-by: Josh Niec <ironick09@gmail.com>
2020-02-20 12:03:09 -06:00
Jeremy Stretch
adf9221bab Refactor rack elevation mixin to RackElevationSVG 2020-02-20 12:48:44 -05:00
Jeremy Stretch
d2157a3423 Add front/rear images for device types; include in rack elevations 2020-02-20 12:11:59 -05:00
Jeremy Stretch
e07ed3de93 Ignore media files 2020-02-20 11:22:04 -05:00
Jeremy Stretch
584539d0a3 #3810: Fix bug in Javascript 2020-02-20 10:20:19 -05:00
Jeremy Stretch
322b328584 Fixes #4211: Include trailing text when naturalizing interface names 2020-02-20 09:49:15 -05:00
Jeremy Stretch
b38eeaebc9 Clarify ciphertext length calculation; remove Python 2 compatibility 2020-02-19 21:14:56 -05:00
Jeremy Stretch
66fa79741d Add min/max length tests for secrets 2020-02-19 21:06:21 -05:00
Ken Partridge
09805ddc4a Added serial console_port type rj-11 for a POTS modem connection 2020-02-19 15:39:53 -08:00
Jeremy Stretch
1130f6b9f0 Remove dependency on RawSQL from IPAddress manager 2020-02-19 17:17:41 -05:00
Jeremy Stretch
38ff01e874 Merge pull request #4207 from netbox-community/3848-django-3.0
Closes #3848: Django 3.0
2020-02-19 15:41:39 -05:00
Jeremy Stretch
be23230938 Update tests to match new string representation of ContentTypes 2020-02-19 15:31:15 -05:00
Jeremy Stretch
7b93155b06 Fix form field ordering; self.fields no longer an OrderedDict 2020-02-19 15:08:15 -05:00
Jeremy Stretch
b7d41bc42c Rename MPTT migration 2020-02-19 14:46:53 -05:00
Jeremy Stretch
e17597a0a9 Update CI build to Python 3.6 and PostgreSQL 9.6 2020-02-19 14:30:49 -05:00
Jeremy Stretch
7a53e24f97 Closes #3810: Preserve slug value when editing existing objects 2020-02-19 13:53:11 -05:00
Jeremy Stretch
f05c7be394 Fixes #4204: Fix assignment of mask length when bulk editing prefixes 2020-02-19 13:28:07 -05:00
Jeremy Stretch
2cf990bd92 Standardize on two-word form of "change log" 2020-02-19 12:45:52 -05:00
Jeremy Stretch
21473548a5 Merge pull request #4181 from hSaria/2511-change-diff
Fixes #2511: Compare object change to the previous change
2020-02-19 12:41:24 -05:00
Jeremy Stretch
626513a8b2 Fixes #4202: Prevent reassignment to master device when bulk editing VC member interfaces 2020-02-19 11:29:42 -05:00
Jeremy Stretch
5871640701 Closes #4199: Update example report to use ChoiceSet 2020-02-19 10:31:10 -05:00
Jeremy Stretch
f1b0421805 Temporary hack to avoid name collision without renaming the secrets app 2020-02-18 18:00:00 -05:00
Jeremy Stretch
8cfb5ac5c6 Fixes #3967: Fix missing migration for interface templates of type "other" 2020-02-18 16:56:50 -05:00
Jeremy Stretch
ae1767b5d0 Remove obsolete InterfaceManager 2020-02-18 16:22:17 -05:00
Jeremy Stretch
84d078a539 Fixes #4196: Fix exception when viewing LLDP neighbors page 2020-02-18 16:21:50 -05:00
Jeremy Stretch
01b9d1a493 Closes #3848: Upgrade to Django 3.0 2020-02-18 16:03:28 -05:00
Jeremy Stretch
2a1de0202f Add helpful links to "new issue" page 2020-02-18 11:43:47 -05:00
Jeremy Stretch
4ea8967c2d Fixes #4194: Role field should not be required when searching/filtering secrets 2020-02-18 11:14:37 -05:00
Jeremy Stretch
a456cbb26c Fixes #4179: Site is required when creating a rack group or power panel 2020-02-18 11:08:16 -05:00
Jeremy Stretch
5b505b21c8 Fixes #4183: Fix representation of NaturalOrderingField values in change log 2020-02-18 10:50:14 -05:00
John Anderson
9116d74cf7 merge develop 2020-02-18 00:39:30 -05:00
John Anderson
a136a0788c #4121 - dynamic filter lookup expressions 2020-02-18 00:32:58 -05:00
Saria Hajjar
89ab6553d6 Changelog for #2511 2020-02-15 23:55:03 +00:00
Saria Hajjar
faa22cb637 Fixes #2511: Compare object change to the previous change 2020-02-15 22:39:08 +00:00
Jeremy Stretch
d6ccf13167 Changelog for #4081 2020-02-14 15:44:52 -05:00
Jeremy Stretch
f6cbce65fa Merge pull request #4178 from netbox-community/4081-drop-ip-family
Closes #4081: Drop the family column from IP objects
2020-02-14 15:42:19 -05:00
Jeremy Stretch
f0ced98dc6 Delete unused test data 2020-02-14 15:17:04 -05:00
Jeremy Stretch
fcdb05238c Restore filters 2020-02-14 15:16:18 -05:00
Jeremy Stretch
8687226cc7 Update family filters in querysets 2020-02-14 15:11:12 -05:00
Jeremy Stretch
047f13ac5d Update tests 2020-02-14 15:10:34 -05:00
Jeremy Stretch
b475a575e4 Drop family column from Aggregate, Prefix, and IPAddress models 2020-02-14 15:04:33 -05:00
Jeremy Stretch
1a8eea5aa9 Fixes #4175: Fix potential exception when bulk editing objects from a filtered list 2020-02-14 14:27:47 -05:00
Jeremy Stretch
8cb6aed8fa Closes #3753: Remove rack units endpoint (replaced with elevation) 2020-02-14 13:59:07 -05:00
Jeremy Stretch
926b1fadf2 Merge branch 'develop' into develop-2.8 2020-02-14 13:44:10 -05:00
Jeremy Stretch
2de8d8b73d Merge pull request #4174 from netbox-community/4164-object-list-template
Closes #4164: Consolidate object list templates
2020-02-14 13:31:25 -05:00
Jeremy Stretch
440f754fec Clean up TODO notes 2020-02-14 13:30:53 -05:00
Jeremy Stretch
815a46bfbe Convert device and VM list views to use obj_list.html 2020-02-14 13:21:32 -05:00
Jeremy Stretch
182fddddd2 Merge branch 'develop' into 4164-object-list-template 2020-02-14 13:11:30 -05:00
Jeremy Stretch
ce89fa74b9 Closes #4170: Improve color contrast in rack elevation drawings 2020-02-14 13:09:01 -05:00
Jeremy Stretch
7ce1289bb2 Clean up unused imports 2020-02-14 12:04:56 -05:00
Jeremy Stretch
e4df02887b Changelog for #3840 2020-02-14 12:04:35 -05:00
Jeremy Stretch
6bc7be7ba5 Merge pull request #3925 from hSaria/3840-limit-vlan-choices
Fixes #3840: Only show valid interface VLAN choices
2020-02-14 11:48:29 -05:00
Saria Hajjar
7aba8e3ec4 Added back clean 2020-02-14 16:43:42 +00:00
Jeremy Stretch
8d5ea5d005 Merge pull request #4169 from dstarner/redis-sentinel-conn-check
[Corollary to #4161] Redis Connection Check when Using Sentinel
2020-02-14 11:43:04 -05:00
Dan Starner
ec0f45e20d remove redis conn check from extras AppConfig 2020-02-14 11:16:59 -05:00
Jeremy Stretch
0c8ad45976 Merge pull request #4172 from dstarner/4171-required-settings-documentation-format
[Fix #4171] fix extraneous formatting of notice boxes in required settings doc
2020-02-14 10:47:40 -05:00
Dan Starner
e431ef09e5 fix extraneous formatting of notice boxes in required settings doc 2020-02-14 10:29:09 -05:00
Dan Starner
03a7f6bbda ammend redis conn check to acccount for sentinel 2020-02-14 09:39:01 -05:00
Jeremy Stretch
a4705fa73a Changelog for #2519 2020-02-14 09:35:43 -05:00
Jeremy Stretch
0a8d39cfe4 Merge pull request #3726 from eSentire/fix-2519
Fix race condition in available-prefix/ip APIs
2020-02-14 09:32:51 -05:00
Jeremy Stretch
1d72436bfc Fixes #4168: Role is not required when creating a virtual machine 2020-02-14 09:13:05 -05:00
Jeremy Stretch
598d23fc03 Post-release version bump 2020-02-13 21:51:03 -05:00
Jeremy Stretch
472a45ddec Merge pull request #4167 from netbox-community/develop
Release v2.7.6
2020-02-13 21:50:44 -05:00
Jeremy Stretch
0863145c7f Release v2.7.6 2020-02-13 21:46:03 -05:00
Jeremy Stretch
909323663e Fixes #4166: Fix schema migrations to enforce maximum character length for naturalized fields 2020-02-13 21:41:00 -05:00
Jeremy Stretch
8212c8f6fc Convert IPAM list views to extend standard template 2020-02-13 17:22:17 -05:00
Jeremy Stretch
8df9bb6fb4 Convert change log view to extend standard template 2020-02-13 17:11:39 -05:00
Jeremy Stretch
ff952fb221 Migrate extras views to use common object list template 2020-02-13 16:39:38 -05:00
John Anderson
9ead2635c5 merge develop 2020-02-13 16:00:07 -05:00
Jeremy Stretch
4d50cad6ed Post-release version bump 2020-02-13 15:39:08 -05:00
Jeremy Stretch
120cbb0159 Merge pull request #4165 from netbox-community/develop
Release v2.7.5
2020-02-13 15:36:50 -05:00
Jeremy Stretch
08ce024473 Release v2.7.5 2020-02-13 15:32:09 -05:00
Jeremy Stretch
807c2f048d Changelog for #3984 2020-02-13 15:16:07 -05:00
Jeremy Stretch
fafcdf7def Merge pull request #4161 from dstarner/issue-3984-redis-sentinel-conn
Fixes #3984: Allow for Redis Sentinel Connection Configuration
2020-02-13 15:14:42 -05:00
Jeremy Stretch
92fab048d1 Add tests for naturalization functions 2020-02-13 15:13:43 -05:00
Jeremy Stretch
6884404957 Migrate virtualization views to use common object list template 2020-02-13 14:24:22 -05:00
Jeremy Stretch
88c917231d Migrate tenancy views to use common object list template 2020-02-13 14:21:14 -05:00
Jeremy Stretch
a054aff3c4 Migrate secrets views to use common object list template 2020-02-13 14:19:14 -05:00
Jeremy Stretch
8fd809ac5e Migrate IPAM views to use common object list template 2020-02-13 14:17:13 -05:00
Jeremy Stretch
fff657cd5a Migrate DCIM views to use common object list template 2020-02-13 14:07:15 -05:00
Jeremy Stretch
4ef15e4dc8 Migrate circuits views to use common object list template 2020-02-13 13:31:04 -05:00
Jeremy Stretch
c5f74cce80 Introduce a common template for object list views 2020-02-13 13:29:50 -05:00
Jeremy Stretch
35498c17d7 Updated the style guide 2020-02-13 11:04:07 -05:00
Jeremy Stretch
874e59b01a Closes #4060: Move secrets panel on home page to righthand column 2020-02-13 10:30:12 -05:00
Dan Starner
72f0e31b84 fixed extraneous linting error 2020-02-13 10:27:56 -05:00
Dan Starner
ba9a2956a8 documentation on redis sentinel 2020-02-13 10:26:03 -05:00
Dan Starner
3538eeda14 allow for redis sentinel connection 2020-02-13 10:26:03 -05:00
Jeremy Stretch
0c89534bfb Closes #4160: Link to full database configuration parameters in configuration docs 2020-02-13 10:08:10 -05:00
Jeremy Stretch
47b15aacef Changelog for #4159 2020-02-13 09:48:12 -05:00
Jeremy Stretch
3e0ab79977 Merge pull request #4162 from netbox-community/4159-caching_redis_using_wrong_key
Fixes: #4159 - Corrects settings.py to use CACHING_REDIS
2020-02-13 09:46:41 -05:00
Jeremy Stretch
344fa72357 renaturalize command should not skip any values 2020-02-13 09:33:01 -05:00
Daniel Sheppard
617fc7659f Fixes: #4159 - Corrects settings.py to use CACHING_REDIS instead of WEBHOOKS_REDIS 2020-02-13 08:26:47 -06:00
Jeremy Stretch
0d91b6b74b Merge pull request #4102 from kobayashi/4093-vm-status-choice
Fixes #4093: Additional status choices for vms
2020-02-12 22:58:43 -05:00
kobayashi
335343642b additional status choices for vms 2020-02-12 22:43:40 -05:00
kobayashi
bc7f5fb33a Modify offline status color for vm 2020-02-12 22:19:17 -05:00
kobayashi
ca56fc709a Fixes #4093: Add decommissioning for vms 2020-02-12 22:19:17 -05:00
Jeremy Stretch
a08ee68033 Exempt pull requests from stalebot 2020-02-12 21:56:23 -05:00
Jeremy Stretch
0d57cb0033 Changelog & docs for #3766 2020-02-12 16:54:40 -05:00
Jeremy Stretch
53804d39bb Merge pull request #4142 from netbox-community/3766-enable_widgets_in_script_fields
Fixes: #3766 - Enable widget usage in scripts
2020-02-12 16:48:08 -05:00
Jeremy Stretch
1e221cd9bb Update changelog 2020-02-12 16:28:19 -05:00
Jeremy Stretch
0c942f18c1 Merge pull request #4068 from netbox-community/4034-prefix_ordering_tests
Fixes: #4034 - Adds Prefix & IPAddress Ordering Tests
2020-02-12 16:27:02 -05:00
Jeremy Stretch
00d32f0a7d Merge pull request #4156 from netbox-community/4153-renaturalize-command
Closes #4153: Add a "renaturalize" management command
2020-02-12 16:20:52 -05:00
Jeremy Stretch
df3fef8bb1 Merge pull request #4154 from netbox-community/4138-device_bays_in_rack_elevations
Fixes: #4138 - Add Device Bay count to rack elevation
2020-02-12 16:19:57 -05:00
Jeremy Stretch
5cc24c055b Tweak docs link for send_mail() to reference stable; formatting 2020-02-12 16:18:08 -05:00
Jeremy Stretch
4064c32a7f Fix nav menu link for configcontext_add 2020-02-12 16:16:23 -05:00
Joshua Corrick
6d7c5d51fe Add email testing example (#4152)
* Add email testing example

Includes an example provided by  Jeremy

* Updated with suggestions

Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-02-12 16:15:05 -05:00
Jeremy Stretch
64c0059dd8 Merge pull request #4155 from hSaria/4150-yaml-nested-tags
Fixes #4150: Replace OrderedDict with Dict when rendering YAML
2020-02-12 16:13:32 -05:00
Jeremy Stretch
d0ece2e48d Merge pull request #4144 from netbox-community/3986-rack_positions_svg
Fixes: #3986 - Convert rack units to part of SVG rendered document
2020-02-12 16:06:05 -05:00
Jeremy Stretch
139f18b2e5 Closes #4153: Add a management command to manually renaturalize applicable objects (from #3799) 2020-02-12 15:59:37 -05:00
Saria Hajjar
8eea0331bf Fixes #4150: Replace OrderedDict with Dict when rendering YAML 2020-02-12 19:59:04 +00:00
Daniel Sheppard
62d6e02d6b Modify _draw_elevations
* Add legend_width argument, variable & constant
* Applied legend_width variable where required
* Removed U prefix
2020-02-12 13:15:29 -06:00
Jeremy Stretch
a8601bb1fd Merge pull request #4151 from netbox-community/4146-secretrole-enforcement
Fixes #4146: Fix SecretRole permissions enforcement
2020-02-12 13:51:44 -05:00
Daniel Sheppard
fe452735be Add Device Bay count to rack elevation names 2020-02-12 12:48:13 -06:00
Jeremy Stretch
3b1128f8f3 Establish standard test cases for all models 2020-02-12 13:25:56 -05:00
Daniel Sheppard
0402323ef9 Fixes: #4130
Corrects service name for the RQ worker service in docs/installation/upgrading.md
2020-02-12 11:26:40 -06:00
Jeremy Stretch
5bf85597ed Fixes #4146: Fix SecretRole permissions enforcement 2020-02-12 11:13:32 -05:00
Jeremy Stretch
e4b910fe87 Fixes #4148: Remove dead link to topology maps docs page 2020-02-12 09:44:30 -05:00
Jeremy Stretch
24db573764 Merge pull request #3997 from hSaria/3995-navbar-overflow
Fixes #3995: Navbar scroll when overflowing
2020-02-12 09:41:48 -05:00
Jeremy Stretch
5befa533c6 Merge branch 'develop' into 3995-navbar-overflow 2020-02-12 09:40:31 -05:00
Dan Sheppard
15bc731f61 Convert rack units to part of SVG rendered document 2020-02-11 23:31:51 -06:00
Dan Sheppard
8fb4988fa1 Fix typo in docstring 2020-02-11 21:01:43 -06:00
Daniel Sheppard
ab378ed218 Fixes: #4130
Corrects service name for the RQ worker service in docs/installation/upgrading.md
2020-02-11 20:39:50 -06:00
Daniel Sheppard
56bb053146 Fix test error 2020-02-11 20:27:02 -06:00
Daniel Sheppard
3c3cca8ec1 Enable widget usage (APISelect, APIMultipleSelect, StaticSelect2, etc) in scripts 2020-02-11 20:12:02 -06:00
Dan Sheppard
908586c93a Fix PEP8 errors 2020-02-11 18:21:58 -06:00
Matt Olenik
2e83ce76ed Fix race condition in available-prefix/ip APIs
Implement advisory lock to prevent duplicate records being inserted
when making simultaneous calls. Fixes #2519
2020-02-11 13:36:52 -08:00
Jeremy Stretch
2ab382eec5 Fixes #4137: Disable occupied terminations when connecting a cable to a circuit 2020-02-11 14:56:02 -05:00
Jeremy Stretch
2503978555 Add navigation menu link for adding config contexts 2020-02-11 14:32:41 -05:00
Anton Tokarev
55886d6793 fix typo (#4135)
Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-02-11 14:22:32 -05:00
Jeremy Stretch
009c0ba31c Fixes #4134: Device power ports and outlets should inherit type from the parent device type 2020-02-11 14:18:45 -05:00
Jeremy Stretch
ec53e1c74c Merge pull request #4136 from netbox-community/3912-remove-chained-fields
Closes #3912: Remove chained form fields
2020-02-11 14:01:55 -05:00
Jeremy Stretch
7177fcfa61 Use DynamicModelChoiceField for all fields using APISelect 2020-02-11 12:25:40 -05:00
Jeremy Stretch
fb56d5bc66 Account for initial data when binding a DynamicModelChoiceField 2020-02-11 10:21:44 -05:00
Jeremy Stretch
221805a63e Use TreeNode choice fields for region assignment 2020-02-11 09:50:33 -05:00
Jeremy Stretch
da68968d75 Replace FilterChoiceField with DynamicModelMultipleChoiceField 2020-02-11 09:33:41 -05:00
Dan Sheppard
ca795f729f Merge branch '4034-prefix_ordering_tests' of https://github.com/netbox-community/netbox into 4034-prefix_ordering_tests
 Conflicts:
	netbox/ipam/tests/test_ordering.py
2020-02-10 21:38:53 -06:00
Dan Sheppard
ff4e6bd166 Update tests
Add docstrings
Consolidate tests
2020-02-10 21:37:40 -06:00
Jeremy Stretch
5ea30c8628 Replace ChainedModelChoiceField with DynamicModelChoiceField 2020-02-10 17:23:52 -05:00
Jeremy Stretch
a54fcda781 Merge pull request #4133 from netbox-community/4083-serializer-null-choices
Fixes #4083: Permit nullifying applicable choice fields via API requests
2020-02-10 15:16:38 -05:00
Jeremy Stretch
7388fa3556 Fixes #4083: Permit nullifying applicable choice fields via API requests 2020-02-10 15:10:33 -05:00
Jeremy Stretch
a966a4c8ac Closes #4129: Add individual deletion views for device type components 2020-02-10 11:43:51 -05:00
Jeremy Stretch
ebef48e472 Merge pull request #4075 from kobayashi/3507-filter-by-devices
Fixes #3507: Filtering IP by multiple devices
2020-02-10 11:11:18 -05:00
Jeremy Stretch
26ca6b4a84 #4108: Fix null choice population 2020-02-10 10:57:23 -05:00
Jeremy Stretch
3da6f22479 Merge pull request #4128 from netbox-community/4108-apiselect-performance
Closes #4108: Extraneous queryset evaluation by FilterChoiceFields
2020-02-10 10:26:49 -05:00
Jeremy Stretch
d4789b7c9e Changelog for #4108 2020-02-10 10:20:06 -05:00
Jeremy Stretch
5008526db1 Set a default self.to_field_name for FilterChoiceField 2020-02-10 10:08:20 -05:00
Jeremy Stretch
009fc4f301 Remove custom template for APISelect widget 2020-02-10 10:02:42 -05:00
Jeremy Stretch
55f5ede970 Standardize usage of FilterChoiceField 2020-02-10 09:58:33 -05:00
Jeremy Stretch
5ddfde2214 Clean up unneeded code relevant to FilterChoiceField 2020-02-10 09:44:19 -05:00
John Anderson
9284e83270 py3.5 compatibility 2020-02-09 21:32:45 -05:00
John Anderson
a6b43b30e9 functional dynamic filter lookups 2020-02-09 17:46:21 -05:00
John Anderson
a311002141 initial work on dynamic lookup expressions 2020-02-09 03:20:59 -05:00
kobayashi
505cb9cab8 Enabled filtering virtual chassis devices 2020-02-09 00:58:54 -05:00
kobayashi
d5c4a9d159 Fixes #3507: Filtering IP by multiple devices 2020-02-09 00:42:01 -05:00
Saria Hajjar
26ddd96e30 Cleaned duplicate code 2020-02-08 16:18:58 +00:00
Saria Hajjar
f0c83e168e Merge branch 'develop' into 3840-limit-vlan-choices 2020-02-08 16:14:10 +00:00
Jeremy Stretch
885ea8a4d5 Override get_bound_field() on FilterChoiceFieldMixin to restrict the queryset of bound fields 2020-02-07 18:04:40 -05:00
Jeremy Stretch
202a0a0e73 Merge pull request #4122 from netbox-community/3799-natural-ordering-field
Closes #3799: Remove NaturalOrderingManager
2020-02-07 16:26:45 -05:00
Jeremy Stretch
5bfd65b5fe Changelog for #3799 2020-02-07 16:18:15 -05:00
Jeremy Stretch
7c74d2ca65 Convert interface models to use NaturalOrderingField 2020-02-07 15:58:03 -05:00
Jeremy Stretch
9adeed55fb Update table field ordering 2020-02-07 12:44:51 -05:00
Jeremy Stretch
12c7d83a91 Fix PowerOutlet migrations 2020-02-07 12:43:53 -05:00
Jeremy Stretch
dc1b7874ff Store empty names as null 2020-02-07 12:24:38 -05:00
Jeremy Stretch
c72a353733 Enable reverse migration 2020-02-07 12:23:52 -05:00
Jeremy Stretch
35511cfdc1 Remove NaturalOrderingManager 2020-02-07 11:59:32 -05:00
Jeremy Stretch
099c446f38 Convert remaining DCIM models to use NaturalOrderingField 2020-02-07 11:59:16 -05:00
Jeremy Stretch
705c352885 Convert device component templates to use NaturalOrderingField 2020-02-07 11:42:12 -05:00
Jeremy Stretch
12d09e2274 Convert device components to use NaturalOrderingField 2020-02-07 11:36:58 -05:00
Jeremy Stretch
b271fd32bd Introduce NaturalOrderingField 2020-02-07 11:36:22 -05:00
Jeremy Stretch
b3c2b78e8a Chnagelog for #4100 2020-02-07 09:24:51 -05:00
Jeremy Stretch
97a89948c8 Merge pull request #4115 from hSaria/4100-interface-filter-device
Fixes #4100: Added device field to device components filter forms
2020-02-07 09:20:49 -05:00
Jeremy Stretch
1e61fcb485 Merge pull request #4117 from netbox-community/4116-component-bulk-actions
Closes #4116: Enable bulk edit and delete functions for device component list views
2020-02-06 22:03:25 -05:00
Jeremy Stretch
4cc9f2f67d Changelog for #4116 2020-02-06 21:52:10 -05:00
Jeremy Stretch
52257467c3 Tweak bulk edit views to dynamically remove device-dependent fields 2020-02-06 21:44:28 -05:00
Jeremy Stretch
4563749fd9 Enable bulk edit/delete views for all device components 2020-02-06 20:58:14 -05:00
Jeremy Stretch
6d242ec348 Correct typo 2020-02-06 20:46:19 -05:00
Saria Hajjar
d0e00162ed Account for header height 2020-02-07 00:14:05 +00:00
Saria Hajjar
21f2e0b131 Changed navbar scrollbar to auto 2020-02-06 23:30:58 +00:00
hSaria
6ac8d41323 Merge branch 'develop' into 3995-navbar-overflow 2020-02-06 23:18:24 +00:00
Saria Hajjar
bb9e1ad857 Fixes #4100: Added device field to device components filter forms 2020-02-06 23:10:38 +00:00
Jeremy Stretch
98de88de90 Standardize URL paths for VM interfaces 2020-02-06 17:40:04 -05:00
Jeremy Stretch
c571aa68be Changelog for #4113 2020-02-06 16:05:30 -05:00
Jeremy Stretch
091d860ae5 Merge pull request #4114 from netbox-community/4113-component-bulk-editing
Closes #4113: Add bulk edit functionality for device type components
2020-02-06 16:03:37 -05:00
Jeremy Stretch
b5344b0aa7 Fix table links for adding new components 2020-02-06 15:54:52 -05:00
Jeremy Stretch
17e0054941 Fix up bulk editing forms 2020-02-06 15:51:51 -05:00
Jeremy Stretch
1b5969a5ee Add tests for DeviceType component bulk edit views 2020-02-06 15:33:47 -05:00
Jeremy Stretch
3378287b0c Add bulk edit views for DeviceType components 2020-02-06 15:29:10 -05:00
Jeremy Stretch
077d692d6d Merge pull request #4112 from netbox-community/4109-devicetype-component-tests
Closes #4109: Add view tests for device component templates
2020-02-06 14:57:10 -05:00
Jeremy Stretch
5620fdc63e Add tests for device type component views 2020-02-06 14:39:36 -05:00
Jeremy Stretch
f7ca97d51f Fix bulk edit buttons 2020-02-06 13:19:25 -05:00
Jeremy Stretch
d400f92ee8 Overhaul device component template creation views/URLs 2020-02-06 13:13:40 -05:00
Jeremy Stretch
c1792653cc Rename device component edit URLs 2020-02-06 12:18:53 -05:00
Jeremy Stretch
aebfb143e0 Rename component template deletion URLs 2020-02-06 12:16:28 -05:00
Jeremy Stretch
ef4ea06f5d Reorganized device component URLs (again) 2020-02-06 11:51:27 -05:00
Jeremy Stretch
85729f3df8 Simplify help_text for ExpandableNameField 2020-02-06 11:44:29 -05:00
Jeremy Stretch
a2475ee501 Remove obsolete ComponentForm 2020-02-06 11:36:25 -05:00
Jeremy Stretch
71601aad39 Replace HiddenInput widget on device component creation forms with APISelect 2020-02-06 11:29:50 -05:00
Jeremy Stretch
c1c8b5e816 Introduce InventoryItemCreateView to bring inventory items up to par with other components 2020-02-06 10:59:13 -05:00
Jeremy Stretch
2296cdc222 Fixes #4090: Render URL custom fields as links under object view 2020-02-05 17:08:39 -05:00
Jeremy Stretch
070b41e694 Reduce number of changelog entries to improve page loading time 2020-02-05 17:01:46 -05:00
Jeremy Stretch
d04626e75f Fixes #4099: Linkify interfaces on global interfaces list 2020-02-05 16:52:42 -05:00
Jeremy Stretch
68738e683a Fixes #4091: Fix filtering of objects by custom fields using UI search form 2020-02-05 16:39:42 -05:00
Jeremy Stretch
3f2c74f5e7 Merge pull request #4096 from elju/patch-1
Updated forms.py to match current naming (Fix for #4095)
2020-02-05 16:25:34 -05:00
Jeremy Stretch
a58bbccfd3 Fixes #4094: Convert unnecessary regular expressions to strings in URL patterns 2020-02-05 16:12:48 -05:00
Jeremy Stretch
b1e78fa3c4 Merge pull request #4098 from netbox-community/4086-device-component-urls
Closes #4086: Rename device component create/edit/delete URLs
2020-02-05 16:03:14 -05:00
Jeremy Stretch
0d3ff664b6 Move model_to_dict() into assertInstanceEqual(); clean up test data 2020-02-05 15:47:50 -05:00
Jeremy Stretch
b0c0ad7c82 Adapt component creation forms to infer parent device/VM from initial or bound data 2020-02-05 15:31:30 -05:00
Jeremy Stretch
0ad613e6b4 Enable bulk creation tests for device components 2020-02-05 15:22:57 -05:00
Jeremy Stretch
75906f7591 Move component bulk creation views to new URLs 2020-02-05 12:36:38 -05:00
El Ju
c49d977379 Updated forms.py to match current naming 2020-02-05 17:26:44 +01:00
Jeremy Stretch
6b9fa5e76f Enable tests for component bulk edit views 2020-02-05 11:14:07 -05:00
Jeremy Stretch
57a0cf0a33 Fix component bulk edit views 2020-02-05 10:28:39 -05:00
Jeremy Stretch
f8ce67c69f Tweak BulkEditView to improve handling of initial PK values 2020-02-05 09:56:49 -05:00
Jeremy Stretch
d0295f089d Fixes #4089: Selection of power outlet type during bulk update is optional 2020-02-04 20:49:42 -05:00
Jeremy Stretch
f805b57778 Adapt BulkEditView to not require a parent object for device components 2020-02-04 18:08:40 -05:00
Jeremy Stretch
3e79b9d26a Add InterfaceTestCase for virtual machines 2020-02-04 16:40:18 -05:00
Jeremy Stretch
c1639b7781 Move component bulk delete views to new URLs 2020-02-04 16:06:55 -05:00
Jeremy Stretch
fca347e49e Reorder URLs 2020-02-04 15:41:15 -05:00
Jeremy Stretch
32623148dc Post-release version bump 2020-02-04 15:06:58 -05:00
Jeremy Stretch
68fbd9b017 Merge pull request #4088 from netbox-community/develop
Release v2.7.4
2020-02-04 15:04:34 -05:00
Jeremy Stretch
11d67509e0 Release v2.7.4 2020-02-04 14:57:12 -05:00
Jeremy Stretch
c96fc6e21a Merge pull request #4087 from netbox-community/4085-dcim-component-view-tests
Closes #4085: Standardize device component view tests
2020-02-04 14:51:48 -05:00
Jeremy Stretch
763d9b9cf7 Convert all DCIM component view tests to use StandardTestCases 2020-02-04 14:25:02 -05:00
Jeremy Stretch
bece1155ee Introduce create_test_device() to reduce test setup boilerplate 2020-02-04 11:58:52 -05:00
Jeremy Stretch
cbe090cd3c Fixes #4084: Fix exception when creating an interface with tagged VLANs 2020-02-04 11:47:14 -05:00
Jeremy Stretch
c3a6a4520a #3894 follow-up 2020-02-04 10:09:22 -05:00
Jeremy Stretch
67e427403f Merge pull request #3894 from hSaria/2921-tags-select2
Fixes #2921: Replace tags filter with Select2 widget
2020-02-04 09:38:14 -05:00
Jeremy Stretch
0d41d12267 Merge branch 'develop' into 2921-tags-select2 2020-02-04 09:37:31 -05:00
Jeremy Stretch
efb7f151ec Changelog for #3313 2020-02-03 16:20:29 -05:00
Jeremy Stretch
fe22a8d0af Merge pull request #4011 from hSaria/3313-config-context-gui
Fixes #3313: YAML-format the config context in the GUI
2020-02-03 16:13:58 -05:00
Jeremy Stretch
ed99158391 Merge branch 'develop' into 3313-config-context-gui 2020-02-03 16:07:15 -05:00
Jeremy Stretch
b0f7feefa8 Changelog for #3886 2020-02-03 16:04:25 -05:00
Jeremy Stretch
fcd8e93e2e Merge pull request #4014 from hSaria/3886-config-context-cluster
Fixes #3886: Config context cluster (group)
2020-02-03 16:02:56 -05:00
Jeremy Stretch
173c530fab Merge pull request #4064 from netbox-community/3961-change-systemd-instructions
Fixes: #3961 - Update migrate-to-systemd.md documentation
2020-02-03 15:46:20 -05:00
Jeremy Stretch
0a87df48ab Update GitHub issue templates 2020-02-03 14:45:36 -05:00
Jeremy Stretch
eef79e1443 Fixes #4079: Fix assignment of power panel when bulk editing power feeds 2020-02-03 14:34:47 -05:00
Jeremy Stretch
91929aae1b Merge pull request #4080 from netbox-community/4077-view-tests
Closes #4077: Add tests for bulk edit/delete views
2020-02-03 14:32:56 -05:00
Jeremy Stretch
3f13441a5d Add view tests for power panels and power feeds 2020-02-03 14:25:06 -05:00
Jeremy Stretch
7b4f3e8261 Correct view for PowerFeed creation URL 2020-02-03 14:24:32 -05:00
Jeremy Stretch
d431efb7d4 Add bulk edit view tests 2020-02-03 13:53:19 -05:00
Jeremy Stretch
4aa694f044 Skip non-model fields when applying bulk changes 2020-02-03 13:07:46 -05:00
Jeremy Stretch
c3bd1881f5 Correct nullable_fields for ServiceBulkEditForm 2020-02-03 12:25:20 -05:00
Jeremy Stretch
a4aadf730c Correct default_return_url for TagBulkEditView 2020-02-03 11:59:43 -05:00
Jeremy Stretch
24ab082674 Add bulk delete view tests 2020-02-03 10:04:09 -05:00
Saria Hajjar
bceaa4a9a4 Corrected models for cluster and cluster group fields 2020-02-02 23:37:01 +00:00
Jeremy Stretch
5386ed438e Extend standard view test case to validate built-in CSV export 2020-01-31 17:09:50 -05:00
Jeremy Stretch
2ea95941e2 Removed obsolete CSV headers from DeviceType (export is now YAML-based) 2020-01-31 17:08:38 -05:00
Jeremy Stretch
f632b5bc29 Fixes #4067: Correct permission checked when creating a rack (vs. editing) 2020-01-31 16:12:46 -05:00
Jeremy Stretch
cea1e3d090 Fixes #4071: Enforce "view tag" permission on individual tag view 2020-01-31 16:10:16 -05:00
Jeremy Stretch
ce081a6e15 Merge pull request #4072 from netbox-community/4000-view-tests
Closes #4000: Add tests for the create, edit, and delete views of all models
2020-01-31 16:07:32 -05:00
Jeremy Stretch
eb9538d6da Clean up imports 2020-01-31 15:59:26 -05:00
Jeremy Stretch
e50eab2342 Convert virtualization view tests to use StandardTestCases 2020-01-31 15:57:33 -05:00
Jeremy Stretch
5517145ae3 Convert tenancy view tests to use StandardTestCases 2020-01-31 15:44:10 -05:00
Jeremy Stretch
e8e39dc5e3 Convert secrets view tests to use StandardTestCases 2020-01-31 15:37:58 -05:00
Jeremy Stretch
b361cb00f2 Convert IPAM view tests to use StandardTestCases 2020-01-31 15:19:10 -05:00
Jeremy Stretch
3668aa21fe Fix DeviceTypeTestCase permissions assignment for custom tests 2020-01-31 14:29:56 -05:00
Jeremy Stretch
8881bba696 Suppress tag view test until #4071 is fixed 2020-01-31 14:22:56 -05:00
Jeremy Stretch
250bda2bf6 Extend and correct evaluation of view permissions 2020-01-31 14:13:30 -05:00
Jeremy Stretch
936e3424bb Refactor model_to_dict() to better handle tags 2020-01-31 14:12:48 -05:00
Jeremy Stretch
ab7b921641 Convert extras view tests to StandardTestCases 2020-01-31 13:45:09 -05:00
Jeremy Stretch
c9d0dcecf3 model_to_dict(): Convert object lists to PK lists 2020-01-31 13:44:34 -05:00
Jeremy Stretch
86ef739c12 Migrate (most) DCIM view tests to use StandardTestCases 2020-01-31 12:32:33 -05:00
Jeremy Stretch
c14496d0c4 DeviceForm.manufacturer should not be a required field 2020-01-31 12:28:50 -05:00
Jeremy Stretch
a208cbdf0b model_to_dict(): Remove fields that start with an underscore 2020-01-31 12:14:51 -05:00
Jeremy Stretch
6a17be740b post_data(): Ignore iterables 2020-01-31 11:50:12 -05:00
Daniel Sheppard
8e9a0eeef0 Fix PEP8 errors and document functions 2020-01-31 10:05:57 -06:00
Daniel Sheppard
d746448d7d Fixes: #3961 - Edit migrate-to-systemd.md to closely match installation instructions under 3-http-daemon.md 2020-01-31 09:39:27 -06:00
Jeremy Stretch
7daf1df22d Add _get_url() for View test case 2020-01-31 10:30:13 -05:00
Jeremy Stretch
78d43a5d66 Move form/CSV data declaration under setUpTestData 2020-01-31 09:27:41 -05:00
Jeremy Stretch
939b5f2e29 Reorganize test classes to prevent unittest from running the base TestCases 2020-01-31 09:00:01 -05:00
Saria Hajjar
0d18c296a9 Set default config context format to JSON to maintain existing behavior 2020-01-31 11:11:42 +00:00
Jeremy Stretch
98cce7eee4 Added ViewTestCase (WIP) 2020-01-30 21:57:20 -05:00
Jeremy Stretch
e01c984c01 Introduced a custom model_to_dict() 2020-01-30 20:48:26 -05:00
Jeremy Stretch
4522a285e0 Fix headings 2020-01-30 20:05:27 -05:00
Jeremy Stretch
a44c4d14e4 Convert view tests under extras to the new TestCase 2020-01-30 18:13:02 -05:00
Jeremy Stretch
67fafb2b9d Use assertHttpStatus for evaluating HTTP response codes 2020-01-30 18:08:25 -05:00
Jeremy Stretch
179abcc79d Refactor APITestCase to subclass TestCase 2020-01-30 17:57:34 -05:00
Jeremy Stretch
316c0b6168 Merge pull request #4053 from netbox-community/4051-disable-makemigrations
Closes #4051: Disable the makemigrations management command
2020-01-30 16:50:40 -05:00
Jeremy Stretch
ac27759250 Merge branch 'develop' into 4051-disable-makemigrations 2020-01-30 16:49:15 -05:00
Jeremy Stretch
c8c9f78829 Documented the new DEVELOPER configuration parameter 2020-01-30 16:47:44 -05:00
Jeremy Stretch
61ac7c44ba Migrate view tests to use new TestCase class 2020-01-30 16:37:40 -05:00
Jeremy Stretch
43b2c36066 Introduced a custom TestCase 2020-01-30 16:19:51 -05:00
Jeremy Stretch
1a25f5a7f2 Fixes #4030: Fix exception when bulk editing interfaces (revised) 2020-01-30 15:12:10 -05:00
Jeremy Stretch
b9765b857d Merge pull request #4050 from netbox-community/568-customfield-csv-import
Closes #568: Extend CSV import to support custom fields
2020-01-30 14:04:57 -05:00
agrrajag
d0d2af4cab Update 3-http-daemon.md (#4055)
There was no documentation to move back into the netbox folder after installing/configuring nginx. You would move into nginx on line 42 then try and figure out why you couldn't copy gunicorn on line 113.
2020-01-30 14:00:37 -05:00
Jeremy Stretch
4b02d294ce Fixes #4052: Fix error when bulk importing interfaces to virtual machines 2020-01-30 13:55:39 -05:00
Jeremy Stretch
d9b8bc0422 Fix VM interfaces table header alignment 2020-01-30 13:39:50 -05:00
Saria Hajjar
ace8fac2c1 Removed changelog to avoid merge conflicts 2020-01-30 18:29:08 +00:00
Saria Hajjar
ae95b159bc Virtualization interfaces VLAN filtering 2020-01-30 18:26:30 +00:00
Saria Hajjar
ff822743cc Corrected linter warning 2020-01-30 18:10:39 +00:00
Saria Hajjar
7897ebb2ed Corrected changelog 2020-01-30 17:52:30 +00:00
Saria Hajjar
52f7ef4864 Merge branch 'develop' into 2921-tags-select2 2020-01-30 17:51:55 +00:00
Saria Hajjar
5879671971 Avoid overriding private attribute in super 2020-01-30 17:49:42 +00:00
Saria Hajjar
2375d66f75 Added TagFilterField to device components' filter forms 2020-01-30 17:45:03 +00:00
Jeremy Stretch
923c2728b3 Fixes #4056: Repair schema migration for Rack.outer_unit (from #3569) 2020-01-30 12:08:40 -05:00
Jeremy Stretch
4ba2579936 Closes #4051: Disable the makemigrations management command 2020-01-30 10:12:53 -05:00
John Anderson
8274903985 version bump for v2.8.0 2020-01-29 16:46:44 -05:00
Jeremy Stretch
03087e9d01 Fixes #4049: Restore missing tags field in IPAM service serializer 2020-01-29 16:22:06 -05:00
Jeremy Stretch
eafeaab014 Add tests for invalid import data 2020-01-29 16:07:32 -05:00
Jeremy Stretch
c75315fda6 Extend CSV import test 2020-01-29 15:34:55 -05:00
Jeremy Stretch
193435b554 Enable CSV import for custom fields 2020-01-29 14:29:47 -05:00
Dan Sheppard
d30d79b4e3 Cleanup Imports 2020-01-29 12:55:19 -06:00
Dan Sheppard
23155551d1 Remove complex ordering for IP addresses
After review complex ordering does not appear to be required
2020-01-29 12:54:55 -06:00
Jeremy Stretch
e6b018909d Introduced CustomFieldModelCSVForm 2020-01-29 13:53:26 -05:00
Dan Sheppard
22228b58f1 #4034 - Create tests for addresses 2020-01-29 12:52:48 -06:00
Jeremy Stretch
35f2291edc Fix assignment of initial CustomField values when editing an object 2020-01-29 13:31:36 -05:00
Jeremy Stretch
c3f86456d6 Remove get_custom_fields_for_model() 2020-01-29 12:12:47 -05:00
Jeremy Stretch
585ea71d1a Move form field generation logic to CustomField class 2020-01-29 11:44:37 -05:00
Jeremy Stretch
9929a05bfe Update release notes 2020-01-29 11:00:46 -05:00
Jeremy Stretch
f12199dcb5 Rename and simplify CustomFieldChoiceField 2020-01-29 11:00:03 -05:00
Jeremy Stretch
bc7cf63958 Rename and refactor CustomFieldForm 2020-01-29 10:59:18 -05:00
Jeremy Stretch
db3b4505c1 Merge pull request #3885 from hSaria/568-csv-import-cf
Fixes #568: CSV import/export of custom fields
2020-01-29 10:11:40 -05:00
Jeremy Stretch
943c644dc9 Merge pull request #4037 from newlandk/patch-1
Fixes #4039: LDAP Documentation
2020-01-29 10:09:07 -05:00
Jeremy Stretch
e0d538ad31 Fixes #4043: Fix toggling of required fields in custom scripts 2020-01-29 09:40:17 -05:00
Jeremy Stretch
1849473469 Merge pull request #4023 from smutel/UpdateDoc
Fixes #4024: Update nginx documentation
2020-01-29 09:29:50 -05:00
Dan Sheppard
084a68f6d1 #4034 - Create tests for prefixes 2020-01-28 22:11:31 -06:00
Kevin Newland
6fefa3c7dd update ldap documentation
use new ldap cache configuration in documentation
https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py#L360
2020-01-28 18:34:26 -06:00
Jeremy Stretch
4629cda9ad Post-release version bump 2020-01-28 16:42:33 -05:00
Jeremy Stretch
3143f75a38 Merge pull request #4035 from netbox-community/develop
Release v2.7.3
2020-01-28 16:39:09 -05:00
Jeremy Stretch
be716a3345 Release v2.7.3 2020-01-28 16:33:55 -05:00
Jeremy Stretch
8de9f52151 Fixes #4033: Restore missing comments field label of various bulk edit forms 2020-01-28 16:09:10 -05:00
Jeremy Stretch
0a11fc1221 Fixes #4030: Fix exception when setting interfaces to tagged mode in bulk 2020-01-28 14:19:29 -05:00
Jeremy Stretch
ede576a2ae Changelog for #4022 2020-01-28 13:55:44 -05:00
Jeremy Stretch
12cf69f7e1 Merge pull request #4022 from hSaria/4010-interface-ip-filter
Fixes #4010: Fixes IP addresses table when filtering interfaces
2020-01-28 13:54:21 -05:00
Jeremy Stretch
2a4ccae113 Merge pull request #4031 from kobayashi/3978-add-vrf-filter
Fixes #3978: VRF filtering for NAT IP search
2020-01-28 13:46:54 -05:00
Jeremy Stretch
77292050d4 Changelog for #4025 2020-01-28 13:38:03 -05:00
Jeremy Stretch
e7ef142620 Merge pull request #4026 from hSaria/4025-cable-status-class
Fixes #4025: Cable status class
2020-01-28 13:34:46 -05:00
Jeremy Stretch
07d8476cf5 Merge pull request #4032 from netbox-community/4027-ipaddress-migration
Fixes #4027: Repair schema migration for IP addresses with DHCP status
2020-01-28 13:32:17 -05:00
Jeremy Stretch
9b9e568446 Fixes #4027: Repair schema migration for #3569 to convert IP addresses with DHCP status 2020-01-28 12:49:00 -05:00
Saria Hajjar
8849f4b0a5 Added cluster groups and clusters to serializers 2020-01-28 17:30:26 +00:00
kobayashi
3c5346f60a Fixes #3978: VRF filtering for NAT IP search 2020-01-28 10:22:28 -05:00
Jeremy Stretch
8d547e9906 Fixes #4028: Correct URL patterns to match Unicode characters in tag slugs 2020-01-28 09:47:33 -05:00
Saria Hajjar
720bd87292 Fixed interface mark connected/planned buttons 2020-01-27 22:56:25 +00:00
Saria Hajjar
8306976b3e Removed erroneous double-space 2020-01-27 22:49:36 +00:00
Saria Hajjar
3bce8e9716 Fixes #4025: Cable status class 2020-01-27 22:44:38 +00:00
Jeremy Stretch
9c4f1d5795 Changelog for #3338 2020-01-27 17:24:00 -05:00
Jeremy Stretch
93fa00b673 #3338: Prefetch termination devices to avoid extra database queries 2020-01-27 17:22:31 -05:00
Jeremy Stretch
49a6332d37 Merge pull request #4012 from hSaria/3338-api-circuit-term
Fixes #3338: Added termination A and Z to the circuit
2020-01-27 17:14:40 -05:00
Saria Hajjar
5c5b9c95aa Interface selector restricted to only interface 2020-01-27 22:07:42 +00:00
Jeremy Stretch
7abcc7acaa Merge pull request #3993 from hSaria/3935-swagger-default-info
Fixes #3935: Swagger DEFAULT_INFO
2020-01-27 16:58:03 -05:00
Saria Hajjar
d0f127e575 Fixes #3338: Added termination A and Z to the circuit 2020-01-27 21:53:10 +00:00
Samuel Mutel
73b35e72d8 Update nginx documentation 2020-01-27 21:10:10 +01:00
Jeremy Stretch
00b50f9c65 Remove obsolete constants 2020-01-27 12:34:52 -05:00
Saria Hajjar
46d0e88da3 Fixes #4010: Fixes IP addresses table when filtering interfaces 2020-01-27 15:49:15 +00:00
Jeremy Stretch
1901f63b4c Update changelog 2020-01-27 09:45:18 -05:00
Jeremy Stretch
2662bd0ad8 Merge pull request #4017 from hSaria/4016-duplicate-tenant-field
Fixes #4016: Removed duplicate tenant field for cluster edit form
2020-01-27 09:36:36 -05:00
Jeremy Stretch
27d70b6b51 Merge pull request #4021 from hellerve/veit/fix-4019
SVG Elevation: Add borders on the rear of devices as well
2020-01-27 09:32:53 -05:00
hellerve
011280b0bf dcim: add borders on the rear of devices as well 2020-01-27 13:13:07 +01:00
Saria Hajjar
4e4a05d3b9 Fixes #4016: Removed duplicate tenant field for cluster edit form 2020-01-26 12:52:18 +00:00
Saria Hajjar
4abd3866ab Fixes #3886: Config context cluster (group) 2020-01-26 10:53:58 +00:00
Saria Hajjar
7cfdc5188c Corrected ConfigContext data 2020-01-25 17:55:01 +00:00
Saria Hajjar
265d5c87e7 Format for local and source contexts 2020-01-25 16:12:37 +00:00
Saria Hajjar
724d3b8894 Fixes #3313: YAML-format the config context in the GUI 2020-01-25 15:56:24 +00:00
Saria Hajjar
8ec0ad96bd Formatting 2020-01-24 22:20:41 +00:00
Saria Hajjar
c22024b618 Added CSV import test 2020-01-24 22:15:09 +00:00
Jeremy Stretch
7a548e806d Merge pull request #4009 from netbox-community/4006-remove-fixtures
Closes #4006: remove test fixtures
2020-01-24 16:36:41 -05:00
Jeremy Stretch
47962ea732 Adapt form tests to work without fixture data 2020-01-24 16:30:43 -05:00
Jeremy Stretch
eb4c2e5d7f Remove obsolete fixtures files 2020-01-24 16:29:23 -05:00
hSaria
ca035a72bd Merge branch 'develop' into 2921-tags-select2 2020-01-24 20:56:36 +00:00
hSaria
deb653cbf3 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-24 20:54:56 +00:00
Jeremy Stretch
a13bddde58 Refactor prefix and IP mask length choice generation to reference constants 2020-01-24 15:50:45 -05:00
Jeremy Stretch
66330418cb Remove obsolete IP_FAMILY_CHOICES constant 2020-01-24 15:40:03 -05:00
Jeremy Stretch
151943bfbc Merge pull request #4007 from netbox-community/3880-use-constants
Closes #3880: Define constants for arbitrary values
2020-01-24 15:29:38 -05:00
Jeremy Stretch
35cbee5107 Fixes #4008: Toggle rack elevation face using front/rear strings 2020-01-24 15:28:15 -05:00
Jeremy Stretch
c6473d654d Add explanatory text for constants 2020-01-24 15:03:38 -05:00
Jeremy Stretch
096814dc33 #3880: Define constants for arbitrary values 2020-01-24 14:42:57 -05:00
Jeremy Stretch
45b66b174c Merge pull request #3955 from kobayashi/3950-not-retain-device-type
Fixes: #3950 "Create and Add Another" does retain device type
2020-01-24 13:49:46 -05:00
Jeremy Stretch
0ec091ffe1 Merge branch 'develop' into 3950-not-retain-device-type 2020-01-24 13:49:30 -05:00
Jeremy Stretch
f24e7652a8 Add changelog for #3982 2020-01-24 12:10:38 -05:00
Jeremy Stretch
9f58c27fcf Merge pull request #4002 from hellerve/veit/fix-3982
Read reserved tooltip on rack elevations
2020-01-24 12:09:39 -05:00
Jeremy Stretch
d3463b596a Closes #4005: Include timezone context in webhook timestamps 2020-01-24 12:00:24 -05:00
kobayashi
66d5cc47a5 Fixes #3950: Cloned Device Form does not retain device type 2020-01-24 03:30:24 -05:00
kobayashi
9694bacb69 3950 not retain device type 2020-01-24 03:13:50 -05:00
hellerve
fcba2baf42 dcim: fix #3982 by readding reserved tooltip 2020-01-24 08:45:55 +01:00
Jeremy Stretch
629712142f Fixes #3999: Do not filter child results by null if non-required parent fields are blank 2020-01-23 17:11:45 -05:00
Jeremy Stretch
cdecf93f00 Add tests for ChoiceSet 2020-01-23 16:19:34 -05:00
Jeremy Stretch
fe402331f2 Handle grouped choices when returning ChoiceSet values 2020-01-23 16:16:52 -05:00
Jeremy Stretch
fcbbb36afc Add tests for home and search views 2020-01-23 15:41:09 -05:00
hSaria
6ce38ffa0f Merge branch 'develop' into 3995-navbar-overflow 2020-01-23 20:36:35 +00:00
Saria Hajjar
09faaff849 Fixes #3995: Navbar scroll when overflowing 2020-01-23 20:34:06 +00:00
hSaria
06398a9ac6 Merge branch 'develop' into 568-csv-import-cf 2020-01-23 20:27:07 +00:00
Saria Hajjar
bed08a7b07 Use model's get_custom_fields 2020-01-23 20:26:21 +00:00
Jeremy Stretch
2e69037c29 Closes #3952: Add test for webhooks_worker; introduce generate_signature() 2020-01-23 15:05:27 -05:00
Saria Hajjar
8f86244b4f Cleaned the CustomField choice field 2020-01-23 18:54:37 +00:00
Saria Hajjar
0a5eecd0e3 Explicitly use the value of the choice, instead of relying on __str__ 2020-01-23 17:37:51 +00:00
Saria Hajjar
0ab19d723d Moved the header join logic after the custom fields are added 2020-01-23 17:18:58 +00:00
Saria Hajjar
9128435113 Removed CustomFieldForm class from models without custom fields 2020-01-23 17:03:14 +00:00
Saria Hajjar
1b26afdfbb Fixes #3935: Swagger DEFAULT_INFO 2020-01-23 14:26:04 +00:00
Jeremy Stretch
7b517abdb6 Fixes #3989: Correct HTTP content type assignment for webhooks 2020-01-22 20:33:57 -05:00
Jeremy Stretch
2445d1896b Merge pull request #3988 from netbox-community/3509-ipaddress-script-vars
Closes #3509: Add IP address vars for custom scripts
2020-01-22 17:56:00 -05:00
Jeremy Stretch
72d1fe0cd7 Changelog for #3509 2020-01-22 17:49:03 -05:00
Jeremy Stretch
b7e71f9f39 Add tests for IP address vars 2020-01-22 17:48:03 -05:00
Jeremy Stretch
f41564b578 Introduce IPAddressVar and IPAddressWithMaskVar 2020-01-22 17:16:40 -05:00
Jeremy Stretch
aa56c020ab Move prefix_validator() to ipam.validators 2020-01-22 16:33:34 -05:00
Jeremy Stretch
ba6df87d10 Move min/max prefix length validators to ipam.validators 2020-01-22 16:26:06 -05:00
Jeremy Stretch
5e7fbc4e42 Merge pull request #3987 from netbox-community/3310-cableform-initial-data
Closes #3310: Pre-select site/rack for B side when creating a new cable
2020-01-22 16:14:17 -05:00
Jeremy Stretch
f826e15603 Closes #3310: Pre-select site/rack for B side when creating a new cable 2020-01-22 16:07:09 -05:00
Jeremy Stretch
b7dea5a9f7 Fixes #3983: Permit the creation of multiple unnamed devices 2020-01-22 09:26:49 -05:00
Jeremy Stretch
ddd9f86031 Add tests for rack elevation API endpoint 2020-01-21 17:36:38 -05:00
Jeremy Stretch
1c13a79961 Suppress extraneous test output 2020-01-21 17:23:50 -05:00
Jeremy Stretch
03436b729d Add test for device graphs API endpoint 2020-01-21 17:11:26 -05:00
Jeremy Stretch
d123664503 Add tests for front/rear port API endpoints 2020-01-21 17:00:30 -05:00
hSaria
bdfead6265 Merge branch 'develop' into 568-csv-import-cf 2020-01-21 21:30:38 +00:00
hSaria
77c8bcef6d Merge branch 'develop' into 2921-tags-select2 2020-01-21 21:29:21 +00:00
hSaria
2684f86594 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-21 21:27:42 +00:00
Jeremy Stretch
10917123fd Add tests for cable tracing endpoints 2020-01-21 16:24:03 -05:00
Jeremy Stretch
b06bed368b Post-release version bump 2020-01-21 15:13:49 -05:00
Jeremy Stretch
e13d4ffe60 Merge pull request #3980 from netbox-community/develop
Release v2.7.2
2020-01-21 15:12:00 -05:00
Jeremy Stretch
2581a55214 Release v2.7.2 2020-01-21 15:04:09 -05:00
Jeremy Stretch
aa4b89f751 Changelog for #3965 2020-01-21 13:56:25 -05:00
Jeremy Stretch
838aaffc4b Merge pull request #3971 from hellerve/veit/fix-3965
Display occupied rack units correctly
2020-01-21 13:53:21 -05:00
Jeremy Stretch
9dfd0e5b40 Merge pull request #3957 from kobayashi/3923-validate-key-format
Fixes: #3923 validate key format
2020-01-21 13:27:35 -05:00
Jeremy Stretch
3357c050c4 Merge pull request #3959 from hSaria/3135-document-power
Fixes #3135: Documented power modelling
2020-01-21 13:15:57 -05:00
Jeremy Stretch
60c5418516 Add tests for device component filtering by region/site 2020-01-21 12:28:22 -05:00
Jeremy Stretch
48b4695ebe Fixes #3966: Fix filtering of device components by region/site 2020-01-21 12:27:52 -05:00
Jeremy Stretch
737b05d12b Changelog for #3964 2020-01-21 11:41:44 -05:00
Jeremy Stretch
1d0546b3d1 Merge pull request #3972 from hellerve/veit/fix-3964
Display borders around devices in rack elevations
2020-01-21 11:40:20 -05:00
Jeremy Stretch
a7a166a9cb Merge branch 'develop' into veit/fix-3964 2020-01-21 11:39:45 -05:00
Jeremy Stretch
74e1c08324 Changelog for #3963 2020-01-21 11:35:05 -05:00
Jeremy Stretch
007de40ada Merge pull request #3973 from hellerve/veit/fix-3963
dcim: fix tooltips in svg rack display
2020-01-21 11:33:14 -05:00
hellerve
e184eb3521 dcim: make pep happy 2020-01-21 17:01:48 +01:00
hellerve
e421c15bdd dcim: merge elevations as necessary 2020-01-21 16:56:06 +01:00
hellerve
469a088874 dcim: fix tooltips in svg rack display 2020-01-21 16:23:59 +01:00
Jeremy Stretch
63dbee16cc Changelog for #3962 2020-01-21 10:11:27 -05:00
hellerve
5f3f21215a dcim: fix #3964 by moving away from properties to inline styles 2020-01-21 16:06:15 +01:00
Jeremy Stretch
cdd7ed21ee Merge pull request #3970 from hellerve/veit/fix-3962
Display device correctly in SVG
2020-01-21 10:05:37 -05:00
hellerve
255d12309a dcim: fix #3965 by adding an option to get_rack_units 2020-01-21 15:50:38 +01:00
Jeremy Stretch
856d14aaa6 Merge pull request #3969 from kobayashi/3960-legacy-device-status
Fixes: #3960 legacy device status
2020-01-21 09:47:16 -05:00
Jeremy Stretch
134cf38a84 Merge branch 'develop' into 3960-legacy-device-status 2020-01-21 09:47:07 -05:00
Jeremy Stretch
1a56a5561c Add systemd migration doc to pages list 2020-01-21 09:41:55 -05:00
hellerve
eb7fbe4b3a dcim: fix #3962 by moving away from device.name 2020-01-21 15:33:17 +01:00
Jeremy Stretch
9d3215e806 Fixes #3967: Resolve migration of "other" interface type 2020-01-21 09:32:51 -05:00
kobayashi
9e855ac6cd 3960 legacy device status 2020-01-21 00:30:47 -05:00
Saria Hajjar
a6fde3168b Minor corrections 2020-01-20 11:37:51 +00:00
Saria Hajjar
939a7bbe50 Fixes #3135: Documented power modelling 2020-01-19 15:43:31 +00:00
kobayashi
c6d18da2eb 3923 validate key format 2020-01-19 02:19:03 -05:00
Jeremy Stretch
606f3dacbb Fixes #3721: Allow Unicode characters in tag slugs 2020-01-17 17:25:46 -05:00
Jeremy Stretch
aa73a7ad02 Closes #3954: Add device_bays filter for devices and device types 2020-01-17 16:39:31 -05:00
Jeremy Stretch
a4687be5e5 Closes #3842: Add 802.11ax interface type 2020-01-17 16:20:11 -05:00
Jeremy Stretch
302f87e108 Fixes #3937: Suppress warning messages in tests for requests expected to yield a 4XX response 2020-01-17 14:53:33 -05:00
Jeremy Stretch
439fa731ba Fixes #3953: Fix validation error when creating child devices 2020-01-17 14:22:58 -05:00
Jeremy Stretch
c6eb40daa8 #3951: Add tests for webhook queuing 2020-01-17 12:39:14 -05:00
Jeremy Stretch
f15cde0275 Fixes #3951: Fix exception in webhook worker due to missing constant 2020-01-17 11:28:50 -05:00
Jeremy Stretch
83427d5585 Closes #3949: Add tests for IPAM model methods 2020-01-17 11:15:05 -05:00
hSaria
b11224a8b4 Merge branch 'develop' into 568-csv-import-cf 2020-01-17 11:47:01 +00:00
hSaria
8b02cd47fb Merge branch 'develop' into 2921-tags-select2 2020-01-17 11:45:13 +00:00
hSaria
f052b90ec3 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-17 11:42:15 +00:00
Jeremy Stretch
d3f278400e Post-release version bump 2020-01-16 23:47:38 -05:00
Jeremy Stretch
295d4f0394 Merge pull request #3946 from netbox-community/develop
Release v2.7.1
2020-01-16 23:46:40 -05:00
Jeremy Stretch
8aad11b8d2 Release v2.7.1 2020-01-16 23:43:32 -05:00
Jeremy Stretch
0a1dd64b94 Fixes #3943: Prevent rack elevation links from opening new tabs/windows 2020-01-16 23:41:52 -05:00
Jeremy Stretch
f220b3f128 Merge pull request #3942 from hSaria/3941-ip-assign-exception
Fixes #3941: AttributeError when searching on IP assign
2020-01-16 21:43:15 -05:00
Jeremy Stretch
1c0e0fec4c Merge branch 'develop' into 3941-ip-assign-exception 2020-01-16 21:42:27 -05:00
Jeremy Stretch
5369aef971 Fixes #3944: Fix AttributeError exception when viewing prefixes list 2020-01-16 21:39:46 -05:00
Saria Hajjar
9f569d4b1b Fixes #3941: AttributeError when searching on IP assign 2020-01-16 23:03:16 +00:00
hSaria
c0a3285b8b Merge branch 'develop' into 568-csv-import-cf 2020-01-16 22:47:10 +00:00
hSaria
a30e50ecc4 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-16 22:45:23 +00:00
hSaria
42962db263 Merge branch 'develop' into 2921-tags-select2 2020-01-16 21:52:14 +00:00
Saria Hajjar
c31c8b1a25 Moved into v2.7.1 2020-01-16 21:51:37 +00:00
Saria Hajjar
e05cecb481 Moved into v2.7.1 2020-01-16 21:51:01 +00:00
Jeremy Stretch
604924231a Post-release version bump 2020-01-16 14:47:55 -05:00
Jeremy Stretch
ea91e09a1b Merge pull request #3938 from netbox-community/develop
Release v2.7.0
2020-01-16 13:03:42 -05:00
Jeremy Stretch
0f1518e4c5 Release v2.7.0 2020-01-16 12:58:17 -05:00
Jeremy Stretch
4cb1facb6a Add PyYAML as a required package 2020-01-16 12:23:36 -05:00
Jeremy Stretch
e640f413ab Revise v2.7 release notes 2020-01-16 11:28:54 -05:00
Saria Hajjar
9f68f8d1a6 Update component CSV forms 2020-01-16 16:07:24 +00:00
Saria Hajjar
a2d5aca1d9 Moved changelog to v2.7 2020-01-16 16:05:45 +00:00
Saria Hajjar
89e6de3652 Merge branch 'develop' into 568-csv-import-cf 2020-01-16 16:05:01 +00:00
Jeremy Stretch
fecbb60c36 Use assertHttpStatus() when evaluating HTTP response status 2020-01-16 10:47:45 -05:00
Saria Hajjar
26ebed0182 Removed legacy work regarding inc/tags_panel.html 2020-01-16 15:42:31 +00:00
Saria Hajjar
2c0f321456 Merge branch '2921-tags-select2' of https://github.com/hSaria/netbox into 2921-tags-select2 2020-01-16 15:34:56 +00:00
Saria Hajjar
8f91e9b079 Added #2921 changelog 2020-01-16 15:34:11 +00:00
Saria Hajjar
2949bfaaa7 Merge branch 'develop' into 2921-tags-select2 2020-01-16 15:33:42 +00:00
Jeremy Stretch
c0f1910493 Update requriements for v2.7 release 2020-01-16 10:16:23 -05:00
Saria Hajjar
c8997868ce Added #3840 changelog 2020-01-16 15:10:25 +00:00
Saria Hajjar
02cf39c85b Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-16 15:09:39 +00:00
Jeremy Stretch
3eb2d45e8d Merge pull request #3936 from netbox-community/develop-2.7
Merge v2.7 changes
2020-01-16 09:52:46 -05:00
Jeremy Stretch
4556eac780 Fix IPAddressTestCase 2020-01-16 09:47:46 -05:00
Jeremy Stretch
c955aeebeb Merge branch 'develop' into develop-2.7 2020-01-16 09:38:23 -05:00
Jeremy Stretch
8bd67b2c17 Add tests for browsable API endpoints 2020-01-15 17:47:55 -05:00
Jeremy Stretch
4073dedff8 Merge pull request #3932 from netbox-community/3892-contenttype-filtering
Closes #3892: Robust ContentType filtering
2020-01-15 16:37:50 -05:00
Jeremy Stretch
bc696f2e11 Make filter test logic more obvious 2020-01-15 16:25:26 -05:00
Jeremy Stretch
c28684a8b3 Remove obsolete utility function model_names_to_filter_dict() 2020-01-15 16:21:41 -05:00
Jeremy Stretch
215b4d0b3f #3892: Convert WEBHOOK_MODELS to a Q object 2020-01-15 16:18:47 -05:00
Jeremy Stretch
d9437a08f0 #3892: Convert EXPORTTEMPLATE_MODELS to a Q object 2020-01-15 16:11:44 -05:00
Jeremy Stretch
f81e7d30e2 #3892: Convert GRAPH_MODELS to a Q object 2020-01-15 16:08:19 -05:00
Jeremy Stretch
09bee75cb3 #3892: Convert CUSTOMLINK_MODELS to a Q object 2020-01-15 16:04:41 -05:00
Jeremy Stretch
9c4ab79bea #3892: Convert CUSTOMFIELD_MODELS to a Q object 2020-01-15 16:00:54 -05:00
Jeremy Stretch
f8dad1744c #3892: Convert CABLE_TERMINATION_TYPES to a Q object 2020-01-15 15:51:51 -05:00
Jeremy Stretch
b98ac64ac2 Fix reference to obsolete constant IFACE_MODE_TAGGED 2020-01-15 14:54:46 -05:00
Jeremy Stretch
88267e9d05 Move BGP_ASN_MIN and BGP_ASN_MAX to ipam.constants 2020-01-15 14:53:46 -05:00
Jeremy Stretch
caf7d02637 Remove obsolete constant CABLE_TERMINATION_TYPE_CHOICES 2020-01-15 14:49:52 -05:00
Jeremy Stretch
aefe2b4196 Move rack elevation CSS to project-static/rack_elevation.css 2020-01-15 14:05:44 -05:00
Jeremy Stretch
fdf8211e9a Fixes #3930: Fix API rendering of the family field for aggregates 2020-01-15 13:56:37 -05:00
Jeremy Stretch
73d1a2df3d Merge pull request #3929 from netbox-community/3830-api-pagination
Fixes #3830: Update model ordering parameters to ensure deterministic ordering
2020-01-15 13:29:27 -05:00
Jeremy Stretch
0893d32665 Clarify naming constraints related to rack groups 2020-01-15 13:27:46 -05:00
Jeremy Stretch
c5ec470a00 Changelog for #3830 2020-01-15 13:25:07 -05:00
Jeremy Stretch
28350d84f9 Update model ordering parameters to ensure deterministic ordering 2020-01-15 13:20:44 -05:00
Jeremy Stretch
1055faf734 Merge pull request #3920 from hSaria/3919-utilization-bar-width
Fixes #3919: Utilization graph bar bounds
2020-01-15 10:55:39 -05:00
Jeremy Stretch
351a6e005e Merge branch 'develop' into 3919-utilization-bar-width 2020-01-15 10:55:28 -05:00
Jeremy Stretch
e5ebe6cebc Fix breadcrumbs for changelog entries for deleted objects 2020-01-15 10:48:30 -05:00
Jeremy Stretch
0053aa2d2e Fix objectchange related changes panel styling 2020-01-15 10:44:31 -05:00
Jeremy Stretch
dda9a2ee1c Fixes #3927: Fix exception when deleting devices with secrets assigned 2020-01-15 10:39:23 -05:00
Jeremy Stretch
1ea820a50e Fixes #3900: Fix exception when deleting device types 2020-01-15 10:23:07 -05:00
Jeremy Stretch
c202c1325b Add test for VM interface type choices 2020-01-15 10:04:12 -05:00
Jeremy Stretch
49f027fae7 Refactor FieldChoicesViewSet; add Interface.type to virtualization _choices endpoint 2020-01-15 09:59:44 -05:00
Jeremy Stretch
deec10efe7 Rename ExportTemplateLanguageChoices to TemplateLanguageChoices 2020-01-15 09:40:05 -05:00
Jeremy Stretch
826f4d313d Move unpack_grouped_choices() to utilities.choices 2020-01-15 09:36:39 -05:00
Jeremy Stretch
685cf50268 Closes #3926: Extend upgrade script to invalidate cache data 2020-01-15 08:57:00 -05:00
Jeremy Stretch
e0ea5b0e0b Allow the Lock bot to lock existing closed issues 2020-01-15 08:49:50 -05:00
Saria Hajjar
201416ba52 Semicolons for completeness 2020-01-15 12:38:09 +00:00
Saria Hajjar
9d846d7b87 Fixes #3840: Only show valid interface VLAN choices 2020-01-15 12:23:34 +00:00
hSaria
a7e87eeadc Merge branch 'develop' into 2921-tags-select2 2020-01-15 09:30:51 +00:00
Jeremy Stretch
b538495a29 Merge pull request #3922 from netbox-community/3921-choices-tests
Closes #3921: Add tests for API _choices endpoints
2020-01-14 16:42:28 -05:00
Jeremy Stretch
8df53eac91 Add tests for dynamic choices 2020-01-14 16:38:14 -05:00
Jeremy Stretch
857e04e90b Add _choices endpoint tests for all apps 2020-01-14 16:13:11 -05:00
Jeremy Stretch
3f37cc461d Reorder operations to avoid "pending trigger events" SQL error 2020-01-14 14:37:50 -05:00
Jeremy Stretch
823e1280d2 Add guide for squashing schema migrations 2020-01-14 14:14:54 -05:00
Saria Hajjar
a9e1e7fc78 Fixes #3919: Utilization graph bar bounds 2020-01-14 18:23:31 +00:00
Jeremy Stretch
f27e06e619 Move utility functions for secrets to secrets/utils.py 2020-01-14 12:13:58 -05:00
Jeremy Stretch
c084547dca Move IPAddressManager to a separate file 2020-01-14 12:07:45 -05:00
Jeremy Stretch
6959785cd1 Define __all__ for models.py within each app 2020-01-14 12:01:23 -05:00
Jeremy Stretch
26a257b794 Don't import constants from inside a migration 2020-01-14 11:47:28 -05:00
Jeremy Stretch
2615906526 Squashed all migrations 2020-01-14 11:06:05 -05:00
Jeremy Stretch
d96f474a5f Merge pull request #3847 from kobayashi/3525
Fixes #3525: Filter muiltiple ipaddress terms
2020-01-14 09:20:39 -05:00
Jeremy Stretch
d33e10b4ce Merge branch 'develop' into 3525 2020-01-14 09:20:02 -05:00
Jeremy Stretch
e536f363f9 Merge pull request #3915 from hSaria/3914-interface-filter-no-user
Fixes #3914: Interface filter field when unauthenticated
2020-01-14 08:53:59 -05:00
Saria Hajjar
e10333bf2b Fetch choices during form initialization 2020-01-14 08:22:27 +00:00
Saria Hajjar
9d0da0f45a Fixes #3914: Interface filter field when unauthenticated 2020-01-14 06:08:19 +00:00
Jeremy Stretch
7b8e82f321 Fix typo in release notes 2020-01-13 17:30:16 -05:00
Jeremy Stretch
5c047faa1d Delete old squashed migrations 2020-01-13 17:01:54 -05:00
hSaria
d075bf5882 Merge branch 'develop' into 568-csv-import-cf 2020-01-13 21:17:29 +00:00
Jeremy Stretch
8f636d9636 Merge pull request #3911 from netbox-community/3801-devicetype-yaml
Closes #3801: Change DeviceType export from CSV to YAML
2020-01-13 15:43:20 -05:00
Jeremy Stretch
ce0e351d76 Changelog for #3801 2020-01-13 15:42:49 -05:00
Jeremy Stretch
f170a579de Add test for DeviceType YAML export 2020-01-13 15:35:01 -05:00
hSaria
83ee83142a Merge branch 'develop' into 2921-tags-select2 2020-01-13 20:17:34 +00:00
Saria Hajjar
865e3e7c9f Updated changelog 2020-01-13 20:17:47 +00:00
Saria Hajjar
2f28dec891 Tag filter field for filter forms 2020-01-13 20:16:13 +00:00
Jeremy Stretch
0dad9f8901 Change DeviceType export from CSV to YAML 2020-01-13 15:10:16 -05:00
Saria Hajjar
a8d9fe799b Removed tags filter field from view 2020-01-13 19:06:05 +00:00
Jeremy Stretch
473d67354f Merge branch 'develop' into develop-2.7 2020-01-13 13:49:22 -05:00
Jeremy Stretch
5d7af0fae9 Post-release version bump 2020-01-13 13:26:50 -05:00
Jeremy Stretch
946779000f Merge pull request #3908 from netbox-community/develop
Release v2.6.12
2020-01-13 13:25:21 -05:00
Jeremy Stretch
c3c3000a53 Release v2.6.12 2020-01-13 13:17:43 -05:00
Jeremy Stretch
66daeda85f Merge pull request #3887 from hSaria/3021-cable-tenant-filter
Fixes #3021: Added tenancy filter for cables
2020-01-13 12:09:53 -05:00
Jeremy Stretch
0fd0e76183 Merge pull request #3888 from hSaria/3491-webhook-error-message
Fixes #3491: Include content of webhook error response
2020-01-13 11:33:25 -05:00
Jeremy Stretch
cf480375f6 Merge pull request #3899 from hSaria/3898-cable-str-pk
Fixes #3898: Call str of cable on delete to save PK in id_string
2020-01-13 11:31:18 -05:00
hSaria
736cd709d9 Merge branch 'develop' into 3898-cable-str-pk 2020-01-13 15:40:22 +00:00
Jeremy Stretch
0f42219b4b Merge pull request #3906 from hSaria/3905-powerfeed-divide-by-zero
Fixes #3905: divide by zero on power feeds with low values
2020-01-13 10:32:59 -05:00
Jeremy Stretch
b64f4b93eb Merge pull request #3903 from hSaria/3902-relax-connect
Fixes #3902: relax non-essential required fields
2020-01-13 10:32:09 -05:00
Saria Hajjar
32ffc1b54b Fixes #3905: divide by zero on power feeds with low values 2020-01-13 15:31:35 +00:00
Saria Hajjar
608006ee77 Set the private pk after super save 2020-01-13 15:21:37 +00:00
Saria Hajjar
3d78a67343 Store a private copy of the pk during init and use that with __str__ 2020-01-13 14:57:21 +00:00
Jeremy Stretch
2f98f133bb Merge pull request #3896 from hSaria/3895-elevations-keyerror
Fixes #3895: Elevations filter regression
2020-01-13 09:44:57 -05:00
Saria Hajjar
fe0fbeab49 Fixes #3902: relax non-essential required fields 2020-01-13 12:05:06 +00:00
kobayashi
e3aacb183b optimize query 2020-01-12 16:44:15 -05:00
Saria Hajjar
49fa243b4f Added post-delete cable ID test 2020-01-12 11:21:02 +00:00
Saria Hajjar
a2308b9c99 Fixes #3898: Call str of cable on delete to save PK in id_string 2020-01-12 11:08:13 +00:00
Saria Hajjar
422c6bad5b Fixes #3895: Elevations filter regression 2020-01-11 15:36:58 +00:00
Saria Hajjar
834fd408bd Fixes #2921: Replace tags filter with Select2 widget 2020-01-11 15:18:27 +00:00
Jeremy Stretch
db57d3830f Merge pull request #3890 from netbox-community/3092-reorganize-models
Closes #3092: Refactor dcim/models.py
2020-01-10 15:44:07 -05:00
Jeremy Stretch
b7e78028ce Closes #3891: Add local_context_data filter for virtual machines 2020-01-10 15:34:38 -05:00
Jeremy Stretch
ca13045515 Closes #3092: Split DCIM models into separate files for easier management 2020-01-10 14:22:22 -05:00
kobayashi
2e9f21e222 Filter muiltiple ipaddress terms 2020-01-10 14:09:25 -05:00
Jeremy Stretch
9f627fd0d3 Merge branch 'develop' into develop-2.7 2020-01-10 13:33:51 -05:00
Jeremy Stretch
509a115f68 Extend section regarding test adaptation 2020-01-10 12:24:47 -05:00
Jeremy Stretch
69a696a8d6 Fix graph:type choices under /api/extras/_choices/ 2020-01-10 12:18:56 -05:00
Jeremy Stretch
830a51d9f5 Merge pull request #3889 from netbox-community/3520-graph-template-language
Fixes #3520: Add template_language to extras.Graph
2020-01-10 11:59:05 -05:00
Jeremy Stretch
3c247ac47d Changelog for #3520 2020-01-10 11:53:29 -05:00
Jeremy Stretch
123a58bf7d Add tests for Graph rendering 2020-01-10 11:51:14 -05:00
Saria Hajjar
f20d16f188 Fixes #3491: include content of webhook error response 2020-01-10 16:42:02 +00:00
Jeremy Stretch
9399652dd0 Add template_language field to Graph 2020-01-10 11:28:50 -05:00
Saria Hajjar
f4514034b8 Fixes #3021: Added tenancy filter to cables 2020-01-10 15:59:56 +00:00
Jeremy Stretch
6bc8f2e50b Fixes #3882: Fix filtering of devices by rack group 2020-01-10 10:21:11 -05:00
Jeremy Stretch
fc1245c49d Merge pull request #3867 from hSaria/3668-address-assign-dns-filter
Fixes #3668: use `q` to search when assigning IP
2020-01-10 10:08:31 -05:00
Saria Hajjar
de1355e6bc Changelog #568 2020-01-10 15:00:57 +00:00
Saria Hajjar
37322fc100 Fixed import choice name 2020-01-10 14:58:15 +00:00
Jeremy Stretch
4be7ca0c78 Merge branch 'develop' into 3668-address-assign-dns-filter 2020-01-10 09:43:35 -05:00
Jeremy Stretch
cb91c9231d Merge pull request #3865 from hSaria/3623-interface-word-expansion
Fixes #3623: Word expansion for interfaces
2020-01-10 09:41:42 -05:00
Saria Hajjar
f1d5e28f13 CSV import/export custom fields 2020-01-10 14:26:39 +00:00
Jeremy Stretch
03b22594e8 Merge pull request #3881 from netbox-community/3729-filterset-naming
Fixes #3729: Standardize FilterSet names
2020-01-10 08:58:17 -05:00
hSaria
a5413a5484 Merge branch 'develop' into 3623-interface-word-expansion 2020-01-10 11:55:27 +00:00
Saria Hajjar
71120d9899 Added tests for alphanumeric 2020-01-10 11:54:43 +00:00
Saria Hajjar
acb66c7dc0 Negative tests for expand_ipaddress_pattern 2020-01-10 11:21:37 +00:00
Saria Hajjar
2eba84dad5 Added tests for IPv6 2020-01-10 11:06:01 +00:00
Saria Hajjar
fe89982d4e Removed redundant list call 2020-01-10 10:26:46 +00:00
Jeremy Stretch
528b345f57 Move TenancyFilterSet to filters.py 2020-01-09 21:05:38 -05:00
Jeremy Stretch
e3807a8937 Update filterset naming for global search view 2020-01-09 21:02:14 -05:00
Jeremy Stretch
da0ac4ff1e Rename filter variables for utility views 2020-01-09 20:57:13 -05:00
Jeremy Stretch
49a6a36f4c Renamed virtualization FilterSets 2020-01-09 20:42:32 -05:00
Jeremy Stretch
a77fadd114 Renamed tenancy FilterSets 2020-01-09 20:40:32 -05:00
Jeremy Stretch
15e1f62919 Renamed secrets FilterSets 2020-01-09 20:38:59 -05:00
Jeremy Stretch
83c0d1ef44 Renamed ipam FilterSets 2020-01-09 20:37:26 -05:00
Jeremy Stretch
97654b7585 Renamed extras FilterSets 2020-01-09 20:35:07 -05:00
Jeremy Stretch
0767de205e Renamed dcim FilterSets 2020-01-09 20:30:40 -05:00
Jeremy Stretch
847cf9d038 Renamed circuits FilterSets 2020-01-09 20:25:33 -05:00
Jeremy Stretch
0296aa240a Clean up Stale bot config formatting 2020-01-09 20:14:31 -05:00
Jeremy Stretch
d88b3456c4 Add configuration file for GitHub Stale bot 2020-01-09 20:13:21 -05:00
Jeremy Stretch
789cf827f2 Merge pull request #3879 from hSaria/3876-asn-field-bounds
Fixes #3876: Min/max values for ASN field
2020-01-09 17:03:29 -05:00
Saria Hajjar
6c19c88e99 Replaced ASN bounds with constants 2020-01-09 21:58:38 +00:00
Jeremy Stretch
c1ed2b6068 Merge pull request #3875 from hSaria/3393-provider-circuit-paginate
Fixes #3393: Paginate circuits at the provider details view
2020-01-09 16:52:19 -05:00
Jeremy Stretch
790cfd7b5b Fix CableTable status coloring 2020-01-09 16:19:47 -05:00
Jeremy Stretch
dc5f5efcfe Fixes #3878: Fix database migration for cable status field 2020-01-09 16:16:24 -05:00
Saria Hajjar
4eacc57522 Fixes #3876: set min and max values for ASN field 2020-01-09 21:12:35 +00:00
Jeremy Stretch
0527626709 Update filter tests for v2.7 2020-01-09 16:03:41 -05:00
Jeremy Stretch
a2ead6af94 Merge branch 'develop' into develop-2.7 2020-01-09 15:27:06 -05:00
Saria Hajjar
1e740a70f7 Corrected placement of changelog 2020-01-09 20:23:16 +00:00
Saria Hajjar
94a7d8e493 Hid the provider column 2020-01-09 20:15:22 +00:00
Saria Hajjar
883655ce71 Fixes #3393: Paginate circuits at the provider details view 2020-01-09 20:10:51 +00:00
Jeremy Stretch
1d3651e255 Use ChoiceSet.values() for access to raw values 2020-01-09 14:56:33 -05:00
Jeremy Stretch
fe490d144a Fixes #3868: Fix creation of interfaces for virtual machines 2020-01-09 14:54:25 -05:00
Jeremy Stretch
40fe6666e3 Closes #3841: Add California-style power connectors 2020-01-09 14:10:37 -05:00
Jeremy Stretch
2a2bc66841 Closes #3842: Add RJ-12 console port type 2020-01-09 13:58:41 -05:00
Jeremy Stretch
6019260374 Merge pull request #3873 from hSaria/3872-limit-related-ips
Fixes #3872: Limit related IPs table
2020-01-09 13:53:59 -05:00
Jeremy Stretch
e5c5a1a101 Fixes #3849: Fix ordering of models when dumping data to JSON 2020-01-09 13:28:39 -05:00
Saria Hajjar
c13b9d8798 Added tests for IPv4 2020-01-09 18:26:10 +00:00
hSaria
03b10b6f73 Merge branch 'develop' into 3872-limit-related-ips 2020-01-09 17:18:42 +00:00
Saria Hajjar
67f4d8fab5 Replaced with pagination 2020-01-09 17:16:58 +00:00
Jeremy Stretch
7e0073d6f5 Merge pull request #3863 from hSaria/2113-napalm-settings
Fixes #2113: NAPALM driver settings
2020-01-09 11:56:32 -05:00
Jeremy Stretch
c66dca399b Merge pull request #3860 from hSaria/1982-swagger-napalm
Fixes #1982: Swagger NAPALM documentation
2020-01-09 11:53:20 -05:00
Saria Hajjar
9d085ad83a Changed NAPALM- prefix to X-NAPALM- 2020-01-09 16:48:26 +00:00
Saria Hajjar
ad565e55f1 Removed exception for empty methods
I'll create a seperate ticket for that
2020-01-09 16:40:13 +00:00
Saria Hajjar
46c712e735 Moved NAPALM parameter to decorator 2020-01-09 16:39:13 +00:00
Jeremy Stretch
989d6f5af3 Merge pull request #3871 from hSaria/3864-disallow-0-masks
Fixes #3864: Disallow /0 masks
2020-01-09 11:37:19 -05:00
Saria Hajjar
86865b91f8 Added changelog for 3009
again as I accidentally removed it while merging
2020-01-09 16:32:01 +00:00
hSaria
b53480dd6a Merge branch 'develop' into 3668-address-assign-dns-filter 2020-01-09 16:31:09 +00:00
Saria Hajjar
581ed52b24 Added changelog for 3009 2020-01-09 16:30:13 +00:00
Saria Hajjar
472486acd6 Changed to q filter 2020-01-09 16:26:11 +00:00
Jeremy Stretch
92ec4bd22f Merge pull request #3859 from hSaria/3440-total-cable-length
Fixes #3440: Total cable trace length
2020-01-09 10:55:30 -05:00
Jeremy Stretch
959a0da0ed Merge pull request #3838 from hSaria/3090-interface-filtering
Fixes #3090: Interface filtering
2020-01-09 10:05:04 -05:00
hSaria
b23eaeca54 Merge branch 'develop' into 3090-interface-filtering 2020-01-09 14:56:36 +00:00
hSaria
4f9271e9ff Merge branch 'develop' into 3440-total-cable-length 2020-01-09 14:55:34 +00:00
hSaria
094553dbe7 Merge branch 'develop' into 3623-interface-word-expansion 2020-01-09 14:54:58 +00:00
hSaria
60e4812b32 Merge branch 'develop' into 2113-napalm-settings 2020-01-09 14:54:31 +00:00
hSaria
40625d1299 Merge branch 'develop' into 3668-address-assign-dns-filter 2020-01-09 14:53:32 +00:00
Jeremy Stretch
c9ec8b71e0 Merge pull request #3821 from hSaria/2365-show-available-toggle
Fixes #2598: Toggle for showing available prefixes/ip addresses
2020-01-09 09:52:10 -05:00
Saria Hajjar
73e456495f Fixes #3872: Limit related IPs table 2020-01-09 14:48:21 +00:00
Jeremy Stretch
54227ca9c7 Fixes #3851: Allow passing initial data to custom script forms 2020-01-09 09:41:10 -05:00
hSaria
f3b323536e Merge branch 'develop' into 3864-disallow-0-masks 2020-01-09 14:35:26 +00:00
Saria Hajjar
6537f35176 Fixes #3864: Disallow /0 masks 2020-01-09 14:33:49 +00:00
Jeremy Stretch
b36d0ca3fc Merge pull request #3858 from hSaria/3857-group-custom-link
Fixes #3857: Fix group custom links rendering
2020-01-09 09:28:03 -05:00
Jeremy Stretch
99809109ab Merge pull request #3866 from netbox-community/3834-filter-tests
Add FilterSet tests for all apps
2020-01-09 08:57:27 -05:00
Saria Hajjar
1cdbfd6d60 Fixes #3668: search address by DNS name when assigning 2020-01-09 10:00:02 +00:00
Jeremy Stretch
4030e5ec24 Add filter tests for extras 2020-01-08 21:41:32 -05:00
Jeremy Stretch
4151e52802 Clean up filter imports 2020-01-08 17:20:31 -05:00
Jeremy Stretch
b1e8145ffb Standardize usage of self.filterset for test cases 2020-01-08 17:06:39 -05:00
Jeremy Stretch
c04d8ca5a7 Add tests for PowerPanel and PowerFeed filters 2020-01-08 15:56:42 -05:00
Jeremy Stretch
e312c30822 Add CableFilter test 2020-01-08 15:30:56 -05:00
Jeremy Stretch
40c30baffa Add tests for InventoryItem, VirtualChassis filters 2020-01-08 14:31:59 -05:00
Jeremy Stretch
bca7435a5a Add remaining tests for device component filters 2020-01-08 14:01:31 -05:00
Saria Hajjar
396bb28967 Added example and handled invalid ranges gracefully 2020-01-08 17:28:31 +00:00
Saria Hajjar
eb40275427 Fixes #3623: Word expansion for interfaces 2020-01-08 17:23:09 +00:00
hSaria
8519f546a6 Merge branch 'develop' into 3857-group-custom-link 2020-01-08 16:47:57 +00:00
Jeremy Stretch
e9b2ad9f5c Fix DeviceTestCase.test_cluster 2020-01-08 11:22:07 -05:00
Jeremy Stretch
39fba4f05d Fix InterfaceTestCase.test_mac_address 2020-01-08 11:19:13 -05:00
Jeremy Stretch
38c16d71b4 Merge branch 'develop' into 3834-filter-tests 2020-01-08 11:14:52 -05:00
Jeremy Stretch
8fef6edb27 Fixes #3862: Allow filtering device components by multiple device names 2020-01-08 11:12:44 -05:00
Jeremy Stretch
5cac900380 Add console port, console server port filter tests 2020-01-08 11:04:50 -05:00
Saria Hajjar
f49467bcb5 Corrected optional arg assignment 2020-01-08 16:01:18 +00:00
Saria Hajjar
98a66f7fbe NAPALM settings changelog 2020-01-08 15:55:36 +00:00
Saria Hajjar
ce8d470860 Added NAPALM documentation 2020-01-08 15:54:09 +00:00
Saria Hajjar
dc475f4755 Fixes #2113: Adjust NAPALM settings with headers 2020-01-08 15:53:48 +00:00
Jeremy Stretch
a7982bb0e1 Add device filter tests 2020-01-08 09:50:22 -05:00
Saria Hajjar
ea05b5b606 Fixes #1982: Swagger NAPALM documentation 2020-01-08 13:34:46 +00:00
Saria Hajjar
996d49de67 Fixes #3440: Total cable trace length 2020-01-08 10:49:58 +00:00
Saria Hajjar
74997a18a5 Fixes #3857: Fix group custom links rendering 2020-01-08 10:14:48 +00:00
Jeremy Stretch
832fd49339 Add DeviceType filter tests 2020-01-07 17:13:05 -05:00
Jeremy Stretch
acb2f32304 Add tests for DCIM filters 2020-01-07 13:53:26 -05:00
Saria Hajjar
32f39e10c9 Changed default to showing available 2020-01-07 17:58:30 +00:00
hSaria
190e683654 Removed cookie-based storage; now based on request 2020-01-07 17:18:36 +00:00
Jeremy Stretch
770f4c962c Fixes #3856: Allow filtering VM interfaces by multiple MAC addresses 2020-01-07 10:31:44 -05:00
Jeremy Stretch
227921e0a0 Add tests for virtualization filters 2020-01-07 10:19:21 -05:00
Jeremy Stretch
39d0261d8a Add tests for tenancy filters 2020-01-07 09:41:43 -05:00
Jeremy Stretch
f267a532f6 Add filter tests for secrets 2020-01-07 09:35:22 -05:00
Jeremy Stretch
e7ee4486a5 Fixes #3853: Fix device role link on config context view 2020-01-07 09:08:31 -05:00
Saria Hajjar
6a3cd83efc Moved regex note to tooltip 2020-01-07 11:09:39 +00:00
Saria Hajjar
a7ec0c14f7 Move toggles js code to static 2020-01-07 11:09:31 +00:00
Jeremy Stretch
05bfe94d3e Add remaining IPAM filter tests 2020-01-06 21:35:34 -05:00
Jeremy Stretch
8d0aaa4ec1 Add IPAM filter tests (WIP) 2020-01-06 17:42:17 -05:00
Jeremy Stretch
4b5c4b7be5 Initial work on filter tests 2020-01-06 15:39:02 -05:00
Saria Hajjar
18333973aa Merge branch '3090-interface-filtering' of https://github.com/hSaria/netbox into 3090-interface-filtering 2020-01-06 20:05:25 +00:00
Saria Hajjar
07a1baef13 Limit toggle selector to visible input fields 2020-01-06 20:05:07 +00:00
Jeremy Stretch
15545b70d6 Merge pull request #3814 from hSaria/3589-interface-tagged-vlans
Fixes #3589: Interface VLAN filtering
2020-01-06 13:20:14 -05:00
hSaria
cfb8b3cf56 Merge branch 'develop' into 3090-interface-filtering 2020-01-06 15:19:46 +00:00
hSaria
206732eb62 Merge branch 'develop' into 2365-show-available-toggle 2020-01-06 15:18:57 +00:00
Jeremy Stretch
258cc4b50e Merge pull request #3846 from hSaria/2050-image-preview
Fixes #2050: Image preview
2020-01-06 10:18:18 -05:00
hSaria
d1f81783ef Merge branch 'develop' into 3589-interface-tagged-vlans 2020-01-06 15:18:06 +00:00
Jeremy Stretch
9bd2af48a3 Merge branch 'develop' into 2050-image-preview 2020-01-06 10:12:13 -05:00
Jeremy Stretch
d4df965f46 Merge pull request #3845 from hSaria/3187-elevation-rack-filter
Fixes #3187: Elevation rack filter
2020-01-06 10:06:20 -05:00
Saria Hajjar
7dddd4734c Updated changelog 2020-01-05 09:11:58 +00:00
Saria Hajjar
c45daca5f2 Removed changes that will be covered in #3840 2020-01-05 09:10:46 +00:00
Saria Hajjar
067af26892 Changelog (may conflict with other merges) 2020-01-04 18:19:05 +00:00
Saria Hajjar
792f38334a Fixes #2050: Image preview for attachments 2020-01-04 18:17:41 +00:00
Saria Hajjar
dba40cd6bc Changelog (may conflict because adding headers) 2020-01-04 13:32:07 +00:00
Saria Hajjar
4b19073b8b Fixed #3187: Rack multi-selection field 2020-01-04 13:30:31 +00:00
Saria Hajjar
28eca9a026 Forgot le seperator 2020-01-03 20:12:21 +00:00
Saria Hajjar
3556051d14 Height was a touch off 2020-01-03 19:58:41 +00:00
Saria Hajjar
e1d1f522ff Closes #3090: Filter field for interface 2020-01-03 19:38:51 +00:00
Saria Hajjar
04f3e58ab4 Line seperator 2020-01-03 19:27:02 +00:00
Jeremy Stretch
1f175031bd #3455: Make ClusterFilterForm a TenancyFilterForm 2020-01-03 14:26:53 -05:00
Saria Hajjar
e1c61c5019 Changelog 2020-01-03 19:25:33 +00:00
Saria Hajjar
1c0de0093b Merge remote-tracking branch 'netbox-community/develop' into 2365-show-available-toggle 2020-01-03 19:24:44 +00:00
Saria Hajjar
9d8ab81e3a Removed changelog (temporarily while merging) 2020-01-03 19:24:39 +00:00
Jeremy Stretch
6e49a0ba6e Merge branch 'develop' into develop-2.7 2020-01-03 14:21:53 -05:00
Saria Hajjar
fa55571503 Merge remote-tracking branch 'netbox-community/develop' into 3589-interface-tagged-vlans 2020-01-03 19:19:12 +00:00
Jeremy Stretch
feb04f0401 Post-release version bump 2020-01-03 14:01:10 -05:00
Jeremy Stretch
5c07b6dc1d Merge pull request #3837 from netbox-community/develop
Release v2.6.11
2020-01-03 14:00:10 -05:00
Jeremy Stretch
e3b448b7ad Release v2.6.11 2020-01-03 13:55:43 -05:00
Jeremy Stretch
57f199f899 Fixes #3833: Add region and region_id filters where missing (#3836) 2020-01-03 13:52:50 -05:00
Jeremy Stretch
b38bb64c81 Fixes #3831: Fix API-driven filter field rendering (#3812 regression) 2020-01-03 11:25:22 -05:00
Jeremy Stretch
1d63a30b7a Merge branch 'develop' into develop-2.7 2020-01-02 17:21:15 -05:00
Jeremy Stretch
c2dc243c7c Post-release version bump 2020-01-02 17:08:04 -05:00
Jeremy Stretch
25c3c1b431 Merge pull request #3829 from netbox-community/develop
Fix v2.6.10 release date
2020-01-02 17:05:21 -05:00
Jeremy Stretch
156fbae7d3 Fix v2.6.10 release date 2020-01-02 17:04:20 -05:00
Jeremy Stretch
a0ae7a227d Merge pull request #3828 from netbox-community/develop
Release v2.6.10
2020-01-02 17:02:52 -05:00
Jeremy Stretch
9ef3e68479 Release v2.6.10 2020-01-02 17:01:05 -05:00
Jeremy Stretch
435d248645 #3122: Allow multiple selections 2020-01-02 16:56:14 -05:00
Jeremy Stretch
53db5090c1 #3827: Fix erroneous filter class 2020-01-02 16:55:36 -05:00
Jeremy Stretch
caa062c8ba Merge pull request #3826 from hSaria/3122-connection-device-select2
Fixes #3122: Select2 for device field
2020-01-02 16:39:50 -05:00
Saria Hajjar
240bbc2944 Select2 site widget 2020-01-02 21:28:06 +00:00
Saria Hajjar
a3861ed492 Update device filters to use IDs 2020-01-02 21:21:52 +00:00
Saria Hajjar
82c70302fd Merge branch 'develop' into 3122-connection-device-select2 2020-01-02 20:40:19 +00:00
Jeremy Stretch
80d1f80b61 Fixes #3827: Allow filtering console/power/interface connections by device ID 2020-01-02 13:44:18 -05:00
hSaria
d3c6caf8a8 Limit tagged validation to tagged interfaces
Co-Authored-By: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-01-02 17:52:22 +00:00
Saria Hajjar
a707204f98 Select2 for device field 2020-01-02 17:46:37 +00:00
Jeremy Stretch
523a1388db Correct release notes 2020-01-02 11:56:29 -05:00
Jeremy Stretch
970586b07b Merge pull request #3818 from hSaria/2233-move-inventoryitem
Closes #2233: Ability to move inventory items between devices
2020-01-02 11:55:18 -05:00
Saria Hajjar
28ae6849b4 Templatized show_available toggle 2020-01-02 16:29:11 +00:00
Saria Hajjar
8e3a371688 Added default to cookie 2020-01-02 16:19:12 +00:00
Saria Hajjar
2a219eff23 is not None not needed as the value 'false' is a string 2020-01-02 16:13:47 +00:00
Saria Hajjar
f81641ae96 Corrected ticket number 2020-01-02 15:48:30 +00:00
Jeremy Stretch
4f0d3e6b32 Merge pull request #3820 from hSaria/3819-cf-boolean-select2
Select2 for custom fields
2020-01-02 10:11:32 -05:00
Jeremy Stretch
77d1ac8b07 Merge pull request #3817 from hSaria/2988-group-create-warn
Closes #2988
2020-01-02 10:10:11 -05:00
Jeremy Stretch
5d0ac02704 Merge pull request #3816 from hSaria/3815-select2-width
Fixes #3815: Select2 width handling via theme
2020-01-02 10:08:56 -05:00
Jeremy Stretch
fc5d07bb13 Merge pull request #3813 from hSaria/3812-optimize-select-api
Fixes #3812: Only preload selected options for API-based select
2020-01-02 10:05:06 -05:00
Jeremy Stretch
395f23e1d3 Fix for #3822 2020-01-02 09:47:02 -05:00
Jeremy Stretch
dd85448451 Fixes #3822: Fix exception when editing a device bay (regression from #3596) 2020-01-02 09:26:38 -05:00
hSaria
6a7af22dea Merge branch 'develop' into 2365-show-available-toggle 2020-01-02 09:18:53 +00:00
Saria Hajjar
37bc17d3a2 Fixes #2365: Toggle for showing available prefixes/ip addresses 2020-01-02 09:16:18 +00:00
Saria Hajjar
ca131e5b2a Select2 for custom fields 2020-01-01 23:46:51 +00:00
Saria Hajjar
c75795ceda Ability to move inventory items between devices 2020-01-01 23:28:20 +00:00
Saria Hajjar
7dc0591e3e Note about the group existance 2020-01-01 22:38:02 +00:00
Saria Hajjar
cfa078c929 Added theme to select2 of tags 2020-01-01 21:14:38 +00:00
Saria Hajjar
57ea73db46 Turn off Select2 static width calculation 2020-01-01 21:01:08 +00:00
Saria Hajjar
7ad9e8a2fb More informative error message 2020-01-01 19:53:13 +00:00
Saria Hajjar
1a57120b78 3589 changelog 2020-01-01 17:43:39 +00:00
Saria Hajjar
d267aeb621 Filter VLANs to only those in the current site or global 2020-01-01 17:34:26 +00:00
Saria Hajjar
a110b0badb Removed no-longer-used choices (now handled via API-based select) 2020-01-01 16:43:21 +00:00
Saria Hajjar
242ae9eb91 Comment clarification 2020-01-01 16:04:08 +00:00
Saria Hajjar
53625e0dea Fixes #3812: Only preload selected options for API-based select 2020-01-01 15:54:00 +00:00
Saria Hajjar
aa4f73ffbf Removed trailing space 2020-01-01 12:09:51 +00:00
Jeremy Stretch
8c7b0cf670 Close #2892: Extend admin UI to allow deleting old report results 2019-12-31 16:11:47 -05:00
Saria Hajjar
05570ae4ad Clean tagged VLANs 2019-12-31 20:47:13 +00:00
Jeremy Stretch
0cf94cff16 Closes #3062: Add assigned_to_interface filter for IP addresses 2019-12-31 15:24:00 -05:00
Jeremy Stretch
b5455ed882 Closes #3461: Fail gracefully on custom link rendering exception 2019-12-31 15:04:56 -05:00
Jeremy Stretch
8a4293a4cc Introduce render_jinja2() convenience function 2019-12-31 14:00:55 -05:00
Jeremy Stretch
f649b9f04f Fixes #3106: Restrict queryset of chained fields when form validation fails 2019-12-31 12:41:02 -05:00
Jeremy Stretch
5caa04ef2b Fixes #3811: Fix filtering of racks by group on device list 2019-12-31 11:35:18 -05:00
Jeremy Stretch
f2c49063f8 Fixes #3809: Filter platform by manufacturer when editing devices 2019-12-31 11:25:42 -05:00
Jeremy Stretch
ea2351e902 Merge pull request #3804 from hSaria/3803-svg-logo
Fixes 3803
2019-12-30 14:12:44 -05:00
hSaria
8effb54c89 Converted text to path 2019-12-30 18:28:39 +00:00
hSaria
66c99acb9e Converted text to path 2019-12-30 18:28:12 +00:00
Jeremy Stretch
2e5a326315 Merge pull request #3802 from hSaria/3762-datetime-selectors
Fixes 3762
2019-12-30 12:32:08 -05:00
Jeremy Stretch
b5177c608d Merge branch 'develop' into 3762-datetime-selectors 2019-12-30 12:31:50 -05:00
Jeremy Stretch
be7d5a2310 Merge pull request #3807 from hSaria/3712-scroll-offset
Fixes 3712
2019-12-30 11:40:43 -05:00
Jeremy Stretch
65444899af Merge pull request #3798 from steffann/3797-802.1q-vlan-fields
Fix values of mode field
2019-12-30 11:26:15 -05:00
Jeremy Stretch
5230127fde Merge pull request #3800 from kobayashi/3788
implement 3788
2019-12-30 11:23:51 -05:00
Saria Hajjar
405320d8ab Changelog 2019-12-29 21:22:14 +00:00
Saria Hajjar
2f2e193cf9 Account for the header when hash-scrolling 2019-12-29 21:20:02 +00:00
Saria Hajjar
1fc206b9c5 Replace doc logo with svg 2019-12-29 14:10:31 +00:00
Saria Hajjar
44e1a477f2 Fixed Y-coordinate off by 10 2019-12-29 14:06:41 +00:00
Saria Hajjar
e62302c979 Fixes #3803 2019-12-29 13:41:00 +00:00
Saria Hajjar
51b0fe4596 Changelog for 3762 2019-12-29 08:50:08 +00:00
Saria Hajjar
7399aa0c5e Add datetime widgets 2019-12-28 22:55:00 +00:00
Saria Hajjar
aa4588f9ba Load flatpickr using selectors (classes) 2019-12-28 21:33:07 +00:00
Saria Hajjar
4c2e2e0fa3 Include Flatpickr library globally 2019-12-28 21:32:40 +00:00
Saria Hajjar
6dea8ddbce Flatpickr library statics 2019-12-28 21:31:21 +00:00
kobayashi
e6623a6ca8 implement 3788 2019-12-27 16:17:17 -05:00
Sander Steffann
020e485196 Fix values of mode field 2019-12-27 20:42:16 +01:00
Jeremy Stretch
0c5f535689 Merge pull request #3793 from struppinet/develop
Closes #3663: add Filter Tests
2019-12-27 14:14:55 -05:00
Jeremy Stretch
ae9d0d894a Fixes #3695: Include A/Z termination sites for circuits in global search 2019-12-27 14:04:03 -05:00
Jeremy Stretch
14401c30b6 Update contributing guide to reference the issue intake policy 2019-12-27 13:48:41 -05:00
struppi
fbb93c72d0 Closes #3663: improve tests 2019-12-26 22:21:05 +01:00
Jeremy Stretch
280f31955a Merge branch 'master' into develop-2.7 2019-12-26 10:39:07 -05:00
Jeremy Stretch
5fedcd1f4e Fixes #3789: Typo 2019-12-26 10:19:32 -05:00
Jeremy Stretch
adeee0bf5c Docs & changelog for #3705 2019-12-26 10:16:53 -05:00
Jeremy Stretch
84a2b726f5 Merge pull request #3775 from steffann/3705-make-current-user-available-in-custom-scripts
Add request to Custom Script run, if receiver supports it
2019-12-26 10:04:07 -05:00
struppi
407a60dcc4 Closes #3663: fix PEP errors 2019-12-26 12:26:41 +01:00
struppi
d31507985b Closes #3663: add Filter Tests 2019-12-25 18:41:59 +01:00
Sander Steffann
0174c9747b Implement request passing as a property of Script 2019-12-19 23:35:18 +01:00
Jeremy Stretch
55b503da5b Fixes #3780: Fix AttributeError exception in API docs 2019-12-19 14:04:18 -05:00
Jeremy Stretch
aff4ad0f97 Post-release version bump 2019-12-16 16:33:31 -05:00
Jeremy Stretch
50df3acd26 Merge pull request #3774 from netbox-community/develop
Release v2.6.9
2019-12-16 16:32:00 -05:00
Jeremy Stretch
e53e1e31de Release v2.6.9 2019-12-16 16:30:20 -05:00
Daniel Sheppard
70b09446b6 Merge pull request #3768 from markkuleinio/gunicorn-conf
Change gunicorn.conf remains to gunicorn.py
2019-12-15 21:46:21 -06:00
Markku Leiniö
3a18d1df8c Fix gunicorn.conf remains to gunicorn.py 2019-12-14 21:14:48 +02:00
Jeremy Stretch
01883f92d9 Merge pull request #3765 from netbox-community/3760-template-buttons
Introduce clone, edit, and delete button templatetags
2019-12-13 15:59:33 -05:00
Jeremy Stretch
1acdf58a4b Merge pull request #3764 from kobayashi/3679
fix 3757
2019-12-13 15:57:13 -05:00
Jeremy Stretch
8acd3d0a72 Introduced clone, edit, and delete buttons 2019-12-13 15:54:50 -05:00
kobayashi
1d1cb867cd fix 3679 2019-12-13 14:42:10 -05:00
Jeremy Stretch
b46bfaebc1 Merge pull request #3763 from hSaria/3761-token-copy-button
Fixes #3761: copy button for tokens
2019-12-13 14:16:41 -05:00
Jeremy Stretch
a22c7c1539 Fixes #2358: Respect custom field default values when creating objects via the REST API 2019-12-13 14:15:48 -05:00
hSaria
ea51aa97b7 Update version-2.6.md 2019-12-13 18:08:34 +00:00
hSaria
6a6959d041 Fixes #3761: copy button for tokens 2019-12-13 18:06:14 +00:00
Jeremy Stretch
462cede863 Fixes #2170: Prevent the deletion of a virtual chassis when a cross-member LAG is present 2019-12-13 11:36:31 -05:00
Jeremy Stretch
85c11bbd83 Closes #3441: Move virtual machine results near devices in global search 2019-12-13 10:37:58 -05:00
Jeremy Stretch
77e0564d13 Closes #3152: Include direct link to rack elevations on site view 2019-12-13 10:12:46 -05:00
Jeremy Stretch
85563e21db Remove obsolete initial_data fixtures (no longer maintained) 2019-12-12 14:30:43 -05:00
Jeremy Stretch
9352867cec Fix up the installation docs 2019-12-12 14:27:12 -05:00
Jeremy Stretch
93837c5b9e Merge pull request #3756 from netbox-community/csv-import-tests
CSV import tests
2019-12-12 12:09:31 -05:00
Jeremy Stretch
aaf5523378 Add view tests for device components 2019-12-12 11:58:57 -05:00
Jeremy Stretch
8a22f83bc0 Add virtualization CSV import tests 2019-12-12 11:34:02 -05:00
Jeremy Stretch
7550d53d02 Add tenancy CSV import tests 2019-12-12 11:29:41 -05:00
Jeremy Stretch
821cd58825 Add secrets CSV import tests 2019-12-12 11:26:48 -05:00
Jeremy Stretch
526412a1ba Add IPAM CSV import tests 2019-12-12 10:51:17 -05:00
Jeremy Stretch
fae2469dd7 Add DCIM CSV import tests 2019-12-12 10:30:15 -05:00
Jeremy Stretch
27fd351fc2 Add CSV import tests for circuits 2019-12-12 10:08:49 -05:00
John Anderson
ea5c9df095 fixed svg gradient scaling and css flickering issue 2019-12-12 00:30:22 -05:00
Jeremy Stretch
5aa17bc42a Closes #3706: Increase available_power maximum value on PowerFeed 2019-12-11 21:12:18 -05:00
Jeremy Stretch
7bbd9be389 Tweak elevation font 2019-12-11 21:03:24 -05:00
Jeremy Stretch
dbf9a2b452 Fix bug with rendering devices taller than 1U 2019-12-11 20:19:01 -05:00
Jeremy Stretch
e4b8ea8905 Change render_format to render 2019-12-11 20:05:16 -05:00
Jeremy Stretch
fd8913f09b Fix bug in migration 2019-12-11 20:01:10 -05:00
John Anderson
645383509b change render_format to render for svg elevations 2019-12-11 17:33:58 -05:00
Jeremy Stretch
77a5f6ef81 Touched up the release notes 2019-12-11 17:22:41 -05:00
Jeremy Stretch
2ec7259a69 Rack elevation endpoint should return JSON by default; fix typo 2019-12-11 17:17:20 -05:00
Jeremy Stretch
b6f8c248de Addressed lingering TODOs 2019-12-11 17:07:56 -05:00
Jeremy Stretch
b16be577e3 CSVChoiceField should default to a blank string instead of None 2019-12-11 17:04:48 -05:00
Jeremy Stretch
590bbbce7f Fix bug left over from work on #3569 2019-12-11 16:16:14 -05:00
Jeremy Stretch
577b4593de Changelog for #3664 2019-12-11 16:14:41 -05:00
Jeremy Stretch
44e5a63a2a Merge pull request #3755 from netbox-community/3664-configcontext-tags
3664 configcontext tags
2019-12-11 16:10:48 -05:00
Jeremy Stretch
19363add30 Represent and assign ConfigContext tags by their slugs 2019-12-11 16:04:43 -05:00
Jeremy Stretch
fd88ba65b2 Cleanup for #3664 2019-12-11 15:55:33 -05:00
Jeremy Stretch
ce4a5a38a3 Introduce is_taggable utility function for identifying taggable models 2019-12-11 15:52:35 -05:00
John Anderson
05938d60f0 Merge pull request #3754 from netbox-community/2248-svg-rack-elevations
2248 svg rack elevations
2019-12-11 14:26:32 -05:00
Jeremy Stretch
8b189abd58 Merge pull request #3752 from kobayashi/3664
implement 3664
2019-12-11 14:14:48 -05:00
John Anderson
7f788eaa06 review updates to svg rendering 2019-12-11 13:39:10 -05:00
Jeremy Stretch
9f204f72ef Changelog and documentation for #1814 2019-12-11 11:01:31 -05:00
Jeremy Stretch
e02ac133eb Added import error handling and config vlaidation warning for store config 2019-12-11 10:51:32 -05:00
John Anderson
c09aefd509 updated changelog with deprecation notice of rack units endpoint 2019-12-11 10:39:46 -05:00
John Anderson
e0c81fd837 changelog for #2248 2019-12-11 10:34:44 -05:00
Jeremy Stretch
9a8c8012be Merge pull request #3666 from steffann/1814-Ability_to_use_object_store_for_images
Add support for S3 storage for media
2019-12-11 10:20:09 -05:00
Sander Steffann
f1e75b0fbb Implement storage configuration as suggested by @jeremystretch 2019-12-11 16:09:32 +01:00
John Anderson
b4d724b5ae drf-yasg updates for rack elevations 2019-12-11 09:45:08 -05:00
Sander Steffann
f7a1595ce5 Merge branch '1814-Ability_to_use_object_store_for_images' of github.com:steffann/netbox into 1814-Ability_to_use_object_store_for_images 2019-12-11 15:23:47 +01:00
Sander Steffann
378883df2b Fix code for PEP8 2019-12-11 15:19:32 +01:00
Sander Steffann
dafa2513e3 Add support for S3 storage for media 2019-12-11 15:19:32 +01:00
Jeremy Stretch
3b03d68ac7 Merge pull request #3751 from hSaria/3749-attribute-error
Fixes 3749 attribute error
2019-12-11 08:50:09 -05:00
kobayashi
5710f297f1 implement 3664 2019-12-11 04:58:42 -05:00
hSaria
b57d64c72d Changelog for #3751 2019-12-11 07:24:44 +00:00
hSaria
3b76e0203a Fixes 3749 attribute error 2019-12-11 07:03:39 +00:00
Jeremy Stretch
0d8fd45587 Updated static resources 2019-12-10 15:56:52 -05:00
Jeremy Stretch
01b6e73f9b Update dependency versions for DRF & drf_yasg 2019-12-10 15:39:57 -05:00
Jeremy Stretch
b0fb474aa2 Update dependency versions for v2.7 2019-12-10 15:16:20 -05:00
Jeremy Stretch
0787713298 Add deprecation warning for Python 3.5 2019-12-10 13:44:45 -05:00
Jeremy Stretch
6221bc8f43 Merge pull request #3750 from netbox-community/3655-role-descriptions
Add description field to organizational role models
2019-12-10 13:29:44 -05:00
Jeremy Stretch
a6904dc5d5 Add description field to CircuitType (#3655) 2019-12-10 13:25:14 -05:00
Jeremy Stretch
3d5fb2491a Chnagelog for #3655 2019-12-10 13:09:41 -05:00
Jeremy Stretch
24bdd10b4f Add description field to SecretRole model (#3655) 2019-12-10 13:03:09 -05:00
Jeremy Stretch
7845d9b25f Add description field to Role model (#3655) 2019-12-10 12:59:10 -05:00
Jeremy Stretch
1f288175e4 Add description field to RackRole and DeviceRole models (#3655) 2019-12-10 12:53:28 -05:00
Jeremy Stretch
f0a6c881bc Fix inclusion of legacy IDs on choice fields 2019-12-10 12:07:54 -05:00
Jeremy Stretch
9452cebc6a Merge branch 'develop' into develop-2.7 2019-12-10 11:51:10 -05:00
Jeremy Stretch
3c36bec298 Post-release version bump 2019-12-10 10:50:46 -05:00
Jeremy Stretch
425670f52a Merge pull request #3745 from netbox-community/develop
Release v2.6.8
2019-12-10 10:47:48 -05:00
Jeremy Stretch
6a2651991a Release v2.6.8 2019-12-10 10:42:48 -05:00
Jeremy Stretch
12657ebd7c Cable.status to slug (#3569) 2019-12-10 09:55:10 -05:00
John Anderson
d8dd5f00c1 removed rack elevations viewset 2019-12-10 03:19:26 -05:00
John Anderson
1ec191db92 initial cleanup of rack elevations 2019-12-10 03:18:10 -05:00
John Anderson
20c8abe8da Merge branch 'develop-2.7' into 2248-svg-rack-elevations 2019-12-10 02:59:04 -05:00
Jeremy Stretch
086813fc3e Changelog for #2669 2019-12-09 17:28:21 -05:00
Jeremy Stretch
606a73a547 Merge pull request #3740 from netbox-community/2669-device-vm-names
Allow non-unique device and VM names
2019-12-09 17:26:32 -05:00
Jeremy Stretch
f25e2a1922 Fixes #3644: Fix exception when connecting a cable to a RearPort with no corresponding FrontPort 2019-12-09 15:42:04 -05:00
Jeremy Stretch
740cc8b601 Remove deprecated context parameter from from_db_value 2019-12-09 12:32:51 -05:00
Jeremy Stretch
5ac4a3ba79 Omit default uniqueness validator from VirtualMachineSerializer, which implies required fields 2019-12-09 12:11:42 -05:00
Jeremy Stretch
2e37b19e9f #2269: Allow non-unique VirtualMachine names 2019-12-09 11:59:30 -05:00
Jeremy Stretch
a8dd060e32 #2269: Allow non-unique Device names 2019-12-09 11:41:03 -05:00
Jeremy Stretch
95edec5448 #3722: Tweak ordering of permitted characters to avoid creating a regex range 2019-12-09 10:02:56 -05:00
John Anderson
b0adce998b Merge pull request #3702 from hellerve/rack-elevations-api
Rack elevations API
2019-12-09 01:02:40 -05:00
John Anderson
6fe1b9b37c update openapi field type for choice field value fields to string 2019-12-09 00:41:43 -05:00
hellerve
44b042e3fc dcim api: fix face default value in rackviewset 2019-12-08 18:24:13 +01:00
hellerve
e5b49e25b9 dcim api: add feedback from @jeremystretch to rack elevations api 2019-12-08 18:14:59 +01:00
hellerve
b54a05d255 dcim: make linter happy 2019-12-08 17:59:40 +01:00
hellerve
66b6f586f1 tests: update to reflect absence of utility functions 2019-12-08 17:59:40 +01:00
hellerve
82819d5429 dcim: remove elevation getters 2019-12-08 17:59:38 +01:00
hellerve
bc859c6139 css: purge outdated rack styling 2019-12-08 17:58:36 +01:00
hellerve
e1fdc7773a requirements: fix svgwrite version 2019-12-08 17:58:35 +01:00
hellerve
5d5b7e0dd9 dcim: refactor reservations and make them resizable 2019-12-08 17:58:21 +01:00
hellerve
77890ad775 dcim: add inline stylesheet to rack elevation api view 2019-12-08 17:58:21 +01:00
hellerve
1a9b9f50d8 dcim: fix fonts & texts in svg 2019-12-08 17:58:21 +01:00
hellerve
808f5c95e3 dcim: make front and rear work (references #2248) 2019-12-08 17:58:21 +01:00
hellerve
d11de6d021 dcim: add rack-elevations api endpoint (references #2248) 2019-12-08 17:58:20 +01:00
Jeremy Stretch
88c7d95b08 ClusterForm should inherit from TenancyForm 2019-12-06 16:47:29 -05:00
Jeremy Stretch
2956eff051 Closes #648: Pre-populate forms when selecting "create and add another" 2019-12-06 16:40:39 -05:00
Jeremy Stretch
b05566e96f Implement tag replication for #33 2019-12-06 16:22:56 -05:00
Jeremy Stretch
446acbdf82 Closes #33: Add ability to clone objects (pre-populate form fields) 2019-12-06 16:13:52 -05:00
Jeremy Stretch
f2076c9572 Fixed git commit hook 2019-12-06 12:54:13 -05:00
Jeremy Stretch
d71e6698f4 Extend git commit hook to check for missing schema migrations 2019-12-06 12:42:59 -05:00
Jeremy Stretch
9b26225fdd #3720: Update migration to add powerfeeds to termination_type limit list (does not impact database) 2019-12-06 12:29:31 -05:00
Jeremy Stretch
f8c5ca942a #3722: Update migration with new validator (does not impact database) 2019-12-06 12:19:29 -05:00
Jeremy Stretch
47fefbec07 Default to localhost in example Redis configs (needed for CI to work) 2019-12-06 12:00:51 -05:00
Jeremy Stretch
45917f8014 Closes #3408: Remove WEBHOOKS_ENABLE configuration setting 2019-12-06 11:52:28 -05:00
Jeremy Stretch
dd3e7397a4 Add ITA plug/outlet types (#792) 2019-12-06 11:26:44 -05:00
Jeremy Stretch
7518174374 Closes #3731: Change Graph.type to a ContentType foreign key field 2019-12-06 10:32:59 -05:00
Sander Steffann
02a009b7a7 Don't redefine exception but split the code 2019-12-06 16:32:18 +01:00
Jeremy Stretch
16353ce63c Correct stalebot config file name 2019-12-05 21:43:22 -05:00
Jeremy Stretch
7a4b202064 Fixes #3725: Enforce client validation for minimum service port number 2019-12-05 21:22:34 -05:00
Jeremy Stretch
a97ebc6d4c Fixes #3722: Allow the underscore character in IPAddress DNS names 2019-12-05 21:14:29 -05:00
Jeremy Stretch
9e765b1704 Fixes #3730: Add link to docs page for custom links 2019-12-05 21:07:43 -05:00
Jeremy Stretch
ec9443edb8 Changelog updates 2019-12-05 20:52:30 -05:00
Jeremy Stretch
dcb2c4722c Merge pull request #3732 from netbox-community/3569-api-choice-slugs
Replace API integer API choice values with slugs
2019-12-05 17:53:47 -05:00
Jeremy Stretch
b0c0adf6e7 Adapt device component import forms from #3711 2019-12-05 17:49:44 -05:00
Jeremy Stretch
17898a4c57 Merge branch 'develop-2.7' into 3569-api-choice-slugs 2019-12-05 17:43:11 -05:00
Jeremy Stretch
edbf562803 Annotate all migration operation lists 2019-12-05 17:42:33 -05:00
Jeremy Stretch
5d772d7055 Webhook.http_content_type to slug (#3569) 2019-12-05 17:11:59 -05:00
Daniel Sheppard
8cbd2f5c2d Add list view for device components (#3719)
* Initial Work on #3564

* #3564 - Fixup issue with filter on interface

* #3564 - Fix PEP8 errors

* #3564 - Finalize fields, readjust order, reduce repetition

* #3564 - Update Changelog

* #3564 - Fix extra space

* #3564 - Change interface table ordering

* #3564 - Minor cleanup

* #3564 - Add Import Links

* Fix PEP8
2019-12-05 17:10:49 -05:00
Jeremy Stretch
89e720cb77 ExportTemplate.template_language to slug (#3569) 2019-12-05 17:01:00 -05:00
Jeremy Stretch
2583823e5f Delete obsolete user action types 2019-12-05 16:50:44 -05:00
Jeremy Stretch
33890e6b97 Remain consistent with original action strings (e.g. 'created' instead of 'create') 2019-12-05 16:42:10 -05:00
Jeremy Stretch
a2b0da2608 Fix changelog table action labels 2019-12-05 16:37:22 -05:00
Jeremy Stretch
2bcbcd3458 ObjectChange.action to slug (#3569) 2019-12-05 16:30:15 -05:00
Jeremy Stretch
8efde811e9 Fix PowerFeed field defaults 2019-12-05 16:05:45 -05:00
Jeremy Stretch
4e1ee270cf Extend CustomField migration to update CustomFieldChoice.field.limit_choices_to 2019-12-05 16:02:52 -05:00
Jeremy Stretch
7a3c725f51 Convert BUTTON_CLASS_CHOICES to a ChoiceSet 2019-12-05 15:59:16 -05:00
Jeremy Stretch
fe2c682dc3 Changelog updates 2019-12-05 15:54:29 -05:00
Sander Steffann
adb25fd7d7 822 bulk import of device components (#3711)
Closes #822: CSV import for device components

* Implement CSV import for netbox-community#822

* Comment out default_return_url until there is a proper target

* Fix the default value of `enabled` when not included in the import

* rear_port is definitely required here

* Power Ports don't have a type (yet)

* Add import for console-ports and console-server-ports

* Add import for device-bays
2019-12-05 15:36:11 -05:00
Jeremy Stretch
bfea77baa5 CustomField.filter_logic to slug 2019-12-04 21:09:02 -05:00
Jeremy Stretch
3ff22bea56 CustomField.type to slug 2019-12-04 21:01:50 -05:00
Jeremy Stretch
ca11b9a2f5 VirtualMachine.status to slug 2019-12-04 20:40:18 -05:00
John Anderson
1048d3909b fixes #3724 - allow filtering interfaces by more than one device name 2019-12-04 02:00:08 -05:00
Jeremy Stretch
4ecbfc4e5e Service.protocol to slug (#3569) 2019-11-27 22:27:06 -05:00
Jeremy Stretch
213bd1555a VLAN.status to slug (#3569) 2019-11-27 22:15:59 -05:00
Jeremy Stretch
14a7a33cc2 IPAddress.role to slug (#3569) 2019-11-27 22:09:16 -05:00
Jeremy Stretch
ba8f324b12 IPAddress.status to slug (#3569) 2019-11-27 21:54:01 -05:00
Jeremy Stretch
929c0648d0 Prefix.status to slug (#3569) 2019-11-27 21:46:53 -05:00
Jeremy Stretch
21fe5902a8 PowerOutlet.feed_leg to slug (#3569) 2019-11-27 21:30:11 -05:00
Jeremy Stretch
b2caaa6733 Fixes #3312: Fix validation error when editing power cables in bulk 2019-11-27 09:19:34 -05:00
Jeremy Stretch
15722c1871 Fixes #3720: Correctly indicate power feed terminations on cable list 2019-11-26 16:56:11 -05:00
Jeremy Stretch
1d18948307 Fixes #3709: Prevent exception when importing an invalid cable definition 2019-11-26 16:46:51 -05:00
Jeremy Stretch
8c7f6c62b0 PowerFeed.status to slug (#3569) 2019-11-25 21:22:14 -05:00
Jeremy Stretch
2dc07ca30d PowerFeed.phase to slug (#3569) 2019-11-25 21:14:04 -05:00
Jeremy Stretch
bb8b012397 PowerFeed.supply to slug (#3569) 2019-11-25 21:08:34 -05:00
Jeremy Stretch
62494f295e PowerFeed.type to slug (#3569) 2019-11-25 21:03:11 -05:00
Jeremy Stretch
9872a46583 Rack.outer_unit to slug (#3569) 2019-11-25 20:54:24 -05:00
Jeremy Stretch
4846557d61 Cable.length_unit to slug (#3569) 2019-11-25 20:40:29 -05:00
Jeremy Stretch
79a40e22c9 Cable.type to slug (#3569) 2019-11-25 19:57:13 -05:00
Jeremy Stretch
dead5b42be Front/RearPort.type to slug (#3569) 2019-11-25 19:39:25 -05:00
Jeremy Stretch
bcc34f6099 Device.face to slug (#3569) 2019-11-25 19:23:43 -05:00
Jeremy Stretch
6a451e0c0e Merge pull request #3701 from hSaria/3697-custom-scripts-example-typo
Fixes #3697: Correct field_order attribute name
2019-11-22 08:45:21 -05:00
Jeremy Stretch
5c95927a43 Site.status to slug (#3569) 2019-11-21 22:54:01 -05:00
Jeremy Stretch
3fa4ceadb0 Interface.mode to slug (#3569) 2019-11-21 22:50:01 -05:00
Jeremy Stretch
f93cd17fee Consolidate #3569 field migrations by model 2019-11-21 22:26:35 -05:00
Jeremy Stretch
5f5081f719 Interface.type to slug (#3569) 2019-11-21 22:11:02 -05:00
Jeremy Stretch
180d3d0029 Resolved migration discrepancies when dealing with NULL values 2019-11-21 21:44:30 -05:00
Jeremy Stretch
4e2863e4ec Move CircuitTermination.term_side choices to a ChoiceSet 2019-11-21 21:28:59 -05:00
hSaria
b46e52eccc Fixed #3697: Correct field_order attribute name 2019-11-20 17:03:12 +00:00
Jeremy Stretch
f3a41df395 #3455: Correct related_name on Cluster.tenant 2019-11-18 22:12:29 -05:00
Jeremy Stretch
afd82fd9d3 DeviceType.subdevice_role to slug (#3569) 2019-11-18 22:08:33 -05:00
Jeremy Stretch
fbd12e1887 Create a separate migration for each field 2019-11-18 21:41:04 -05:00
Jeremy Stretch
4f0d82ac16 Standardize migration names for #3569 2019-11-18 21:04:12 -05:00
Jeremy Stretch
88b8cf3360 Tweak migrations to handle NULL values 2019-11-18 20:56:22 -05:00
Jeremy Stretch
a8db07e0a8 Device.face to slug (#3569) 2019-11-16 21:46:07 -05:00
Jeremy Stretch
c79c29e769 Rack.status to slug (#3569) 2019-11-15 22:03:41 -05:00
Jeremy Stretch
e1e09bff9b Correct Rack.type migration logic 2019-11-15 21:50:33 -05:00
Jeremy Stretch
07aa036fe8 Convert RACK_WIDTH_CHOICES to ChoiceSet 2019-11-15 21:33:56 -05:00
Jeremy Stretch
8d27b62114 Rack.status to slug (#3569) 2019-11-15 21:31:57 -05:00
Jeremy Stretch
62b45494b6 Convert all DCIM choice classes to ChoiceSets 2019-11-15 21:17:01 -05:00
Jeremy Stretch
de986ec392 Merge pull request #3687 from kobayashi/3679
fix url expressions
2019-11-14 22:03:03 -05:00
Jeremy Stretch
4b415caad2 Changelog for #3663 2019-11-14 22:01:37 -05:00
Jeremy Stretch
bfede60f3d Rename CreatedUpdatedFilter to CreatedUpdatedFilterSet 2019-11-14 22:00:12 -05:00
Jeremy Stretch
03b8759597 'base_name' deprecated in DRF v3.9.0 2019-11-14 21:58:37 -05:00
Jeremy Stretch
bdd623f82c Merge pull request #3680 from struppinet/develop
Closes #3663: API filter by created, last_updated
2019-11-14 21:57:26 -05:00
kobayashi
3c8083ed7f fix url expressions 2019-11-13 00:48:47 -05:00
kobayashi
5904f1f8ee Changelog for #3329 2019-11-12 09:47:31 -05:00
kobayashi
cc848a3f01 Merge pull request #3684 from bbock/docs-remove-p3p
Docs: Remove obsolete P3P policy
2019-11-12 09:38:46 -05:00
Bernhard Bock
1aaa101fb5 Docs: Remove obsolete P3P policy
P3P is obsolete (https://www.w3.org/TR/P3P11/), therefore the HTTP header
should be removed from the recommended config in the installation docs.
2019-11-08 15:13:32 +01:00
struppi
0319450643 Closes #3663: rename filter class 2019-11-07 22:41:09 +01:00
struppi
099774d667 Closes #3663: PEP8 fixes 2019-11-07 22:38:51 +01:00
Jeremy Stretch
e09ad6915f Circuit.status (#3569) 2019-11-07 11:11:10 -05:00
Jeremy Stretch
a2a6b754be Introduce ChoiceSet class for field choices 2019-11-07 10:33:10 -05:00
Jeremy Stretch
d392982fe7 Extend DeviceType import test with power port/outlet types 2019-11-06 16:59:01 -05:00
Jeremy Stretch
8cb7eb0382 Convert console port types to slugs (#3569) 2019-11-06 16:56:46 -05:00
Jeremy Stretch
48dcd2d2b9 Merge pull request #3675 from netbox-community/792-power-types
Introduce power port and outlet types
2019-11-06 16:12:37 -05:00
Jeremy Stretch
6ccaa0d9bd Initial work on #792 2019-11-06 15:30:54 -05:00
Jeremy Stretch
b1761f7856 #3139: Add a message indicating why the user is redirected 2019-11-06 10:01:42 -05:00
Jeremy Stretch
1bc38f66ae Changelog entries for #3139 and #3457 2019-11-06 09:58:30 -05:00
Jeremy Stretch
b4433a8471 Merge pull request #3667 from steffann/3139-disable-user-password-change-if-come-in-with-ldap-auth
Hide password change page when user is logged in using LDAP
2019-11-06 09:57:25 -05:00
Jeremy Stretch
053f49c76a Merge pull request #3673 from ananace/cable-color-display
3457 Display cable colors in device interface list
2019-11-06 09:53:59 -05:00
Jeremy Stretch
fbde6187ea Fixes #3669: Include weight field in prefix/VLAN role form 2019-11-06 09:39:21 -05:00
Jeremy Stretch
5eb5c4bac5 Fixes #3674: Include comments on PowerFeed view 2019-11-06 09:26:49 -05:00
Jeremy Stretch
fb4283ed53 Move alternative installations to the GitHub wiki 2019-11-06 09:05:12 -05:00
Alexander Olofsson
bbd65988f9 3457 Display cable colors in device interface list 2019-11-06 10:15:55 +01:00
struppi
a11fa44170 Closes #3663: fix inheritance error 2019-11-04 21:00:44 +01:00
struppi
99a542e4e4 Closes #3663: API filter by created, last_updated 2019-11-04 20:51:56 +01:00
Sander Steffann
a6f2d5b414 Fix code for PEP8 2019-11-03 16:12:39 +03:00
Sander Steffann
7f779e3942 Hide password change page when user is logged in using LDAP 2019-11-03 16:05:53 +03:00
Sander Steffann
7306d56902 Add support for S3 storage for media 2019-11-03 14:16:12 +03:00
Jeremy Stretch
b8f1585976 Merge branch 'develop' into develop-2.7 2019-11-01 16:19:36 -04:00
Jeremy Stretch
a2a83a4a4c Post-release version bump 2019-11-01 15:54:17 -04:00
Jeremy Stretch
9f7313e492 Merge pull request #3661 from netbox-community/develop
Release v2.6.7
2019-11-01 15:43:38 -04:00
Jeremy Stretch
f6fbf66c8c Merge branch 'master' into develop 2019-11-01 15:39:24 -04:00
Jeremy Stretch
3deedfd177 Release v2.6.7 2019-11-01 15:37:05 -04:00
Jeremy Stretch
e9d5ff095c Suppress migration messages during tests; fix typo 2019-11-01 15:08:59 -04:00
Jeremy Stretch
43d6bfa15f Corrected test 2019-11-01 15:08:20 -04:00
Jeremy Stretch
875e09013c Move TreeNodeMultipleChoiceFilter tests to utilities (follow-up to #3616) 2019-11-01 15:01:24 -04:00
Jeremy Stretch
ee854eff2c Changelog for #3357 2019-11-01 14:31:03 -04:00
Jeremy Stretch
b176e0fafd Merge pull request #3616 from kobayashi/3357
allow null region filtering
2019-11-01 14:29:32 -04:00
Jeremy Stretch
fb24a4d420 Merge pull request #3660 from tyler-8/gunicorn_options
Add max_requests details to example config
2019-11-01 12:32:39 -04:00
Jeremy Stretch
391c42300e Closes #3659: Add filtering for objects in admin UI 2019-11-01 12:22:39 -04:00
Tyler Bigler
2a8fa01a57 Increase request counts for max_requests 2019-11-01 12:09:44 -04:00
Jeremy Stretch
bd4b496d14 Tweak PR template to indicate placement of issue number 2019-11-01 11:52:43 -04:00
Jeremy Stretch
cf5c24ee2d Add new Interface type from #3619 2019-11-01 11:49:17 -04:00
Jeremy Stretch
66f4aac0e8 Changelog for #3619 2019-11-01 11:45:22 -04:00
Jeremy Stretch
267caa348e Merge pull request #3657 from Netnod/3619-new-400G-osfp-interface-type
3619 new 400 g osfp interface type
2019-11-01 11:43:43 -04:00
Tyler Bigler
7bf09a3085 Remove redundant word 2019-11-01 10:26:53 -04:00
Tyler Bigler
a0de0696c5 Add max_requests details to example config 2019-11-01 10:23:25 -04:00
Jeremy Stretch
a63383dc08 Reorganized navigation menu 2019-10-30 16:39:32 -04:00
Jeremy Stretch
0ad19081ac Move slug-based choices to choices.py 2019-10-30 16:31:04 -04:00
Emil Palm
aa6b2b8407 Merge remote-tracking branch 'upstream/develop' into 3619-new-400G-osfp-interface-type 2019-10-30 14:31:17 -05:00
Emil Palm
3e6726ff97 Add IFACE_TYPE_400GE_OSPF 2019-10-30 14:30:23 -05:00
Jeremy Stretch
bb30f64252 Closes #1865: Add console port and console server port types 2019-10-30 14:25:55 -04:00
Jeremy Stretch
c4dd76a748 Updated v2.7 release notes 2019-10-30 10:34:26 -04:00
Jeremy Stretch
56a248e601 Merge pull request #3654 from netbox-community/3538-scripts-api
3538: Add custom script API endpoints
2019-10-30 09:35:22 -04:00
Jeremy Stretch
0f65cf23a5 Only use module.name for human-facing display 2019-10-30 09:13:26 -04:00
Jeremy Stretch
fd3f718a0a Add tests for custom script API 2019-10-29 16:54:27 -04:00
Jeremy Stretch
93d28e6a72 Improve script output serialization 2019-10-29 16:17:59 -04:00
Jeremy Stretch
60ec3fde9d Closes #3652: Limit next/previous rack by assigned rack group 2019-10-29 15:17:00 -04:00
Jeremy Stretch
1cfb8aea23 Initial work on #3538: script execution API 2019-10-28 15:02:21 -04:00
Jeremy Stretch
846acf7e9d Changelog for #3629 2019-10-28 13:19:01 -04:00
kobayashi
fb9279cc74 Merge pull request #3645 from BegBlev/llpd-port-id
Retrieve port-id in LLDP tab
2019-10-28 12:19:10 -04:00
kobayashi
d2aa9b8e79 filtering multiple regions with null 2019-10-28 02:24:44 -04:00
Tyler Bigler
eaeb52de20 Add CONN_MAX_AGE to documentation (#3642)
* Add CONN_MAX_AGE to sample configurations

* Correct alignment

* Restore ghost space

* Correct alignment.

* Use stable docs url
2019-10-25 13:11:48 -04:00
Jeremy Stretch
fdbf41e9fd Fixes #3643: Update all Django documentation links to 'stable' version 2019-10-25 11:09:30 -04:00
Jeremy Stretch
092346c819 Changelog for #3309 2019-10-25 09:57:17 -04:00
Jeremy Stretch
5a5f51fe48 Merge pull request #3632 from netbox-community/3309-changelog-middleware
Rewrite change logging middleware
2019-10-25 09:47:32 -04:00
Jeremy Stretch
800df1ebbe Fixes #3636: Add missing rack_group field to PowerFeed CSV export 2019-10-25 09:27:33 -04:00
John Anderson
8eec67e73a #3635 changelog 2019-10-24 23:31:06 -04:00
John Anderson
33b420652d Merge pull request #3639 from sdktr/patch-1
Fix #3635 - cache circuits.*
2019-10-24 21:16:28 -04:00
Stefan de Kooter
42b679d9a3 Fix #3635 - cache circuits.*
Enable caching for items under the circuits app
2019-10-25 00:46:05 +02:00
Jeremy Stretch
ae4f17264f Fixes #3460: Extend upgrade script to validate Python dependencies 2019-10-23 17:12:32 -04:00
Jeremy Stretch
c7d8083ac6 Closes #3594: Add ChoiceVar for custom scripts 2019-10-23 15:59:27 -04:00
Jeremy Stretch
95fec1a87c Merge pull request #3627 from bdlamprecht/pg_dump-documentation
Adding note on invalidating cache
2019-10-23 12:24:27 -04:00
Jeremy Stretch
657a7aef42 Changelog for #3455 2019-10-23 11:55:45 -04:00
Jeremy Stretch
ea0d232169 Merge pull request #3572 from frelon/cluster-tenant
Add tenancy to cluster
2019-10-23 11:53:22 -04:00
Jeremy Stretch
7467347af1 Fixes #3596: Prevent server error when reassigning a device to a new device bay 2019-10-23 09:28:00 -04:00
Jeremy Stretch
0ebc2e4ac0 Fix reporting of custom fields in webhook data on object deletion 2019-10-22 16:12:25 -04:00
Jeremy Stretch
ccb9f7bfe2 Rewrote ObjectChangeMiddleware to remove the curried handle_deleted_object() function 2019-10-22 15:10:49 -04:00
kobayashi
766b5dff24 allow null region filtering 2019-10-22 00:41:49 -04:00
Vincent Catros
68e0329c1b Retrieve port-id in LLDP tab 2019-10-21 11:57:23 +02:00
Brady Lamprecht
fd99994fdb Adding note on invalidating cache 2019-10-18 14:59:55 -06:00
Jeremy Stretch
f21a63382c Changelog for #3340 2019-10-18 09:08:56 -04:00
Jeremy Stretch
6f0581598b Merge pull request #3613 from kobayashi/3340
modified front port connection type list
2019-10-18 09:07:22 -04:00
kobayashi
244e85e836 modify patch panel port connection type list 2019-10-18 00:01:21 -04:00
Jeremy Stretch
1df6713ad5 Minor improvements pertaining to CII best practices 2019-10-17 20:56:37 -04:00
Jeremy Stretch
c6893731ad Merge pull request #3621 from netbox-community/451-devicetype-import
Enable YAML/JSON-based DeviceType import
2019-10-17 16:43:15 -04:00
Jeremy Stretch
2ffbced47e Rework InterfaceTypes and PortTypes classes 2019-10-17 16:38:31 -04:00
Jeremy Stretch
bfce177a07 Merge pull request #3604 from netbox-community/3282-seperate-redis-config
implements #3282 - seperate webhooks and caching redis configs
2019-10-17 16:03:26 -04:00
Jeremy Stretch
8ca182571c Rebase schema migrations 2019-10-17 15:53:10 -04:00
Jeremy Stretch
801dd384d8 Merge branch 'develop' into develop-2.7 2019-10-17 15:51:33 -04:00
Jeremy Stretch
adc96702db Deleted errant import of graphviz 2019-10-17 15:43:49 -04:00
Jeremy Stretch
af73ce75ce Merge pull request #3607 from netbox-community/3606-stale-bot
implemented #3606 - added stale bot config
2019-10-17 14:32:40 -04:00
Jeremy Stretch
f08968da49 Exempt issues tagged with "status: blocked" 2019-10-17 14:28:27 -04:00
Fredrik Lönnegren
18e0bd8937 Fix typo 2019-10-16 08:22:06 +02:00
John Anderson
24344ccfaf Merge pull request #3615 from markkuleinio/develop
Update examples in webhooks.md
2019-10-15 14:27:20 -04:00
Markku Leiniö
91f045a2e4 Update examples in webhooks.md 2019-10-15 20:51:57 +03:00
Jeremy Stretch
050dfb279d Merge pull request #3597 from dgarros/patch-1
Update pillow version to 6.2.0
2019-10-15 11:54:44 -04:00
Jeremy Stretch
f9b7f18be6 Merge pull request #3609 from ScanPlusGmbH/missing-variable
Add SCRIPTS_ROOT to configuration.example.py
2019-10-14 11:58:28 -04:00
Tobias Genannt
a7380ba353 Add SCRIPTS_ROOT to configuration.example.py
Fixes #3608 by adding the new variable to the example configuration.
2019-10-14 09:29:04 +02:00
John Anderson
b8feba1070 implemented #3606 - added stale bot config 2019-10-13 04:12:58 -04:00
John Anderson
64575fec42 Merge pull request #3605 from netbox-community/3445-webhooks-additional-headers
implemented #3445 - Add support for additional user defined headers t…
2019-10-13 03:15:43 -04:00
John Anderson
c7d9bf839e implemented #3445 - Add support for additional user defined headers to be added to webhook requests 2019-10-13 03:09:58 -04:00
John Anderson
0d15ac15ae implements #3282 - seperate webhooks and caching redis configs 2019-10-13 02:49:54 -04:00
John Anderson
b013a60b12 Merge branch 'develop' into develop-2.7 2019-10-13 02:03:16 -04:00
John Anderson
8480c0da53 Merge pull request #3603 from netbox-community/3499-webhooks-ca-filepath
implemented #3499 - Add  to Webhook model to support user supplied CA certificate verification of webhook requests
2019-10-13 01:50:10 -04:00
John Anderson
5e88313276 typo in change log 2019-10-13 01:45:20 -04:00
John Anderson
09d7d38b04 implemented #3499 - Add to Webhook model to support user supplied CA certificate verrification of webhook requests 2019-10-13 01:43:08 -04:00
Damien Garros
4cc29729f9 Update pillow version to 6.2.0
A new CVE just got reporter regarding Pillow 
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-16865
it's affecting all version prior to 6.2.0
2019-10-11 13:45:37 -04:00
Jeremy Stretch
d787c353f3 Added slug choices for interface and port types 2019-10-10 23:24:44 -04:00
Jeremy Stretch
553fe0fe97 Merge branch 'develop' into 451-devicetype-import 2019-10-10 13:50:57 -04:00
Jeremy Stretch
aeeb49a6a7 Merge branch 'develop' into develop-2.7 2019-10-10 13:41:10 -04:00
Jeremy Stretch
b25faec159 Post-release version bump 2019-10-10 12:42:57 -04:00
Jeremy Stretch
c2b1556d68 Correct version number 2019-10-10 12:41:02 -04:00
Jeremy Stretch
81acf57518 Merge pull request #3591 from netbox-community/develop
Release v2.6.6
2019-10-10 09:34:17 -07:00
Jeremy Stretch
abbc44a7d1 #3259: Add site and rack fields to cables filter form 2019-10-10 12:28:17 -04:00
Jeremy Stretch
74c259af2e Tweak release notes for v2.6.6 2019-10-10 12:21:40 -04:00
Jeremy Stretch
465304588e Release v2.6.6 2019-10-10 12:18:18 -04:00
Jeremy Stretch
70ad705380 Provide index link to most recent version for release note 2019-10-10 12:10:35 -04:00
Jeremy Stretch
4e6b60b0f4 Rearranged release notes 2019-10-10 12:02:53 -04:00
Jeremy Stretch
d849a49842 Fixes #3588: Enforce object-form JSON for local context data on devices and VMs 2019-10-10 10:41:08 -04:00
Jeremy Stretch
4c7c40a09d Merge pull request #3587 from netbox-community/reorganized-changelog
Reorganized CHANGELOG into release notes based on minor version number
2019-10-10 06:17:42 -07:00
Jeremy Stretch
521d6941fa Merge branch 'develop' into reorganized-changelog 2019-10-10 09:15:57 -04:00
kobayashi
e223c88548 Merge pull request #3553 from chambersh1129/develop
Replace all instances of .extra() in QuerySets with annotations #3117
2019-10-09 21:54:16 -04:00
chambersh1129
52e9369af4 PEP 8 E121 continuation line under-indented for hanging indent fix 2019-10-09 20:11:02 -04:00
chambersh1129
bdb3838d71 Replace all instances of .extra() in QuerySets with annotations, including references in docstrings 2019-10-09 20:11:02 -04:00
Jeremy Stretch
0a921d37f8 Fixes #3582: Enforce view permissions on global search results 2019-10-09 16:45:33 -04:00
Jeremy Stretch
896d58fc3f Fixes #3458: Prevent primary IP address for a device/VM from being reassigned 2019-10-09 16:22:06 -04:00
Jeremy Stretch
c770b13903 Fixes #3474: Fix device status page loading when NAPALM call fails 2019-10-09 15:44:32 -04:00
Jeremy Stretch
6cdeb0ed95 Fixes #3463: Correct CSV headers for exported power feeds 2019-10-09 15:25:31 -04:00
Jeremy Stretch
99f7cfcbd3 Closes #3581: Introduce commit_default custom script attribute to not commit changes by default 2019-10-09 15:16:50 -04:00
Jeremy Stretch
d402b6c3e5 Closes #3545: Add MultiObjectVar for custom scripts 2019-10-09 15:06:00 -04:00
Jeremy Stretch
738368a6a1 Closes #3471: Disallow raw HTML in Markdown-rendered fields 2019-10-09 14:47:40 -04:00
Jeremy Stretch
3dbf94146a Reorganized CHANGELOG into release notes based on minor version number 2019-10-09 13:54:05 -04:00
Jeremy Stretch
7a65930361 Merge pull request #3561 from netbox-community/3560-drf-bootstrap-css
Override DRF's builtin Bootstrap with NetBox's own more recent copy
2019-10-09 08:53:13 -07:00
Jeremy Stretch
6068b1a275 Closes #3580: Render text and URL fields as textareas in the custom link form 2019-10-09 09:40:24 -04:00
Jeremy Stretch
4c677e7fe6 Force checkbox table columns to narrow width 2019-10-07 17:22:35 -04:00
Jeremy Stretch
c668b990e1 Closes #3563: Enable editing of individual DeviceType components 2019-10-07 17:08:51 -04:00
Jeremy Stretch
a9d3d38a41 Changelog for #1941 2019-10-07 15:03:10 -04:00
Jeremy Stretch
f04c321aab Merge pull request #3565 from ananace/add-infiniband
Added InfiniBand interface form factor
2019-10-07 12:02:06 -07:00
Jeremy Stretch
ed785098a6 Fixes #3571: Prevent erroneous redirects when editing tags 2019-10-07 14:27:02 -04:00
Jeremy Stretch
9198d6924e Fixes #3573: Ensure consistent display of changelog retention period 2019-10-07 14:12:16 -04:00
Jeremy Stretch
4ab6aca2ec Fixes #3575: Restore label for comments field when bulk editing circuits 2019-10-07 14:06:41 -04:00
Fredrik Lönnegren
3262805938 Add tenancy to cluster
fix pep8
2019-10-07 16:20:14 +02:00
dansheps
04d9889127 Fixes #3574 - Change device to parent in interface edit form vlan filtering logic 2019-10-07 08:54:39 -05:00
Jeremy Stretch
a3b9bdaff1 Miscellaneous cleanup 2019-10-04 12:59:10 -04:00
Jeremy Stretch
6f83fca216 Delete obsolete IFACE_ORDERING constants 2019-10-03 19:53:32 -04:00
Jeremy Stretch
9f52cdeee9 Closes #3568: Update jQuery library to v3.4.1 2019-10-03 18:53:00 -04:00
Jeremy Stretch
26071903c1 Add stdout progress logging to cable migration 2019-10-03 18:49:56 -04:00
Jeremy Stretch
8a5ee6f8ea Merge pull request #3552 from kobayashi/develop
fixed broken links
2019-10-03 14:33:15 -04:00
Saria Hajjar
0ec8476b4d Added InfiniBand interface form factor 2019-10-03 09:22:19 +02:00
Jeremy Stretch
807d849657 PEP8 fix 2019-10-01 17:07:17 -04:00
Jeremy Stretch
6892b79366 Enforce object creation permissions 2019-10-01 16:54:10 -04:00
Jeremy Stretch
88d61db384 Fix YAMLLoadWarning 2019-10-01 16:39:11 -04:00
Jeremy Stretch
ee4e68b082 Rewrote test for DeviceType import 2019-10-01 16:36:31 -04:00
Jeremy Stretch
63ad93afd0 Merge pull request #3550 from netbox-community/3259-cable-filters
3259 cable filters
2019-10-01 14:25:20 -04:00
Jeremy Stretch
60e03eb841 Override DRF's builtin Bootstrap with NetBox's own more recent copy 2019-10-01 10:11:23 -04:00
kobayashi
b2ac81a78f fixed broken links 2019-09-28 00:41:09 -04:00
Jeremy Stretch
edc1b52f65 Adopted a different approach to importing related objects 2019-09-27 16:51:12 -04:00
Jeremy Stretch
aa9d034b5d Filter by site slug rather than by name 2019-09-27 15:12:16 -04:00
Jeremy Stretch
4889c8ff9b Closes #3259: Add rack and site filters for cables 2019-09-27 12:18:53 -04:00
Jeremy Stretch
d2ab41abfb Cache A/B termination devices on the Cable model 2019-09-26 17:17:12 -04:00
Jeremy Stretch
56ddf79ae7 Update Travis-CI badges in README 2019-09-26 15:03:20 -04:00
Jeremy Stretch
36d4f0d259 Fix typo 2019-09-25 16:39:04 -04:00
Jeremy Stretch
5f3528cf74 Capture MultiObjectField default form field values 2019-09-25 16:19:22 -04:00
Jeremy Stretch
47f1febfc9 Capture import form field default values 2019-09-25 16:06:09 -04:00
Jeremy Stretch
93154abb31 Merge branch 'develop' into 451-devicetype-import 2019-09-25 13:44:48 -04:00
Jeremy Stretch
778e5bed3c Merge branch 'develop' into develop-2.7 2019-09-25 13:44:29 -04:00
Jeremy Stretch
ef1fa55902 Post-release version bump 2019-09-25 13:29:22 -04:00
Jeremy Stretch
963991e246 Merge pull request #3544 from netbox-community/develop
Release v2.6.5
2019-09-25 13:28:17 -04:00
Jeremy Stretch
3e4cd59fc0 Releae v2.6.5 2019-09-25 13:24:28 -04:00
Jeremy Stretch
874247c7ab Merge pull request #3508 from mohahmed13/develop
Adding a reference to deploying NetBox via Kubernetes manifests
2019-09-25 12:11:08 -04:00
Jeremy Stretch
b7b04045de Closes #3515: Enable export templates for inventory items 2019-09-25 12:07:41 -04:00
Daniel Sheppard
a84dbbf482 Fixes: #3543 - Adds inline vlan editing to virtual machine interfaces 2019-09-25 10:49:08 -05:00
Jeremy Stretch
f54774f6a1 Closes #3297: Include reserved units when calculating rack utilization 2019-09-25 10:54:08 -04:00
Daniel Sheppard
a359d88897 Update changelog 2019-09-25 09:29:54 -05:00
Daniel Sheppard
458251683c Fixes: #3540 - Changed interface edit to use new inline vlan edit fields 2019-09-25 09:28:23 -05:00
Jeremy Stretch
eeb3434349 Closes #3347: Extend upgrade script to automatically remove stale content types 2019-09-25 10:22:02 -04:00
Jeremy Stretch
d183a9e7b5 Closes #3352: Enable filtering changelog API by changed_object_id 2019-09-25 10:11:41 -04:00
Jeremy Stretch
86cef1c502 Fixes #3435: Change IP/prefix CSV export to reference VRF name instead of RD 2019-09-25 09:39:03 -04:00
Jeremy Stretch
b8d8cb33ff Closes #3529: Enable filtering circuits list by region 2019-09-25 09:21:21 -04:00
Jeremy Stretch
0615d368f2 Force validation of individual objects within a MultiObjectField 2019-09-24 16:51:59 -04:00
Jeremy Stretch
30ee232654 Move JSON/YAML data valdiation to ImportForm 2019-09-24 16:13:52 -04:00
Daniel Sheppard
a4690ec5ce Fix ordering for rack positioning 2019-09-24 15:08:57 -05:00
Jeremy Stretch
2621f17cde Remove legacy CSV-based DeviceType import 2019-09-24 16:03:10 -04:00
Jeremy Stretch
15b2a7eab0 Fix form rendering; enable toggling of redirect to imported object 2019-09-24 15:58:23 -04:00
Daniel Sheppard
d0597cd289 Fix ordering for Rack Positioning 2019-09-24 14:36:41 -05:00
Jeremy Stretch
fe85dc1186 Closes #3524: Enable bulk editing of power outlet/power port associations 2019-09-24 15:27:47 -04:00
Jeremy Stretch
51baaab74b Changelog for #3464 2019-09-24 15:14:22 -04:00
Jeremy Stretch
35fc0d6847 Merge pull request #3536 from DanSheps/develop
Fixes: #3464 - Change color picker to dynamic coloring from static CSS
2019-09-24 15:13:11 -04:00
Jeremy Stretch
ffc6eec483 Fixes #3519: Prevent cables from being terminated to virtual/wireless interfaces 2019-09-24 15:07:54 -04:00
Daniel Sheppard
17ec9aa170 Fixes: #3464 - Change color picker to dynamic coloring from static CSS 2019-09-24 09:39:06 -05:00
Daniel Sheppard
6fdd35785e Fixes: #3531 - Fix FG Color for Rack Role 2019-09-24 08:50:23 -05:00
Daniel Sheppard
fb34507def Fixes: #3532 - add device to graph type for documentation 2019-09-24 08:45:31 -05:00
Daniel Sheppard
8996c530c9 Fixes: #3534 - Add none option for untagged vlan field 2019-09-24 08:39:41 -05:00
Jeremy Stretch
b0724dfd14 Add developer guidance 2019-09-23 14:57:01 -04:00
Daniel Sheppard
a17060c060 Update CHANGELOG.md 2019-09-23 13:04:13 -05:00
Jeremy Stretch
f8e10f66e1 Remove extraneous demo scripts 2019-09-23 09:21:38 -04:00
Jeremy Stretch
5049c6c0a1 Add test for DeviceType import 2019-09-20 15:57:44 -04:00
Jeremy Stretch
60b70b6c7b Add RearPortTemplate power_port field 2019-09-20 15:16:14 -04:00
Jeremy Stretch
5266fc67c9 Extend DeviceType import to include related objects 2019-09-20 14:02:14 -04:00
Jeremy Stretch
0798533201 Add docs link for custom scripts; arrange links alphabetically 2019-09-20 09:10:32 -04:00
Jeremy Stretch
56dcadb69b Merged v2.6.4 2019-09-20 08:35:14 -04:00
Daniel Sheppard
a1216fc1b7 Fixed thrown error in parseURL 2019-09-19 10:32:47 -05:00
Jeremy Stretch
353195850f Post-release version bump 2019-09-19 09:36:23 -04:00
Jeremy Stretch
b8dd379cef Merge pull request #3518 from netbox-community/develop
Release v2.6.4
2019-09-19 09:34:49 -04:00
Jeremy Stretch
be2417d808 Release v2.6.4 2019-09-19 09:30:16 -04:00
Jeremy Stretch
d4b263dd0c Fixes #3439: Add a note about the Swagger API interface 2019-09-18 16:41:08 -04:00
Jeremy Stretch
37aaf6f4ab Fixes #3429: Update installation docs for Redis 2019-09-18 16:35:45 -04:00
Jeremy Stretch
51fb0b59ec Closes #3485: Enable embedded graphs for devices 2019-09-18 15:59:52 -04:00
Jeremy Stretch
a0545568cd Fixes #3514: Label TextVar fields when rendering custom script forms 2019-09-18 15:39:26 -04:00
Jeremy Stretch
84208d5429 Fixes #3511: Correct API URL for nested device bays 2019-09-18 14:40:47 -04:00
Jeremy Stretch
7264a4ffb6 Fixes #3513: Fix assignment of tags when creating front/rear ports 2019-09-18 14:33:47 -04:00
Daniel Sheppard
e8ee6f1bc5 Clean up extra line that snuck in 2019-09-17 15:45:55 -05:00
Jeremy Stretch
a742d897d7 Closes #3510: Add minimum/maximum prefix length enforcement for IPNetworkVar 2019-09-17 16:36:36 -04:00
Moh Ahmed
0903362334 Adding a reference to deploying NetBox via Kubernetes manifests 2019-09-17 15:51:29 -04:00
Jeremy Stretch
f8fdca4968 Initial work on JSON/YAML-based DeviceType import 2019-09-13 16:18:29 -04:00
Daniel Sheppard
0601619f50 Merge branch 'develop' of https://github.com/netbox-community/netbox into develop 2019-09-13 12:09:02 -05:00
Daniel Sheppard
1a1f6aff7b Closes: #3495 2019-09-13 12:08:48 -05:00
Jeremy Stretch
5962e7c942 Fixes #3501: Fix rendering of checkboxes on custom script forms 2019-09-13 11:45:35 -04:00
Daniel Sheppard
57d35181f0 Fix performance issues when creating/editing interfaces due to unfiltered vlan queryset 2019-09-12 11:13:40 -05:00
Daniel Sheppard
73065fa6e7 Using static element to determine brief parameter, corrected to $(element) 2019-09-11 10:10:43 -05:00
Jeremy Stretch
a8ca536d44 Bump platform name/slug max length to 100 chars (#3318) 2019-09-10 15:50:41 -04:00
Jeremy Stretch
062c65fd67 Changelog cleanup 2019-09-10 15:45:54 -04:00
Jeremy Stretch
f533530693 Moved related projects list to the wiki 2019-09-10 15:30:19 -04:00
Jeremy Stretch
355910e182 Fixes #3489: Prevent exception triggered by webhook upon object deletion 2019-09-09 15:50:10 -04:00
Daniel Sheppard
e67d4fb2e5 Update Changelog with Future Changes 2019-09-06 13:32:21 -05:00
Daniel Sheppard
050f2478d3 Fixes: #3318 - Increases length of platform name and slug to 64 characters (#3353) 2019-09-06 13:01:27 -05:00
Daniel Sheppard
9c6dbd7337 Add in in-line vlan editing and Bulk vlan editing (#3350)
* Fixes #3341 - Added in-line vlan editing
* Fixes #2160 - Added bulk vlan editing

Inconsequential behaviour changes:

* APISelect can now take "full=True" to return a non-brief set
* Select2 will no group by "group & site, group, site, global" if full=True is set in APISelect
2019-09-06 12:45:37 -05:00
Daniel Sheppard
9e258dd31e Fixes: #2902 - Implements systemd (#3017)
* Closes #2902 - Migrate to systemd from supervisord
* Closes #2902 - Migrate to systemd from supervisord

* Update systemd unit and environment file
* Add gunicorn.conf
* Update documentation and CHANGELOG.  Moved parameters around on service file
* Update Gitignore
2019-09-06 11:46:35 -05:00
Daniel Sheppard
8f5e73a598 Add filter for has local context data (#3159)
* Add filter for has local context data
* Broke out filter and form for re-use
* Fix missing StaticSelect2 import
* Fix missing BOOLEAN_WITH_BLANK_CHOICES import
* Fix class resolution
* Fix field ordering
* Fix PEP8 errors
2019-09-06 11:42:56 -05:00
Jeremy Stretch
480db83f39 Renumber remove_topology_maps migration 2019-09-05 10:25:44 -04:00
Jeremy Stretch
cc0f0c4843 Merge v2.6.3 2019-09-04 16:45:33 -04:00
Jeremy Stretch
2ce0ff505a Post-release version bump 2019-09-04 16:28:58 -04:00
Jeremy Stretch
a4d8b92cb1 Merge pull request #3478 from netbox-community/develop
Release v2.6.3
2019-09-04 16:27:32 -04:00
Jeremy Stretch
143a158e4a Release v2.6.3 2019-09-04 16:23:06 -04:00
Jeremy Stretch
4213454234 Tweak docs for custom scripts 2019-09-04 16:21:21 -04:00
Jeremy Stretch
559beffd24 Add documentation for custom links 2019-08-28 12:39:11 -04:00
Jeremy Stretch
5f4bac6076 Closes #3454: Enable filtering circuits by region 2019-08-28 12:12:27 -04:00
Jeremy Stretch
8ff3d2cbf6 Closes #3456: Enable bulk editing of tag color 2019-08-28 11:56:00 -04:00
Jeremy Stretch
273a9793db Fix typo 2019-08-28 10:51:56 -04:00
Jeremy Stretch
5a911aa5a1 Fixes #3392: Add database index for ObjectChange time 2019-08-28 10:48:19 -04:00
Jeremy Stretch
3078e366e2 Simplify changelog cleanup logic 2019-08-28 10:44:05 -04:00
Jeremy Stretch
22b8a45a71 Add tests for changelog 2019-08-28 10:18:37 -04:00
Jeremy Stretch
4756353fbd Merge pull request #3453 from netbox-community/3452-change-logging
Fixes #3452: Queue deletion ObjectChanges until after response is sent
2019-08-28 09:51:54 -04:00
Jeremy Stretch
3e8799b5c7 Fix script form rendering 2019-08-28 09:20:19 -04:00
Jeremy Stretch
a3d9e633c1 Always include 'commit' option 2019-08-26 17:04:04 -04:00
Jeremy Stretch
6e66f8d68a Fixes #3452: Queue deletion ObjectChanges until after response is sent 2019-08-26 16:52:05 -04:00
Jeremy Stretch
03ac2721bc Merge pull request #3423 from netbox-community/3415-custom-scripts
Add custom scripting
2019-08-26 14:06:22 -04:00
Jeremy Stretch
456621695a Wrap script form inside a panel 2019-08-26 13:53:30 -04:00
Jeremy Stretch
9a9660a765 Fix errant changelog entries when executing a script without committing 2019-08-26 11:59:38 -04:00
Jeremy Stretch
6568653d13 Fix typo in link 2019-08-22 10:51:29 -04:00
Jeremy Stretch
5248fc7c7c Merge pull request #3434 from netbox-community/3428-cache-invalidation
Cache invalidation
2019-08-22 10:49:51 -04:00
Jeremy Stretch
6a8f256a56 Fix typo 2019-08-21 15:46:06 -04:00
John Anderson
46bedc6156 missed a merge conflict resolution 2019-08-21 14:30:07 -04:00
John Anderson
63c3f423c2 Merge branch 'develop' into 3428-cache-invalidation 2019-08-20 17:35:54 -04:00
John Anderson
3d2a738f44 #3428 changelog 2019-08-20 17:27:40 -04:00
John Anderson
f0f1ef2ef2 fix signals update call 2019-08-20 17:20:46 -04:00
John Anderson
c359ac5737 convert update() calls to save() calls 2019-08-20 17:16:00 -04:00
Jeremy Stretch
a4936ad0dd Introduce BaseScript for extending Script without creating a new executable script 2019-08-19 14:40:08 -04:00
Jeremy Stretch
a02ded6b01 Import Django User model automatically when running nbshell 2019-08-19 11:47:50 -04:00
Jeremy Stretch
2d2bb3ec0c Fixes #3421: Fix exception when ordering power connections list by PDU 2019-08-19 11:27:36 -04:00
Jeremy Stretch
eb6e95ae9b Add tests for Script Variables 2019-08-19 10:41:44 -04:00
Jeremy Stretch
f56a0aebdb Closes #3430: Linkify platform field on device view 2019-08-19 09:50:41 -04:00
John Anderson
c54f2e3e40 remove blank line after update call 2019-08-19 02:11:54 -04:00
John Anderson
ade844f7a7 fixes #3428 - caching invalidation issues
Mitgate invalidation issues by using prefetch_related instead of select_related.
Also use invalidated_update instead of just update.
2019-08-19 01:53:39 -04:00
Jeremy Stretch
2929621651 Updated docs for IPNetworkVar and FileVar 2019-08-16 15:31:29 -04:00
Jeremy Stretch
de770faf6a Add FileVar for file uploads 2019-08-16 15:27:58 -04:00
Jeremy Stretch
99394de14e Change fields to field_order 2019-08-15 16:19:25 -04:00
Jeremy Stretch
305d330391 Docs updates 2019-08-15 16:07:15 -04:00
Jeremy Stretch
9c41984f6d Changelog for #3426 2019-08-15 15:31:05 -04:00
Jeremy Stretch
aa858fea03 Merge pull request #3427 from candlerb/candlerb/3426
Improve API error handling when a list is given as a choice value
2019-08-15 15:29:47 -04:00
Brian Candler
6e5d527fec Improve API error handling when a list is given as a choice value
Fixes #3426
2019-08-15 17:16:24 +01:00
Jeremy Stretch
b11d3dde46 Closes #3391: Update Bootstrap CSS to v3.4.1 2019-08-15 11:47:57 -04:00
Jeremy Stretch
3df8ccb92f Fixes #3424: Fix tag coloring for non-linked tags 2019-08-15 11:12:52 -04:00
Jeremy Stretch
0b95cab47b Closes #3386: Add mac_address filter for virtual machines 2019-08-15 11:02:40 -04:00
John Anderson
a6511632ad closes #3407 - Added code coverage reporting to the CI pipeline 2019-08-14 20:28:23 -04:00
Jeremy Stretch
cb0dbc0769 Add TextVar for large text entry 2019-08-14 16:20:52 -04:00
Jeremy Stretch
47d60dbb20 Fix table column widths 2019-08-14 15:46:08 -04:00
Jeremy Stretch
f8326ef6df Add markdown rendering for log mesages 2019-08-14 14:38:11 -04:00
Jeremy Stretch
434e656e27 Include stack trace when catching an exception 2019-08-14 14:26:13 -04:00
Jeremy Stretch
8bd1fad7d0 Use TreeNodeChoiceField for MPTT objects 2019-08-14 14:03:11 -04:00
Jeremy Stretch
7f65e009a8 Add convenience functions for loading YAML/JSON data from file 2019-08-14 13:08:21 -04:00
Jeremy Stretch
11e5e1c490 Show script log when an exception occurs 2019-08-14 12:19:36 -04:00
Jeremy Stretch
9c079ead4c Fix notice when form does not require user input 2019-08-14 10:18:25 -04:00
Jeremy Stretch
c562af3a13 Record script execution time 2019-08-14 10:12:30 -04:00
Jeremy Stretch
30e14db881 Tweak form display (cosmetic) 2019-08-14 09:40:23 -04:00
Jeremy Stretch
dab30f50d3 Add IPNetworkVar 2019-08-13 09:48:51 -04:00
Jeremy Stretch
3d6a583ce4 Allow user to override module name 2019-08-13 09:09:12 -04:00
Jeremy Stretch
44fd0ebb2d Meta.fields should be optional 2019-08-12 16:59:09 -04:00
Jeremy Stretch
0d289d660d Add option to commit database changes 2019-08-12 14:28:06 -04:00
Jeremy Stretch
3e75da4307 Implemented run_script() wrapper 2019-08-12 13:51:25 -04:00
Jeremy Stretch
19eb4c510c Move script attributes under a Meta class 2019-08-12 13:16:18 -04:00
Jeremy Stretch
dd4dafa7be Closes #3420: Serial number filter for racks, devices, and inventory items is now case-insensitive 2019-08-12 12:10:36 -04:00
Jeremy Stretch
116c395948 Fixes #3422: Prevent navigation menu from overlapping page content 2019-08-12 11:57:48 -04:00
Jeremy Stretch
ab504439fb Implemented permissions for scripts 2019-08-12 11:39:36 -04:00
Jeremy Stretch
463c636301 Extend example custom script to generate output 2019-08-12 11:13:16 -04:00
Jeremy Stretch
950a09895b BooleanVar cannot be required 2019-08-12 11:13:16 -04:00
Jeremy Stretch
c62a9f1b3f Example script tweak 2019-08-12 11:13:16 -04:00
Jeremy Stretch
3f7f3f88f3 Fix form field ordering 2019-08-12 11:13:16 -04:00
Jeremy Stretch
4fc19742ec Added documentation for custom scripts 2019-08-12 11:13:16 -04:00
Jeremy Stretch
9d054fb345 Add options for script vars; include script output 2019-08-12 11:13:16 -04:00
Jeremy Stretch
a25a27f31f Initial work on custom scripts (#3415) 2019-08-12 11:13:16 -04:00
Jeremy Stretch
15b55f5e62 Remove deprecated form_factor accessor on Interface and InterfaceTemplate 2019-08-08 21:35:59 -04:00
Jeremy Stretch
dccda62f2d Closes #2745: Remove topology maps 2019-08-08 21:33:20 -04:00
Jeremy Stretch
ef432754ee Started 2.7 branch 2019-08-08 21:19:14 -04:00
Jeremy Stretch
f18c3be745 Merge pull request #3412 from netbox-community/3405-bugfix
Move device component creation logic out of Device model
2019-08-08 21:16:11 -04:00
Jeremy Stretch
0516aecb03 Changelog for #3405 2019-08-07 17:49:54 -04:00
Jeremy Stretch
605be30fb2 Add test for device component creation 2019-08-07 17:48:12 -04:00
Jeremy Stretch
86cd044a68 Fixes #3405: Move device component creation logic into template models 2019-08-07 17:47:44 -04:00
Jeremy Stretch
068a0e2257 Removed invalid contact email 2019-08-02 15:02:29 -04:00
Jeremy Stretch
3a2fc43542 Post-release version bump 2019-08-02 10:31:56 -04:00
Jeremy Stretch
7fc60cd667 Merge pull request #3387 from netbox-community/develop
Release v2.6.2
2019-08-02 10:31:34 -04:00
Jeremy Stretch
c90baaa807 Release v2.6.2 2019-08-02 10:29:10 -04:00
Jeremy Stretch
ea9492d4bd Fixes #3384: Maximum and allocated draw fields should be included on power port template creation form 2019-08-02 09:56:02 -04:00
Jeremy Stretch
025f77dcdc Fixes #3385: Fix power panels list when bulk editing power feeds 2019-08-02 09:43:46 -04:00
Jeremy Stretch
eb19b1a39e Changelog for #3367 2019-08-02 09:13:48 -04:00
Jeremy Stretch
25748efd54 Merge pull request #3383 from ragzilla/develop
Closes #3367: Add BNC Front/Rear port types and Coaxial cable type.
2019-08-02 09:10:40 -04:00
Matt Addison
2215a095c8 Closes #3367: Add BNC Front/Rear port types and Coaxial cable type. 2019-08-01 10:33:29 -04:00
Jeremy Stretch
a32d185ff0 Fixes #3018: Components connected via a cable must have an equal number of positions 2019-07-31 10:12:51 -04:00
Jeremy Stretch
ea32853ab3 Fixes #3289: Prevent position from being nullified when moving a device to a new rack 2019-07-30 17:07:58 -04:00
Jeremy Stretch
a6c41e0be5 Changelog for #3368 2019-07-30 16:26:52 -04:00
Jeremy Stretch
f223f9b9c1 Merge pull request #3369 from jlrgraham23/fix-changelog-wording
Indicate when changelog retention configured to be forever.
2019-07-30 16:20:39 -04:00
Daniel Sheppard
bcc7daeac7 Fixes #3370 - Add filter class to VirtualChassis API 2019-07-24 12:22:15 -05:00
Justin L R Graham
890ba3ea94 Indicate when changelog retention configured to be forever. 2019-07-23 13:46:55 -05:00
Jeremy Stretch
cab3c50ae6 Closes #3314: Paginate object changelog entries 2019-07-18 21:40:36 -04:00
Jeremy Stretch
86b6b9bf8b Fixes #3315: Enable filtering devices/interfaces by multiple MAC addresses 2019-07-18 21:21:56 -04:00
Jeremy Stretch
71551893b1 Fixes #3293: Enable filtering device components by multiple device IDs 2019-07-18 20:42:15 -04:00
Jeremy Stretch
0431b296c4 Merge pull request #3325 from lassebm/fix-3324
Fixes #3324: Doc incorrectly states child devices shown as non-racked
2019-07-17 16:27:55 -04:00
Jeremy Stretch
376eae748c Changelog for #3323 2019-07-17 16:25:19 -04:00
Jeremy Stretch
f2a45c5892 Merge pull request #3326 from lassebm/fix-3323
Fixes #3323: Interface Connections view inaccessible with "dcim.view_interface" permission
2019-07-17 16:24:14 -04:00
Jeremy Stretch
88b176ae15 Changelog for #3307 2019-07-17 16:22:30 -04:00
Jeremy Stretch
f1744ef4db Merge pull request #3308 from mmahacek/powerpanel-count
Add Powerpanel count to home page
2019-07-17 16:20:27 -04:00
Jeremy Stretch
892ff0c1ca Changelog for #3342 2019-07-16 11:31:36 -04:00
Jeremy Stretch
647163e2b2 Merge pull request #3337 from robellegate/fix/docs_digitalocean_repo_links
Replacing references to digitalocean org
2019-07-16 10:18:37 -04:00
Jeremy Stretch
8e043b00b8 Closes #3330: Remove .pyc file cleanup step from upgrade script 2019-07-16 10:11:39 -04:00
Jeremy Stretch
154b9e1faf Fixes #3342: Fix cluster delete button permissions reference 2019-07-16 10:07:38 -04:00
Robert Ellegate
30ef4b208c Replacing references to digitalocean org
s/(?<=:\/\/github.com\/)digitalocean(?=\/netbox)/netbox-community/g
2019-07-10 09:23:43 -04:00
Lasse Bang Mikkelsen
6276f5f7b9 Fixes #3323: Interface Connections view inaccessible with "dcim.view_interface" permission 2019-07-04 17:37:28 +02:00
Lasse Bang Mikkelsen
118ec358c0 Fixes #3324: Doc incorrectly states child devices shown as non-racked 2019-07-04 17:28:25 +02:00
Jeremy Stretch
3da9af5a9f Fixes #3317: Fix permissions for ConfigContextBulkDeleteView 2019-07-02 09:39:26 -04:00
mmahacek
ddced4fc2b Add stats.powerpanel_count 2019-06-28 17:04:42 -07:00
mmahacek
7a41b02fdd Add line for PowerPanel count 2019-06-28 17:03:06 -07:00
Jeremy Stretch
6c3c6fba62 Closes #984: Allow ordering circuits by A/Z side 2019-06-27 12:30:17 -04:00
Jeremy Stretch
2bb9464905 Merge pull request #3296 from michaelxniu/patch-1
Create NOTICE file
2019-06-25 14:10:14 -04:00
Michael Niu
821924f57f Create NOTICE file 2019-06-25 13:59:00 -04:00
Jeremy Stretch
74f14c5535 Post-release version bump 2019-06-25 09:44:00 -04:00
Jeremy Stretch
80c8c4c4b2 Merge pull request #3295 from digitalocean/develop
Release v2.6.1
2019-06-25 09:41:29 -04:00
Jeremy Stretch
d219c3ea88 Release v2.6.1 2019-06-25 09:39:30 -04:00
Jeremy Stretch
954ba91c86 Closes #3154: Add virtual_chassis_member device filter 2019-06-24 16:31:21 -04:00
Jeremy Stretch
7effb7e8d4 Fix for #3229 2019-06-24 15:48:49 -04:00
Jeremy Stretch
3fdb655a92 Fixes #3269: Raise validation error when specifying non-existent cable terminationss 2019-06-24 15:42:15 -04:00
Jeremy Stretch
cf770bf40c Closes #3277: Add cable trace buttons for console and power ports 2019-06-24 14:27:34 -04:00
Jeremy Stretch
9f50ced6fc Changelog for #3229 2019-06-24 14:22:03 -04:00
Jeremy Stretch
4dd97eab0c Merge pull request #3232 from hellerve/fix-3229
Filter group by site in rack filter
2019-06-24 14:19:50 -04:00
Jeremy Stretch
5de242fe53 Closes #3281: Hide custom links which render as empty text 2019-06-24 12:20:09 -04:00
Jeremy Stretch
251ba08e09 Fixes #3283: Fix rack group assignment on PowerFeed CSV import 2019-06-24 11:10:35 -04:00
Jeremy Stretch
653770ede9 Fixes #3292: Ignore empty URL query parameters 2019-06-24 11:00:18 -04:00
Jeremy Stretch
70ef6a69ee Fixes #3290: Fix server error when viewing cascaded PDUs 2019-06-24 10:05:21 -04:00
Jeremy Stretch
5a6c928a7c Fixes #3279: Reset the PostgreSQL sequence for Tag and TaggedItem IDs 2019-06-21 17:34:06 -04:00
John Anderson
bd9ef9951b Merge pull request #3284 from cimnine/fix_pwd_protected_redis_cache
Fixes Cacheops with a password protected redis
2019-06-21 16:35:50 -04:00
Jeremy Stretch
c067549f21 Fixes #3275: Fix error when adding power outlets to a device type 2019-06-21 16:24:12 -04:00
Christian Mäder
94ca3abefc Fixes Cacheops with a password protected redis
As per the [`README.rst`][1] of `django-cacheops`, if a password is
added to the connection string, it must be in the form
`redis://:password@host:port/db`. Notice the colon, which was missing
from the implementation in [`settings.py`][2].

[1]: 8ad970d55a/README.rst
[2]: 86d5b48007/netbox/netbox/settings.py (L349)
2019-06-21 22:23:10 +02:00
Jeremy Stretch
86d5b48007 Post-release version bump 2019-06-20 17:01:21 -04:00
Jeremy Stretch
2b7e8c4b9f Merge pull request #3271 from digitalocean/develop
Release v2.6.0
2019-06-20 16:59:31 -04:00
Jeremy Stretch
f888d50a15 Release v2.6.0 2019-06-20 16:55:43 -04:00
Jeremy Stretch
dfcd2c247d Closes #3264: Annotate changelog retention time on UI 2019-06-20 14:05:53 -04:00
Jeremy Stretch
1c54d7ed55 Hide color block if cable color is not defined 2019-06-20 14:00:45 -04:00
Jeremy Stretch
7cb618df5e Fixes #3176: Add cable trace button for console server ports and power outlets 2019-06-20 13:58:32 -04:00
Jeremy Stretch
6778d1398f Added changelog noting #3239 has been fixed 2019-06-20 13:26:15 -04:00
Jeremy Stretch
1dd3e9dab1 Merge pull request #3270 from digitalocean/develop-2.6
Merge develop-2.6
2019-06-20 13:20:42 -04:00
Jeremy Stretch
99f6b3a3bd Merged develop 2019-06-20 13:10:45 -04:00
Jeremy Stretch
b626387b38 Bumped dependencies to latest releases 2019-06-20 10:06:39 -04:00
Jeremy Stretch
dd554ee7b5 Updated django-cors-headers to v3.0.2 2019-06-20 09:48:34 -04:00
Jeremy Stretch
fe28e5befe Cleaned up changelog 2019-06-20 09:31:01 -04:00
Jeremy Stretch
21856c6f0c Merge pull request #3268 from digitalocean/power-utilization-tweaks
Cleaned up logic for calculating power draw
2019-06-20 09:09:06 -04:00
John Anderson
b745401817 prometheus docs updates 2019-06-20 00:04:44 -04:00
John Anderson
625a09785a minor tweaks to error handling to allow for defaulted values from pre v2.6 data 2019-06-19 23:47:48 -04:00
Jeremy Stretch
1a5aaf54dd Cleaned up logic for calculating power draw 2019-06-19 10:51:53 -04:00
John Anderson
ce9f7a8ddc closes #3161 - prometheus env var docs and set prometheus to not be enabled by default 2019-06-17 16:38:05 -04:00
Jeremy Stretch
9747cae773 Fix power outlet connection link 2019-06-17 16:32:21 -04:00
Jeremy Stretch
948286aa32 Fixes #3258: Exception raised when creating/viewing a circuit with a non-connected termination 2019-06-17 16:27:26 -04:00
Jeremy Stretch
8da660f5da Fixes #3231: Fixed cosmetic error indicating a missing schema migration 2019-06-17 15:30:23 -04:00
Jeremy Stretch
b884341d73 Update migration for tweak to available_power 2019-06-17 15:23:37 -04:00
Jeremy Stretch
c9afe96324 Fix power utilization calculation for three-phase feeds 2019-06-17 15:16:52 -04:00
Jeremy Stretch
d529ebc172 Rename power_factor to max_utilization 2019-06-17 14:52:11 -04:00
Jeremy Stretch
d25dd52ec9 Compressed migrations 2019-06-17 14:41:40 -04:00
Jeremy Stretch
97a5f3ea0e Merge pull request #3262 from digitalocean/feature/524-power-utilization-graphs
#524 - Added power utilization graphs to power feeds, devices, and racks
2019-06-17 14:38:12 -04:00
John Anderson
2eeffce924 #524 - Added power utilization graphs to power feeds, devices, and racks 2019-06-16 06:11:32 -04:00
Jeremy Stretch
438b01815a Fix test for tags view 2019-06-05 15:05:35 -04:00
Jeremy Stretch
8b3ec625f6 Add missing PermissionRequiredMixin to TagListView 2019-06-05 14:47:43 -04:00
Jeremy Stretch
50cbfb9360 Fixed merge conflict in requirements.txt 2019-06-05 14:47:20 -04:00
Jeremy Stretch
90f7122fde Closes #3241: Correct terminology in inventory items table header 2019-06-05 12:10:33 -04:00
hellerve
e89343e100 dcim: filter group by site in rack filter (fixes #3229) 2019-06-02 14:26:28 +02:00
Jeremy Stretch
3bb3b85fa2 Merged v2.5.13 2019-05-31 21:37:41 -04:00
Jeremy Stretch
f9dba8a75c Post-release version bump 2019-05-31 09:56:50 -04:00
Jeremy Stretch
1a97a1c9d2 Merge pull request #3230 from digitalocean/develop
Release v2.5.13
2019-05-31 09:54:46 -04:00
Jeremy Stretch
893e327ac6 Release v2.5.13 2019-05-31 09:49:53 -04:00
dansheps
814c50f461 Fix #3228 - UrlEncode full path for next if not on logon page
Include the full path for the ?next= variable in login links if we are not on the logon page.
Additionally include next for post requests that have the next variable set (will only come from the login page itself generally)
2019-05-30 12:01:41 -05:00
dansheps
1958c0b118 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	netbox/utilities/middleware.py
2019-05-30 10:59:25 -05:00
dansheps
a11b33d214 Fix #3228 - Send full path info instead of just path info and urlencode said path info 2019-05-30 10:58:39 -05:00
dansheps
7d053f8ba4 Fix #3228 - Send full path info instead of just path info and urlencode said path info 2019-05-30 10:54:29 -05:00
Jeremy Stretch
1e1aba73ef Remove request.user assertion from ObjectChangeMiddleware 2019-05-30 10:32:09 -04:00
Jeremy Stretch
b9b009c0b5 Fixes #3227: Fix exception when deleting a circuit with a termination(s) 2019-05-29 17:17:06 -04:00
Jeremy Stretch
a6ff6505c6 Closes #3151: Add inventory item count to manufacturers list 2019-05-29 15:20:36 -04:00
Jeremy Stretch
823257ca72 Closes #3185: Improve performance for custom field access within templates 2019-05-29 15:04:57 -04:00
Jeremy Stretch
0804c1acbd Fixed test from #3211 follow-up work 2019-05-29 10:51:49 -04:00
Jeremy Stretch
28facca291 Changelog & grammar tweak for #3211 2019-05-29 10:33:29 -04:00
Jeremy Stretch
a7ca49c44d Merge pull request #3222 from hellerve/tmp
Fix error message on trying to delete protected models
2019-05-29 10:24:28 -04:00
Jeremy Stretch
5639fc9791 Merge pull request #3195 from TakeMeNL/feature/3156
Closes #3156: Add site link to rack reservations overview
2019-05-29 10:19:10 -04:00
Jeremy Stretch
8b00513175 Changelog for #3031 2019-05-29 10:10:07 -04:00
Jeremy Stretch
00ffa358b2 Merge pull request #3197 from KhaledTo/bug/3031
Fixes #3031: Select2 creates multiple tags for tags with spaces
2019-05-29 10:08:59 -04:00
TakeMeNL
1ff7e1149c Closes #3156: Add site link to rack reservations overview 2019-05-29 16:08:24 +02:00
hellerve
2c7bad9fff utilities: move protectederror handling to modelviewset 2019-05-28 21:11:23 +02:00
Jeremy Stretch
c4f481d705 Bump DRF to 3.9.1 to address WS-2019-0037 2019-05-28 14:21:36 -04:00
Jeremy Stretch
99a3a216c3 Merge pull request #3216 from hellerve/fix-3168
Fix 3168: Update to new path syntax
2019-05-28 13:16:08 -04:00
Jeremy Stretch
87f5dd05f5 Fixes #3223: Fix filtering devices by "has power outlets" 2019-05-28 13:10:54 -04:00
hellerve
cc87d99017 all: fix error message on trying to delete protected models (references #3211) 2019-05-28 17:31:02 +02:00
hellerve
1366730a3f netbox urls: move to re_path as suggested by @jeremystretch 2019-05-27 22:41:10 +02:00
Jeremy Stretch
ab07f721cf Changelog for #3204 & #3207 2019-05-27 15:40:17 -04:00
Jeremy Stretch
3c83a18291 Merge pull request #3205 from ananace/fix-interface-connection
Fixes #3204: Fix connecting cables to interfaces
2019-05-27 15:38:36 -04:00
Jeremy Stretch
8bbb3031e5 Merge pull request #3207 from ananace/fix-connecting-rear
Fixes #3206: Unable to connect to rear ports
2019-05-27 15:31:49 -04:00
Jeremy Stretch
473dafc2c8 Changelog for #3184 2019-05-27 15:03:00 -04:00
Jeremy Stretch
38d5a8fdc0 Merge pull request #3199 from candlerb/candlerb/3184
Add grey border around color-block
2019-05-27 15:00:48 -04:00
hellerve
b114b9d396 utilities: add converters module and use for json/yaml url 2019-05-26 14:56:01 +02:00
hellerve
f9cd89a4a4 urls: fix 3168 by changing url to path 2019-05-26 14:56:00 +02:00
Alexander Olofsson
7ba9675f02 Fixes #3206: Unable to connect to rear ports 2019-05-22 19:58:26 +02:00
Alexander Olofsson
d0e7b052a8 Fixes #3204: Fix connecting cables to interfaces 2019-05-22 19:00:13 +02:00
Brian Candler
4313a717c4 Add grey border around color-block
Fixes #3184
2019-05-20 21:06:53 +01:00
Khaled BEN ABDALLAH
cbace6f831 Fixes #3031: Select2 creates multiple tags for tags with spaces 2019-05-18 22:43:47 +02:00
Jeremy Stretch
edabc8eee9 Closes #3138: Add 2.5GE and 5GE interface form factors 2019-05-16 20:49:00 -04:00
Jeremy Stretch
9b47e57e8e Closes #3183: Enable bulk deletion of sites 2019-05-16 20:24:55 -04:00
Jeremy Stretch
2f32488c25 Fixes #3190: Fix custom field rendering for Jinja2 export templates 2019-05-16 19:45:36 -04:00
Jeremy Stretch
62d497dd0b Closes #3186: Add interface name filter for IP addresses 2019-05-14 19:03:03 -04:00
Jeremy Stretch
e19feb92ea Move TenancyFilterForm to tenancy.forms 2019-05-09 14:36:18 -04:00
Jeremy Stretch
fbde6282b2 Cleanup from #2931 2019-05-09 14:32:49 -04:00
Jeremy Stretch
7895ccfae1 Merge pull request #2931 from DanSheps/2813-addtenantgroupfilter
Closes #2813: Add Filter and View on Lists for TenantGroup
2019-05-09 13:48:46 -04:00
Jeremy Stretch
c24fb8df84 Merge pull request #3165 from digitalocean/3038-filtering-improvements
Closes #3038: Filtering improvements
2019-05-08 21:13:42 -04:00
Jeremy Stretch
53b5fed8ae Tweak docs to indicate deprecation of id__in filter 2019-05-08 21:10:49 -04:00
Jeremy Stretch
dfffd1ea94 Restore id__in filters to retain backward compatability until v2.7 2019-05-08 21:08:35 -04:00
Jeremy Stretch
ffa34c6133 Updated documentation 2019-05-07 14:23:02 -04:00
Jeremy Stretch
8e8c9822ea Correct Device.position filter 2019-05-07 14:12:56 -04:00
Jeremy Stretch
205adeb2e9 Remove NullableCharFieldFilter; add missing filter fields 2019-05-07 13:59:21 -04:00
Jeremy Stretch
3d616baf75 Remove NumericInFilter and id__in filters 2019-05-07 13:07:18 -04:00
Jeremy Stretch
6cb5173e27 Update query filters to OR multiple values 2019-05-07 12:25:33 -04:00
Daniel Sheppard
dfd4a712c9 Merge pull request #3158 from tb-killa/3150
Fixes: #3150- Formatting of cable length in cable trace
2019-05-06 11:54:28 -05:00
Daniel Sheppard
b97339017b Update CHANGELOG.md 2019-05-06 11:54:16 -05:00
Oli
1b862045e3 Formatting of cable length in cable trace 2019-05-06 15:36:44 +02:00
Jeremy Stretch
244c07e5f7 Closes #3085: Catch all exceptions during export template rendering 2019-05-02 15:36:51 -04:00
Jeremy Stretch
eb41bc66a4 Merge pull request #3142 from austin987/upgrade-cwd
upgrade.sh: make sure we are in the right directory
2019-05-02 14:51:37 -04:00
Austin English
01c5d9e909 upgrade.sh: make sure we are in the right directory 2019-05-02 13:02:53 -05:00
Jeremy Stretch
a8c57313d3 Fixes #3140: Add bulk edit capability for power outlets and console server ports 2019-05-02 13:56:30 -04:00
Jeremy Stretch
5f5e4ce1a1 Changelog for #3132 2019-05-02 11:41:37 -04:00
Jeremy Stretch
d50acb39dd Merge pull request #3133 from shanemadden/cable_circuit_endpoint_choice
Fixes: #3132: Add circuittermination to the choices API for cable endpoints
2019-05-02 11:39:18 -04:00
Jeremy Stretch
25c8007b66 Fixes #3137: Add power_port and feed_leg fields to power outlet creation form 2019-05-02 10:12:27 -04:00
Jeremy Stretch
d4db04c649 Fixes #3136: Add power draw fields to power port creation form 2019-05-02 10:02:02 -04:00
John Anderson
250f310a98 fixes #3134 - remove component buttons from power utilization table 2019-05-01 21:48:35 -04:00
Shane Madden
ee4a3bcb02 Add circuittermination as a choice for cable endpoint types, which is not in the choices API for cable termination types but is accepted by the application as a valid endpoint for cables 2019-05-01 13:47:52 -06:00
Jeremy Stretch
d4d355dce6 Fixes #3130: Fix exception when creating a new power outlet 2019-05-01 12:02:18 -04:00
Jeremy Stretch
346b00e215 Merge branch 'develop' into develop-2.6 2019-05-01 11:53:44 -04:00
Jeremy Stretch
ceeac9bae3 Merge pull request #3131 from digitalocean/develop
Release v2.5.12
2019-05-01 11:10:43 -04:00
Jeremy Stretch
49446ffb74 Post-release version bump 2019-05-01 11:09:11 -04:00
Jeremy Stretch
5487ab40af Release v2.5.12 2019-05-01 11:08:32 -04:00
Jeremy Stretch
5a8ba159f2 Fixes #3127: Fix natural ordering of device components 2019-04-30 13:25:37 -04:00
Jeremy Stretch
cb93303f56 Fixes #3126: Incorrect calculation of PowerFeed available power 2019-04-30 12:38:06 -04:00
Jeremy Stretch
088903218d Fixes #3125: Fix exception when viewing PDUs 2019-04-30 12:24:53 -04:00
Jeremy Stretch
73927d2d56 Changelog for #3123 2019-04-30 12:10:00 -04:00
John Anderson
f9a74b68c1 Merge pull request #3124 from larsweiler/develop-2.6-metrics
Exclude /metrics from LOGIN_REQUIRED
2019-04-30 11:08:55 -04:00
dansheps
22e5834d8b Remove tenant group from ipam table 2019-04-30 10:06:27 -05:00
Lars Weiler
2a2026a2cc Forgot the additional brackets for a tuple 2019-04-30 17:04:21 +02:00
dansheps
63b71d43da Merge branch 'develop' of https://github.com/digitalocean/netbox into 2813-addtenantgroupfilter 2019-04-30 10:01:29 -05:00
Lars Weiler
560c8d6f01 More elegant path checking 2019-04-30 16:54:23 +02:00
Lars Weiler
4c5603e6ff Fix PEP 8 errors 2019-04-30 16:47:38 +02:00
Lars Weiler
99f0e7b939 Exclude /metrics from LOGIN_REQUIRED 2019-04-30 16:09:10 +02:00
Jeremy Stretch
7b5c1964b9 Fix broken link 2019-04-29 16:55:17 -04:00
Jeremy Stretch
b7a5afa797 Revert previous change 2019-04-29 16:44:13 -04:00
Jeremy Stretch
66f90f46de Fix mkdocs 2019-04-29 16:37:32 -04:00
Jeremy Stretch
4d2ac1ca53 Release v2.6-beta1 2019-04-29 15:36:21 -04:00
Jeremy Stretch
05a21369ae Bump django-cors-headers version 2019-04-29 15:27:14 -04:00
Jeremy Stretch
9b404facab Cleaned up changelog 2019-04-29 15:24:52 -04:00
Jeremy Stretch
f31d6c55be Fix erroneous merge conflict resolution from v2.5.11 2019-04-29 14:57:28 -04:00
Jeremy Stretch
37c2c4b4a2 Merge v2.5.11 2019-04-29 14:40:18 -04:00
Jeremy Stretch
d5dcb77d99 Post-release version bump 2019-04-29 14:27:22 -04:00
Jeremy Stretch
2b93510c45 Merge pull request #3121 from digitalocean/develop
Release v2.5.11
2019-04-29 14:25:37 -04:00
Jeremy Stretch
9717c6f825 Add a note about Django 2.2 2019-04-29 14:22:47 -04:00
Jeremy Stretch
92c227d103 Release v2.5.11 2019-04-29 14:21:10 -04:00
Jeremy Stretch
1491222642 Fixes #3072: Preserve multiselect filter values when updating per-page count for list views 2019-04-29 12:54:03 -04:00
Jeremy Stretch
39fceeb455 Add device field on cable search form (#3023) 2019-04-29 11:29:07 -04:00
Jeremy Stretch
3562b5552b Fixes #3118: Disable last_login update on login when maintenance mode is enabled 2019-04-29 11:04:32 -04:00
Jeremy Stretch
6d778f686d Closes #3023: Add support for filtering cables by connected device 2019-04-29 10:07:08 -04:00
Jeremy Stretch
245a97176a Closes #2986: Replace DeviceComponentManager with NaturalOrderingManager 2019-04-26 22:23:28 -04:00
Jeremy Stretch
ca56871aaa Changelog & CSS fix for #3070 2019-04-26 17:06:54 -04:00
Jeremy Stretch
bd4086cb50 Merge pull request #3103 from clercrobin/add_decommissioning
Fixes : #3070 Add the decommissioning status for devices
2019-04-26 17:04:36 -04:00
Jeremy Stretch
d8c9b1af27 Fixes #3116: Fix tagged_items count in tags API endpoint 2019-04-26 16:54:13 -04:00
Jeremy Stretch
19d2850b29 Fixes #3112: Fix ordering of interface connections list by termination B name/device 2019-04-26 16:41:01 -04:00
Jeremy Stretch
2c730b08e4 Fix PowerPort connected_endpoint filtering, ordering 2019-04-25 15:06:48 -04:00
Jeremy Stretch
e1bca52d57 Fix regex for IPAddress.dns_name (but see #3106) 2019-04-25 14:49:52 -04:00
Jeremy Stretch
06245f6422 Promote django-rq to a required dependency 2019-04-25 14:25:16 -04:00
John Anderson
f057a2c016 closes #3104 - add support for exposing prometheus metrics 2019-04-25 01:09:19 -04:00
rclerc
f4636537ad Add the decommissioning status for devices 2019-04-24 09:14:29 +02:00
Jeremy Stretch
a026ec45b8 Closes #166: Add dns_name to IPAddress 2019-04-22 18:10:28 -04:00
Jeremy Stretch
695a07daf4 Clean up settings.py and restrict import of LDAP parameters 2019-04-22 16:33:28 -04:00
Jeremy Stretch
c2d0e8fd95 Cleanup from earlier work on caching 2019-04-22 14:49:31 -04:00
Jeremy Stretch
1be5cf8184 Fix pagination logic for detecting QuerySets 2019-04-22 11:09:12 -04:00
Jeremy Stretch
f4aec1e7d0 Change VLAN view columns to a 4/8 split 2019-04-22 07:47:16 -04:00
Jeremy Stretch
e4c06700bb Closes #3094: Remove NullsFirstQuerySet 2019-04-19 20:59:07 -04:00
Jeremy Stretch
46b3512c45 Remove extraneous imports 2019-04-19 16:58:39 -04:00
Jeremy Stretch
017a5011ec Added '*_count' fields for child objects 2019-04-19 16:50:42 -04:00
Jeremy Stretch
f4bbdf30e8 Implement get_subquery() for annotation of child object counts; Rename dcim.Site 'count_*' fields 2019-04-19 16:09:22 -04:00
Jeremy Stretch
7d41a9ccdb Changelog cleanup 2019-04-19 15:28:08 -04:00
Jeremy Stretch
074d0349a1 Increase length of CustomLink text and url fields 2019-04-19 14:58:55 -04:00
Jeremy Stretch
6ab56c3978 Misc cleanup 2019-04-19 14:56:40 -04:00
Jeremy Stretch
5303d2c16d Add device types and power feeds to home page 2019-04-19 14:27:19 -04:00
Jeremy Stretch
30da4594cd Improved enforcement of view permissions for home page 2019-04-19 14:16:55 -04:00
Jeremy Stretch
92567137a5 PowerFeed list improvements 2019-04-19 13:43:09 -04:00
Jeremy Stretch
7b6c104768 Add power_panel_id field to PowerFeedFilterForm 2019-04-19 13:17:43 -04:00
John Anderson
d27d347d21 changelog and docs updates for 2.6 2019-04-19 02:32:50 -04:00
John Anderson
16b4ffa3fa Merge pull request #3080 from digitalocean/2647-cacheops
change cacheing to use cacheops
2019-04-19 01:41:59 -04:00
John Anderson
8b75969d1d fix typo in requirements 2019-04-18 14:39:12 -04:00
John Anderson
a5e1088f1f fixes #2621 - deletion issue in the changelog middleware 2019-04-18 14:37:58 -04:00
Jeremy Stretch
92a450e59c Improve the logic for gathering models from all apps 2019-04-17 14:33:26 -04:00
Jeremy Stretch
2f3c39295c Clean up, update Webhook models 2019-04-17 14:19:57 -04:00
Jeremy Stretch
000fde25c6 Add PowerFeeds to global search 2019-04-17 14:06:45 -04:00
Jeremy Stretch
cd3924520d Clean up limit_to for ForeignKeys referencing ContentType 2019-04-17 13:36:05 -04:00
John Anderson
c7778db7f2 fix timeout expression 2019-04-17 12:38:54 -04:00
John Anderson
2580b026fe change cacheing to use cacheops 2019-04-17 12:29:21 -04:00
Jeremy Stretch
eb86053a53 Merge pull request #3078 from digitalocean/3077-nested-api-writes
Enable dictionary specification of related objects in API
2019-04-17 11:25:40 -04:00
Jeremy Stretch
fd4c5031c7 Add test for dict_to_filter_params 2019-04-17 11:19:59 -04:00
Jeremy Stretch
655e48823a Merge branch 'develop-2.6' into 3077-nested-api-writes 2019-04-17 10:57:01 -04:00
Jeremy Stretch
a108807534 Add tests for WritableNestedSerializer 2019-04-17 10:54:50 -04:00
Jeremy Stretch
dbe0e9506d Cleaned up CHANGELOG 2019-04-16 21:12:16 -04:00
Jeremy Stretch
75b4ba2c3a Removed tags from the admin UI 2019-04-16 21:00:29 -04:00
Jeremy Stretch
de7207de55 Enable dictionary specification of related objects in API 2019-04-16 18:02:52 -04:00
Jeremy Stretch
bf2f314cd4 Remove run_validators() override (fixed upstream) 2019-04-16 15:35:15 -04:00
Jeremy Stretch
6034265dfd Add limit_choices_to to CustomLink.content_type field 2019-04-15 21:53:22 -04:00
Jeremy Stretch
48fe5470d2 Changelog for #969 2019-04-15 21:49:16 -04:00
Jeremy Stretch
2b2de8f8a5 Merge pull request #3074 from digitalocean/969-custom-links
969 custom links
2019-04-15 21:43:17 -04:00
Jeremy Stretch
dd58e78fde Add custom links to templates 2019-04-15 21:38:04 -04:00
Jeremy Stretch
2ec7ac1ea3 Custom link cleanup 2019-04-15 21:29:02 -04:00
Jeremy Stretch
f342a37362 Fix RelatedObjectDoesNotExist when adding a new PowerFeed 2019-04-15 17:55:50 -04:00
Jeremy Stretch
a411e32a9f Changelog for #2647 2019-04-15 17:49:50 -04:00
Jeremy Stretch
1877afc760 Merge pull request #3069 from digitalocean/2647-caching
intial work on #2647 - caching
2019-04-15 17:16:10 -04:00
Jeremy Stretch
6f055792df Corrected typo 2019-04-15 17:14:24 -04:00
Jeremy Stretch
4536754b20 Initial work on #969: Custom links 2019-04-15 17:12:41 -04:00
John Anderson
351736cc6d Merge branch 'develop-2.6' into 2647-caching 2019-04-15 14:46:04 -04:00
John Anderson
4723ddb5ce move caching to views 2019-04-15 14:41:04 -04:00
Jeremy Stretch
20670c546d Updated dependencies for v2.6 2019-04-15 13:14:48 -04:00
John Anderson
cdff29c7d5 add redis to travis builds 2019-04-15 04:16:22 -04:00
John Anderson
c11abbe8ca pep8 and postgres backend 2019-04-15 04:07:52 -04:00
John Anderson
f0505477b8 intial work on #2647 - caching 2019-04-15 03:55:33 -04:00
Jeremy Stretch
c484b27a35 Merge pull request #3068 from digitalocean/1863-api-child-counts
Add child objects counts to API serializers
2019-04-12 17:25:27 -04:00
Jeremy Stretch
04c1945abc Changelog for #1863 2019-04-12 17:21:04 -04:00
Jeremy Stretch
ad4d23fa20 Replace distinct annotations with subqueries for much better performance 2019-04-12 17:18:04 -04:00
Jeremy Stretch
a46b43bff6 Added child counts to API serializers (WIP) 2019-04-12 17:07:56 -04:00
Jeremy Stretch
b1c160f9d4 Merge pull request #3067 from digitalocean/2920-interface-type
Rename Interface.form_factor to Interface.type
2019-04-12 15:36:51 -04:00
Jeremy Stretch
533520ec1f Rename Interface type (classification) filter to kind 2019-04-12 14:09:03 -04:00
Jeremy Stretch
4acd842237 Maintain backward-compatibile support for Interface.form_factor until v2.7 2019-04-12 13:57:33 -04:00
Jeremy Stretch
778d56ac12 Update 'form_factor' in docs 2019-04-12 13:46:37 -04:00
Jeremy Stretch
1a2c9e3bba Rename form_factor to type on dcim.Interface 2019-04-12 13:42:56 -04:00
Jeremy Stretch
067c788df7 Add changelog tabs for power panel, power feed & clean up nav links 2019-04-12 10:16:34 -04:00
Jeremy Stretch
78c90ba24b Changelog for #54 2019-04-12 10:00:43 -04:00
Jeremy Stretch
573af6a236 Merge pull request #3066 from digitalocean/323-view-permissions
Closes #323
2019-04-12 09:33:48 -04:00
Jeremy Stretch
b29944d5d7 Check view permissions for object navigation tabs 2019-04-12 09:29:36 -04:00
Jeremy Stretch
dfa26cc5e2 Hide non-viewable object types on home page 2019-04-12 09:18:05 -04:00
Jeremy Stretch
8c5d544734 Changelog for #323 2019-04-12 09:07:22 -04:00
Jeremy Stretch
df0686a1bd Implement custom auth backend and EXEMPT_VIEW_PERMISSIONS setting 2019-04-11 22:01:26 -04:00
Jeremy Stretch
3e818cde69 Disable navigation links for objects user does not have permission to view 2019-04-11 21:08:40 -04:00
Jeremy Stretch
43a569d18a Enforce view permissions for API views 2019-04-11 17:40:46 -04:00
Jeremy Stretch
e710ccb0e6 Enforce view permissions for UI views 2019-04-11 17:27:38 -04:00
Jeremy Stretch
ea6815b9bb Merge pull request #3061 from digitalocean/54-power-modeling
#54: Power modeling
2019-04-11 15:02:07 -04:00
Jeremy Stretch
3b06251720 Added tests for power panels, power feeds 2019-04-11 12:29:43 -04:00
Jeremy Stretch
bfa07aec39 Fix tests 2019-04-11 11:37:44 -04:00
Jeremy Stretch
05c19af2a3 Misc cleanup 2019-04-11 10:49:43 -04:00
Jeremy Stretch
b22fd2bc44 Rename max_utilization to power_factor 2019-04-10 16:36:38 -04:00
Jeremy Stretch
ac3e899f5e First stab at power utilization tracking 2019-04-10 16:32:13 -04:00
Jeremy Stretch
3d5f85c0ca Add associatiton from power outlet to power port/phase 2019-04-10 14:16:16 -04:00
Jeremy Stretch
0ddd71fc36 Include draw numbers of connected power ports 2019-04-10 13:05:51 -04:00
dansheps
6fa54bed73 Fix PEP8 Errors 2019-04-10 08:42:27 -05:00
dansheps
6e8e6809f3 Move Filter and Form to new file, update all files 2019-04-10 08:37:12 -05:00
Jeremy Stretch
8230ea1c83 Add max/allocated current draw fields to PowerPort 2019-04-09 17:32:04 -04:00
dansheps
a91a79681f Merge branch 'develop' of https://github.com/digitalocean/netbox into 2813-addtenantgroupfilter 2019-04-09 15:57:22 -05:00
Jeremy Stretch
c1127148e2 Provide individual views for each type of cable connection 2019-04-09 16:49:04 -04:00
Jeremy Stretch
ef867e789d Finish power outlet/feed connection forms 2019-04-09 15:37:31 -04:00
Jeremy Stretch
cd655d289b Fix CSV import forms 2019-04-09 14:55:17 -04:00
Jeremy Stretch
f1d1e8b537 Update migrations 2019-04-09 14:22:45 -04:00
Jeremy Stretch
71b674d11a Merge branch 'develop-2.6' into 54-power-modeling 2019-04-09 14:12:45 -04:00
Jeremy Stretch
4f9b666eee Merge branch 'develop' into develop-2.6 2019-04-09 14:11:26 -04:00
Jeremy Stretch
8d79353d9b Post-release version bump 2019-04-08 14:30:06 -04:00
Jeremy Stretch
f3fffc6161 Merge pull request #3053 from digitalocean/develop
Release v2.5.10
2019-04-08 14:26:27 -04:00
Jeremy Stretch
a8d20e13a8 Release v2.5.10 2019-04-08 14:19:37 -04:00
Jeremy Stretch
9a91bdbdb2 Fixes #2937: Redirect to list view after editing an object from list view 2019-04-08 14:10:55 -04:00
Jeremy Stretch
6f8591f769 Closes #3052: Add Jinja2 support for export templates 2019-04-08 12:20:24 -04:00
dansheps
7f6d79362e Fix virtualization test and add to changelog 2019-04-05 09:47:38 -05:00
Daniel Sheppard
c032413201 Remove unneeded import from testing. 2019-04-05 09:39:04 -05:00
dansheps
e556c78599 Fixes #3047: Fix exception string for invalid MAC Address format 2019-04-05 09:36:56 -05:00
Jeremy Stretch
1b389d662b Fixes #3046: Fix exception at reports API endpoint 2019-04-04 17:34:36 -04:00
Jeremy Stretch
090efde21a Fixes #3044: Ignore site/rack fields when connecting a new cable via device search 2019-04-04 16:19:20 -04:00
Jeremy Stretch
74c03e3295 Fixes #3036: DCIM interfaces API endpoint should not include VM interfaces 2019-04-04 15:07:41 -04:00
Jeremy Stretch
858be6d216 Fixes #3039: Fix exception when retrieving change object for a component template via API 2019-04-04 15:00:59 -04:00
Jeremy Stretch
1e160fd9e9 Fixes #3041: Fix form widget for bulk cable label update 2019-04-04 12:43:14 -04:00
Jeremy Stretch
4884f3ac77 Fix column links 2019-04-02 14:49:40 -04:00
Jeremy Stretch
0e5dff212e Fix rack elevation display 2019-04-02 13:50:57 -04:00
Jeremy Stretch
e0085ec819 Fixed table columns 2019-04-02 13:37:53 -04:00
Jeremy Stretch
07bfd7c8e5 Merge branch 'develop-2.6' into 54-power-modeling 2019-04-02 13:15:40 -04:00
Jeremy Stretch
c8cccc30d1 Merge branch 'develop' into develop-2.6 2019-04-02 13:12:34 -04:00
Jeremy Stretch
7c6d2a6281 Post-release version bump 2019-04-02 12:37:39 -04:00
Jeremy Stretch
fdf168934e Merge pull request #3034 from digitalocean/develop
Release v2.5.9
2019-04-02 12:34:34 -04:00
Jeremy Stretch
738a20ad34 Release v2.5.9 2019-04-02 11:54:00 -04:00
Jeremy Stretch
3602d5a84c Fixes #3032: Save assigned tags when creating a new secret 2019-04-02 11:42:49 -04:00
Jeremy Stretch
d23ca041cf Ensure fallback to default serializer when attempting to load nested serializer 2019-04-02 11:17:14 -04:00
Jeremy Stretch
110387e81b Fixes #3019: Fix tag population when running NetBox within a path 2019-04-02 11:05:16 -04:00
Jeremy Stretch
498f132cad Fixes #3027: Ignore empty local context data when rendering config contexts 2019-03-28 10:16:28 -04:00
Jeremy Stretch
dff3165402 Fixes #3026: Tweak prefix/IP filter forms to filter using VRF ID rather than route distinguisher 2019-03-28 10:06:25 -04:00
Jeremy Stretch
3f5f75c71f Fixes #3001: Fix API representation of ObjectChange action and add changed_object_type 2019-03-28 09:57:26 -04:00
John Anderson
2e1887eb0e implements #3025 - Add request ID to outbound webhook requests 2019-03-24 15:35:42 -04:00
John Anderson
2170eedf08 implements #2933 - username in webhooks 2019-03-24 15:31:12 -04:00
Jeremy Stretch
a208cd156d Template and table polish 2019-03-22 21:58:45 -04:00
Jeremy Stretch
3acc8ca3ab Fixes #3022: Add missing cable termination types to DCIM _choices endpoint 2019-03-22 16:26:56 -04:00
Jeremy Stretch
fc76c8eb0f FieldChoicesViewSet should infer field choices from serializer, not model 2019-03-22 16:24:53 -04:00
Jeremy Stretch
681e20133a Further work on power feed modeling 2019-03-21 17:47:43 -04:00
Jeremy Stretch
7d1ee2e94e Changelog for #3011 2019-03-19 10:34:07 -04:00
Jeremy Stretch
3cea92384c Merge pull request #3012 from ajknv/develop
Add support for configuring use of an SSL connection to Redis.
2019-03-19 10:28:01 -04:00
Jeremy Stretch
6ba3d611af Merge pull request #3015 from DanSheps/3014-fix-vm-roles
Changes vm_role from "true" to "True" in virtualization form
2019-03-19 10:24:59 -04:00
Jeremy Stretch
f6345b9a5d Fixes #2998: Limit device query to non-racked devices if no rack selected when creating a cable 2019-03-19 10:22:52 -04:00
Jeremy Stretch
044f7395bb Closes #2995: Added powerbox to community SDK list 2019-03-19 09:48:16 -04:00
Alexander Kinneer
8bda6be65a Merge branch 'develop' of https://github.com/ajknv/netbox into develop 2019-03-18 11:28:48 -05:00
Alexander Kinneer
e544705256 Add support for configuring use of an SSL connection to Redis.
Requires a build or release of django-rq containing
44f3fdd7cb
2019-03-18 11:26:37 -05:00
Alexander Kinneer
f88099eb3b Add documentation for new Redis SSL configuration parameter. 2019-03-18 11:15:40 -05:00
dansheps
5f40be4bd5 Changes vm_role from "true" to "True" in virtualization form 2019-03-18 09:22:36 -05:00
John Anderson
1bf04f2e30 fixes #2936 - device role selection showing duplicate first entry 2019-03-17 01:24:54 -04:00
Alexander Kinneer
7edad4eba9 Add support for configuring use of an SSL connection to Redis.
Requires a build or release of django-rq containing
44f3fdd7cb
2019-03-15 10:35:03 -05:00
Jeremy Stretch
dd7249d2ef Merge pull request #2996 from DanSheps/2207-fix_deterministic_ordering_of_interfaces
Fixes #2207
2019-03-13 16:15:34 -04:00
dansheps
aab84ba6f3 Change ID to PK 2019-03-13 14:02:23 -05:00
Jeremy Stretch
520af82f05 Closes #2924: Add interface type for QSFP28 50GE 2019-03-13 10:00:40 -04:00
dansheps
9292534324 Changelog Updates 2019-03-12 15:54:38 -05:00
dansheps
61efe6102e Fixes #2207
* Added 'id' field sort to InterfaceManager
2019-03-12 15:52:44 -05:00
Jeremy Stretch
705f82e416 Added filters for power panels & feeds 2019-03-12 12:05:58 -04:00
Jeremy Stretch
e06dece00c More power work 2019-03-12 11:36:29 -04:00
Jeremy Stretch
3b9c0e4c67 Fixed up models & forms 2019-03-12 10:17:00 -04:00
Jeremy Stretch
5b753923b6 Initial work on power modeling (WIP) 2019-03-11 22:40:52 -04:00
Jeremy Stretch
0b95016e00 Merge branch 'develop' into develop-2.6 2019-03-11 21:01:18 -04:00
Daniel Sheppard
0022a5a6e2 Merge pull request #2992 from DanSheps/api-documentation-filtering
* Fixes #2991: Fixed typo
* Fixes #2577: Clarified documentation regarding filtering multiple times (some filters can, some cannot)
2019-03-11 15:26:59 -05:00
dansheps
332487efcd API Filtering Documentation Changes
* Fixed typo
* Clarified documentation regarding filtering multiple times (some filters can, some cannot)
2019-03-11 15:11:16 -05:00
Jeremy Stretch
28331dfd53 Post-release version bump 2019-03-11 13:39:30 -04:00
Jeremy Stretch
d112b6027a Merge pull request #2990 from digitalocean/develop
Release v2.5.8
2019-03-11 13:37:07 -04:00
Jeremy Stretch
88933a3120 Release v2.5.8 2019-03-11 13:34:56 -04:00
Jeremy Stretch
e05871b467 Fixes #2982: Correct CSS class assignment on color picker 2019-03-11 13:31:48 -04:00
Jeremy Stretch
7e70bfaacc Fixes #2985: Fix pagination page length for rack elevations 2019-03-11 12:51:03 -04:00
Jeremy Stretch
f4b85751bb Fixes #2940: Allow CSV import of prefixes/IPs to VRF without an RD assigned 2019-03-11 12:34:19 -04:00
Jeremy Stretch
ea11e70e3f Fixes #2984: Fix logging of unlabeled cable ID on cable deletion 2019-03-11 12:26:40 -04:00
Jeremy Stretch
bd8b239e15 Fixes #2980: Improve rendering time for API docs 2019-03-08 10:28:11 -05:00
Jeremy Stretch
d9c8c0cbc1 Fixes #2968: Correct API documentation for SerializerMethodFields 2019-03-08 10:25:09 -05:00
Jeremy Stretch
7a8fc8dfd5 Changelog for #2944 2019-03-07 14:08:36 -05:00
Jeremy Stretch
4334f1bc65 Merge pull request #2979 from TakeMeNL/fix/2944
Fixes: #2944 Adding/removing an IP address is not recorded on the associated interface's changelog
2019-03-07 14:06:00 -05:00
Jeremy Stretch
1995091169 Changelog & renaming for #2065 2019-03-07 13:58:34 -05:00
Jeremy Stretch
ef089d3722 Merge pull request #2957 from axnsan12/ref-name
Resolve drf-yasg `ref_name` conflicts
2019-03-07 13:52:29 -05:00
Marc
1d904b1722 Fix IP address is not recorded in the associated interface's changelog 2019-03-07 10:57:26 +01:00
Jeremy Stretch
ab02f26a0e Fixes #2972: Improve ContentTypeField serializer to elegantly handle invalid data 2019-03-06 12:42:47 -05:00
Jeremy Stretch
f35b4bf768 Fixes #2976: Add delete button to tag view 2019-03-06 12:11:01 -05:00
Jeremy Stretch
f2382dd255 Merge pull request #2969 from DanSheps/2435-PrintingCSS
Closes #2435: Printer friendly CSS
2019-03-06 09:44:04 -05:00
Daniel Sheppard
8df169b170 Remove .noprint from outside of the @media tag 2019-03-05 21:52:54 -06:00
Daniel Sheppard
88aeaaffb0 Remove .noprint from outside of the @media tag 2019-03-05 21:52:37 -06:00
dansheps
e9546b810c * Updated changelog 2019-03-05 15:46:41 -06:00
dansheps
c208d8fc2e * Added CSS to:
* Hide URLs
  * Hide elements with "noprint" class
* Added noprint to:
  * Header Panel
  * Search Panel, Tags Panel
  * Buttons
  * Various list elements
  * Related elements
2019-03-05 15:42:47 -06:00
Jeremy Stretch
8a1d7fdb37 Updated migrations to account for extras/0017_exporttemplate_mime_type_length 2019-03-05 13:46:37 -05:00
Jeremy Stretch
c52d077f92 Merge branch 'develop' into develop-2.6 2019-03-05 13:39:00 -05:00
Jeremy Stretch
7294f43fa3 Changelog for #2966 2019-03-05 13:18:56 -05:00
Jeremy Stretch
0572c66c17 Merge pull request #2967 from Anthony25/fix_cable_length_unit_api
Allow nullable length unit in cable API
2019-03-05 13:17:37 -05:00
Jeremy Stretch
6406e213bd Fixes #2961: Prevent exception when exporting inventory items belonging to unnamed devices 2019-03-05 13:15:09 -05:00
Jeremy Stretch
cfb56f7cfe Fixes #2962: Increase ExportTemplate mime_type field length 2019-03-05 13:08:40 -05:00
Anthony Ruhier
bd65e782bb Allow nullable length unit in cable API
Cables models define it as None by default, but the API rejects a
request containing a null length_unit. Allows it in the API
serializer.
2019-03-05 18:44:44 +01:00
dansheps
37811d3f7e * Resolve conflict with virtualization filters. 2019-03-05 08:19:21 -06:00
dansheps
3bb1cbcdb0 * Resolve conflict with virtualization filters. 2019-03-05 08:18:04 -06:00
dansheps
5fcd673f9f Merge remote-tracking branch 'dansheps/2813-addtenantgroupfilter' into 2813-addtenantgroupfilter
# Conflicts:
#	netbox/ipam/tables.py
2019-03-05 08:11:44 -06:00
dansheps
b4d7f9ea43 Fixes #2781: Fixes filter by regions on site and device list
* Add Device filter
2019-03-05 08:10:10 -06:00
Jeremy Stretch
66d9d9d9cb Rearranged changelog items 2019-03-04 16:01:43 -05:00
Grokzen
b9f4a9e57b Closes #1792 - Add CustomFieldChoices API endpoint (#2941)
* Add new api endpoint for CustomFieldChoices

* Add changelog item for #1792

* Add tests for CustomFieldchoiceAPI endpoint
2019-03-04 15:58:40 -05:00
Jeremy Stretch
80b3a5ffc4 Fixed erroneous addition of 'description' field to unique_together 2019-03-04 15:57:21 -05:00
Jeremy Stretch
0c142f2078 Changelog for #2954 2019-03-04 15:16:35 -05:00
Jeremy Stretch
7295c3554e Merge pull request #2955 from axnsan12/trailing-slashes
Remove trailing slashes from filesystem paths
2019-03-04 15:14:45 -05:00
Jeremy Stretch
78725b8483 Follow-up from #2781 2019-03-04 14:57:35 -05:00
Jeremy Stretch
e97ad3f066 Merge pull request #2935 from DanSheps/2781-fixsitelistfilterregion
Fixes: #2781 - Enable Filtering by Multiple Regions on Site and Device Lists
2019-03-04 14:42:04 -05:00
Cristi Vîjdea
3a62e9a322 Resolve drf-yasg ref_name conflicts
This solves the problem of distinct serializers being confused because they have the same class name (e.g. `InterfaceSerializer`)

Fixes #2065.
2019-03-04 03:49:26 +02:00
Cristi Vîjdea
4d18d9661b Remove trailing slashes from filesystem paths
Paths with trailing slashes do not work on windows, they cause errors such as `django.core.exceptions.SuspiciousFileOperation: The joined path (C:\Projects\netbox\netbox\static\clipboard-2.0.4.min.js) is located outside of the base path component (C:\Projects\netbox\netbox\static\)`.
2019-03-04 03:38:15 +02:00
John Anderson
11976f8968 Merge branch 'develop' into develop-2.6 2019-03-03 19:06:15 -05:00
John Anderson
5991bd368c Merge branch 'develop-2.6' of github.com:digitalocean/netbox into develop-2.6 2019-03-03 19:06:05 -05:00
John Anderson
b381bdec27 fixes #2952 - slug field absent from TenantFilter 2019-03-03 18:52:57 -05:00
John Anderson
231a5aa9fd v2.6.0-dev version update 2019-03-01 23:16:08 -05:00
Jeremy Stretch
6f5c35c278 Force resolution of request User object when logging an object deletion (resolves intermittent test failures) 2019-02-28 11:40:32 -05:00
Jeremy Stretch
3e6033e9ff Fixes #2938: Exclude circuit terminations from API interface connections endpoint 2019-02-28 09:59:17 -05:00
Jeremy Stretch
32f63a18ff Fixes #2938: Enforce deterministic ordering of device components returned by API 2019-02-28 09:49:23 -05:00
dansheps
00aaf500de Fixes #2781: Fixes filter by regions on site and device list
* Add Device filter
2019-02-27 14:46:11 -06:00
dansheps
f2471aedb2 Fixes #2781: Fixes filter by regions on site and device list 2019-02-27 11:41:12 -06:00
Jeremy Stretch
beff774295 Fixes #2705: Fix endpoint grouping in API docs 2019-02-26 16:38:49 -05:00
Daniel Sheppard
679aa0f764 Update tables.py
Fix whitespace
2019-02-26 07:53:59 -06:00
dansheps
8683efe54a Fixes #2813: Add Filter and List View for TenantGroup
Added Filter for TenantGroup to the following Forms and Filter classes

* circuit.Circuit
* dcim.Site
* dcim.Rack
* dcim.RackElevation
* dcim.RackReservation
* dcim.Device
* ipam.IPAddress
* ipam.Prefix
* ipam.VRF
* ipam.VLAN
* virtualization.VirtualMachine

Added List View to the following classes:

* circuit.Circuit
* dcim.Site
* dcim.Rack
* dcim.RackReservation
* dcim.Device
* ipam.IPAddress
* ipam.Prefix
* ipam.VRF
* ipam.VLAN
* virtualization.VirtualMachine
2019-02-23 11:09:02 -06:00
dansheps
f78c228c75 Fixes #2813: Add Filter for TenantGroup to the following Forms and Filter classes:
* circuit.Circuit
* dcim.Site
* dcim.Rack
* dcim.RackElevation
* dcim.RackReservation
* dcim.Device
* ipam.IPAddress
* ipam.Prefix
* ipam.VRF
* ipam.VLAN
* virtualization.VirtualMachine
2019-02-23 10:37:30 -06:00
Jeremy Stretch
8dfef83f1a Changelog for #2923 2019-02-22 12:16:15 -05:00
Jeremy Stretch
d707844c30 Merge pull request #2928 from DanSheps/2923-changecircuitsitefiltermulti
Fixes #2923: Changes Site on ProviderFilterForm to APISelectMultiple
2019-02-22 12:13:56 -05:00
Jeremy Stretch
6a8c935380 Merge branch 'develop' into develop-2.6 2019-02-22 12:10:44 -05:00
Jeremy Stretch
00c4d3dd92 Merge pull request #2918 from digitalocean/2643-description-fields
Closes #2643: Add description field to console/power components and device bays
2019-02-22 12:08:24 -05:00
Daniel Sheppard
3ffea43253 Fixes #2923: Changes Site Filter on Provider List to APISelectMultiple 2019-02-22 07:13:39 -06:00
John Anderson
8e548605c8 added changelog views for Tag 2019-02-22 02:29:00 -05:00
John Anderson
de52f21905 fix circular import for ObjectChange, for now... 2019-02-22 01:42:17 -05:00
John Anderson
b9d11aa4ca refactor tag migrations and add changelog fields to tag 2019-02-22 01:32:31 -05:00
Jeremy Stretch
77c387a559 Post-release version bump 2019-02-21 14:45:23 -05:00
Jeremy Stretch
ac1e4b8e8f Merge pull request #2922 from digitalocean/develop
Release v2.5.7
2019-02-21 14:44:48 -05:00
Jeremy Stretch
36101f50c3 Release v2.5.7 2019-02-21 14:42:44 -05:00
Jeremy Stretch
08dad7f7af Changelog for #2638 2019-02-21 13:30:57 -05:00
hSaria
298152bc50 Closes #2638: Copy Button for Secrets (#2860)
* Added clipboard.min.js

* Added copy button to secrets

* renamed clipboard JS library
2019-02-21 13:26:19 -05:00
Jeremy Stretch
993e94c00c Fixes #2852: Allow filtering devices by null rack position 2019-02-21 10:26:31 -05:00
John Anderson
fba6d28603 removed migration to delete taggit models 2019-02-21 00:15:15 -05:00
Jeremy Stretch
bb6fb81fc0 Closes #2643: Add description field to console/power components and device bays 2019-02-20 14:34:05 -05:00
Jeremy Stretch
4c3a7b84c1 Merge pull request #2881 from candlerb/candlerb/doc-reports
Clarify use of "runreport" CLI
2019-02-20 12:04:35 -05:00
Jeremy Stretch
8961a54a03 Chnagelog for #2890 2019-02-20 12:01:37 -05:00
Jeremy Stretch
2184a9402f Merge pull request #2891 from gdelafond/add-port-types
Fixes #2890: add port type LC/APC, SC/APC, LSH/APC
2019-02-20 12:00:39 -05:00
Jeremy Stretch
b9f1d14d4e Closes #2870: Add Markdown rendering for provider NOC/admin contact fields 2019-02-20 11:48:11 -05:00
Jeremy Stretch
fba154386e Closes #2898: Enable filtering cables list by connection status 2019-02-20 11:36:55 -05:00
Jeremy Stretch
c8366eff8f Fixes #2915: Fix bulk editing of pass-through ports 2019-02-20 11:13:43 -05:00
Jeremy Stretch
161d9ed512 Fixes #2912: Cable type in filter form should be blank by default 2019-02-20 10:21:34 -05:00
Jeremy Stretch
fadc9521f0 Fixes #2913: Fix assigned prefixes link on VRF view 2019-02-20 10:17:36 -05:00
Jeremy Stretch
40cb47868f Fixes #2914: Fix empty connected circuit link on device interfaces list 2019-02-20 10:13:36 -05:00
John Anderson
0a06d92c2e added default values for comments and color fields on tag 2019-02-20 03:56:32 -05:00
John Anderson
fc2bb724fa initial pass on migrating to custom tag model with color and comments fields 2019-02-20 03:52:47 -05:00
John Anderson
e521508de9 #2350 - added virtual machines and test cases 2019-02-18 22:10:05 -05:00
John Anderson
bd573fd5cf implemented #2350 - config context included by default in API 2019-02-18 21:37:00 -05:00
John Anderson
9d055ff4fd fixed #2910 - config context list and edit views not using select2 2019-02-18 21:10:15 -05:00
Jeremy Stretch
9d69f14faa Implement basic view testing for all models (#2909) 2019-02-15 17:02:18 -05:00
Jeremy Stretch
8e3ea6c878 Closes #2878: Add cable types for OS1/OS2 singlemode fiber 2019-02-15 14:42:03 -05:00
Jeremy Stretch
971f3cd63c Closes #2357: Enable filtering of devices by rack face 2019-02-15 11:31:57 -05:00
Jeremy Stretch
a9d7a7e306 Closes #2903: Clarify purpose of tags field on interface edit form 2019-02-15 10:23:46 -05:00
Jeremy Stretch
8797298a71 Fixes #2884: Don't display connect button for wireless interfaces 2019-02-15 10:14:44 -05:00
Jeremy Stretch
3bc182e453 Fixes #2901: Fix ordering regions by site count 2019-02-15 10:10:26 -05:00
Jeremy Stretch
7a0ab3aa15 Fixes #2895: Fix filtering of nullable character fields 2019-02-14 09:43:56 -05:00
Jeremy Stretch
fdbef8ee71 Closes #2836: Deprecate NullableCharField 2019-02-14 09:39:04 -05:00
Jeremy Stretch
d95b127378 Changelog for #2888 and #2893 2019-02-14 09:20:27 -05:00
Jeremy Stretch
008138cd02 Merge pull request #2889 from stuntguy3000/patch-1
Fixes #2888 - Render correct foreground colour for rack devices
2019-02-14 09:14:36 -05:00
Jeremy Stretch
2a1630e068 Merge pull request #2894 from TakeMeNL/bug/duplicate-vrf
Remove duplicate VRF RD on ip address view
2019-02-14 09:09:32 -05:00
TakeMeNL
31611203eb ipaddress.vrf already includes ipaddress.vrf.rd 2019-02-14 14:48:25 +01:00
Guillaume de Lafond
1ee6d16d78 add port type LC/APC, SC/APC, LSH/APC 2019-02-14 10:17:25 +01:00
Luke Anderson
0e8c3a8efe Render correct foreground colour for rack devices 2019-02-14 16:37:27 +10:30
Jeremy Stretch
d084d19675 Post-release version bump 2019-02-13 17:11:51 -05:00
Jeremy Stretch
77954a3796 Merge pull request #2886 from digitalocean/develop
Release v2.5.6
2019-02-13 17:11:26 -05:00
Jeremy Stretch
8152dc4b04 Release v2.5.6 2019-02-13 17:07:15 -05:00
Jeremy Stretch
109b233e14 Closes #2758: Add cable trace button to pass-through ports 2019-02-13 17:05:02 -05:00
Jeremy Stretch
cc3b26998b Fixes #2880: Sanitize user password if an exception is raised during login 2019-02-13 11:34:16 -05:00
Jeremy Stretch
95dea1faaa Closes #2866: Add cellular interface types (GSM/CDMA/LTE) 2019-02-13 10:45:42 -05:00
Jeremy Stretch
57fecdbf17 Closes #2851: Include circuit provider in pass-through port connection details 2019-02-13 10:26:54 -05:00
Jeremy Stretch
3b4bcc881f Fix broken test 2019-02-13 10:09:33 -05:00
Jeremy Stretch
dfa4dfa4a4 Fixes #2877: Fixed device role label display on light background color 2019-02-13 10:06:56 -05:00
Brian Candler
8d86e97247 Clarify use of "runreport" CLI 2019-02-13 08:54:04 +00:00
Jeremy Stretch
5da9d6b46b Closes #2839: Add "110 punch" type for pass-through ports 2019-02-08 09:57:04 -05:00
Jeremy Stretch
100809f11a Closes #2854: Enable bulk editing of pass-through ports 2019-02-08 09:31:10 -05:00
Jeremy Stretch
5256077a3c Fixes #2862: Follow return URL when connecting a cable 2019-02-08 09:10:31 -05:00
Jeremy Stretch
375e66047d Fixes #2864: Correct display of VRF name when no RD is assigned 2019-02-08 09:04:43 -05:00
Jeremy Stretch
42d1d6e1b0 Fixes #2841: Fix filtering by VRF for prefix and IP address lists 2019-02-06 10:48:14 -05:00
Jeremy Stretch
ca51fab4d8 Fixes #2845: Enable filtering of rack unit list by unit ID 2019-02-06 10:44:05 -05:00
Jeremy Stretch
73c983516d Fixes #2856: Fix navigation links between LAG interfaces and their members on device view 2019-02-06 10:28:25 -05:00
Jeremy Stretch
f733d5a4da Fixes #2857: Add display_name to DeviceType API serializer; fix DeviceType list for bulk device edit 2019-02-06 10:23:30 -05:00
Jeremy Stretch
3d2948daf3 Merge pull request #2793 from candlerb/candlerb/doc-inventory
Clarify how chassis-based switches/routers are supposed to be modelled
2019-02-06 10:02:05 -05:00
Jeremy Stretch
69a5d3644a Closes #2844: Correct display of far cable end for pass-through ports 2019-02-01 09:12:48 -05:00
Jeremy Stretch
2f1018c742 Post-release version bump 2019-01-31 16:12:00 -05:00
Jeremy Stretch
d5fc37282f Merge pull request #2838 from digitalocean/develop
Release v2.5.5
2019-01-31 16:10:32 -05:00
Jeremy Stretch
525ed359cd Release v2.5.5 2019-01-31 16:04:14 -05:00
John Anderson
fe00db62d6 fixes #2837 - select2 nullable filter fields add multiple null_option elements when paging 2019-01-31 13:56:36 -05:00
Jeremy Stretch
bcfa760cf9 Closes #2805: Allow null route distinguisher for VRFs 2019-01-31 13:47:24 -05:00
John Anderson
613e8f05c2 fixes #2835 - certain model filters did not support the q query param 2019-01-31 13:36:30 -05:00
Jeremy Stretch
59f8f0c7ea Closes #2825: Include directly connected device for front/rear ports 2019-01-31 12:21:43 -05:00
Jeremy Stretch
ae0c8deec2 Closes #2809: Remove VRF child prefixes table; link to main prefixes view 2019-01-31 10:06:08 -05:00
Jeremy Stretch
b508415983 Fixes #2833: Fix form widget for front port template creation 2019-01-31 09:19:53 -05:00
Jeremy Stretch
a98d014763 Post-release version bump 2019-01-31 09:06:49 -05:00
John Anderson
51e5e49d3b Merge pull request #2832 from cimnine/patch-1
Updated link to netbox-docker, again
2019-01-31 03:06:29 -05:00
Christian Mäder
0eced489da Updated link to netbox-docker, again
After some feedback, that `netbox-community/docker` is not an ideal name, I've renamed the repo back to `netbox-docker`. Hence one more PR to update that link.
2019-01-31 09:02:12 +01:00
TheTrafficNetwork
5138d12942 Typo (#2822) 2019-01-30 14:20:40 -05:00
Jeremy Stretch
fe30276db2 Merge pull request #2828 from cimnine/patch-1
Updated link after the move of `netbox-docker`
2019-01-30 14:19:57 -05:00
Christian Mäder
e51e8b5c8a Updated link after the move of netbox-docker 2019-01-30 16:17:37 +01:00
Jeremy Stretch
170900e80f Fixes #2824: Fix template exception when viewing rack elevations list 2019-01-30 09:59:19 -05:00
Jeremy Stretch
6726403de9 Merge pull request #2821 from digitalocean/develop
Release v2.5.4
2019-01-29 16:38:54 -05:00
Jeremy Stretch
f6d18d243e Release v2.5.4 2019-01-29 16:32:15 -05:00
Jeremy Stretch
8bd9b258a8 Fixes #2816: Handle exception when deleting a device with connected components 2019-01-29 14:27:47 -05:00
Jeremy Stretch
0256448dd8 Closes #2810: Include description fields in interface connections export 2019-01-29 14:08:15 -05:00
Jeremy Stretch
dc70fdbe03 Force string formatting of integer values 2019-01-29 13:57:19 -05:00
Jeremy Stretch
ce1a2875bc Closes #2808: Loosen version pinning for Django to allow patch releases 2019-01-29 13:48:21 -05:00
fouram
b4c9ec27e0 Updated optional-settings.md - Webhook links (#2818)
Corrected (../miscellaneous/webhooks/) to (../additional-features/webhooks/) in two place
2019-01-29 13:38:05 -05:00
Jeremy Stretch
8977ded7b6 Changelog for #2802 2019-01-29 13:36:09 -05:00
ChrisPortman
afb4c636fe Fix #2802 (#2803) 2019-01-29 13:29:22 -05:00
John Anderson
ff40a13f29 fixed select2 paging offset calculation to index at 1 2019-01-29 00:48:41 -05:00
Brian Candler
9991985170 Clarify how chassis-based switches and routers are supposed to be modelled 2019-01-24 13:35:37 +00:00
Jeremy Stretch
61a48320af Add pagination widget to console/power/interface connections views 2019-01-23 14:26:17 -05:00
Jeremy Stretch
d53249060d Closes #2807: Include device site/rack assignment in cable trace view 2019-01-23 13:57:26 -05:00
Jeremy Stretch
22eebbbc71 Fixes #2795: Fix duplicate display of pagination controls on child prefix/IP tables 2019-01-23 13:38:16 -05:00
Jeremy Stretch
4227c6b806 Add select2-bootstrap for consistent widget styling 2019-01-23 10:18:44 -05:00
Jeremy Stretch
14695037da Strip return characters when removing line breaks 2019-01-18 09:24:32 -05:00
Jeremy Stretch
0d717cdc82 Changelog for #2798 2019-01-18 09:23:53 -05:00
Jeremy Stretch
ae8c5ae7b8 Merge pull request #2799 from bgilmore/develop
Fixes #2798: URL encode physical_address in links
2019-01-18 09:18:00 -05:00
Brandon Gilmore
fb0ed3db2f Fixes #2798: URL encode physical_address in links 2019-01-17 17:41:46 -08:00
Jeremy Stretch
c69fad7429 Closes #2733: Enable bulk assignment of MAC addresses to interfaces 2019-01-17 16:20:14 -05:00
Jeremy Stretch
92a2f529e3 Closes #2766: Extend users admin table to include superuser and active fields 2019-01-17 16:14:06 -05:00
Jeremy Stretch
bd74e2f30b Closes #2782: Add is_pool field for prefix filtering 2019-01-17 16:02:16 -05:00
Jeremy Stretch
a950c95416 Merge pull request #2738 from candlerb/candlerb/graphviz-exception
Show exception description on failure to render graphviz
2019-01-16 16:02:11 -05:00
John Anderson
dc9e9fd08f select2 changelog items 2019-01-15 20:01:02 -05:00
John Anderson
1abbaf99dc Merge pull request #2772 from digitalocean/select2-ui
Select2 UI
2019-01-15 16:57:03 -08:00
John Anderson
af6bb53a01 removed debug log 2019-01-15 16:36:51 -05:00
John Anderson
2d7e5a57e7 handle disabled-indicator 2019-01-15 16:33:44 -05:00
Jeremy Stretch
b6737aff59 Remove invalid kwarg (conflict w/ #2779) 2019-01-15 15:47:47 -05:00
Jeremy Stretch
c5f2cbf9fa Syntax fix 2019-01-15 15:44:21 -05:00
John Anderson
d6d8b078b9 Merge branch 'develop' into select2-ui 2019-01-15 10:26:39 -08:00
Jeremy Stretch
1d7a7e2d1d Fixes #2779: Include "none" option when filter IP addresses by role 2019-01-15 11:26:41 -05:00
Jeremy Stretch
4a290f3834 Fixes #2783: Fix AttributeError exception when attempting to delete region(s) 2019-01-15 10:44:11 -05:00
Jeremy Stretch
9e492cbb4d Post-release version bump 2019-01-11 11:35:06 -05:00
Jeremy Stretch
e17d79e10f Merge pull request #2778 from digitalocean/develop
Release v2.5.3
2019-01-11 11:32:49 -05:00
Jeremy Stretch
28a2981a4f Release v2.5.3 2019-01-11 11:27:59 -05:00
Jeremy Stretch
d356e288a2 Expanded the bug report template 2019-01-11 10:30:35 -05:00
Jeremy Stretch
dd5f37391f Fixes #2777: Fix cable validation to handle duplicate connections on import 2019-01-11 10:17:06 -05:00
John Anderson
17d6584ef4 removed deprecated code 2019-01-10 21:23:22 -05:00
John Anderson
ad4fb3ce8b IPAM Select2 forms and changelog 2019-01-10 21:19:13 -05:00
John Anderson
5f1f8ee73b Circuits Select2 forms 2019-01-10 17:50:06 -05:00
John Anderson
60224be272 Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-10 17:32:38 -05:00
John Anderson
6dcd48fef1 Virtulization Select2 forms 2019-01-10 17:32:23 -05:00
John Anderson
951e7a68e9 Secrets Select2 forms 2019-01-09 23:46:45 -05:00
John Anderson
86bafbb760 Tenancy Select2 forms 2019-01-09 23:33:08 -05:00
John Anderson
a6564c49e2 DCIM removed annotates from querysets 2019-01-09 13:44:39 -05:00
Jeremy Stretch
c89735cd4e Disable wrapping of report labels 2019-01-09 11:47:34 -05:00
John Anderson
f3216abebf Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-09 11:25:56 -05:00
Jeremy Stretch
5676bd15dd Closes #2682: Add DAC and AOC cable types 2019-01-09 09:28:44 -05:00
John Anderson
bf8d57c7d1 DCIM filter forms select2 2019-01-08 15:35:34 -08:00
Jeremy Stretch
0d415d94a5 Fixes #2757: Always treat first/last IPs within a /31 or /127 as usable 2019-01-08 12:04:32 -05:00
Jeremy Stretch
73a1d6a7ba Fixes #2762: Add missing DCIM field values to API _choices endpoint 2019-01-08 11:51:13 -05:00
John Anderson
72d5c6fd1b #2590 changelog 2019-01-05 17:46:23 -05:00
John Anderson
6d5d9c8af3 implemented #2590 - improved color picker with actual colors 2019-01-05 17:43:42 -05:00
John Anderson
c27cea981c select2 for all create/edit forms in dcim 2019-01-04 14:41:36 -05:00
Jeremy Stretch
f7f6704fc1 Preserve filtering/ordering parameters when modifying per_page count 2019-01-04 13:17:24 -05:00
John Anderson
fca97f9768 Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-04 12:44:41 -05:00
John Anderson
7a5a73ce34 fixed whitespace 2019-01-04 12:44:31 -05:00
Jeremy Stretch
170e01b549 Closes #1983: Enable regular expressions when bulk renaming device components 2019-01-04 12:30:38 -05:00
Jeremy Stretch
99dc46a89e Fixes #2742: Preserve cluster assignment when editing a device 2019-01-04 11:46:53 -05:00
Jeremy Stretch
848aa0b098 Closes #1870: Add per-page toggle to object lists 2019-01-04 11:07:55 -05:00
John Anderson
81a0889568 initial static select2 fields 2019-01-03 23:02:05 -05:00
Jeremy Stretch
0a820d9c98 Closes #1871: Enable filtering sites by parent region 2019-01-03 16:59:49 -05:00
Jeremy Stretch
209a9f0ffc Closes #1630: Enable bulk editing of prefix/IP mask length 2019-01-03 16:21:21 -05:00
Jeremy Stretch
3101a86381 Changelog updates; import cleanup 2019-01-03 15:30:12 -05:00
Jeremy Stretch
27ca0d0930 Merge pull request #2737 from TakeMeNL/feature/2726
Closes #2726 - Search for Cable Labels
2019-01-03 15:27:21 -05:00
Jeremy Stretch
6ca045e1a9 Merge pull request #2694 from DanSheps/2693-fiber-cable-colors
Closes #2693 - Adds additional colors for cables & roles
2019-01-03 15:24:36 -05:00
dansheps
0c86693dc4 Closes #2693
* Revert CSS Background Hack
2019-01-03 13:20:29 -06:00
John Anderson
5285b6926f updated filter-for attr handling 2019-01-03 03:00:27 -05:00
John Anderson
f3cfc17a52 fix processing of initial tags 2019-01-03 02:25:12 -05:00
Brian Candler
c58166137c Show exception description on failure to render graphviz
This means that problems give a more specific reason.  In the event
that dot is not found, the error is now:

There was an error generating the requested graph: failed to execute ['dot',
'-Tpng'], make sure the Graphviz executables are on your systems' PATH
2019-01-01 11:41:54 +00:00
John Anderson
28a02e9943 initial select2 support 2018-12-30 02:35:18 -05:00
TakeMeNL
c6d9206dd1 Added ability to search for cables in global search 2018-12-29 22:22:12 +01:00
Jeremy Stretch
d144d3a584 Post-release version bump 2018-12-21 11:48:12 -05:00
Jeremy Stretch
8cf8710130 Merge pull request #2725 from digitalocean/develop
Release v2.5.2
2018-12-21 11:46:31 -05:00
Jeremy Stretch
3705e37678 Release v2.5.2 2018-12-21 11:44:30 -05:00
Jeremy Stretch
ebe5193348 Fixes #2724: Limit rear port choices to current device when editing a front port 2018-12-21 11:09:44 -05:00
Jeremy Stretch
a3097d254e Fixes #2721: Detect loops when tracing front/rear ports 2018-12-21 10:54:20 -05:00
Jeremy Stretch
38276d9539 Fixes #2723: Correct permission evaluation when bulk deleting tags 2018-12-21 09:11:07 -05:00
Jeremy Stretch
91a2168952 Fixes #2717: Fix bulk deletion of tags 2018-12-21 09:08:00 -05:00
Jeremy Stretch
4a10b4ece0 Fixes #2704: Fix form select widget population on parent with null value 2018-12-20 15:49:35 -05:00
Jeremy Stretch
853b1fad15 Fixes #2712: Preserve list filtering after editing objects in bulk 2018-12-20 15:33:53 -05:00
Jeremy Stretch
7acbeb55bc Minor tweaks 2018-12-20 09:54:59 -05:00
Jeremy Stretch
8498e0088b Merge pull request #2667 from Jemikwa/develop
#2656 Updating LDAP documentation
2018-12-20 09:53:21 -05:00
Jeremy Stretch
aae10f7d71 Tweaked 200GE and 400GE interface type labels 2018-12-20 09:18:18 -05:00
Jeremy Stretch
6b19a2b101 Fixes #2709: Update example report for compatibility with v2.5 2018-12-19 16:34:35 -05:00
Jeremy Stretch
b44a76e6bd Closes #2537: Added AUTH_LDAP_MIRROR_GROUPS setting to LDAP docs 2018-12-19 16:24:41 -05:00
Jeremy Stretch
7f71fc1d42 Closes #2561: Add 200G and 400G interface types 2018-12-19 16:13:04 -05:00
Jeremy Stretch
ba9fe408bc #2675: Added InventoryItem search form field for 'discovered' 2018-12-19 14:15:22 -05:00
Jeremy Stretch
40cb576e11 Fixes #2673: Fix exception on LLDP neighbors view for device with a circuit connected 2018-12-19 14:04:22 -05:00
Jeremy Stretch
2f1db2fdf3 Fixes #2691: Cable trace should follow circuits 2018-12-19 12:48:20 -05:00
Jeremy Stretch
f4a22e5af3 Introduced fgcolor template filter to render ideal foreground color for any background color 2018-12-19 12:17:40 -05:00
Jeremy Stretch
aca57ec281 Fixes #2698: Remove pagination restriction on bulk component creation for devices/VMs 2018-12-19 10:59:12 -05:00
Jeremy Stretch
68cb8b6895 Closes #2701: Enable filtering of prefixes by exact prefix value 2018-12-19 10:02:18 -05:00
Jeremy Stretch
82e8c0152e Fixes #2707: Correct permission evaluation for circuit termination cabling 2018-12-19 09:36:45 -05:00
dansheps
f499f2dd66 Closes #2693 2018-12-14 11:51:20 -06:00
Jeremy Stretch
d4a9318826 Post-release version bump 2018-12-13 15:24:13 -05:00
Jeremy Stretch
27a893a9a1 Merge pull request #2688 from digitalocean/develop
Release v2.5.1
2018-12-13 15:20:09 -05:00
Jeremy Stretch
9f1fcca5ea Release v2.5.1 2018-12-13 15:03:08 -05:00
Jeremy Stretch
bb564363d5 Fix regression from #2683 2018-12-13 14:59:54 -05:00
Jeremy Stretch
dd2a6a41da Fixes #2687: Correct naming of before/after filters for changelog entries 2018-12-13 14:43:05 -05:00
Jeremy Stretch
a6c8c615eb Closes #2674: Enable filtering changelog by object type under web UI 2018-12-13 14:37:03 -05:00
Jeremy Stretch
0d3b1bfca4 Fixes #2683: Fix exception when connecting a cable to a RearPort with no corresponding FrontPort 2018-12-12 16:40:34 -05:00
Jeremy Stretch
edd763b1aa Fixes #2684: Fix custom field filtering 2018-12-12 16:06:50 -05:00
Jeremy Stretch
2418fed65b Fixes #2663: Prevent duplicate interfaces from appearing under VLAN members view 2018-12-12 13:18:42 -05:00
Jeremy Stretch
785cdcefd6 Closes #2671: Add documentation of API brief format 2018-12-12 10:27:18 -05:00
Jeremy Stretch
3480832bf5 Added changelog for #2662 (fixed under #2680) 2018-12-12 09:59:54 -05:00
Jeremy Stretch
ee038bd77b Closes #2655: Add 128GFC Fibrechannel interface type 2018-12-12 09:48:17 -05:00
Jeremy Stretch
6460c95e00 Fixes #2678: Fix error when viewing webhook in admin UI without write permission 2018-12-12 09:30:31 -05:00
Jeremy Stretch
b0a6781623 Fixes #2680: Disallow POST requests to /dcim/interface-connections/ API endpoint 2018-12-12 09:20:07 -05:00
Jeremy Stretch
8364e56e86 Fixes #2676: Fix exception when passing dictionary value to a ChoiceField 2018-12-11 17:00:20 -05:00
Jeremy Stretch
b8a4316297 Changelog for #2666 2018-12-11 13:47:24 -05:00
Jeremy Stretch
24d1707693 Merge pull request #2670 from DanSheps/2666-fix-length-display
Fixes #2666: Uses correct function for displaying choices label
2018-12-11 13:45:16 -05:00
dansheps
b4f79f1667 Fixes #2666: Uses correct function for displaying choices label
* Changes record.length_type to record.get_length_type_display
2018-12-11 12:40:07 -06:00
Jemikwa
064dd9bef2 Updating LDAP documentation
Adding information on service restarts and logging LDAP queries for troubleshooting.
2018-12-11 11:45:45 -06:00
Jeremy Stretch
b697c30941 #2627: Removed reference to provider from Circuit.__str__() 2018-12-11 11:15:45 -05:00
Jeremy Stretch
93c95fdfa8 Post-release version bump 2018-12-10 10:29:51 -05:00
Jeremy Stretch
8863a3126d Merge pull request #2660 from digitalocean/develop
Release v2.5.0
2018-12-10 10:27:24 -05:00
Jeremy Stretch
acbe5f6418 Release v2.5.0 2018-12-10 10:22:32 -05:00
Jeremy Stretch
4e6652d811 Change pip command to pip3 2018-12-10 09:57:37 -05:00
Jeremy Stretch
7d4fa69595 Fixes #2657: Fix typo 2018-12-10 09:54:30 -05:00
Jeremy Stretch
baeb7937fc Updated requirements for v2.5 release 2018-12-07 15:52:25 -05:00
Jeremy Stretch
2bd9f8a11f Updated installation docs for v2.5 release 2018-12-07 15:29:18 -05:00
Jeremy Stretch
44a2919a29 Django 2.1 requires Python 3.5+ 2018-12-07 14:44:36 -05:00
Jeremy Stretch
77fbc42f75 Relax Python version requirement to 3.4 2018-12-07 14:29:17 -05:00
Jeremy Stretch
65edffea63 Merge v2.5 work 2018-12-07 10:51:28 -05:00
Jeremy Stretch
bf0083552d Merge pull request #2653 from digitalocean/develop
Release v2.4.9
2018-12-07 10:25:46 -05:00
Jeremy Stretch
869194354c Release v2.4.9 2018-12-07 10:19:57 -05:00
Jeremy Stretch
aa8c836b94 Closes #2611: Fix error handling when assigning a clustered device to a different site 2018-12-07 09:57:55 -05:00
Jeremy Stretch
9689ba2c4f Fix representation of connected_endpoint_type for non-connected components 2018-12-06 16:39:03 -05:00
Jeremy Stretch
703be259fd Normalize connection_status for non-connected device components during migration 2018-12-06 16:32:42 -05:00
Jeremy Stretch
45a1dfbd8a Closes #2649: Add connected_endpoint_type to connectable device component API representations 2018-12-06 16:14:03 -05:00
Jeremy Stretch
360303f86c Closes #2474: Add cabled and connection_status filters for device components 2018-12-06 12:39:12 -05:00
Jeremy Stretch
64d37cd450 Closes #2648: Include the connection_status field in nested represenations of connectable device components 2018-12-06 12:14:54 -05:00
Jeremy Stretch
71dee2758b Simplified filter_device() for Interfaces 2018-12-06 11:33:24 -05:00
Jeremy Stretch
870edbb44a Fixes #2626: Remove extraneous permissions generated from proxy models 2018-12-05 16:53:58 -05:00
Jeremy Stretch
2a07e8f3f0 Move queryset_to_csv() utility into ObjectListView to allow overriding by individual views 2018-12-05 16:35:59 -05:00
Jeremy Stretch
686a65880e Closes #2495: Enable deep-merging of config context data 2018-12-05 14:34:49 -05:00
Jeremy Stretch
ab4cb46d94 Additional API change notes 2018-12-05 11:13:29 -05:00
Jeremy Stretch
d3d6c83fbb Fixes #2634: Enforce consistent representation of unnamed devices in rack view 2018-12-04 15:29:58 -05:00
Jeremy Stretch
4e3567659a Add reminder to update static field choices 2018-12-04 15:19:38 -05:00
Jeremy Stretch
f0874f4be0 Add missing choices for new cable and rack fields 2018-12-04 15:15:40 -05:00
Jeremy Stretch
dffa2d3556 Closes #2632: Change representation of null values from 0 to 'null' 2018-12-04 15:09:07 -05:00
Jeremy Stretch
7bbf33ee39 Don't force the docs to open in a new window 2018-12-04 09:44:25 -05:00
Jeremy Stretch
90e7080b63 Closes #2641: Restored link to NetBox shell documentation 2018-12-04 09:19:32 -05:00
John Anderson
e6ee26cf0e CHANGELOG.md 2018-12-04 00:46:36 -05:00
John Anderson
0dcab07519 fixes #2623 - model class being passed to rqworker 2018-12-04 00:40:54 -05:00
Jeremy Stretch
a3ade01224 Fixes #2639: Fix preservation of length/dimensions unit for racks and cables 2018-12-03 11:13:37 -05:00
mmahacek
232e6f5076 #2635 - Update documentation for python3 update (#2636)
Add reference to reinstalling the django-rq module
2018-12-03 09:56:43 -05:00
Jeremy Stretch
d1cd366dc9 Fixes #2616: Convert Rack outer_unit and Cable length_unit to integer-based choice fields 2018-11-30 12:26:28 -05:00
Jeremy Stretch
a1a9396287 Closes #2594: upgrade.sh no longer invokes sudo 2018-11-30 11:12:10 -05:00
Jeremy Stretch
ca0248c3a2 Closes #2089: Add SONET interface form factors 2018-11-30 09:28:56 -05:00
Jeremy Stretch
a43fc0d3d3 Closes #2560: Add slug to DeviceType UI view 2018-11-28 16:19:05 -05:00
Jeremy Stretch
08b4b24296 Fixes #2622: Enable filtering cables by multiple types/colors 2018-11-28 14:22:55 -05:00
Jeremy Stretch
5acd429c55 Fixes #2624: Delete associated content type and permissions when removing InterfaceConnection model 2018-11-28 13:45:02 -05:00
Jeremy Stretch
6c2a9107dd Closes #2597: Add FibreChannel SFP28 (32GFC) interface form factor 2018-11-28 09:56:48 -05:00
Jeremy Stretch
879d879e56 Closes #2617: Explicitly mention that test service runs on port 8000 2018-11-28 09:35:33 -05:00
Jeremy Stretch
c6d048ca51 Fixes #2576: Correct type for count_* fields in site API representation 2018-11-27 16:27:47 -05:00
Jeremy Stretch
112aaea51f Updated changelog for #2400 2018-11-27 16:18:57 -05:00
Tatsushi Demachi
c3cdf8e97e Fix type mismatches in API view (#2429)
* Fix tags field to be shown as array in API view

`tags` field in serializers is defineded as `TagListSerializerField`.
It should be shown as an array value in API view but actually, it is a
simple string value.

This fixes it by introducing a new `FieldInspector` to handle
`TagListSerializerField` type field as an array. It doesn't affects any
other type fields.

* Fix SerializedPKRelatedField type API expression

A field definded as `SerializedPKRelatedField` should be shown as an
array of child serializer objects in a response value definition in API
view but it is shown as an array of primary key values (usually
`integer` type) of a child serializer.

This fixes it by introducing a new `FieldInspector` to handle the field.
It doesn't affect any other type fields.

* Fix request parameter representation in API view

In API view, representation of a parameter defined as a sub class of
`WritableNestedSerializer` should be vary between a request and a
response. For example, `tenant` field in `IPAddressSerializer` should be
shown like following as a request body:

```
tenant: integer ...
```

while it should be shown like following as a response body:

```
tenant: {
    id: integer ...,
    url: string ...,
    name: string ...,
    slug: string ...
}
```

But in both cases, it is shown as a response body type expression. This
causes an error at sending an API request with that type value.

It is only an API view issue, API can handle a request if a request
parameter is structured as an expected request body by ignoring the
wrong expression.

This fixes the issue by replacing an implicitly used default auto schema
generator class by its sub class and returning a pseudo serializer with
'Writable' prefix at generating a request body. The reason to introduce
a new generator class is that there is no other point which can
distinguish a request and a response. It is not enough to distinguish
POST, PUT, PATCH methods from GET because former cases may return a JSON
object as a response but it is also represented as same as a request
body, causes another mismatch.

This also fixes `SerializedPKRelatedField` type field representation. It
should be shown as an array of primary keys in a request body.

Fixed #2400
2018-11-27 16:14:45 -05:00
Jeremy Stretch
d2744700c6 Fixes #2615: Tweak live search widget to use brief format for API requests 2018-11-27 12:41:00 -05:00
Jeremy Stretch
5d07a5a670 Fixes #2613: Decrease live search minimum characters to three 2018-11-27 12:20:52 -05:00
Jeremy Stretch
4da755e75f Formatting cleanup 2018-11-27 11:57:29 -05:00
Jeremy Stretch
bd7aee7c1f Closes #2614: Simplify calls of super() for Python 3 2018-11-27 10:52:24 -05:00
Jeremy Stretch
f3aef37163 Add developer guidance for the introduction of new dependencies 2018-11-27 10:45:10 -05:00
Jeremy Stretch
7d262296e1 Added a description and repo URL for each dependency 2018-11-27 09:51:48 -05:00
Jeremy Stretch
3f1b42d466 Release v2.5-beta2 2018-11-26 16:27:57 -05:00
Jeremy Stretch
90a4b62976 Changelog for #2606 2018-11-26 14:41:09 -05:00
Daniel Sheppard
7346083b26 Fixes #2606 - Added MultipleChoiceFilter for form_factor (#2610)
* Fixes #2606 - Added MultipleChoiceFilter for form_factor

* Fixes #2606 - Add MultipleChoiceField for form_factor
Fixes error with too many lines.
2018-11-26 14:19:05 -05:00
Tyler Bigler
f052bbc36e Refactor Extras Migration Version Check (#2604)
* Add constant for DB_MINIMUM_VERSION

* Refactor verify_postgresql_version to use Django connection pg_version method for comparing versions.

* Remove StrictVersion import

* Remove DB_MINIMUM_VERSION as not necessary in constants.

* Define DB_MINIMUM_VERSION locally to freeze to migration.

* Refactor database version verification to use django builtin methods.
2018-11-26 14:16:37 -05:00
Jeremy Stretch
7d8ae5e763 Fixes #2609: Fixed exception when ChoiceField integer value is passed as a string 2018-11-26 14:05:57 -05:00
Jeremy Stretch
2bae50f501 Enforce consistent ordering of value/label keys for ChoiceField 2018-11-26 14:02:38 -05:00
Jeremy Stretch
a46f68c6e4 Fixes #2608: Fixed null outer_unit error on rack import 2018-11-26 13:41:35 -05:00
Jeremy Stretch
d59be2912e Closes #2601: Added a description field to pass-through ports 2018-11-20 21:28:19 -05:00
Jeremy Stretch
240d22696f Strip annotations from queryset when retrieving object count for API pagination 2018-11-20 21:02:06 -05:00
Jeremy Stretch
2b1516ea79 Changelog for #2602 2018-11-20 13:21:38 -05:00
Jeremy Stretch
89622f1ddf Fixes #2602: Return HTTP 204 when no new IPs/prefixes are available for provisioning 2018-11-20 13:03:59 -05:00
Jeremy Stretch
874acab90f Merge v2.4.8 2018-11-20 12:28:24 -05:00
Jeremy Stretch
8d4329197a Merge pull request #2600 from digitalocean/develop
Release v2.4.8
2018-11-20 11:58:29 -05:00
Jeremy Stretch
34bfb899d1 Post-release version bump 2018-11-20 11:58:19 -05:00
Jeremy Stretch
55c153c5a9 Release v2.4.8 2018-11-20 11:56:14 -05:00
Jeremy Stretch
c29ae9b785 Added missing import buttons to cables list 2018-11-20 09:41:38 -05:00
Jeremy Stretch
5ce955a719 Fixed toggling of connection status for cable path endpoints 2018-11-20 09:23:30 -05:00
Jeremy Stretch
8c3a294384 Standardized behavior and display of connection_status 2018-11-19 15:26:06 -05:00
Jeremy Stretch
55cc327e05 Updated migrations 2018-11-19 13:44:18 -05:00
Jeremy Stretch
a324638f1f Improved logic for recording cable path connection status 2018-11-19 12:37:53 -05:00
Jeremy Stretch
3366a6ae3d Closes #2557: Added object view for tags 2018-11-15 16:47:41 -05:00
Jeremy Stretch
7dde370ee1 Fixes #2593: Fix toggling of connected cable's status 2018-11-15 14:23:23 -05:00
John Anderson
dfe6ba5603 #2583 changelog 2018-11-15 00:55:47 -05:00
John Anderson
fd9b2f2fda cleanup component filters and UI filter forms for device and device type - #2583 2018-11-15 00:42:01 -05:00
John Anderson
3c0181ef35 added logic to append &type=physical to interface API query for cable creation - #2585 2018-11-14 23:35:15 -05:00
Jeremy Stretch
641254b23a Closes #2053: Introduced the LOGIN_TIMEOUT configuration setting 2018-11-14 14:18:32 -05:00
Jeremy Stretch
63bd48003e Clean up cable termination types 2018-11-14 12:17:18 -05:00
Jeremy Stretch
23cde65add Fixes #2589: Virtual machine API serializer should require cluster assignment 2018-11-14 10:38:53 -05:00
Jeremy Stretch
408f632636 Fixes #2588: Catch all exceptions from failed NAPALM API Calls 2018-11-14 10:12:35 -05:00
Jeremy Stretch
83be0b5db4 Closes #2490: Added bulk editing for config contexts 2018-11-13 15:08:55 -05:00
Jeremy Stretch
7bed48f5fe Expanded device interfaces display to include MTU, MAC address, and tags 2018-11-13 14:18:00 -05:00
Jeremy Stretch
2fce7ebd8f Fixes #2565: Improved rendering of Markdown tables 2018-11-13 11:02:48 -05:00
Jeremy Stretch
f8e6cfbeba Closes #2426: Introduced SESSION_FILE_PATH configuration setting for authentication without write access to database 2018-11-13 10:31:44 -05:00
John Anderson
fc41359df6 removed blank line 2018-11-12 23:34:14 -05:00
John Anderson
5649024d93 #2586 changelog 2018-11-12 23:27:14 -05:00
John Anderson
65bc8f0254 resolved #2586 - tests for the Cable model clean method 2018-11-12 23:26:08 -05:00
John Anderson
7887a70b70 #2585 changelog 2018-11-12 23:20:17 -05:00
John Anderson
8a6913fe19 fixed #2585 - connections with virtual interfaces 2018-11-12 23:18:23 -05:00
John Anderson
7cd0e0b244 #2584 changelog 2018-11-12 22:19:30 -05:00
John Anderson
9543b5e716 fixed #2584 - validation for connecting front port to corresponding rear port 2018-11-12 22:15:06 -05:00
Jeremy Stretch
bc8dbfde7c Merge branch 'develop' into develop-2.5 2018-11-12 16:03:52 -05:00
Jeremy Stretch
0c33af2140 Fixes #2558: Filter on all tags when multiple are passed 2018-11-12 15:48:58 -05:00
Jeremy Stretch
b6a256dc5d Expanded the development style guide 2018-11-12 14:36:09 -05:00
Jeremy Stretch
5785fb6ba2 Added development docs for extending a model 2018-11-12 13:59:58 -05:00
Jeremy Stretch
59589fdd29 Fixes #2580: Remove erroneous CSS class from "add components" button 2018-11-12 12:04:04 -05:00
Jeremy Stretch
75f0d8ee90 Closes #2578: Reorganized nested serializers 2018-11-12 11:36:44 -05:00
Jeremy Stretch
04ae6ec7af Fixes #2554: Fix cable trace display when following a rear port with no cable attached 2018-11-09 15:22:34 -05:00
Jeremy Stretch
3bbf4a3352 Fixes #2579: Add missing cable disconnect buttons for front/rear ports 2018-11-09 15:17:42 -05:00
Jeremy Stretch
0316072863 Fixes #2574: Remove duplicate interface links from topology maps 2018-11-09 09:54:30 -05:00
Jeremy Stretch
845d467fd9 Fixes #2575: Correct model specified for rack roles table 2018-11-09 09:46:30 -05:00
Jeremy Stretch
be5bf6b711 Closes #2570: Add bulk disconnect view for front/rear pass-through ports 2018-11-08 15:12:24 -05:00
Jeremy Stretch
788847edaa Fixes #2573: Fix bulk console/power/interface disconnections 2018-11-08 15:04:34 -05:00
Jeremy Stretch
61ca7ee7c2 Closes #2559: Add a pre-commit git hook to enforce PEP8 validation 2018-11-08 13:52:34 -05:00
Jeremy Stretch
30f8fb4c11 Fixes #2572: Add button to disconnect cable from circuit termination 2018-11-08 12:27:15 -05:00
Jeremy Stretch
3e92aa9fe7 Fixes #2571: Enforce deletion of attached cable when deleting a termination point 2018-11-08 12:15:56 -05:00
Jeremy Stretch
bb5432de7d PEP8 fix 2018-11-08 11:13:03 -05:00
Jeremy Stretch
21fd889810 Fix regression from #2566 2018-11-08 11:11:52 -05:00
Jeremy Stretch
a228f1e1c2 Closes #2569: Added LSH fiber type; removed SC duplex/simplex designations 2018-11-08 10:49:26 -05:00
Jeremy Stretch
4b5181d640 Fixes #2566: Prevent both ends of a cable from connecting to the same termination point 2018-11-08 10:40:17 -05:00
Jeremy Stretch
0dee55885b Fixes #2567: Introduced proxy models to represent console/power/interface connections 2018-11-08 09:51:47 -05:00
Jeremy Stretch
1e36a884fa Changelog for #2563 2018-11-08 09:11:28 -05:00
Jeremy Stretch
d4e266d48c Fixes #2563: Enable export templates for cables 2018-11-07 15:49:45 -05:00
Jeremy Stretch
69d829ce8d Fixes #2473: Fix encoding of long (>127 character) secrets 2018-11-07 13:44:16 -05:00
Jeremy Stretch
c1838104ae Add lag description to lag column 2018-11-07 12:20:14 -05:00
Jeremy Stretch
c716ca1e87 Changelog query optimization 2018-11-07 10:42:04 -05:00
mmahacek
c063961e4a Add Cable count to home page (#2556)
* Add stats.cable_count

* Add Cable count to home page
2018-11-07 10:36:04 -05:00
Jeremy Stretch
f61cea695b Release v2.5-beta1 2018-11-06 15:59:46 -05:00
Jeremy Stretch
e806b58ac9 Release v2.5-beta1 2018-11-06 15:58:55 -05:00
Jeremy Stretch
338ce737c8 Removed deprecated expand_numeric_pattern() 2018-11-06 15:39:38 -05:00
Jeremy Stretch
f41f141130 Removed unused class NullableModelMultipleChoiceField 2018-11-06 15:32:59 -05:00
Jeremy Stretch
9f0169286b Standardize usage of NaturalOrderingManager 2018-11-06 14:05:23 -05:00
Jeremy Stretch
60452a7b0c Implemented DeviceComponentManager; removed natsort as a dependency 2018-11-06 12:43:30 -05:00
Jeremy Stretch
6140dd955a Set unit_length to empty string when not specified during cable import 2018-11-06 12:12:06 -05:00
Jeremy Stretch
5e06c5a9ea Added cable connection views for front/rear ports 2018-11-06 12:04:46 -05:00
Jeremy Stretch
ad4e1f01aa Improved templates for cable creation 2018-11-06 11:52:41 -05:00
Jeremy Stretch
bb114ea66b Re-implemented connected device API view & test 2018-11-06 11:44:32 -05:00
Jeremy Stretch
ce00226bc6 Merge release v2.4.7 into develop-2.5 2018-11-06 11:19:38 -05:00
Jeremy Stretch
8bad25b860 Post-release version bump 2018-11-06 10:57:38 -05:00
Jeremy Stretch
cb83eb204b Merge pull request #2552 from digitalocean/develop
Release v2.4.7
2018-11-06 10:55:29 -05:00
Jeremy Stretch
99edb8b8d5 Release v2.4.7 2018-11-06 10:49:44 -05:00
Jeremy Stretch
b4998f4b01 Closes #2388: Enable filtering of devices/VMs by region 2018-11-06 10:31:56 -05:00
John Anderson
51295389c6 add temporary support for hyphenated query params for #2549 2018-11-06 10:08:00 -05:00
Ben Bleything
5baf86dc89 fix prefix length for 172.16.0.0/12 (#2548) 2018-11-06 09:26:05 -05:00
Jeremy Stretch
fd4a9db13e Closes #2512: Add device field to inventory item filter form 2018-11-06 09:24:05 -05:00
John Anderson
e243234c4e changelog for #2549 2018-11-06 00:57:09 -05:00
John Anderson
817dc89279 fixed test for #2549 2018-11-06 00:54:57 -05:00
John Anderson
798a87b31e fixed #2549 - incorrect naming of peer-device and peer-interface 2018-11-06 00:51:55 -05:00
Jeremy Stretch
4d47d848c5 Fixed changelog for #2528 2018-11-05 16:10:33 -05:00
Jeremy Stretch
bd3ccfe020 Fixes #2528: Enable creating circuit terminations with interface assignment via API 2018-11-05 16:10:01 -05:00
Jeremy Stretch
ded90df01b Filter cleanup 2018-11-05 15:45:21 -05:00
Jeremy Stretch
ce7930abfd Changelog for #2427 2018-11-05 15:40:48 -05:00
Daniel Sheppard
82b4aad585 Fixes 2427: Added filtering interfaces by vlan id(vlan=#) and vlan pk(vlan_id=#) (#2521) 2018-11-05 15:37:52 -05:00
Jeremy Stretch
f321e2c705 Changelog for #2501 2018-11-05 15:34:39 -05:00
knobix
0c86fd89ca Update models.py (#2502)
Fix the handling of shared IPs (VIP, VRRF, etc.) when unique IP space enforcement is set.

Add parentheses for the logical OR-statement to make the evaluation valid.

Fixes: #2501
2018-11-05 15:33:10 -05:00
Jeremy Stretch
01628cdd31 Updated base requirements 2018-11-05 15:09:11 -05:00
Jeremy Stretch
e57b3bc4ab Closes #2057: Added description columns to interface connections list 2018-11-05 14:41:51 -05:00
Jeremy Stretch
82076d3ca6 Changelog for #1931 2018-11-05 14:33:50 -05:00
Jeremy Stretch
46e594f1f1 Closes #1931: Added a count of assigned IP addresses to the interface API serializer 2018-11-05 14:32:22 -05:00
Jeremy Stretch
e8caa46484 Expanded v2.5 release notes 2018-11-05 14:01:34 -05:00
Jeremy Stretch
1847e82d04 Closes #867: Add a 'description' field to CircuitTermination 2018-11-05 13:53:22 -05:00
Jeremy Stretch
045856c9ac Introduced a placeholder template filter 2018-11-05 13:00:46 -05:00
Jeremy Stretch
53b6a07a41 Changelog for #2165 2018-11-05 12:07:02 -05:00
Jeremy Stretch
976388f29c Removed 'interface_ordering' field from DeviceType 2018-11-05 12:02:55 -05:00
Jeremy Stretch
e5f12109c5 Closes #2165: Re-implemented natural ordering for interfaces 2018-11-05 11:51:38 -05:00
Juho Juopperi
319869c22e Update django is_safe_url calls to new API (#2546) 2018-11-05 08:52:00 -05:00
Jeremy Stretch
66ef5c726c Removed deprecated CableQuerySet 2018-11-02 15:33:31 -04:00
Jeremy Stretch
f8a961b568 Cleaned up import statements 2018-11-02 15:20:08 -04:00
Jeremy Stretch
521a989d23 Removed Python2 hack 2018-11-02 14:59:48 -04:00
Jeremy Stretch
0a71c63583 Upgraded to Django 2.1 2018-11-02 14:42:15 -04:00
Jeremy Stretch
b05171b126 Upgraded django-tables2 to v2.0.2 2018-11-02 14:27:17 -04:00
Jeremy Stretch
9804db4551 Updated dependencies 2018-11-02 14:14:15 -04:00
Jeremy Stretch
516faac73f Fixed deprecation warnings from DRF 3.9 2018-11-02 13:48:44 -04:00
Jeremy Stretch
29d546a3f1 Upgraded django-filter to 2.0.0 2018-11-02 13:46:28 -04:00
Jeremy Stretch
bb5c0989f3 Fixed compatability with Django REST Framework v3.9.0 2018-11-02 13:16:44 -04:00
Jeremy Stretch
3ea2978df4 Standardized naming of reverse relationships from component templates to DeviceType 2018-11-02 11:55:52 -04:00
Jeremy Stretch
cf9c8f35a0 Normalize ordering of cables by PK 2018-11-02 11:27:26 -04:00
Jeremy Stretch
cefec1be60 Show connected circuit termination on interface view 2018-11-02 11:15:09 -04:00
Jeremy Stretch
16d8308fa8 Deprecated CableTermination.get_connected_cable() 2018-11-02 11:04:21 -04:00
Jeremy Stretch
af95ba48aa Replaced is_console_server, is_pdu, and is_network_device filters on Device and DeviceType 2018-11-02 10:45:31 -04:00
Jeremy Stretch
43446cc642 Added more detail to v2.5.0 release notes 2018-11-02 10:02:44 -04:00
Jeremy Stretch
c60c5502f6 Closes #450: Add 'outer_width' and 'outer_depth' fields to Rack 2018-11-02 09:51:17 -04:00
Jeremy Stretch
4ffe1866c5 Closes #1444: Add field to Rack model 2018-11-02 09:17:51 -04:00
Jeremy Stretch
d4ec309d68 Changelog for #2104 2018-11-02 08:59:51 -04:00
Jeremy Stretch
fa6c4db13b Closes #2104: Add 'status' field to Rack 2018-11-01 16:03:42 -04:00
Jeremy Stretch
91ce6c2420 Cable migration for ExportTemplate 2018-11-01 14:54:53 -04:00
Jeremy Stretch
62da0778ee Suppress print() output from migrations during testing 2018-11-01 14:54:36 -04:00
Jeremy Stretch
7ffb5f16dd Fix color display for cables 2018-11-01 14:32:43 -04:00
Jeremy Stretch
623de7d210 Fixed cable list display for circuit terminations 2018-11-01 14:14:31 -04:00
Jeremy Stretch
1119209fa0 Added CSV export for cables 2018-11-01 13:39:39 -04:00
Jeremy Stretch
c3db7191d2 Added bulk edit/delete views for cables 2018-11-01 13:19:24 -04:00
Jeremy Stretch
2af3685dae Added cables documentation 2018-11-01 12:22:25 -04:00
Jeremy Stretch
841ddd5d83 Add circuit termination as valid termination type for front/rear ports 2018-11-01 11:57:38 -04:00
Jeremy Stretch
a5f0deaea3 Put length and length_unit fields on same line in form 2018-11-01 11:54:34 -04:00
Jeremy Stretch
105f9365bf Fixed Cable model validation 2018-11-01 11:54:15 -04:00
Jeremy Stretch
903dfb6f07 Added validation to Cable model 2018-11-01 11:44:02 -04:00
Jeremy Stretch
571a3e9677 Added cable column to console/power/interface connection tables 2018-11-01 10:51:38 -04:00
Jeremy Stretch
79c110df39 Create id_string on Cable to preserve access to pk after object deletion 2018-11-01 10:25:30 -04:00
Jeremy Stretch
ad03a0925b Fixed cable type filtering 2018-11-01 10:18:37 -04:00
Jeremy Stretch
5e7fccb64e Add blank choice to ColorSelect widget 2018-11-01 10:14:47 -04:00
Jeremy Stretch
3bc6fc5e24 Added changelog view for Cable 2018-11-01 10:04:43 -04:00
Jeremy Stretch
849db8fe44 Finished CableCSVForm 2018-11-01 09:59:53 -04:00
Jeremy Stretch
55c632ace7 Introduce CableBulkImportView 2018-10-31 17:05:25 -04:00
Jeremy Stretch
cd243a90d0 connected_endpoint must be read-only on termination serializers 2018-10-31 16:12:36 -04:00
Jeremy Stretch
4e9ace39ce Optimized queryset for InterfaceConnectionsListView 2018-10-31 16:01:46 -04:00
Jeremy Stretch
18628166dc Removed old console/power connection views 2018-10-31 15:54:29 -04:00
Jeremy Stretch
f7e23d912c Expanded cable connection form 2018-10-31 15:31:44 -04:00
Jeremy Stretch
121a6afb45 Fixed typo in API URL template 2018-10-31 15:23:00 -04:00
Jeremy Stretch
c2656c4ce1 Added tests for Cable model 2018-10-31 15:17:51 -04:00
Jeremy Stretch
d22c23290f Moved cable caching logic from Cable.save() to signals 2018-10-31 15:01:01 -04:00
Jeremy Stretch
8992c57039 Remove reverse relationship to CableTermination.cable 2018-10-31 15:00:09 -04:00
Jeremy Stretch
939a52dcbd Changed variable names for clarity 2018-10-31 14:01:20 -04:00
Jeremy Stretch
6f788fcd23 Tweaked display of connected circuits 2018-10-31 12:53:17 -04:00
Jeremy Stretch
f2f9ff5cbd Cleaned up migrations 2018-10-31 11:52:43 -04:00
Jeremy Stretch
470aabe1d7 Added dedicated cable trace view; removed modal 2018-10-30 16:30:03 -04:00
Jeremy Stretch
669fe1f192 Add missing interfaces table 2018-10-30 15:16:15 -04:00
Jeremy Stretch
62ca511619 Updated documentation 2018-10-30 15:12:14 -04:00
Jeremy Stretch
10492de50d Fix NestedCableSerializer 2018-10-30 14:58:04 -04:00
Jeremy Stretch
e1e9a451da PEP8 fix 2018-10-30 14:57:49 -04:00
Jeremy Stretch
60f5371b31 Fix front ports queryset 2018-10-30 14:54:29 -04:00
Jeremy Stretch
aad4f58633 Add 'cable' field to CircuitTermination serializer 2018-10-30 14:53:41 -04:00
Jeremy Stretch
2fa1c81070 Added initial tests for cable connections 2018-10-30 14:28:46 -04:00
Jeremy Stretch
3420b5fbdf CircuitTermination should inherit from CableTermination 2018-10-30 14:27:45 -04:00
Jeremy Stretch
4df74780b8 Extended Cables to connect CircuitTerminations 2018-10-30 12:16:22 -04:00
Jeremy Stretch
cbfb25f003 Initial work on a cable tracing modal 2018-10-29 16:45:20 -04:00
Jeremy Stretch
e3dc12338b Introduced a 'trace' API endpoint for cable terminations 2018-10-29 15:43:41 -04:00
Jeremy Stretch
e75ef5fd2d Replace references to Interface.connection with connected_endpoint 2018-10-29 14:15:04 -04:00
Jeremy Stretch
8ebf7a7ad0 Standard naming of reverse relationship to Device from component models 2018-10-29 13:42:58 -04:00
Jeremy Stretch
d7766b9828 Replace 'is_connected' boolean with Cable attachment 2018-10-29 13:36:41 -04:00
Jeremy Stretch
427226de8c Optimized API views 2018-10-29 13:26:09 -04:00
Jeremy Stretch
cb1bdccf51 'cable' should be a read-only field 2018-10-29 13:14:41 -04:00
Jeremy Stretch
1ab4344537 Fix front/rear port connection styling 2018-10-29 13:09:23 -04:00
Jeremy Stretch
17a71d3e26 Optimized front/rear port connection displays 2018-10-29 12:56:17 -04:00
Jeremy Stretch
05431aa83b Added 'cable' field to device component serializers 2018-10-29 12:33:43 -04:00
Jeremy Stretch
e21b23cd98 Introduced 'cable' field on CableTermination to cache connected Cable 2018-10-29 12:24:16 -04:00
Jeremy Stretch
dc67028bd9 Corrected cable display 2018-10-29 09:41:03 -04:00
Jeremy Stretch
8f8df2b8e8 Added cable types 2018-10-26 15:45:19 -04:00
Jeremy Stretch
8573c8b8cb Remove is_console_server, is_pdu, and is_network_device from DeviceType 2018-10-26 14:48:22 -04:00
Jeremy Stretch
33cdecbc52 Remove errant print() statement 2018-10-26 14:06:27 -04:00
Jeremy Stretch
0c7510c1a8 PEP8 cleanup 2018-10-26 13:27:54 -04:00
Jeremy Stretch
94946c5854 Swapped the order of cable and connection fields 2018-10-26 13:21:43 -04:00
Jeremy Stretch
83dec3b587 Fixed color display 2018-10-26 13:14:12 -04:00
Jeremy Stretch
3518d023dc Implemented Cable API endpoint 2018-10-26 12:25:11 -04:00
Jeremy Stretch
4ad7882762 Clever icon thing 2018-10-26 11:32:04 -04:00
Jeremy Stretch
957de0cd98 Added cable connections to component lists 2018-10-26 11:29:03 -04:00
Jeremy Stretch
6bea8cc546 Added length and length_unit fields to Cable 2018-10-26 10:28:25 -04:00
Jeremy Stretch
2d90fc608e Introduced CableView and CableEditView 2018-10-25 15:51:12 -04:00
Jeremy Stretch
f134a6ec63 Introduced CableTermination abstract model to ptovide Cable access from termination points 2018-10-25 15:21:16 -04:00
Jeremy Stretch
266429101b Removed 'is_patch_panel' from DeviceType 2018-10-25 12:44:28 -04:00
Jeremy Stretch
b19e2037af Dropped 'Panel' from FrontPanelPort/RearPanelPort names 2018-10-25 12:11:13 -04:00
Jeremy Stretch
e79a156e1f Improved cable tracing 2018-10-25 10:56:47 -04:00
Jeremy Stretch
35f80f5085 First stab at cable path tracing and automatic endpoint connections 2018-10-24 16:17:01 -04:00
Jeremy Stretch
47c523a40b Fixed interface connection rendering 2018-10-24 15:07:11 -04:00
Jeremy Stretch
cca44d44f7 Added cable filter form 2018-10-24 14:59:46 -04:00
Jeremy Stretch
54c917beff Renamed Cable endpoints to terminations 2018-10-24 14:38:44 -04:00
Jeremy Stretch
9985f2cb82 Added CableListView 2018-10-24 14:26:08 -04:00
Jeremy Stretch
f30367e094 Deprecated the InterfaceConnection model 2018-10-24 13:59:44 -04:00
Jeremy Stretch
2ec8dc8319 Renamed PowerPort.power_outlet to connected_endpoint 2018-10-24 11:00:13 -04:00
Jeremy Stretch
1595a5ecd7 Renamed ConsolePort.cs_port to connected_endpoint 2018-10-24 10:37:54 -04:00
Jeremy Stretch
ea0de629df Fixed cable creation form 2018-10-23 13:40:10 -04:00
Jeremy Stretch
471bddea09 WIP: Initial work on the cable connection form 2018-10-22 16:58:24 -04:00
Jeremy Stretch
e97708ada0 Fixes #2526: Bump paramiko and pycryptodome requirements due to vulnerability 2018-10-22 11:23:37 -04:00
Jeremy Stretch
a36b120c8b Merge branch 'develop-2.5' into 20-physical-cabling 2018-10-19 13:34:21 -04:00
Jeremy Stretch
4cfe9fe182 Merge branch 'develop' into develop-2.5 2018-10-19 13:34:03 -04:00
Jeremy Stretch
59af8cc924 Remove ConnectableModel 2018-10-19 11:56:12 -04:00
Jeremy Stretch
d908dffab7 Fixed content type assignment within migration 2018-10-19 10:38:15 -04:00
Jeremy Stretch
ea5121ffe1 Preliminary work on Cables 2018-10-18 15:43:55 -04:00
Jeremy Stretch
0bb5d229e8 Fixes #2514: Prevent new connections to already connected interfaces 2018-10-16 16:42:23 -04:00
mmahacek
409a9256a1 Expand Webhook Documentation #2347 (#2524)
* #2347 - Expand Webhook Documentation

Move "Install Python Packages" section up one header level.  Should make Napalm/Webhook sections appear in table of contents for direct linking.

*  #2347 - Expand Webhook Documentation

Add text for installation to link to other documentation sections with instructions.
2018-10-16 13:19:33 -04:00
Jeremy Stretch
2c37e85a4c Merge pull request #2523 from etcet/patch-1
Fix "cusomizable" typo
2018-10-16 13:16:12 -04:00
Chris James
0ae2dfbff3 Fix "cusomizable" typo 2018-10-16 11:36:32 -05:00
Jeremy Stretch
df5d105f29 Changelog for #2515 2018-10-16 09:42:19 -04:00
Jeremy Stretch
219c9e7d95 Merge pull request #2408 from ScanPlusGmbH/fix-2395
Fix #2515: Modify only when webhooks are enabled
2018-10-16 09:39:28 -04:00
Jeremy Stretch
6832df4699 Fixes #2508: Removed invalid link 2018-10-10 09:49:35 -04:00
Jeremy Stretch
22ed4f1b53 Merge release v2.4.6 2018-10-10 09:36:51 -04:00
Tobias Genannt
c31c7b50b7 Fix #2395: Modify only when webhooks are enabled
This only adds the RQ link when the webhooks setting is enabled.
2018-10-08 07:34:56 +02:00
Jeremy Stretch
7d1f6b7049 Post-release version bump 2018-10-05 15:49:51 -04:00
Jeremy Stretch
74d525364a Merge pull request #2494 from digitalocean/develop
Release v2.4.6
2018-10-05 15:48:11 -04:00
Jeremy Stretch
c2f4cf3407 Release v2.4.6 2018-10-05 15:43:43 -04:00
Jeremy Stretch
83f3dc99ce Changelog entry for #2492 2018-10-05 15:39:30 -04:00
Jeremy Stretch
44d3606ce1 Fixes #2492: Sanitize hostname and port values returned through LLDP 2018-10-05 15:38:32 -04:00
Jeremy Stretch
470d22c835 PEP8 fix 2018-10-05 15:36:48 -04:00
Jeremy Stretch
4c37628784 Fixes #2393: Fix Unicode support for CSV import under Python 2 2018-10-05 15:33:29 -04:00
Marc Heckmann
1daf7f8e2b Sanitize hostname and port values returned through LLDP
If hostname or port are null set to empty string ("").

This avoids breaking the LLDP neighbors (NAPALM) view
2018-10-05 14:30:54 -04:00
Jeremy Stretch
841db3b0c2 Fixes #2491: Fix exception when importing devices with invalid device type 2018-10-05 12:22:46 -04:00
Jeremy Stretch
5d10d8418e Closes #2479: Add user permissions for creating/modifying API tokens 2018-10-05 11:06:59 -04:00
Jeremy Stretch
2fee977b4c Fixes #2485: Fix cancel button when assigning a service to a device/VM 2018-10-05 10:30:13 -04:00
Jeremy Stretch
52f1b1c3bf Changelog entry for #2487 2018-10-04 16:24:09 -04:00
Jeremy Stretch
ab53d0e863 Merge pull request #2488 from digitalocean/2487-api-brief
Closes #2487: Enable brief API output utilizing nested serializers
2018-10-04 16:22:30 -04:00
Jeremy Stretch
259da2d18a #2487: Added API tests 2018-10-04 16:20:01 -04:00
Jeremy Stretch
bf47e7cae3 #2487: Require the 'brief' parameter to evaluate True 2018-10-04 14:50:57 -04:00
Jeremy Stretch
db2721c581 Enable brief API output utilizing nested serializers 2018-10-04 13:43:50 -04:00
John Anderson
1b2e9a6d06 fixes #2484 - Local config context not available on the Virtual Machine Edit Form 2018-10-03 17:16:01 -04:00
Jeremy Stretch
99848aab6a Fixes #2483: Set max item count of API-populated form fields to MAX_PAGE_SIZE 2018-10-03 16:17:17 -04:00
Jeremy Stretch
3eddeeadc5 Initial work on #20 - patch panels 2018-10-03 14:04:16 -04:00
Jeremy Stretch
364bbdeab8 Merged release v2.4.5 2018-10-03 11:23:21 -04:00
Jeremy Stretch
7583912de7 Post-release version bump 2018-10-02 15:30:28 -04:00
Jeremy Stretch
125975832b Merge pull request #2478 from digitalocean/develop
Release v2.4.5
2018-10-02 15:29:13 -04:00
Jeremy Stretch
20fed375d1 Release v2.4.5 2018-10-02 15:24:42 -04:00
Jeremy Stretch
fc1b3d6927 Fixes #2471: Fix ReadTheDocs theme 2018-10-02 11:51:53 -04:00
Jeremy Stretch
aed2a3cd1b Closes #2438: API optimizations for tagged objects 2018-09-28 16:44:05 -04:00
Jeremy Stretch
15babeb584 Fixes #2414: Tags field missing from device/VM component creation forms 2018-09-28 16:26:08 -04:00
Jeremy Stretch
020b5ea870 Fixes #2470: Log the creation of device/VM components as object changes 2018-09-28 16:04:51 -04:00
Jeremy Stretch
2ee5b2344e Changelog and misc cleanup 2018-09-28 14:21:49 -04:00
Jeremy Stretch
7616bcad3d Merge pull request #2445 from digitalocean/local-config-context
Local config context
2018-09-28 14:03:28 -04:00
John Anderson
f76ce980e3 remove templates no longer needed for local config context 2018-09-26 10:30:34 -04:00
Jeremy Stretch
9440ac7640 Fixes #2455: Ignore unique address enforcement for IPs with a shared/virtual role 2018-09-24 16:59:33 -04:00
Jeremy Stretch
0e18997c79 Merge pull request #2446 from hellerve/patch-1
docs: typo fix in devices
2018-09-19 09:47:46 -04:00
Veit Heller
95464772ac docs: typo fix in devices 2018-09-19 10:57:09 +02:00
Jeremy Stretch
b4445dfdf8 Fixes #2442: Nullify "next" link in API when limit=0 is passed 2018-09-18 13:59:50 -04:00
John Anderson
fb5dca2711 Merge branch 'develop' of github.com:digitalocean/netbox into local-config-context 2018-09-18 12:16:07 -04:00
Jeremy Stretch
6cdff955dc Fixes #2444: Improve validation of interface MAC addresses 2018-09-18 12:02:59 -04:00
John Anderson
4039753b2f refactored UI for local config context 2018-09-18 11:52:12 -04:00
Jeremy Stretch
9df33cef8b Fixes #2443: Enforce JSON object format when creating config contexts 2018-09-18 11:46:22 -04:00
John Anderson
e3e9211e8a PEP8 fix 2018-09-16 00:30:51 -04:00
John Anderson
0da113b723 implemnted #2392 - local config context for devices and VMs 2018-09-16 00:25:20 -04:00
John Anderson
e965adad7c changelog for #2432 2018-09-15 17:25:50 -04:00
John Anderson
57b225b680 fixes #2423 - interface connection links 2018-09-15 17:23:58 -04:00
Jeremy Stretch
b97597c645 Merge pull request #2421 from sieben/docs_community
Add content about related projects
2018-09-13 12:29:17 -04:00
Rémy Léone
162828da90 Add a page related to community related projects 2018-09-13 17:54:13 +02:00
Jeremy Stretch
292647da14 Closes #2402: Order and format JSON data in form fields 2018-09-13 11:31:34 -04:00
Jeremy Stretch
3a88e43103 Fixes #2406: Remove hard-coded limit of 1000 objects from API-populated form fields 2018-09-13 11:21:40 -04:00
Jeremy Stretch
2ac60bdf48 Merge branch 'develop' into develop-2.5 (v2.4.4 release) 2018-08-22 12:10:44 -04:00
Jeremy Stretch
010765e131 Post-release version bump 2018-08-22 11:55:51 -04:00
Jeremy Stretch
bcf22831e2 Merge pull request #2387 from digitalocean/develop
Release v2.4.4
2018-08-22 11:53:56 -04:00
Jeremy Stretch
cde6e9757b Release v2.4.4 2018-08-22 11:51:15 -04:00
Jeremy Stretch
f2d9a3e0a1 Added note about CHANGELOG to release checklist 2018-08-22 11:50:25 -04:00
Jeremy Stretch
b917e8d3b0 #2376: Add libapache2-mod-wsgi-py3 to CentOS installation section 2018-08-22 11:46:13 -04:00
Jeremy Stretch
3b26ce6501 Merge pull request #2386 from digitalocean/revert-2376-patch-1
Revert "Add missing library"
2018-08-22 11:44:31 -04:00
Jeremy Stretch
1b2d3bf08b Revert "Add missing library" 2018-08-22 11:44:07 -04:00
Jeremy Stretch
492bc9f86e Merge pull request #2376 from craig/patch-1
Add missing library
2018-08-22 11:43:46 -04:00
Jeremy Stretch
a457a73826 Merge pull request #2382 from consentfactory/develop
Fixed typo for supervisorctl
2018-08-22 11:41:12 -04:00
Jeremy Stretch
ac36339491 Closes #2168: Added Extreme SummitStack interface form factors 2018-08-22 11:33:43 -04:00
Jeremy Stretch
dbbf7ab664 Fixes #2353: Handle DoesNotExist exception when deleting a device with connected interfaces 2018-08-22 10:35:56 -04:00
Jeremy Stretch
66400a98f1 Fixes #2354: Increased maximum MTU for interfaces to 65536 bytes 2018-08-22 10:25:07 -04:00
Jeremy Stretch
aa50e2e385 Fixes #2378: Corrected "edit" link for virtual machine interfaces 2018-08-22 10:06:01 -04:00
Jimmy Taylor
118b8db209 Fixed typo for supervisorctl 2018-08-21 08:28:23 -06:00
Craig
967feb6931 Add missing library
WSGIPassAuthorization fails if libapache2-mod-wsgi-py3 is missing
2018-08-21 00:41:29 +02:00
Jeremy Stretch
e1e41a768a Fixes #2369: Corrected time zone validation on site API serializer 2018-08-20 16:53:23 -04:00
Jeremy Stretch
c333af33dc Fixes #2370: Redirect to parent device after deleting device bays 2018-08-20 14:40:19 -04:00
Jeremy Stretch
9e5b482b1d Fixes #2374: Fix toggling display of IP addresses in virtual machine interfaces list 2018-08-20 13:49:15 -04:00
John Anderson
771747147c #2254 changelog entry 2018-08-17 18:41:58 -04:00
John Anderson
bc49979243 added rack group search #2254 2018-08-17 18:37:48 -04:00
Jeremy Stretch
d46b3e2446 #2368: Append changelog 2018-08-17 14:32:51 -04:00
Jeremy Stretch
2804d89c5e Fixes #2368: Record change in device changelog when altering cluster assignment 2018-08-17 14:26:50 -04:00
Jeremy Stretch
19b737a534 Added v2.5 notes (so far) to changelog 2018-08-16 16:33:13 -04:00
Jeremy Stretch
29380b1120 Merge branch 'develop' into develop-2.5 2018-08-16 16:31:54 -04:00
Jeremy Stretch
fd32a71131 Rename changelog 2018-08-16 16:29:12 -04:00
Jeremy Stretch
1556fd0e92 Added a release changelog 2018-08-16 16:27:41 -04:00
Jeremy Stretch
c4be440cd1 Closes #2367: Remove deprecated RPCClient functionality 2018-08-16 12:21:24 -04:00
Jeremy Stretch
5dce7c4e48 Closes #2356: Include cluster site as read-only field in VirtualMachine serializer 2018-08-16 11:57:20 -04:00
Jeremy Stretch
4bfc32ec99 Closes #2355: Added item count to inventory tab on device view 2018-08-16 10:20:22 -04:00
Jeremy Stretch
ff65f7fd7b Fixes #2362: Implemented custom admin site to properly handle BASE_PATH 2018-08-16 09:44:00 -04:00
Jeremy Stretch
7145f86a6e #2359: Extended exempt attributes to 'migrate' command 2018-08-15 15:02:58 -04:00
Jeremy Stretch
7ec4155845 Closes #2359: Implement custom makemigrations command to ignore extraneous field attributes 2018-08-15 14:18:52 -04:00
Jeremy Stretch
6dd62dc891 Refactored log_change() methods for device components 2018-08-14 14:06:16 -04:00
Jeremy Stretch
5f66710fcd Closes #2292: Remove the deprecated UserAction model 2018-08-14 12:13:43 -04:00
Jeremy Stretch
980d62d579 Removed Python 2 string compatibility 2018-08-14 11:58:42 -04:00
Jeremy Stretch
ac546a9711 Closes #2000: Remove support for Python 2 2018-08-14 11:48:12 -04:00
Jeremy Stretch
cd2aee3053 Post-release version bump 2018-08-09 16:41:11 -04:00
Jeremy Stretch
f224ad2959 Merge pull request #2346 from digitalocean/develop
Release v2.4.3
2018-08-09 16:39:45 -04:00
Jeremy Stretch
9d9318f38a Corrected typo 2018-08-09 16:37:58 -04:00
Jeremy Stretch
f43d861b50 Release v2.4.3 2018-08-09 16:36:23 -04:00
Jeremy Stretch
17714b0c12 Fixes #2342: IntegrityError raised when attempting to assign an invalid IP address as the primary for a VM 2018-08-09 16:34:17 -04:00
Jeremy Stretch
9914576eaa Fixes #2344: AttributeError when assigning VLANs to an interface on a device/VM not assigned to a site 2018-08-09 15:46:18 -04:00
Jeremy Stretch
bf8eff11ea Closes #2333: Added search filters for ConfigContexts 2018-08-09 12:22:34 -04:00
Jeremy Stretch
a6c78b99c4 Fixes #2340: API requires manufacturer field when creating/updating an inventory item 2018-08-09 09:34:54 -04:00
Jeremy Stretch
6a56ffc650 Fixes #2337: Attempting to create the next available prefix within a parent assigned to a VRF raises an AssertionError 2018-08-08 16:16:49 -04:00
Jeremy Stretch
05059606c5 Fixes #2336: Bulk deleting power outlets and console server ports from a device redirects to home page 2018-08-08 15:22:26 -04:00
Jeremy Stretch
a2ff21fab9 Fixes #2334: TypeError raised when WritableNestedSerializer receives a non-integer value 2018-08-08 15:09:30 -04:00
Jeremy Stretch
134370f48d Fixes #2335: API requires group field when creating/updating a rack 2018-08-08 14:58:16 -04:00
Jeremy Stretch
c7fa610842 Post-release version bump 2018-08-08 09:19:33 -04:00
Jeremy Stretch
242cb7c7cb Merge pull request #2332 from digitalocean/develop
Release v2.4.2
2018-08-08 09:16:50 -04:00
Jeremy Stretch
edb49c7f0a Release v2.4.2 2018-08-08 09:12:10 -04:00
Jeremy Stretch
3e0a7e7f8a Added tip about exlcuding the changelog when exporting the database 2018-08-08 09:04:48 -04:00
Jeremy Stretch
cfab9a6a0a Fixes #2330: Incorrect tab link in VRF changelog view 2018-08-08 08:49:23 -04:00
Jeremy Stretch
91b5f6d799 Fixes #2323: DoesNotExist raised when deleting devices or virtual machines 2018-08-07 17:30:26 -04:00
Jeremy Stretch
d5488ca7da Fixes #2322: Webhooks firing on non-enabled event types 2018-08-07 15:41:31 -04:00
Jeremy Stretch
f9911bff0d Added a "view all" link to the changelog panel 2018-08-07 15:19:01 -04:00
Jeremy Stretch
d5239191fe Fixes #2320: TypeError when dispatching a webhook with a secret key configured 2018-08-07 14:19:46 -04:00
Jeremy Stretch
db7148350e Fixes #2321: Allow explicitly setting a null value on nullable ChoiceFields 2018-08-07 14:05:07 -04:00
Jeremy Stretch
c51c20a301 Fixes #2319: Extend ChoiceField to properly handle true/false choice keys 2018-08-07 13:48:29 -04:00
Jeremy Stretch
f4485dc72a Restore reports directory 2018-08-07 13:47:36 -04:00
Jeremy Stretch
f59682a7c9 Fixes #2318: ImportError when viewing a report 2018-08-07 12:10:14 -04:00
Jeremy Stretch
507a023f41 Post-release version bump 2018-08-07 09:26:17 -04:00
Jeremy Stretch
ea7386b04b Merge pull request #2316 from digitalocean/develop
Release v2.4.1
2018-08-07 09:25:10 -04:00
Jeremy Stretch
81479ac177 Release v2.4.1 2018-08-07 09:23:49 -04:00
Jeremy Stretch
c7acddbc5c Fixes #2312: Running a report yields a ValueError exception 2018-08-07 09:12:05 -04:00
Jeremy Stretch
1905516536 Fixes #2314: Serialized representation of object in change log does not incldue assigned tags 2018-08-07 08:52:57 -04:00
Jeremy Stretch
64f34d9cd7 Fixes #2311: Redirect to parent after editing interface from device/VM view 2018-08-07 08:46:41 -04:00
Jeremy Stretch
98bdb0cb3c Fixes #2310: False validation error on certain nested serializers 2018-08-06 17:40:45 -04:00
Jeremy Stretch
bba88b2be4 Fixes #2303: Always redirect to parent object when bulk editing/deleting components 2018-08-06 14:14:40 -04:00
Jeremy Stretch
12dfd4b6e0 Fixes #2308: Custom fields panel absent from object view in UI 2018-08-06 13:32:52 -04:00
Jeremy Stretch
209e721219 Post-release version bump 2018-08-06 12:45:46 -04:00
Jeremy Stretch
7a27dbb374 Merge pull request #2307 from digitalocean/develop
Release v2.4.0
2018-08-06 12:40:00 -04:00
Jeremy Stretch
d039b9e23d Merge branch 'develop-2.4' into develop 2018-08-06 12:28:23 -04:00
Jeremy Stretch
af796871aa Release v2.4.0 2018-08-06 12:18:44 -04:00
Jeremy Stretch
d8580d6174 Bumped drf-yasg to v1.9.2 2018-08-06 11:57:09 -04:00
Jeremy Stretch
24520717e4 Fixes #2305: Make VLAN fields optional when creating a VM interface via the API 2018-08-06 10:35:51 -04:00
Jeremy Stretch
bd5e860be0 Refactored the tests to remove a lot of boilerplate 2018-08-03 11:39:26 -04:00
Jeremy Stretch
1bdfcd1dbe Fixes #2301: Fix model validation on assignment of ManyToMany fields via API patch 2018-08-03 10:45:53 -04:00
Jeremy Stretch
b4f29978b3 Merge pull request #2300 from explody/fix_2299
Updated IPAddressInterfaceSerializer to subclass WritableNestedSerial…
2018-08-03 10:11:37 -04:00
Jeremy Stretch
f1bc88fc0c Adopt django-taggit-serializer for representation of assigned tags in the API 2018-08-03 09:43:03 -04:00
Mike Culbertson
aee01af2a1 Updated IPAddressInterfaceSerializer to subclass WritableNestedSerializer
Also added readonly args to device and virtual_machine attrs to prevent unnecessary validation
2018-08-02 19:00:41 -04:00
Jeremy Stretch
ab37264ae1 Added tests for assigning tags during POST/PATCH 2018-08-02 14:23:30 -04:00
Jeremy Stretch
78b8a582f8 Added release checklist to development docs 2018-08-02 11:53:31 -04:00
Jeremy Stretch
42a970e452 Updated requirements for v2.4 release 2018-08-02 10:09:24 -04:00
Jeremy Stretch
8f127e86ac Mark UserAction as deprecated 2018-08-02 09:38:09 -04:00
Vas Sadvariy
33e45a5292 Closes #971: Implement VLANGroup VLANs view to show available VLANs within a group 2018-08-01 15:59:00 -04:00
Jeremy Stretch
475e0e6c1e Follow-up to #2272: subdevice_role should not be required 2018-08-01 14:22:32 -04:00
Jeremy Stretch
5e97f87a64 PEP8 fix 2018-08-01 14:05:26 -04:00
Jeremy Stretch
4ae7f2337a Closes #2213: Added squashed migrations 2018-08-01 14:01:20 -04:00
Jeremy Stretch
5e5b9683f9 Merge pull request #2290 from lampwins/bug/2137
Force webhooks to use the same JSONEncoder class as DRF - fixes #2137
2018-08-01 12:57:05 -04:00
Jeremy Stretch
0b971aaf84 Extended developer docs 2018-08-01 12:38:57 -04:00
John Anderson
2f33e9724d force webhooks to use the same JSONEncoder class as DRF - fixes #2137 2018-07-31 16:17:24 -04:00
Jeremy Stretch
5f7e21faa0 Fixes #1786: Correct loading of reports from a custom file path 2018-07-31 13:48:07 -04:00
Jeremy Stretch
d4ccaf60cf Fixes #2272: Allow subdevice_role to be null on DeviceTypeSerializer 2018-07-31 11:52:58 -04:00
Jeremy Stretch
27e8841a6d Merge pull request #2287 from TakeMeNL/bug/2286
Fix #2286 : Non working 'mark installed' button
2018-07-31 11:38:32 -04:00
Jeremy Stretch
45ab08aa76 Closes #2288: Fix exception when assigning objects to a ConfigContext via the API 2018-07-31 11:32:49 -04:00
Marc Hagen
c5339c255a Fixes #2286: Fix non working 'mark installed' button 2018-07-31 10:37:57 +02:00
Jeremy Stretch
d6ce4fc9f3 Docs fixes 2018-07-30 17:19:22 -04:00
Jeremy Stretch
5ea41fa7f9 Merge pull request #2285 from digitalocean/2284-object-deletions
Fix #2284: Record object deletions before the request finishes
2018-07-30 16:51:12 -04:00
Jeremy Stretch
249c3d0e81 Fixes #2284: Record object deletions before the request finishes 2018-07-30 16:33:37 -04:00
John Anderson
722d0d5554 Webhook signal refactor - fixes #2282 (#2260)
Refactor of webhook signaling system to use the same middleware mechanics of Changelogging
2018-07-30 14:23:49 -04:00
Jeremy Stretch
9876a2efcd Added a style section 2018-07-30 14:16:45 -04:00
Jeremy Stretch
f7aa259995 Misc cleanup 2018-07-30 14:00:37 -04:00
Jeremy Stretch
f664998d9b Misc cleanup 2018-07-30 12:49:08 -04:00
Jeremy Stretch
c2416411c1 Renamed ChoiceFieldSerializer and ContentTypeFieldSerializer 2018-07-30 12:41:20 -04:00
Jeremy Stretch
524da5a2ff Closes #2225: Add "view elevations" button for site rack groups 2018-07-27 16:25:48 -04:00
Jeremy Stretch
838af2b2d8 Closes #2264: Added "map it" link for site GPS coordinates 2018-07-27 16:15:56 -04:00
Jeremy Stretch
64e86013bf Remove admin UI views for ConfigContexts and ObjectChanges 2018-07-27 16:00:50 -04:00
Jeremy Stretch
a1e8397b6b Closes #2229: Allow mapping of ConfigContexts to tenant groups 2018-07-27 15:47:29 -04:00
Jeremy Stretch
7476f522e1 Fixes #2265: Include parent regions when filtering applicable ConfigContexts (credit: lampwins) 2018-07-27 15:10:43 -04:00
Jeremy Stretch
acb06ee4f1 Merge branch 'v2.4-docs' into develop-2.4 2018-07-27 13:42:34 -04:00
Jeremy Stretch
674a0d481e Additional documentation cleanup 2018-07-27 13:42:18 -04:00
Jeremy Stretch
40efa55ec7 Merged release v2.3.7 2018-07-27 11:43:27 -04:00
Jeremy Stretch
3166d12994 Use real emojis for issue template names 2018-07-26 15:09:19 -04:00
Jeremy Stretch
58a97b4e39 Trying emojis in issue template names 2018-07-26 15:04:47 -04:00
Jeremy Stretch
7b8051d42f Cleaned up GitHub issue templates 2018-07-26 14:59:23 -04:00
Jeremy Stretch
55f93184d3 Post-release version bump 2018-07-26 14:58:15 -04:00
Jeremy Stretch
684a0d9e36 Update issue templates (#2277)
* Update issue templates

* Renamed documentation change template

* Fixed description on bug report template
2018-07-26 14:53:32 -04:00
Jeremy Stretch
a85e6370a8 Merge pull request #2275 from digitalocean/develop
Release v2.3.7
2018-07-26 14:29:15 -04:00
Jeremy Stretch
0497539ef2 Release v2.3.7 2018-07-26 14:24:16 -04:00
Jeremy Stretch
431361efad Introduced purpose-specific GitHub issue templates 2018-07-26 12:17:16 -04:00
Jeremy Stretch
e82bf66a76 ExceptionHandlingMiddleware: Use server_error view for custom templates 2018-07-23 23:12:41 -04:00
Jeremy Stretch
c8a73b5b15 Fixes #2266: Permit additional logging of exceptions beyond custom middleware 2018-07-23 23:00:09 -04:00
Jeremy Stretch
b518258e6d Closes #2250: Include stat counters on report result navigation 2018-07-23 16:10:46 -04:00
Jeremy Stretch
a1d45023ab Fixes #2256: Prevent navigation overlap when jumping to test results on report page 2018-07-23 15:50:44 -04:00
Jeremy Stretch
b7c2a26155 Closes #2259: Add changelog tab to interface view 2018-07-23 15:09:37 -04:00
Jeremy Stretch
86a67e7f32 Fixes #2258: Include changed object type on home page changelog 2018-07-23 15:02:07 -04:00
Jeremy Stretch
ba3ae0d80a Fixes #2257: Corrected casting of RIR utilization stats as floats 2018-07-23 14:52:51 -04:00
Jeremy Stretch
beac676a6e Cleaned up BulkEditView and BulkDeleteView 2018-07-20 21:18:10 -04:00
Jeremy Stretch
97b6038be2 Cleaned up custom fields panel template 2018-07-20 19:56:04 -04:00
Jeremy Stretch
0907a6ce5b Convert CustomFieldModel from object to abstract model 2018-07-20 19:44:04 -04:00
Jeremy Stretch
9eb433a4ef Added instructions for replicating NetBox 2018-07-20 15:26:01 -04:00
Jeremy Stretch
d04727f4b5 Fixes #2255: Corrected display of report results in report list 2018-07-20 09:39:55 -04:00
Jeremy Stretch
206c465e02 Merge branch 'develop' into develop-2.4 2018-07-18 17:51:57 -04:00
Jeremy Stretch
688c421c55 Tweaked Python3 guide to be less disruptive 2018-07-18 17:40:08 -04:00
Jeremy Stretch
93ce0ce670 Further reiterated the policy for pull requests 2018-07-18 16:14:57 -04:00
Jeremy Stretch
c2573774bf Fixes #2222: IP addresses created via the available-ips API endpoint should have the same mask as their parent prefix (not /32) 2018-07-18 15:27:45 -04:00
Jeremy Stretch
6e037e91d3 Fixes #2202: Ditched half-baked concept of tenancy inheritance via VRF 2018-07-18 15:10:12 -04:00
Jeremy Stretch
d665d4d62a Fixes #1992: Isolate errors when one of multiple NAPALM methods fails 2018-07-18 14:46:15 -04:00
Jeremy Stretch
29d9b32b67 Fixes #1977: Don't default master vc_position to 1 when creating a new virtual chassis 2018-07-18 14:17:35 -04:00
Jeremy Stretch
00d218118c Fixes #2231: Remove get_absolute_url() from DeviceRole 2018-07-18 11:24:36 -04:00
Jeremy Stretch
02b6ffd59a Added note about passphrase-protected keys (#2189) 2018-07-18 11:03:22 -04:00
Jeremy Stretch
aa0e4406eb Merge pull request #2167 from lampwins/feature/2166
implements #2166 - asset tag partial string search
2018-07-18 10:40:12 -04:00
Jeremy Stretch
d0349f00ad Misc cleanup 2018-07-18 09:36:05 -04:00
Jeremy Stretch
d77214fef6 Started v2.4 documentation refresh 2018-07-17 17:23:10 -04:00
Jeremy Stretch
8937362433 Release v2.4-beta1 2018-07-17 11:22:25 -04:00
Jeremy Stretch
df6c5dfac5 Established base requirements and pinned package versions for release 2018-07-17 11:10:13 -04:00
Jeremy Stretch
5cf38b5ce9 Enabled export templates for secrets 2018-07-17 10:34:50 -04:00
Jeremy Stretch
6cc9ceb198 Enabled bulk add/remove tags for interfaces 2018-07-17 10:25:16 -04:00
Jeremy Stretch
0c0799f3bf Closes #1739: Enabled custom fields for secrets 2018-07-17 09:43:57 -04:00
Jeremy Stretch
9e2ac7b3f4 Cleaned up imports 2018-07-16 17:09:21 -04:00
Jeremy Stretch
8bc8cf5e2d Include django-rq queues link in admin UI until we implement something cleaner 2018-07-16 16:33:06 -04:00
Jeremy Stretch
277197edd4 Split webhooks documentation into the data model and installation sections 2018-07-16 16:21:46 -04:00
Jeremy Stretch
69ddf046b0 Quick docs update (more to come prior to the v2.4 release) 2018-07-16 14:53:57 -04:00
Jeremy Stretch
ea09023616 Webhook admin form cleanup 2018-07-16 13:54:50 -04:00
Jeremy Stretch
92de67a2ae Enabled webhooks for device components 2018-07-16 13:34:00 -04:00
Jeremy Stretch
57487f38de Link to related object if changed object has no URL 2018-07-16 13:29:57 -04:00
Jeremy Stretch
d334bd4477 Corrected exception handling in get_serializer_for_model() 2018-07-16 13:26:26 -04:00
Jeremy Stretch
d7e40de9da Merged v2.3.6 2018-07-16 12:03:32 -04:00
Jeremy Stretch
786f389be8 Post-release version bump 2018-07-16 11:56:12 -04:00
Jeremy Stretch
09a03565d7 Merge pull request #2244 from digitalocean/develop
Release v2.3.6
2018-07-16 11:54:12 -04:00
Jeremy Stretch
456b058462 Release v2.3.6 2018-07-16 11:52:12 -04:00
Jeremy Stretch
ecaba5b32e Merge pull request #2230 from digitalocean/2125-device-bay-status
Fixes #2125 - Show child status in device bay list
2018-07-16 11:47:16 -04:00
Jeremy Stretch
9f4c77d6d7 Merge pull request #2232 from mmahacek/patch-1
Update sample report in documentation
2018-07-16 11:46:10 -04:00
Jeremy Stretch
1fb67b791f Fixes #2239: Pin django-filter to version 1.1.0 2018-07-16 11:39:37 -04:00
Jeremy Stretch
81b1d54859 Enabled export templates for services 2018-07-12 16:59:22 -04:00
Jeremy Stretch
67dbe02deb Enabled export templates for virtual chassis 2018-07-12 16:55:23 -04:00
Jeremy Stretch
85efdf8e00 Cleaned up objectchange table 2018-07-12 13:54:22 -04:00
Jeremy Stretch
bbaa3a2058 Enabled change logging for circuit terminations 2018-07-12 13:46:30 -04:00
Jeremy Stretch
931c58bc9a Enabled export templates for VRFs 2018-07-12 13:16:34 -04:00
Jeremy Stretch
abd5f17916 Enabled webhooks for all (and only) primary models 2018-07-12 13:09:13 -04:00
Jeremy Stretch
50f4c74688 Tweaked migration to include Service model 2018-07-12 13:08:23 -04:00
Jeremy Stretch
f7f7764a6e Miscellaneous cleanup for tags 2018-07-12 11:34:35 -04:00
Jeremy Stretch
f048cf36ce Implemented a view for interfaces 2018-07-11 15:30:54 -04:00
mmahacek
a26d1812c2 Update sample report
Reference to STATUS_ACTIVE does not work in the current version.  Needs to be changed to DEVICE_STATUS_ACTIVE.
2018-07-11 11:52:33 -07:00
zmoody
b6e354085e Fixes #2125 - Show child status in device bay list
Exposes devicebay.installed_device.status in the parent device detail view.
2018-07-10 20:40:48 -05:00
Jeremy Stretch
484a74defd Misc cleanup for config contexts 2018-07-10 16:16:23 -04:00
Jeremy Stretch
43ed38a6e9 Enabled tags for device components and virtual chassis 2018-07-10 15:36:28 -04:00
Jeremy Stretch
0c4495eb39 Order tags by name only, not item count 2018-07-10 14:25:04 -04:00
Jeremy Stretch
864d49f54d Fixed regex casting to satisfy pycodestyle 2018-07-10 14:21:40 -04:00
Jeremy Stretch
bd2219276f Force custom field values to strings for object change serialization 2018-07-10 14:16:16 -04:00
Jeremy Stretch
df1f33992a Adapted change logging to queue changes in thread-local storage and record them at the end of the request 2018-07-10 13:33:54 -04:00
Jeremy Stretch
663bbd025e Updated custom fields inclusion tag to use 'with' 2018-07-10 11:02:37 -04:00
Jeremy Stretch
4802e516e5 Arranged object tags into a separate panel 2018-07-10 10:48:33 -04:00
Jeremy Stretch
f2512c4fdc Include link to parent object changelog when viewing a change 2018-07-10 10:15:56 -04:00
Jeremy Stretch
29172d045d Added missing import statement 2018-07-10 10:11:09 -04:00
Jeremy Stretch
289a762bf1 Record tags when serializing an object for an ObjectChange 2018-07-10 10:10:22 -04:00
Jeremy Stretch
208409110f Added bulk tag addition/removal 2018-07-10 10:00:21 -04:00
Jeremy Stretch
e27765d965 Added autocompletion for tags form widget 2018-07-05 16:51:38 -04:00
Jeremy Stretch
96d81d7074 Include return_url when editing interfaces in bulk 2018-07-05 15:36:25 -04:00
Jeremy Stretch
edf53d4516 Flip the order of tag and URL name for the tag template tag 2018-07-05 15:20:13 -04:00
Jeremy Stretch
108e9722fa Fixes #2214: Fix bug when assigning a VLAN to an interface on a VM in a cluster with no assigned site 2018-07-05 13:28:26 -04:00
Jeremy Stretch
72cb1cbfff Queryset fixes for virtual chassis 2018-07-05 13:20:27 -04:00
Jeremy Stretch
ed84c4b210 Merge pull request #2115 from DanSheps/develop
Added VirtualChassis Searching
2018-07-05 13:15:57 -04:00
Jeremy Stretch
77518eaf69 Merge pull request #2218 from alexjhart/develop
More verbose LDAP nested groups documentation
2018-07-05 13:11:56 -04:00
Jeremy Stretch
4bd36f0ea9 Closes #2062: Added a note about parent/child device type role 2018-07-05 12:02:32 -04:00
Jeremy Stretch
b19bf791a4 Closes #2138: Added documentation for filtering on custom fields 2018-07-05 11:58:07 -04:00
Alex Hart
f70b7cab21 More verbose LDAP nested groups documentation 2018-07-03 15:53:58 -07:00
Jeremy Stretch
9eb9715e05 Cleaned up IP addresses list under device/VM interfaces 2018-07-03 17:05:04 -04:00
Jeremy Stretch
49ecf5aa8a Wrote tests for config contexts 2018-07-03 15:47:54 -04:00
Jeremy Stretch
3ad8850ada Fixed required fields on ConfigContextSerializer 2018-07-03 15:47:32 -04:00
Jeremy Stretch
d1c9a18d04 Replaced home page user activity with changelog 2018-07-03 14:07:46 -04:00
Jeremy Stretch
89e196e86d Tweak ConfigContext manager to allow for objects with a regionless site 2018-07-03 13:40:47 -04:00
Jeremy Stretch
25b36d6d42 Remove separate config-context API endpoints; include rendered config context when retrieving a single device/VM 2018-07-03 12:29:20 -04:00
Jeremy Stretch
6ddbd79fe6 Fixed object return_url resolution for bulk editing 2018-07-03 09:49:36 -04:00
Jeremy Stretch
d70ef4d3b3 Cleaned up tags table 2018-07-03 09:47:44 -04:00
Jeremy Stretch
d0308e0f58 Merge branch 'develop' into develop-2.4 2018-07-02 17:01:14 -04:00
Jeremy Stretch
b10635a9b1 Added housekeeping as an issue category 2018-07-02 16:39:38 -04:00
Jeremy Stretch
104bd1b45f Closes #2211: Removed Python 2 instructions from the installation docs 2018-07-02 16:33:18 -04:00
Jeremy Stretch
302c14186a Post-release version bump 2018-07-02 15:55:46 -04:00
Jeremy Stretch
6159994552 Merge pull request #2212 from digitalocean/develop
Release v2.3.5
2018-07-02 15:55:25 -04:00
Jeremy Stretch
398041c607 Release v2.3.5 2018-07-02 15:54:09 -04:00
Jeremy Stretch
6ce9f8f291 Merge pull request #2210 from eriktm/develop
Adding Swagger settings to describe API authentication correctly.
2018-07-02 15:50:37 -04:00
Jeremy Stretch
c2c8a139f3 Merge branch 'develop' into develop 2018-07-02 15:45:36 -04:00
Jeremy Stretch
698c0decb4 Fixes #2021: Fix recursion error when viewing API docs under Python 3.4 2018-07-02 15:25:49 -04:00
Jeremy Stretch
ef61c70a9d Fixes 2064: Disable calls to online swagger validator 2018-07-02 14:39:32 -04:00
Jeremy Stretch
97863115ba Merge pull request #2206 from abeutot/switch_to_pycodestyle
Switch to pycodestyle
2018-07-02 13:38:36 -04:00
Anaël Beutot
fa5493a5d8 Update CI to use pycostyle instead of pep8 2018-07-02 19:27:53 +02:00
Jeremy Stretch
cd56e51a61 Closes #1851: Standardize usage of GetReturnURLMixin 2018-07-02 11:54:41 -04:00
Jeremy Stretch
3e9cec3e8e Closes #2159: Allow custom choice field to specify a default choice 2018-06-29 16:01:28 -04:00
Erik Hetland
943ec0b64b Adding Swagger settings to describe API authentication correctly. Fixes #1826 2018-06-29 22:01:01 +02:00
Jeremy Stretch
8008015082 Tweaked API error reporting from #2181 2018-06-29 15:18:30 -04:00
Jeremy Stretch
af54d96d30 Fixes #2181: Raise validation error on invalid prefix_length when allocating next-available prefix 2018-06-29 15:10:30 -04:00
Jeremy Stretch
d98aa03e9d Fixes #2173: Fixed IndexError when automaticating allocating IP addresses from large IPv6 prefixes 2018-06-29 14:52:37 -04:00
Jeremy Stretch
8d4c686ae2 Fixes #2192: Prevent a 0U device from being assigned to a rack position 2018-06-29 14:09:20 -04:00
Jeremy Stretch
982b9454f8 Closes #2194: Added 'address' filter to IPAddress model 2018-06-29 13:54:21 -04:00
Jeremy Stretch
28a2a37ed2 Fixes #2191: Added missing static choices to circuits and DCIM API endpoints 2018-06-29 13:17:07 -04:00
Jeremy Stretch
acfbe9c1b1 Merge branch 'develop-2.4' of https://github.com/digitalocean/netbox into develop-2.4 2018-06-29 12:27:08 -04:00
Jeremy Stretch
4824c75563 Merge pull request #2204 from lampwins/bug/2203
Fix #2203 - webhook content type check
2018-06-29 12:26:54 -04:00
Jeremy Stretch
3f019732b3 Merge pull request #2209 from digitalocean/revert-2169-patch-1
Revert "Closes #2168: Add Extreme SummitStack interface form factors"
2018-06-29 12:19:33 -04:00
Jeremy Stretch
007852a48f Revert "Closes #2168: Add Extreme SummitStack interface form factors" 2018-06-29 12:18:49 -04:00
Jeremy Stretch
3474697a66 Merge pull request #2169 from tradiuz/patch-1
Closes #2168: Add Extreme SummitStack interface form factors
2018-06-29 12:18:37 -04:00
Jeremy Stretch
bf1c7cacc6 Improved rendering of boolean fields in tables 2018-06-29 12:05:56 -04:00
Jeremy Stretch
b9bdd666da Closes #2200: Replaced detail_route API view decorator with action (DRF change) 2018-06-29 11:48:21 -04:00
Jeremy Stretch
35d58d2f7c Closes #2029: Added optional NAPALM arguments to Platform model 2018-06-29 11:21:00 -04:00
Jeremy Stretch
f5f16ce64b Include custom fields in ObjectChange data 2018-06-29 10:40:57 -04:00
Jeremy Stretch
06dab9c468 Merge pull request #2208 from digitalocean/1349-config-contexts
1349 config contexts
2018-06-29 10:02:18 -04:00
Jeremy Stretch
7857480978 Added missing description field 2018-06-29 09:56:04 -04:00
Jeremy Stretch
278bacbce8 Fixed rendered config context ordering 2018-06-29 09:53:33 -04:00
Jeremy Stretch
743cf6d398 Added description to ConfigContext 2018-06-29 09:44:32 -04:00
Jeremy Stretch
ace7e3b108 Fixed is_active table column 2018-06-28 14:19:26 -04:00
Jeremy Stretch
1edc73179a Sort rendered config context 2018-06-28 14:10:20 -04:00
Jeremy Stretch
65dd7a5938 Applied JSON rederer to ConfigContext data 2018-06-28 14:05:57 -04:00
Jeremy Stretch
62989ecb6e Moved object context rendering to ObjectConfigContextView and standardized the template 2018-06-28 13:48:12 -04:00
Jeremy Stretch
b952ec73ce Introduced the render_json template filter 2018-06-28 10:49:52 -04:00
John Anderson
65e18e057f fixed #2203 2018-06-27 22:17:17 -04:00
Jeremy Stretch
c13e4858d7 Initial work on config contexts 2018-06-27 16:02:34 -04:00
Anaël Beutot
4e09b32dd9 Fix pycodestyle errors
Mainly two kind of errors:
* pokemon exceptions
* invalid escape sequences
2018-06-27 17:24:33 +02:00
Jeremy Stretch
ffcbc54522 Merge pull request #2198 from digitalocean/1898-activity-logging
Closes #1898: Change logging
2018-06-25 13:36:48 -04:00
Jeremy Stretch
06143b6c70 Fixes interface logging error 2018-06-25 13:29:23 -04:00
Jeremy Stretch
0af36eb99b Log interface connection changes 2018-06-25 13:12:03 -04:00
Jeremy Stretch
b11c3635b0 Corrected import of reverse() for Django 2.0 2018-06-22 16:34:38 -04:00
Jeremy Stretch
66c4911298 Fixed Region model declaration 2018-06-22 16:34:07 -04:00
Jeremy Stretch
36971b7651 Fixed changelog purging frequency 2018-06-22 16:23:07 -04:00
Jeremy Stretch
3bdfe9c249 Implemented changelog retention setting, automatic purging 2018-06-22 16:18:41 -04:00
Jeremy Stretch
4e6f73e452 Fixed invalid reference to content_type 2018-06-22 15:30:54 -04:00
Jeremy Stretch
ce27a1d211 serialize_object(): Allow extra data to overwrite existing fields 2018-06-22 15:27:22 -04:00
Jeremy Stretch
2d198403c7 Extend ObjectChange to optionally indicate a related object (e.g. a parent device) 2018-06-22 15:05:40 -04:00
Jeremy Stretch
6c1b5fdf3a Moved object serialization into a utility function 2018-06-22 14:00:23 -04:00
Jeremy Stretch
9d419de9dc Merge branch 'develop-2.4' into 1898-activity-logging 2018-06-21 16:53:15 -04:00
Jeremy Stretch
b945dec41b Closes #1687: Enabled custom fields for services 2018-06-21 16:17:18 -04:00
Jeremy Stretch
7819d9c112 Closes #1673: Added object/list views for services 2018-06-21 15:55:27 -04:00
Jeremy Stretch
258373f1a1 Closes #2118: Added latitude and longitude fields to Site 2018-06-21 14:55:10 -04:00
Jeremy Stretch
e1055b7f97 Moved ObjectChange creation logic from middleware to ChangeLoggedModel 2018-06-21 13:24:26 -04:00
Jeremy Stretch
a1f6ed1713 Disabled the creation of new UserActions 2018-06-21 10:56:33 -04:00
Jeremy Stretch
4ffce75b70 Fixed typo 2018-06-21 09:47:20 -04:00
Jeremy Stretch
09212691e2 Added changelog links for organizational models 2018-06-20 14:54:04 -04:00
Jeremy Stretch
ddd878683d Implemented changelog views 2018-06-20 13:52:54 -04:00
Jeremy Stretch
a8b11e45c1 Record a unique request ID with each ObjectChange 2018-06-19 15:45:15 -04:00
Jeremy Stretch
23f91274d6 Added API serializer for ObjectChange 2018-06-19 15:04:56 -04:00
Jeremy Stretch
6dde0f030a Fixes #2182: ValueError raised when viewing the interface connections table 2018-06-19 13:37:12 -04:00
Jeremy Stretch
d154b4cc9e Merge pull request #2178 from chowell5/add-serial-to-bubble
Add a serial number to the popover in rack elevation number
2018-06-18 13:34:44 -04:00
Chris Howells
7c11fa7b50 Add a serial number to the popover in rack elevation number 2018-06-18 14:35:07 +01:00
tradiuz
264bf6c484 Adding SummitStack-256 2018-06-15 13:43:04 -05:00
tradiuz
3854a9d633 Changes for Issue #2168
Adding support for Extreme Networks SummitStack port types.
2018-06-14 16:59:00 -05:00
Jeremy Stretch
38569029d8 Prevent duplicate signals from change logging middleware 2018-06-14 16:18:42 -04:00
Jeremy Stretch
3c2e0b0b17 Added changelog views 2018-06-14 16:15:14 -04:00
Jeremy Stretch
21c4085c51 Moved object header templates into object base templates 2018-06-14 13:34:37 -04:00
John Anderson
82189de78e implements #2166 - asset tag partial string search 2018-06-14 13:17:06 -04:00
Jeremy Stretch
33cf227bc8 Implemented new object change logging to replace UserActions 2018-06-13 17:06:33 -04:00
Jeremy Stretch
b556d2d626 Renamed CreatedUpdatedModel to ChangeLoggedModel and applied it to all primary and organizational models 2018-06-13 15:40:16 -04:00
Jeremy Stretch
81258ea35b Merge pull request #2158 from digitalocean/2157-natural-ordering
Fixes #2157: Natural ordering breaks when sorting objects by name
2018-06-11 16:09:25 -04:00
Jeremy Stretch
90abeedc3e Fix natural ordering within object tables 2018-06-11 15:10:31 -04:00
Jeremy Stretch
048e843c39 Added tests for NaturalOrderByManager 2018-06-08 15:42:10 -04:00
Jeremy Stretch
e4f336a843 Establish tests for the utilities app 2018-06-08 14:32:41 -04:00
Jeremy Stretch
33add12069 Merge branch 'develop' into develop-2.4 2018-06-07 16:23:57 -04:00
Jeremy Stretch
8bad3aee74 Post-release version bump 2018-06-07 16:22:36 -04:00
Jeremy Stretch
a1f624c1cc Merge pull request #2152 from digitalocean/develop
Release v2.3.4
2018-06-07 16:14:18 -04:00
Jeremy Stretch
ff0a0df478 Release v2.3.4 2018-06-07 15:53:05 -04:00
Jeremy Stretch
5dd2f37035 Fixes #2087: Don't overwrite existing vc_position of master device when creating a virtual chassis 2018-06-07 15:32:19 -04:00
Jeremy Stretch
862e44e96f Fixes #2148: Do not force timezone selection when editing sites in bulk 2018-06-07 14:51:27 -04:00
Jeremy Stretch
643b0eaf65 Fixes #2127: Prevent non-conntectable interfaces from being connected 2018-06-07 14:22:56 -04:00
Jeremy Stretch
0af6df3121 Fixes #2150: Fix display of LLDP neighbors when interface name contains a colon 2018-06-07 10:55:30 -04:00
Jeremy Stretch
e0616d933f Merge pull request #2144 from digitalocean/update-site-serializer
Fixes #2143 - PUTs to Site Endpoint Requires Value for time_zone
2018-06-06 11:06:51 -04:00
zmoody
1e7fdbc79a Fixes #2143 - PUTs to Site Endpoint Requires Value for time_zone
Allow null values for `time_zone` field in the writeable serializer for the sites endpoint.
2018-06-05 10:26:33 -05:00
Jeremy Stretch
5591107f95 Merge pull request #2136 from digitalocean/mdl-docs-webhooks-typo2
docs: fix circuits typo
2018-06-01 16:08:58 -04:00
Matt Layher
e3c3e54cbb docs: fix circuits typo 2018-06-01 16:04:44 -04:00
Jeremy Stretch
75525cc83f Merge pull request #2135 from digitalocean/mdl-docs-webhooks-typo
docs: fix typos and markdownlint warnings in webhooks docs
2018-06-01 15:44:54 -04:00
Jeremy Stretch
ff1217fca9 Removed extraneous new_subnet() function on ipam.Prefix 2018-06-01 15:44:03 -04:00
Matt Layher
a61473dd98 docs: fix typos and markdownlint warnings in webhooks docs 2018-06-01 15:07:18 -04:00
Jeremy Stretch
edd8e9e41e Remove print() statements left behind from testing 2018-05-30 16:56:56 -04:00
Jeremy Stretch
efa118c3c8 Tweaked webhooks and Redis settings 2018-05-30 14:51:59 -04:00
Jeremy Stretch
503efe2d9d Miscellaneous cleanup of the Webhook model 2018-05-30 13:59:00 -04:00
Jeremy Stretch
8762f1314d Closes #2131: Added created and last_updated fields to DeviceType 2018-05-30 13:41:14 -04:00
John Anderson
836478c166 Implements #81 - webhook event backend (#1640)
* merge branch develop

* bugfix, signals for virtualization's class wasn't correctly defined

* updated webhooks for 2.4 and cleanup

* updated docs to cover changes to supervisor config

* review changes and further cleanup

* updated redis connection settings

* cleanup settings
2018-05-30 11:19:10 -04:00
dansheps
acc59a9da5 Fix PEP8 2018-05-24 16:03:13 -05:00
dansheps
03ce4bdfca Added VirtualChassis Searching 2018-05-24 15:27:09 -05:00
Jeremy Stretch
1473d90243 Merge pull request #2110 from mandarg/fix-error-message
Add "does" to error messages
2018-05-24 15:19:43 -04:00
Mandar Gokhale
32eee0bede Add "does" to error messages
Those error messages looked a bit strange when I got them, hence the
fix.
2018-05-23 17:41:52 -04:00
Reimann, Timo
131436fc20 Changed upgrading documentation for ease of use 2018-05-22 16:20:10 -04:00
Jeremy Stretch
966c188977 Merge pull request #1939 from dougthor42/patch-1
Add note about copying reports to `upgrading.md`
2018-05-22 16:16:43 -04:00
Jeremy Stretch
afba80bff9 Merge pull request #2083 from Grokzen/add_rack_role_export
Add missing export button to rack roles list view.
2018-05-22 15:52:50 -04:00
Jeremy Stretch
4fd52d46bf Closes #238: Allow racks with the same name within a site (but in different groups) 2018-05-22 15:45:30 -04:00
Jeremy Stretch
8f9fc8fb51 Added migrations for #132 (tags) 2018-05-22 15:06:47 -04:00
Jeremy Stretch
b0985ebd42 Closes #2034: Include the ID when showing nested interface connections 2018-05-22 14:41:11 -04:00
Jeremy Stretch
0d267d97fe Fixes #2075: Enable tenant assignment when creating a rack reservation via the API 2018-05-22 14:09:06 -04:00
Jeremy Stretch
b0cd372af9 Fixes #2066: Catch AddrFormatError on invalid IP addresses 2018-05-22 13:56:11 -04:00
Jeremy Stretch
63100b683d Merge pull request #2103 from digitalocean/132-taggit
132-taggit
2018-05-22 13:01:27 -04:00
Jeremy Stretch
74aa992ec6 Added django-taggit 2018-05-22 12:49:56 -04:00
Jeremy Stretch
dc2f1d7c64 Added API views & tests for tags 2018-05-22 12:46:14 -04:00
Jeremy Stretch
03a1c48b54 Added list and utility views for tags 2018-05-22 12:22:46 -04:00
Jeremy Stretch
918339cfa8 Tweak formatting of message to handle translation strings 2018-05-22 11:19:47 -04:00
Jeremy Stretch
601fb418b5 Tweaked ordering of tags list 2018-05-22 10:51:40 -04:00
Jeremy Stretch
e5af4f6f17 Fixes #2093: Fix link to circuit termination in device interfaces table 2018-05-21 17:31:43 -04:00
Jeremy Stretch
399a633d9d Post-release version bump 2018-05-21 16:50:31 -04:00
Jeremy Stretch
2ef223b5ea Merge pull request #2099 from eriktm/2098-permission-typo
Fixing typo in permission check for ClusterView.
2018-05-21 16:20:09 -04:00
Erik Hetland
2cdb527df9 Fixing typo in permission check for ClusterView. 2018-05-19 11:50:03 +02:00
Jeremy Stretch
b3350490e7 Implemented tag filtering 2018-05-18 16:24:15 -04:00
Jeremy Stretch
1d1553275e Added tags panel to object list view 2018-05-18 15:43:21 -04:00
Jeremy Stretch
0189609137 Fixes URL name 2018-05-18 12:35:04 -04:00
Jeremy Stretch
e6b3983a4e Added template tag for tag links 2018-05-18 11:09:11 -04:00
Jeremy Stretch
5247f10d7e Removed redundant tags field 2018-05-18 10:14:56 -04:00
Jeremy Stretch
9b3869790d Implemented tags for all primary models 2018-05-10 12:53:11 -04:00
Jeremy Stretch
b0dafcf50f Initial work on implementing django-taggit for #132 2018-05-08 16:28:26 -04:00
Grokzen
fc0e8e2aae Add export button to rack roles list view. 2018-05-08 16:06:53 +02:00
Jeremy Stretch
57f6d22c64 Merge branch 'develop' into develop-2.4 2018-04-19 11:24:11 -04:00
Jeremy Stretch
e5454d6714 Post-release version bump 2018-04-19 11:17:17 -04:00
Jeremy Stretch
328958876a Merge pull request #2041 from digitalocean/develop
Release v2.3.3
2018-04-19 11:15:48 -04:00
Jeremy Stretch
a7389de109 Release v2.3.3 2018-04-19 11:07:19 -04:00
Jeremy Stretch
b911ab01d2 Merge pull request #2038 from DirtyCajunRice/develop
stop force value split w ArrayFieldSelectMultiple. Fixes #2037
2018-04-19 10:55:25 -04:00
Nicholas St. Germain
9153c71cbf stop force value split w ArrayFieldSelectMultiple 2018-04-18 14:02:40 -05:00
Jeremy Stretch
b44aa9d32e Fixes #2014: Allow assignment of VLANs to VM interfaces via the API 2018-04-18 12:37:20 -04:00
Jeremy Stretch
7805848e6c Merge pull request #2024 from digitalocean/1794-writable-nested-serializers
1794 writable nested serializers
2018-04-16 10:46:23 -04:00
Jeremy Stretch
bcb1d9af0b Fixes #2012: Fixed deselection of an IP address as the primary IP for its parent device/VM 2018-04-12 13:03:20 -04:00
Jeremy Stretch
ef84889a57 Fixes #2022: Show 0 for zero-value fields on CSV export 2018-04-12 12:54:21 -04:00
Jeremy Stretch
81c027e7cf Fixes #2023: Manufacturer should not be a required field when importing platforms 2018-04-12 12:45:25 -04:00
Jeremy Stretch
fd62a248ee Merge pull request #2020 from Wikia/intfix
#2019 : avoid illegal casts on large integers
2018-04-12 12:06:44 -04:00
frankfarmer
2c8bea1b59 avoid illegal casts on large integers
A similar fix was applied in e5e32d82d00e454ba5edf25316828c1cdcd7673e
2018-04-09 17:42:54 -07:00
Jeremy Stretch
aeaa47e91d Avoid a bug in DRF v3.8.2 2018-04-06 14:40:16 -04:00
Jeremy Stretch
9de1a8c363 Introduced SerializedPKRelatedField to represent serialized ManyToManyFields 2018-04-06 12:42:25 -04:00
Jeremy Stretch
c72d70d114 Removed nested serializers for ManyToMany relationships temporarily 2018-04-05 16:26:29 -04:00
Jeremy Stretch
821fb1e01e Finished merging writable serializers 2018-04-05 14:12:43 -04:00
Jeremy Stretch
7241783249 Started merging writable serializers (WIP) 2018-04-04 17:01:24 -04:00
Jeremy Stretch
db3cbaf83b Introduced WritableNestedSerializer 2018-04-04 15:39:14 -04:00
Jeremy Stretch
72c518bcb7 Updated tests for recently added model fields 2018-04-04 15:10:06 -04:00
Jeremy Stretch
9725f19bae Code formatting cleanup 2018-03-30 13:57:26 -04:00
Jeremy Stretch
0bb632c642 Allow Django 1.11 2018-03-30 10:54:35 -04:00
Jeremy Stretch
0969c458b3 Closes #1842: Implement support for Django 2.0 2018-03-30 10:39:22 -04:00
Jeremy Stretch
07364abf9e Fixes #1988: Order interfaces naturally when bulk renaming 2018-03-29 15:15:13 -04:00
Jeremy Stretch
20cb13e1bb Fixes #1975: Correct filtering logic for custom boolean fields 2018-03-29 14:47:35 -04:00
Jeremy Stretch
3f3b385de7 Fixes #1999: Added missing description field to site edit form 2018-03-29 13:49:50 -04:00
Jeremy Stretch
94b12e506e Fixes #1993: Corrected status choices in site CSV import form 2018-03-29 09:50:29 -04:00
Jeremy Stretch
4ec6e52e73 Closes #1990: Improved search function when assigning an IP address to an interface 2018-03-29 09:45:17 -04:00
Jeremy Stretch
88adc5ca86 Post-release version bump 2018-03-22 15:06:59 -04:00
Jeremy Stretch
68f73c7f94 Merge pull request #1987 from digitalocean/develop
Release v2.3.2
2018-03-22 15:05:59 -04:00
Jeremy Stretch
223c95adbc Release v2.3.2 2018-03-22 14:59:23 -04:00
Jeremy Stretch
3aaca1ca02 Require validation dependencies when installing drf-yasg 2018-03-22 11:51:27 -04:00
Jeremy Stretch
6a4d17b8a5 Merge pull request #1985 from lampwins/docs/apache-header
added X-Forwarded-Proto header to apache config
2018-03-22 11:43:43 -04:00
Jeremy Stretch
720c5fabaf Merge pull request #1643 from RyanBreaker/wildcard
Implements #1586, add additional variants for ExpandableNameFields
2018-03-22 11:40:54 -04:00
John Anderson
1c5239a4d0 added X-Forwarded-Proto header to apache config 2018-03-22 10:51:12 -04:00
Jeremy Stretch
05b5609d86 Merge pull request #1930 from davcamer/drf-yasg
Use drf_yasg to generate swagger
2018-03-21 15:43:05 -04:00
Jeremy Stretch
7e92aeb7ac Merge pull request #1981 from luto/patch-1
compare strings using "==" not "is", fix crash bug
2018-03-21 15:22:00 -04:00
Jeremy Stretch
6e2eb15a80 Fixes #1978: Include all virtual chassis member interfaces in LLDP neighbors view 2018-03-21 15:12:15 -04:00
luto
0b825ac3d0 compare strings using "==" not "is", fixes #1980 2018-03-21 14:28:59 +01:00
Dave Cameron
b5f1d74d6f Definition for /dcim/connected-device/ endpoint 2018-03-16 16:48:08 -04:00
Dave Cameron
e071b7dfd5 The id__in field is a csv-separated string of ids
drf_yasg is interpreting it as a number because NumericInFilter inherits
from django's NumberFilter which explicitly identifies as being a
DecimalField.
2018-03-15 17:07:58 -04:00
Dave Cameron
53e4e74930 Differentiate better between boolean and 0, 1 choices 2018-03-15 17:07:58 -04:00
Dave Cameron
b83de7eb11 Use drf_yasg to generate swagger
drf_yasg provides more complete swagger output, allowing for generation
of usable clients.

Some custom work was needed to accommodate Netbox's custom field
serializers, and to provide x-nullable attributes where appropriate.
2018-03-15 17:07:58 -04:00
Jeremy Stretch
38a208242b Closes #1945: Implemented a VLAN members view 2018-03-15 15:33:13 -04:00
Jeremy Stretch
4acd8e180d Merge pull request #1902 from lae/feature/ansible-alt-install
Add Ansible alternative installation to README
2018-03-14 15:26:33 -04:00
Jeremy Stretch
debc8521a5 Closes #1968: Link device type instance count to filtered device list 2018-03-14 15:18:24 -04:00
Jeremy Stretch
8bd268d81c Closes #1944: Enable assigning VLANs to virtual machine interfaces 2018-03-14 14:53:28 -04:00
Jeremy Stretch
ae6848b194 Fixed Slack URL 2018-03-14 10:30:55 -04:00
Jeremy Stretch
b22744b031 Removed validation constraint prohibitting a VLAN from being both tagged and untagged 2018-03-09 14:00:48 -05:00
Jeremy Stretch
a75d7079df Fixed tests 2018-03-08 13:36:14 -05:00
Jeremy Stretch
aa8442a345 Removed VLAN assignments from interface bulk editing 2018-03-08 13:29:08 -05:00
Jeremy Stretch
70625a5cb0 Improved validation and workflow 2018-03-08 13:25:51 -05:00
Jeremy Stretch
7c043d9b4f Replaced tagged/untagged VLAN assignment widgets with a VLAN table; separate view for adding VLANs 2018-03-07 17:01:51 -05:00
Jeremy Stretch
546f17ab50 Closes #1866: Introduced AnnotatedMultipleChoiceField for filter forms 2018-03-07 14:16:38 -05:00
Jeremy Stretch
1c9986efc4 Closes #1949: Added a button to view elevations on rack groups list 2018-03-07 11:37:05 -05:00
Jeremy Stretch
8ae13e29f5 Fixes #1955: Require a plaintext value when creating a new secret 2018-03-07 11:20:10 -05:00
Jeremy Stretch
f5bb072f28 Fixes #1953: Ignore duplicate IPs when calculating prefix utilization 2018-03-07 11:08:28 -05:00
Jeremy Stretch
37eef0ba6d Fixes #1951: Fix TypeError exception when importing platforms 2018-03-06 12:10:02 -05:00
Jeremy Stretch
603b80db1b Fixes #1948: Fix TypeError when attempting to add a member to an existing virtual chassis 2018-03-06 11:48:26 -05:00
Douglas Thor
8d9543cb6a Add note about copying reports to upgrading.md
The `upgrading.md` file does not mention reports. If the user created reports in the old version's default directory (`./netbox/reports`), then the reports will not be transferred to the new version.
2018-03-01 15:05:51 -08:00
Jeremy Stretch
c823660a8f Post-release version bump 2018-03-01 15:36:32 -05:00
Jeremy Stretch
ec4d28ac6c Merge pull request #1937 from digitalocean/develop
Release v2.3.1
2018-03-01 15:36:10 -05:00
Jeremy Stretch
0c5ad85b35 Release v2.3.1 2018-03-01 15:30:09 -05:00
Jeremy Stretch
bdecf7a3e3 Fixes #1936: Trigger validation error when attempting to create a virtual chassis without specifying member positions 2018-03-01 14:40:39 -05:00
Jeremy Stretch
6b62720daf Closes #1910: Added filters for cluter group and cluster type 2018-03-01 13:22:43 -05:00
Jeremy Stretch
d48c450018 Merge pull request #1925 from lampwins/bug/1921
fixed #1921 - create interfaces with 802.1q in api
2018-03-01 13:17:16 -05:00
Jeremy Stretch
078404fb59 Fixes #1926: Prevent reassignment of parent device when bulk editing VC member interfaces 2018-03-01 13:10:36 -05:00
Jeremy Stretch
4bb526896f Fixes #1934: Fixed exception when rendering export template on an object type with custom fields assigned 2018-03-01 12:37:12 -05:00
Jeremy Stretch
0476006ef2 Merge pull request #1929 from lampwins/bug/1928
Fixed #1928 form bound check for site and vlan group
2018-03-01 12:22:17 -05:00
John Anderson
19831f0177 Merge branch 'develop' into bug/1921 2018-03-01 12:11:46 -05:00
Jeremy Stretch
fc9871fba3 Fixes #1935: Correct API validation of VLANs assigned to interfaces 2018-03-01 12:05:25 -05:00
John Anderson
b34f4f8e43 refactor to handle M2M validation in ValidatedModelSerializer 2018-03-01 11:31:56 -05:00
John Anderson
0357d8522c Merge branch 'develop' into bug/1921 2018-03-01 11:26:52 -05:00
Jeremy Stretch
08d06bd781 Fixes #1921: Ignore ManyToManyFields when validating a new object created via the API 2018-03-01 11:16:28 -05:00
Jeremy Stretch
01a97add2a Fixes #1927: Include all VC member interaces on A side when creating a new interface connection 2018-03-01 09:49:17 -05:00
John Anderson
3cb351dceb fixed form bound check for site and vlan group 2018-02-28 16:31:53 -05:00
Jeremy Stretch
9e11591b3b Post-release version bump (a bit late) 2018-02-27 17:56:18 -05:00
John Anderson
e4c1cece75 fixed #1921 - create interfaces with 801.1q in api 2018-02-27 16:19:28 -05:00
Jeremy Stretch
6881a98048 Fixes #1924: Include VID in VLAN lists when editing an interface 2018-02-27 16:10:02 -05:00
Jeremy Stretch
36de9f10d6 Closes #1918: Add note about copying media directory to upgrade doc 2018-02-27 15:54:25 -05:00
Jeremy Stretch
1cc135f01f Fixes #1919: Prevent exception when attempting to create a virtual machine without selecting devices 2018-02-27 15:40:24 -05:00
Jeremy Stretch
079c8894fa Fixes #1915: Redirect to device view after deleting a component 2018-02-27 14:59:45 -05:00
Jeremy Stretch
957074a134 Merge pull request #1913 from digitalocean/develop
Release v2.3.0
2018-02-26 14:23:03 -05:00
Jeremy Stretch
970759ed8b Release v2.3.0 2018-02-26 14:19:38 -05:00
Jeremy Stretch
22f17a1424 Merge branch 'develop-2.3' into develop 2018-02-26 14:14:47 -05:00
Jeremy Stretch
5ed797cfc9 Fixes #1907: Allow removing an IP as the primary for a device when editing the IP directly 2018-02-26 14:13:34 -05:00
Jeremy Stretch
8ad59058a5 Updated requirements list 2018-02-26 13:54:19 -05:00
Jeremy Stretch
ec7bbcf90d Closes #1899: Prefer binary package of psycopg2 2018-02-26 13:40:04 -05:00
Jeremy Stretch
37dde72c8f Corrected order of arguments on DeviceVCMembershipForm 2018-02-26 13:28:05 -05:00
Jeremy Stretch
972f9be291 Formatting correction 2018-02-26 13:20:28 -05:00
Jeremy Stretch
8b33b888b2 Merge branch 'develop' into develop-2.3 2018-02-21 16:16:20 -05:00
Jeremy Stretch
d29fd338eb Post-release version bump 2018-02-21 16:13:29 -05:00
Jeremy Stretch
c4f7e8121a Merge pull request #1903 from digitalocean/develop
Release v2.2.10
2018-02-21 16:05:45 -05:00
Jeremy Stretch
8b5dba25f5 Release v2.2.10 2018-02-21 16:04:15 -05:00
Musee Ullah
e18b5f5fd4 Add Ansible alternative installation to README 2018-02-22 05:56:33 +09:00
Jeremy Stretch
a5dc9537e5 Closes #1693: Allow specifying loose or exact matching for custom field filters 2018-02-21 15:40:11 -05:00
Jeremy Stretch
3064948d8c Closes #1801: Update list of rack groups when selecting a site to filter by in rack elevations list 2018-02-21 14:06:38 -05:00
John Eismeier
e6bcc4a3fe Propose fix typos (#1897) 2018-02-21 12:39:29 -05:00
Jeremy Stretch
6967b6bdc5 Fixes #1892: Removed convenience function from an old migration (see #632) to fix database error on extras/0009_topologymap_type 2018-02-21 12:00:38 -05:00
Jeremy Stretch
a8977a5dec Closes #1885: Added a device filter field for primary IP 2018-02-21 10:55:49 -05:00
Jeremy Stretch
b837e8ea0b Fixes #1886: Allow setting the primary IPv4/v6 address for a VirtualMachine via the web UI 2018-02-21 10:49:40 -05:00
Jeremy Stretch
110052fa0f Fixes #1889: Consistent ordering of interface fields on add/edit 2018-02-21 10:38:45 -05:00
Jeremy Stretch
84bb977d2e Finished VirtualChassis list view 2018-02-21 09:53:23 -05:00
Jeremy Stretch
2d93c2b2da Closes #78: Implemented ability to render topology maps for console/power 2018-02-15 12:10:29 -05:00
Jeremy Stretch
9e4f2a9614 Fixed panel heading CSS class 2018-02-15 10:01:02 -05:00
Jeremy Stretch
5412a9f8ea Exclude devices already assigned to a VC from the list of potential VC members 2018-02-14 13:36:05 -05:00
Jeremy Stretch
d7177d3e05 Fixed typo in template 2018-02-14 13:35:25 -05:00
Jeremy Stretch
a21bd81681 VirtualChassis form validation cleanup 2018-02-14 12:47:10 -05:00
Jeremy Stretch
e653f35bf1 Fixes #1884: Provide additional context to identify devices when creating/editing avirtual chassis 2018-02-14 11:14:04 -05:00
John Anderson
28ea06a8bc Fix for bulk interface edit form 802.1Q settings (#1882)
* fixes #1881 - bulk interface 802.1Q settings form

* fix PEP8 newline

* PEP8 fixup
2018-02-14 10:42:12 -05:00
Jeremy Stretch
86b0491b68 Closes #1876: Added explanatory title text to disabled NAPALM buttons on device view 2018-02-13 11:03:31 -05:00
Jeremy Stretch
c8309581be Fixes #1869: Corrected ordering of VRFs with duplicate names 2018-02-07 13:40:08 -05:00
Jeremy Stretch
376c531fe4 Template libraries cleanup 2018-02-07 13:35:19 -05:00
Jeremy Stretch
b2c5bcd4f1 Upgraded jquery to v3.3.1 2018-02-06 15:11:29 -05:00
Jeremy Stretch
73c64272d8 Merge branch 'develop' into develop-2.3 2018-02-06 14:58:11 -05:00
Jeremy Stretch
11fe54753e Fixes #1867: Allow filtering on device status with multiple values 2018-02-06 14:10:42 -05:00
Jeremy Stretch
69f921aea9 Closes #1864: Added a 'status' field to the circuit model 2018-02-06 14:06:05 -05:00
Jeremy Stretch
594ef71027 Fixes #1860: Do not populate initial values for custom fields when editing objects in bulk 2018-02-02 21:30:16 -05:00
Jeremy Stretch
d25d8c21f6 Eliminated queries for distinct related object counts for better performance 2018-02-02 17:46:23 -05:00
Jeremy Stretch
835d13542f Fixes #1858: Include device/CM count for cluster list in global search results 2018-02-02 17:11:46 -05:00
Jeremy Stretch
7f5a3fffd3 Fixed related object links for platform/role tables 2018-02-02 16:49:38 -05:00
Jeremy Stretch
1890e710cb Fixed quoting of line breaks inside a CSV field 2018-02-02 16:31:23 -05:00
Jeremy Stretch
a9fefbec5c Added missing CSV header 2018-02-02 16:23:07 -05:00
Jeremy Stretch
b96e3af6c7 Closes #1714: Standardized CSV export functionality for all object lists 2018-02-02 16:12:57 -05:00
Jeremy Stretch
12e6fe1d50 Standardized declaration of csv_headers on models 2018-02-02 14:26:16 -05:00
Jeremy Stretch
60c03a646c Fixes #1859: Implemented support for line breaks within CSV fields 2018-02-02 13:32:16 -05:00
Jeremy Stretch
59dcbce417 Refactored CSV export logic 2018-02-02 11:36:45 -05:00
Jeremy Stretch
df10fa87d3 Replaced IRC with Slack; formatting cleanup 2018-02-01 16:52:24 -05:00
Jeremy Stretch
a954406d1f Changed IRC to Slack; added warning about noisy comments 2018-02-01 16:39:48 -05:00
Jeremy Stretch
e2213f458f Allow assignment of services to IPs on any VC member 2018-02-01 16:11:04 -05:00
Jeremy Stretch
55adcc1f0c Additional validation cleanup 2018-02-01 15:53:59 -05:00
Jeremy Stretch
d6eaa3d0cc Added virtual chassis tests 2018-02-01 13:52:41 -05:00
Jeremy Stretch
25ad58d42c Cleaned up API for virtual chassis 2018-02-01 13:02:34 -05:00
Jeremy Stretch
b61bccbb67 Added virtual chassis member remove view 2018-02-01 12:49:23 -05:00
Jeremy Stretch
f1da517c84 Added virtual chassis member add view 2018-02-01 11:39:13 -05:00
Jeremy Stretch
a4019be28c Collapsed VCMembership into the Device model (WIP) 2018-01-31 22:47:27 -05:00
Jeremy Stretch
36090d9f02 Post-release version bump 2018-01-31 11:15:26 -05:00
Jeremy Stretch
6b101d2c49 Merge branch 'develop' into develop-2.3 2018-01-31 11:13:17 -05:00
Jeremy Stretch
6436d703f5 Merge pull request #1852 from digitalocean/develop
Release v2.2.9
2018-01-31 10:43:20 -05:00
Jeremy Stretch
b3243704df Release v.2.2.9 2018-01-31 10:30:55 -05:00
Jeremy Stretch
8bedfcfc64 Added warning message about automatically deleting child inventory items 2018-01-31 10:25:06 -05:00
Jeremy Stretch
e0aa2c33e9 Fixes #1850: Fix TypeError when attempting IP address import if only unnamed devices exist 2018-01-31 10:03:05 -05:00
Jeremy Stretch
49f268a14c Added report results to the home page 2018-01-30 21:01:08 -05:00
Jeremy Stretch
2bb0e65aea Closes #144: Implemented list and bulk edit/delete views for InventoryItems 2018-01-30 17:46:00 -05:00
Jeremy Stretch
8b6d731cb6 Fixes #1838: Fix KeyError when attempting to create a VirtualChassis with no devicesselected 2018-01-30 16:42:52 -05:00
Jeremy Stretch
1cd629efb3 #1843: Allow assignment of VC member interfaces to VC master LAG 2018-01-30 16:34:42 -05:00
Jeremy Stretch
2f7f5425d8 Fixes #1848: Allow null value for interface encapsulation mode 2018-01-30 16:20:50 -05:00
Jeremy Stretch
215156c333 Fixes #1847: Fix RecursionError when VC master device is unnamed 2018-01-30 16:08:43 -05:00
Jeremy Stretch
a5d2055c11 Closes #1073: Include prefixes/IPs from all VRFs when viewing the children of a container prefix in the global table 2018-01-30 13:39:33 -05:00
Jeremy Stretch
ffc2c564b8 Cleaned up InventoryItem add/edit/delete links and return URL 2018-01-30 13:07:10 -05:00
Jeremy Stretch
16f222b0ab Closes #1366: Enable searching for regions by name/slug 2018-01-30 12:11:20 -05:00
Jeremy Stretch
3edf90714a Closes #1406: Display tenant description as title text in object tables 2018-01-30 11:57:21 -05:00
Jeremy Stretch
4e8fc03c2b Fixes #1845: Correct display of VMs in list with no role assigned 2018-01-30 11:18:37 -05:00
Jeremy Stretch
5037283b62 Removed support for NAPALM 1.x 2018-01-25 14:35:19 -05:00
Jeremy Stretch
f2c9135b96 Merge branch 'develop' into develop-2.3 2018-01-25 14:21:25 -05:00
Jeremy Stretch
7378d82bc4 Closes #1821: Added 'description' field to Site model 2018-01-25 13:29:09 -05:00
Jeremy Stretch
ed10a99771 Closes #1758: Added 'status' field to Site model 2018-01-25 13:07:04 -05:00
Jeremy Stretch
4df128d34e Renamed device status constants for clarity 2018-01-25 12:20:24 -05:00
Jeremy Stretch
33d0db5854 Highlight renamed components and allow for multiple previews 2018-01-25 11:59:43 -05:00
Jeremy Stretch
4a57a554da Allow interface mode to be null (for routed interfaces) 2018-01-25 11:45:12 -05:00
Jeremy Stretch
21fe7c57d8 Closes #1835: Consistent position of previous/next rack buttons 2018-01-25 10:19:45 -05:00
Jeremy Stretch
3bcc1429dd Merge pull request #1833 from lampwins/api-docs
added statement and example for using ForeignKey ID's in write actions in api docs
2018-01-22 16:57:08 -05:00
Jeremy Stretch
9a6a479452 Added VirtualChassis to the docs 2018-01-22 16:54:39 -05:00
Jeremy Stretch
c43487b741 Extend IP address device filter to match virtual chassis members 2018-01-22 16:42:19 -05:00
John Anderson
6b50755a5a fixed duplicate api docs example and grammar 2018-01-22 16:26:51 -05:00
Jeremy Stretch
53998e0fff Closes #1828: Added warning about media directory permissions 2018-01-22 16:04:19 -05:00
John Anderson
7341ae087c added statement and exaple for using ForeignKey ID's in write actions 2018-01-22 10:43:19 -05:00
Jeremy Stretch
9ea8dca4e3 Evaluate device_id rather than pulling entire device (DB optimization) 2018-01-19 16:16:45 -05:00
Jeremy Stretch
d80e64b2cc Reflect virtual chassis membership in display_name 2018-01-19 15:53:49 -05:00
Jeremy Stretch
d7354f4dab Completed virtual chassis API serializers 2018-01-19 13:34:37 -05:00
Jeremy Stretch
8d1676db54 Implemented a view for adding individual devices to an existing virtual chassis 2018-01-19 12:34:09 -05:00
Jeremy Stretch
0714a40509 Merge branch 'develop' into develop-2.3 2018-01-19 10:54:26 -05:00
Jeremy Stretch
5262156e1a Fixes #1818: InventoryItem API serializer no longer requires specifying a null value for items with no parent 2018-01-19 10:30:26 -05:00
Jeremy Stretch
7ac27b59c6 Closes #1824: Add virtual machine count to platforms list 2018-01-19 09:25:16 -05:00
Jeremy Stretch
fc7a43f23e Closes #1781: Enable bulk renaming of device components 2018-01-10 15:48:07 -05:00
Jeremy Stretch
d5ecfe7bef Fixes #1809: Populate tenant assignment from parent when creating a new prefix 2018-01-10 09:38:55 -05:00
Jeremy Stretch
e58d1ac87e Fixes #1807: Populate VRF from parent when creating a new prefix 2018-01-05 15:31:48 -05:00
Jeremy Stretch
bb653e733c Fixes #1621: Tweaked LLDP interface name evaluation logic 2018-01-05 15:19:27 -05:00
Jeremy Stretch
9c27d18d6c Fix bulk creation of Secrets via API 2018-01-02 17:07:21 -05:00
Jeremy Stretch
e5c13d2d72 Fix bulk creation of VCMemberships via API 2018-01-02 16:40:52 -05:00
Jeremy Stretch
b27529d927 Added bulk creation API tests 2018-01-02 16:29:44 -05:00
Jeremy Stretch
95257114df Merge pull request #1803 from bonki/doc-typo-ldap
Fixes #1802: Typo in ldap.md
2018-01-02 11:21:32 -05:00
Adrian Frühwirth
935da0d51f Fixes #1802: Typo in ldap.md 2017-12-29 13:29:07 +01:00
Jeremy Stretch
78ed85943b Fixes #1765: Improved rendering of null options for model choice fields in filter forms 2017-12-26 12:08:22 -05:00
Jeremy Stretch
7d87cc498a Converted remaining legacy views to class-based views for the DCIM app 2017-12-21 15:08:05 -05:00
Jeremy Stretch
a523d25c0d More table cleanup 2017-12-21 13:33:41 -05:00
Jeremy Stretch
d84e5d1839 Cleaned up component tables and checkbox toggling 2017-12-21 13:29:02 -05:00
Jeremy Stretch
063e79451f Closes #1321: Added created and last_updated fields for relevant models to their API serializers 2017-12-21 10:49:40 -05:00
Jeremy Stretch
b4a842d9da Post-release version bump 2017-12-20 15:32:57 -05:00
Jeremy Stretch
ec0cb7a8bc Merge pull request #1789 from digitalocean/develop
Release v2.2.8
2017-12-20 15:27:22 -05:00
Jeremy Stretch
841471104b Release v2.2.8 2017-12-20 15:24:07 -05:00
Jeremy Stretch
ac71416eb9 Closes #1775: Added instructions for enabling STARTTLS for LDAP authentication 2017-12-20 14:48:42 -05:00
Jeremy Stretch
779d685335 Closes #1784: Added cluster_type filters for virtual machines 2017-12-20 14:24:12 -05:00
Jeremy Stretch
4d1e798c56 Merge pull request #1780 from explody/fix_1778
Fix for #1778.
2017-12-20 14:17:45 -05:00
Jeremy Stretch
a598035236 Closes #1774: Include a button to refine search results for all object types under global search 2017-12-20 14:09:52 -05:00
Jeremy Stretch
50395aa821 Closes #1773: Moved child prefixes table to its own view 2017-12-20 14:01:37 -05:00
Jeremy Stretch
6d9c8fd85b Fixes #1787: Added missing site field to virtualization cluster CSV export 2017-12-20 13:18:30 -05:00
Jeremy Stretch
b65d994397 Fixes #1136: Enforce model validation during bulk update 2017-12-20 13:04:00 -05:00
Jeremy Stretch
b20258c66e Closes #1283: Added a time zone field to the site model 2017-12-19 17:24:14 -05:00
Jeremy Stretch
9984238f2a Closes #1744: Allow associating a platform with a specific manufacturer 2017-12-19 16:15:26 -05:00
Jeremy Stretch
c3599bacf2 Fixes #1785: Omit filter forms from browsable API 2017-12-19 15:30:55 -05:00
Jeremy Stretch
c10481b99d Fixes #1783: Added vm_role filter for device roles 2017-12-19 09:37:26 -05:00
Jeremy Stretch
02e01b7386 Merge pull request #1782 from digitalocean/99-virtual-chassis
Virtual Chassis Support
2017-12-18 17:09:53 -05:00
Jeremy Stretch
ca7147a0a7 PEP8 fixes 2017-12-18 16:52:49 -05:00
Jeremy Stretch
022c360964 Ignore VC member interfaces where mgmt_only=True 2017-12-18 16:44:44 -05:00
Jeremy Stretch
d41f4d2db3 Return all VC member interfaces when filtering for the master device; remove virtual_chassis_id filter 2017-12-18 16:22:49 -05:00
Jeremy Stretch
4871682dc6 Allow designating primary IPs assigned to a device's peer VC members 2017-12-18 16:08:46 -05:00
Mike Culbertson
1cebc1248b Fix for #1778.
This will set initial values for visible bulk-add form fields from query args.
2017-12-16 12:28:37 -05:00
Jeremy Stretch
70d235f99e Added virtual chassis tests 2017-12-15 17:21:43 -05:00
Jeremy Stretch
153409d37e Obsoleted ComponentEditView and ComponentDeleteView 2017-12-15 15:57:49 -05:00
Jeremy Stretch
67a30fdf91 Added virtual_chassis_id API filter for interfaces 2017-12-15 15:31:35 -05:00
Jeremy Stretch
911ce3f047 Display member interfaces when viewing VC master device 2017-12-15 15:24:03 -05:00
Jeremy Stretch
c97f7041a7 Closes #1772: Added position filter for devices 2017-12-14 13:12:04 -05:00
Jeremy Stretch
89bfb4f722 Closes #1771: Added name filter for racks 2017-12-14 13:05:26 -05:00
Jeremy Stretch
da3935ff36 Fixes #1766: Fixed display of "select all" button on device power outlets list 2017-12-13 15:23:35 -05:00
Jeremy Stretch
06810bff91 Fixes #1764: Fixed typos in export buttons 2017-12-13 11:55:31 -05:00
Jeremy Stretch
a9af75bbd1 Fixes #1767: Use proper template for 404 responses 2017-12-13 11:49:36 -05:00
Jeremy Stretch
da2bff691b Added views for editing/deleting VCMemberships 2017-12-08 12:51:52 -05:00
Jeremy Stretch
a85b3aa69f Added a form to edit virtual chassis 2017-12-07 17:05:03 -05:00
Jeremy Stretch
859f89101e Fixes #1727: Added missing import for M2M_FIELD_TYPES 2017-12-07 15:36:08 -05:00
Jeremy Stretch
2545912532 Merge branch 'develop-2.3' into 99-virtual-chassis 2017-12-07 15:30:58 -05:00
Jeremy Stretch
2fc1519bc6 Merge branch 'develop' into develop-2.3 2017-12-07 14:56:16 -05:00
Jeremy Stretch
be6ef15ffa Post-release version bump 2017-12-07 14:54:16 -05:00
Jeremy Stretch
5f91413023 Added initial UI views for virtual chassis assignment 2017-11-29 12:58:36 -05:00
Jeremy Stretch
3b801d43bc Moved VC master designation to membership model 2017-11-27 15:59:13 -05:00
Jeremy Stretch
55e07c1c9a Initial work on virtual chassis support 2017-11-17 16:47:26 -05:00
Jeremy Stretch
7e475511b6 Fixed version number 2017-11-17 12:06:52 -05:00
Jeremy Stretch
ca77e4545a Merge branch 'develop' into develop-2.3 2017-11-17 12:05:38 -05:00
Jeremy Stretch
1c09570805 Added nested representations of user and tenant to the rack reservation serializer 2017-11-15 14:15:44 -05:00
Jeremy Stretch
e56797737d A bit of cosmetic cleanup from #1672 2017-11-15 14:06:58 -05:00
Jeremy Stretch
81852de1fa Resolved migration collision from #1672 2017-11-15 13:57:19 -05:00
Nicholas Totsch
fbd39da8ca Add Tenancy to Rack Reservations; Fixes #1592 (#1672)
* fixed prefix header to represent new serial "vlan_vid"

* shows option in creation now

* fixed visibility on rack page

* cleanup

* Added view to Tenant page

* Moved migration for update from #1666 and fixed tenant enumeration in FilterForm

* Fixed conflict #1

* Fixed filters from merge and made migration merge

* added tenant to api

* Fixed migrations problem

* Added Tenant to bulkedit option
2017-11-15 13:54:49 -05:00
Jeremy Stretch
db0ef95fe3 Cleaned up bulk IP provisioning a bit 2017-11-15 13:52:14 -05:00
Jeremy Stretch
b5a51aced3 Fixes #1645: Simplified interface serialzier for IP addresses and optimized API view queryset 2017-11-15 12:21:52 -05:00
Jeremy Stretch
04ba57cb38 Fixed up validation of Interface VLAN assignments 2017-11-14 16:15:23 -05:00
Jeremy Stretch
ba42ad2115 Merge branch '150-interface-vlans' into develop-2.3 2017-11-14 15:36:14 -05:00
Jeremy Stretch
5c13382071 Closes #1706: Added deprecation warning for Python 2 2017-11-14 15:07:13 -05:00
Jeremy Stretch
3df8c63d5c Merge branch 'develop' into develop-2.3 2017-11-14 14:38:32 -05:00
Jeremy Stretch
5d46a112f8 #1694: Initial work on "next available" prefix provisioning 2017-11-09 16:59:50 -05:00
Jeremy Stretch
e01e5e6b0e Standardize on JSON data format for all POST/PUT test client requests 2017-11-08 13:54:35 -05:00
Jeremy Stretch
4f2dc50b5c Extended prefix 'available-ips' endpoint to accept multiple objects (related to #1553) 2017-11-08 13:48:33 -05:00
Jeremy Stretch
c3e5106b04 Restored search method on prefix filter 2017-11-08 10:33:30 -05:00
Jeremy Stretch
593ae295e3 Removed prefix parent filter (see #1684) 2017-11-08 09:57:35 -05:00
Jeremy Stretch
198170ca48 Closes #1553: Introduced support for bulk object creation via the API 2017-11-07 15:36:10 -05:00
Ryan Breaker
57973f62c5 Fix bug with numbers >10 2017-10-31 22:03:57 -05:00
Ryan Breaker
e57b8aa26f E226 fix 2017-10-24 20:43:02 -05:00
Ryan Breaker
3d023126ba Refactor pattern check 2017-10-24 20:22:15 -05:00
Ryan Breaker
53f58d4496 Update comment 2017-10-24 20:03:10 -05:00
Ryan Breaker
1a6ee237f6 Update help text for ExpandableNameField (again) 2017-10-24 19:59:37 -05:00
Ryan Breaker
33a99441a4 Update help text for ExpandableNameField 2017-10-24 19:55:50 -05:00
Ryan Breaker
3df7e283e3 Prevent mismatch of cases in ranges 2017-10-24 19:46:12 -05:00
Ryan Breaker
b295849f53 Prevent mismatch of types in ranges 2017-10-24 19:30:43 -05:00
Ryan Breaker
c107f35118 Merge letters and numbers into one function 2017-10-24 17:55:00 -05:00
Ryan Breaker
3d91153275 Add alphabetic variants to interface expansions 2017-10-24 00:09:38 -05:00
1854 changed files with 205936 additions and 40041 deletions

4
.gitattributes vendored
View File

@@ -1 +1,5 @@
*.sh text eol=lf
# Treat minified or packed JS/CSS files as binary, as they're not meant to be human-readable
*.min.* binary
*.map binary
*.pack.js binary

View File

@@ -1,48 +0,0 @@
<!--
Before opening a new issue, please search through the existing issues to
see if your topic has already been addressed. Note that you may need to
remove the "is:open" filter from the search bar to include closed issues.
Check the appropriate type for your issue below by placing an x between the
brackets. For assistance with installation issues, or for any other issues
other than those listed below, please raise your topic for discussion on
our mailing list:
https://groups.google.com/forum/#!forum/netbox-discuss
Please note that issues which do not fall under any of the below categories
will be closed. Due to an excessive backlog of feature requests, we are
not currently accepting any proposals which extend NetBox's feature scope.
Do not prepend any sort of tag to your issue's title. An administrator will
review your issue and assign labels as appropriate.
--->
### Issue type
[ ] Feature request <!-- An enhancement of existing functionality -->
[ ] Bug report <!-- Unexpected or erroneous behavior -->
[ ] Documentation <!-- A modification to the documentation -->
<!--
Please describe the environment in which you are running NetBox. (Be sure
to verify that you are running the latest stable release of NetBox before
submitting a bug report.) If you are submitting a bug report and have made
any changes to the code base, please first validate that your bug can be
recreated while running an official release.
-->
### Environment
* Python version: <!-- Example: 3.5.4 -->
* NetBox version: <!-- Example: 2.1.3 -->
<!--
BUG REPORTS must include:
* A list of the steps needed for someone else to reproduce the bug
* A description of the expected and observed behavior
* Any relevant error messages (screenshots may also help)
FEATURE REQUESTS must include:
* A detailed description of the proposed functionality
* A use case for the new feature
* A rough description of any necessary changes to the database schema
* Any relevant third-party libraries which would be needed
-->
### Description

40
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,40 @@
---
name: 🐛 Bug Report
about: Report a reproducible bug in the current release of NetBox
---
<!--
NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED.
This form is only for reporting reproducible bugs. If you need assistance
with NetBox installation, or if you have a general question, please start a
discussion instead: https://github.com/netbox-community/netbox/discussions
Please describe the environment in which you are running NetBox. Be sure
that you are running an unmodified instance of the latest stable release
before submitting a bug report, and that any plugins have been disabled.
-->
### Environment
* Python version:
* NetBox version:
<!--
Describe in detail the exact steps that someone else can take to reproduce
this bug using the current stable release of NetBox. Begin with the
creation of any necessary database objects and call out every operation
being performed explicitly. If reporting a bug in the REST API, be sure to
reconstruct the raw HTTP request(s) being made: Don't rely on a client
library such as pynetbox.
-->
### Steps to Reproduce
1.
2.
3.
<!-- What did you expect to happen? -->
### Expected Behavior
<!-- What happened instead? -->
### Observed Behavior

9
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
# Reference: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: false
contact_links:
- name: 📖 Contributing Policy
url: https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md
about: Please read through our contributing policy before opening an issue or pull request
- name: 💬 Discussion Group
url: https://groups.google.com/g/netbox-discuss
about: Join our discussion group for assistance with installation issues and other problems

View File

@@ -0,0 +1,28 @@
---
name: 📖 Documentation Change
about: Suggest an addition or modification to the NetBox documentation
---
<!--
NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED.
Please indicate the nature of the change by placing an X in one of the
boxes below.
-->
### Change Type
[ ] Addition
[ ] Correction
[ ] Deprecation
[ ] Cleanup (formatting, typos, etc.)
### Area
[ ] Installation instructions
[ ] Configuration parameters
[ ] Functionality/features
[ ] REST API
[ ] Administration/development
[ ] Other
<!-- Describe the proposed change(s). -->
### Proposed Changes

View File

@@ -0,0 +1,54 @@
---
name: ✨ Feature Request
about: Propose a new NetBox feature or enhancement
---
<!--
NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED.
This form is only for proposing specific new features or enhancements.
If you have a general idea or question, please start a discussion instead:
https://github.com/netbox-community/netbox/discussions
NOTE: Due to an excessive backlog of feature requests, we are not currently
accepting any proposals which significantly extend NetBox's feature scope.
Please describe the environment in which you are running NetBox. Be sure
that you are running an unmodified instance of the latest stable release
before submitting a bug report.
-->
### Environment
* Python version:
* NetBox version:
<!--
Describe in detail the new functionality you are proposing. Include any
specific changes to work flows, data models, or the user interface.
-->
### Proposed Functionality
<!--
Convey an example use case for your proposed feature. Write from the
perspective of a NetBox user who would benefit from the proposed
functionality and describe how.
--->
### Use Case
<!--
Note any changes to the database schema necessary to support the new
feature. For example, does the proposal require adding a new model or
field? (Not all new features require database changes.)
--->
### Database Changes
<!--
List any new dependencies on external libraries or services that this new
feature would introduce. For example, does the proposal require the
installation of a new Python package? (Not all new features introduce new
dependencies.)
-->
### External Dependencies

16
.github/ISSUE_TEMPLATE/housekeeping.md vendored Normal file
View File

@@ -0,0 +1,16 @@
---
name: 🏡 Housekeeping
about: A change pertaining to the codebase itself (developers only)
---
<!--
NOTE: This template is for use by maintainers only. Please do not submit
an issue using this template unless you have been specifically asked to
do so.
-->
### Proposed Changes
<!-- Provide justification for the proposed change(s). -->
### Justification

View File

@@ -6,9 +6,10 @@
be able to accept.
Please indicate the relevant feature request or bug report below.
IF YOUR PULL REQUEST DOES NOT REFERENCE AN ACCEPTED BUG REPORT OR
FEATURE REQUEST, IT WILL BE MARKED AS INVALID AND CLOSED.
-->
### Fixes:
### Fixes: <ISSUE NUMBER GOES HERE>
<!--
Please include a summary of the proposed changes below.
-->

33
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
# Configuration for Stale (https://github.com/apps/stale)
# Pull requests are exempt from being marked as stale
only: issues
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 45
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 15
# Issues with these labels will never be considered stale
exemptLabels:
- "status: accepted"
- "status: blocked"
- "status: needs milestone"
# Label to use when marking an issue as stale
staleLabel: "pending closure"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. NetBox
is governed by a small group of core maintainers which means not all opened
issues may receive direct feedback. Please see our [contributing guide](https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md).
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue has been automatically closed due to lack of activity. In an
effort to reduce noise, please do not comment any further. Note that the
core maintainers may elect to reopen this issue at a later date if deemed
necessary.

50
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: CI
on: push
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
services:
redis:
image: redis
ports:
- 6379:6379
postgres:
image: postgres
env:
POSTGRES_USER: netbox
POSTGRES_PASSWORD: netbox
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Check out repo
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies & set up configuration
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pycodestyle coverage
ln -s configuration.testing.py netbox/netbox/configuration.py
- name: Check PEP8 compliance
run: pycodestyle --ignore=W504,E501 netbox/
- name: Run tests
run: coverage run --source="netbox/" netbox/manage.py test netbox/
- name: Show coverage report
run: coverage report --skip-covered --omit *migrations*

21
.github/workflows/lock.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
# lock-threads (https://github.com/marketplace/actions/lock-threads)
name: 'Lock threads'
on:
schedule:
- cron: '0 3 * * *'
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: '90'
issue-exclude-created-before: ''
issue-exclude-labels: ''
issue-lock-labels: ''
issue-lock-comment: ''
issue-lock-reason: 'resolved'
process-only: 'issues'

15
.gitignore vendored
View File

@@ -1,12 +1,21 @@
*.pyc
*.swp
/netbox/netbox/configuration.py
/netbox/netbox/ldap_config.py
/netbox/reports/*
!/netbox/reports/__init__.py
/netbox/scripts/*
!/netbox/scripts/__init__.py
/netbox/static
.idea
/venv/
/*.sh
local_requirements.txt
!upgrade.sh
fabfile.py
*.swp
gunicorn_config.py
gunicorn.py
netbox.log
netbox.pid
.DS_Store
.idea
.coverage
.vscode

View File

@@ -1,17 +0,0 @@
sudo: required
services:
- postgresql
addons:
postgresql: "9.4"
language: python
python:
- "2.7"
- "3.5"
install:
- pip install -r requirements.txt
- pip install pep8
before_script:
- psql --version
- psql -U postgres -c 'SELECT version();'
script:
- ./scripts/cibuild.sh

1
CHANGELOG.md Normal file
View File

@@ -0,0 +1 @@
The changelog has been moved to the [project release notes](https://netbox.readthedocs.io/en/stable/release-notes/).

View File

@@ -4,68 +4,82 @@ If you encounter any issues installing or using NetBox, try one of the
following resources to get assistance. Please **do not** open a GitHub issue
except to report bugs or request features.
### GitHub Discussions
GitHub's discussions are the best place to get help or propose rough ideas for
new functionality. Their integration with GitHub allows for easily cross-
referencing and converting posts to issues as needed. There are several
categories for discussions:
* **General** - General community discussion
* **Ideas** - Ideas for new functionality that isn't yet ready for a formal
feature request
* **Q&A** - Request help with installing or using NetBox
### Mailing List
We have established a Google Groups Mailing List for issues and general
discussion. This is the best forum for obtaining assistance with NetBox
installation. You can find us [here](https://groups.google.com/forum/#!forum/netbox-discuss).
We also have a Google Groups [mailing list](https://groups.google.com/g/netbox-discuss)
for general discussion, however we're encouraging people to use GitHub
discussions where possible, as it's much easier for newcomers to review past
discussions.
### Freenode IRC
### Slack
For real-time discussion, you can join the #netbox channel on [Freenode](https://freenode.net/).
You can connect to Freenode at irc.freenode.net using an IRC client, or you can
use their [webchat client](https://webchat.freenode.net/).
For real-time chat, you can join the **#netbox** Slack channel on [NetworkToCode](https://slack.networktocode.com/).
Unfortunately, the Slack channel does not provide long-term retention of chat
history, so try to avoid it for any discussions would benefit from being
preserved for future reference.
## Reporting Bugs
* First, ensure that you've installed the [latest stable version](https://github.com/digitalocean/netbox/releases) of
NetBox. If you're running an older version, it's possible that the bug has
* First, ensure that you're running the [latest stable version](https://github.com/netbox-community/netbox/releases)
of NetBox. If you're running an older version, it's possible that the bug has
already been fixed.
* Next, check the GitHub [issues list](https://github.com/digitalocean/netbox/issues) to see if the bug you've found has already
been reported. If you think you may be experiencing a reported issue that
hasn't already been resolved, please click "add a reaction" in the top right
corner of the issue and add a thumbs up (+1). You mightalso want to add a
comment describing how it's affecting your installation. This will allow us to
prioritize bugs based on how many users are affected.
* If you haven't found an existing issue that describes your suspected bug,
please inquire about it on the mailing list. **Do not** file an issue until you
have received confirmation that it is in fact a bug. Invalid issues are very
distracting and slow the pace at which NetBox is developed.
* Next, check the GitHub [issues list](https://github.com/netbox-community/netbox/issues)
to see if the bug you've found has already been reported. If you think you may
be experiencing a reported issue that hasn't already been resolved, please
click "add a reaction" in the top right corner of the issue and add a thumbs
up (+1). You might also want to add a comment describing how it's affecting your
installation. This will allow us to prioritize bugs based on how many users are
affected.
* When submitting an issue, please be as descriptive as possible. Be sure to
include:
provide all information request in the issue template, including:
* The environment in which NetBox is running
* The exact steps that can be taken to reproduce the issue (if applicable)
* The exact steps that can be taken to reproduce the issue
* Expected and observed behavior
* Any error messages generated
* Screenshots (if applicable)
* Please avoid prepending any sort of tag (e.g. "[Bug]") to the issue title.
The issue will be reviewed by a moderator after submission and the appropriate
labels will be applied.
The issue will be reviewed by a maintainer after submission and the appropriate
labels will be applied for categorization.
* Keep in mind that we prioritize bugs based on their severity and how much
work is required to resolve them. It may take some time for someone to address
your issue.
* For more information on how bug reports are handled, please see our [issue
intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Policy).
## Feature Requests
* First, check the GitHub [issues list](https://github.com/digitalocean/netbox/issues) to see if the feature you're requesting
is already listed. (Be sure to search closed issues as well, since some
feature requests have been rejected.) If the feature you'd like to see has
already been requested and is open, click "add a reaction" in the top right
corner of the issue and add a thumbs up (+1). This ensures that the issue has
a better chance of receiving attention. Also feel free to add a comment with
any additional justification for the feature. (However, note that comments with
no substance other than a "+1" will be deleted. Please use GitHub's reactions
feature to indicate your support.)
* First, check the GitHub [issues list](https://github.com/netbox-community/netbox/issues)
to see if the feature you're requesting is already listed. (Be sure to search
closed issues as well, since some feature requests have been rejected.) If the
feature you'd like to see has already been requested and is open, click "add a
reaction" in the top right corner of the issue and add a thumbs up (+1). This
ensures that the issue has a better chance of receiving attention. Also feel
free to add a comment with any additional justification for the feature.
(However, note that comments with no substance other than a "+1" will be
deleted. Please use GitHub's reactions feature to indicate your support.)
* Due to an excessive backlog of feature requests, we are not currently
accepting any proposals which substantially extend NetBox's functionality
beyond its current feature set. This includes the introduction of any new views
or models which have not already been proposed in an existing feature request.
* Due to a large backlog of feature requests, we are not currently accepting
any proposals which substantially extend NetBox's functionality beyond its
current feature set. This includes the introduction of any new views or models
which have not already been proposed in an existing feature request.
* Before filing a new feature request, consider raising your idea on the
mailing list first. Feedback you receive there will help validate and shape the
@@ -76,8 +90,8 @@ describe the functionality and data model(s) being proposed. The more effort
you put into writing a feature request, the better its chance is of being
implemented. Overly broad feature requests will be closed.
* When submitting a feature request on GitHub, be sure to include the
following:
* When submitting a feature request on GitHub, be sure to include all
information requested by the issue template, including:
* A detailed description of the proposed functionality
* A use case for the feature; who would use it and what value it would add
@@ -88,19 +102,38 @@ following:
* Please avoid prepending any sort of tag (e.g. "[Feature]") to the issue
title. The issue will be reviewed by a moderator after submission and the
appropriate labels will be applied.
appropriate labels will be applied for categorization.
* For more information on how feature requests are handled, please see our
[issue intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Policy).
## Submitting Pull Requests
* Be sure to open an issue before starting work on a pull request, and discuss
your idea with the NetBox maintainers before beginning work. This will help
prevent wasting time on something that might we might not be able to implement.
When suggesting a new feature, also make sure it won't conflict with any work
that's already in progress.
* If you're interested in contributing to NetBox, be sure to check out our
[getting started](https://netbox.readthedocs.io/en/stable/development/getting-started/)
documentation for tips on setting up your development environment.
* Be sure to open an issue **before** starting work on a pull request, and
discuss your idea with the NetBox maintainers before beginning work. This will
help prevent wasting time on something that might we might not be able to
implement. When suggesting a new feature, also make sure it won't conflict with
any work that's already in progress.
* Once you've opened or identified an issue you'd like to work on, ask that it
be assigned to you so that others are aware it's being worked on. A maintainer
will then mark the issue as "accepted."
* Any pull request which does _not_ relate to an **accepted** issue will be closed.
* All new functionality must include relevant tests where applicable.
* When submitting a pull request, please be sure to work off of the `develop`
branch, rather than `master`. The `develop` branch is used for ongoing
development, while `master` is used for tagging new stable releases.
development, while `master` is used for tagging stable releases.
* In most cases, it is not necessary to add a changelog entry: A maintainer will
take care of this when the PR is merged. (This helps avoid merge conflicts
resulting from multiple PRs being submitted simultaneously.)
* All code submissions should meet the following criteria (CI will enforce
these checks):
@@ -109,3 +142,54 @@ these checks):
* All tests pass when run with `./manage.py test`
* PEP 8 compliance is enforced, with the exception that lines may be
greater than 80 characters in length
## Commenting
Only comment on an issue if you are sharing a relevant idea or constructive
feedback. **Do not** comment on an issue just to show your support (give the
top post a :+1: instead) or ask for an ETA. These comments will be deleted to
reduce noise in the discussion.
## Issue Lifecycle
New issues are handled according to our [issue intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Policy).
Maintainers will assign label(s) and/or close new issues as the policy
dictates. This helps ensure a productive development environment and avoid
accumulating a large backlog of work.
The core maintainers group has chosen to make use of GitHub's [Stale bot](https://github.com/apps/stale)
to aid in issue management.
* Issues will be marked as stale after 45 days of no activity.
* Then after 15 more days of inactivity, the issue will be closed.
* Any issue bearing one of the following labels will be exempt from all Stale
bot actions:
* `status: accepted`
* `status: blocked`
* `status: needs milestone`
It is natural that some new issues get more attention than others. Stale bot
helps bring renewed attention to potentially valuable issues that may have been
overlooked.
## Maintainer Guidance
* Maintainers are expected to contribute at least four hours per week to the
project on average. This can be employer-sponsored or individual time, with
the understanding that all contributions are submitted under the Apache 2.0
license and that your employer may not make claim to any contributions.
Contributions include code work, issue management, and community support. All
development must be in accordance with our [development guidance](https://netbox.readthedocs.io/en/stable/development/).
* Maintainers are expected to attend (where feasible) our biweekly ~30-minute
sync to review agenda items. This meeting provides opportunity to present and
discuss pressing topics. Meetings are held as virtual audio/video conferences.
* Official channels for communication include:
* GitHub issues, pull requests, and discussions
* The [netbox-discuss](https://groups.google.com/g/netbox-discuss) mailing list
* The **#netbox** channel on [NetworkToCode Slack](https://networktocode.slack.com/)
* Maintainers with no substantial recorded activity in a 60-day period will be
removed from the project.

1
NOTICE Normal file
View File

@@ -0,0 +1 @@
Copyrighted and licensed under Apache License 2.0 by DigitalOcean, LLC.

View File

@@ -1,35 +1,57 @@
![NetBox](docs/netbox_logo.png "NetBox logo")
![NetBox](docs/netbox_logo.svg "NetBox logo")
NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at [DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically to address the needs of network and infrastructure engineers.
NetBox is an IP address management (IPAM) and data center infrastructure
management (DCIM) tool. Initially conceived by the network engineering team at
[DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically
to address the needs of network and infrastructure engineers. It is intended to
function as a domain-specific source of truth for network operations.
NetBox runs as a web application atop the [Django](https://www.djangoproject.com/) Python framework with a [PostgreSQL](http://www.postgresql.org/) database. For a complete list of requirements, see `requirements.txt`. The code is available [on GitHub](https://github.com/digitalocean/netbox).
NetBox runs as a web application atop the [Django](https://www.djangoproject.com/)
Python framework with a [PostgreSQL](http://www.postgresql.org/) database. For a
complete list of requirements, see `requirements.txt`. The code is available [on GitHub](https://github.com/netbox-community/netbox).
The complete documentation for NetBox can be found at [Read the Docs](http://netbox.readthedocs.io/en/stable/).
Questions? Comments? Please subscribe to [the netbox-discuss mailing list](https://groups.google.com/forum/#!forum/netbox-discuss), or join us on IRC in **#netbox** on **irc.freenode.net**!
Questions? Comments? Please start a [discussion on GitHub](https://github.com/netbox-community/netbox/discussions),
or join us in the **#netbox** Slack channel on [NetworkToCode](https://networktocode.slack.com/)!
### Build Status
NetBox is built against both Python 2.7 and 3.5. Python 3.5 is recommended.
| | status |
|-------------|------------|
| **master** | [![Build Status](https://travis-ci.org/digitalocean/netbox.svg?branch=master)](https://travis-ci.org/digitalocean/netbox) |
| **develop** | [![Build Status](https://travis-ci.org/digitalocean/netbox.svg?branch=develop)](https://travis-ci.org/digitalocean/netbox) |
| **master** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=master) |
| **develop** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=develop) |
## Screenshots
### Screenshots
![Screenshot of main page](docs/media/screenshot1.png "Main page")
---
![Screenshot of rack elevation](docs/media/screenshot2.png "Rack elevation")
---
![Screenshot of prefix hierarchy](docs/media/screenshot3.png "Prefix hierarchy")
# Installation
## Installation
Please see [the documentation](http://netbox.readthedocs.io/en/stable/) for instructions on installing NetBox. To upgrade NetBox, please download the [latest release](https://github.com/digitalocean/netbox/releases) and run `upgrade.sh`.
Please see [the documentation](http://netbox.readthedocs.io/en/stable/) for
instructions on installing NetBox. To upgrade NetBox, please download the
[latest release](https://github.com/netbox-community/netbox/releases) and
run `upgrade.sh`.
## Alternative Installations
## Providing Feedback
* [Docker container](https://github.com/ninech/netbox-docker) (via [@cimnine](https://github.com/cimnine))
* [Vagrant deployment](https://github.com/ryanmerolle/netbox-vagrant) (via [@ryanmerolle](https://github.com/ryanmerolle))
The best platform for general feedback, assistance, and other discussion is our
[GitHub discussions](https://github.com/netbox-community/netbox/discussions).
To report a bug or request a specific feature, please open a GitHub issue using
the [appropriate template](https://github.com/netbox-community/netbox/issues/new/choose).
If you are interested in contributing to the development of NetBox, please read
our [contributing guide](CONTRIBUTING.md) prior to beginning any work.
## Related projects
Please see [our wiki](https://github.com/netbox-community/netbox/wiki/Community-Contributions)
for a list of relevant community projects.

95
base_requirements.txt Normal file
View File

@@ -0,0 +1,95 @@
# The Python web framework on which NetBox is built
# https://github.com/django/django
Django
# Django caching using Redis
# https://github.com/Suor/django-cacheops
django-cacheops
# 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
# 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
# Context managers for PostgreSQL advisory locks
# https://github.com/Xof/django-pglocks
django-pglocks
# Prometheus metrics library for Django
# https://github.com/korfuri/django-prometheus
django-prometheus
# Django integration for RQ (Reqis queuing)
# https://github.com/rq/django-rq
django-rq
# 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 field for representing time zones
# https://github.com/mfogel/django-timezone-field/
django-timezone-field
# 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]
# WSGI HTTP server
# https://gunicorn.org/
gunicorn
# Platform-agnostic template rendering engine
# https://github.com/pallets/jinja
Jinja2
# Simple markup language for rendering HTML
# https://github.com/Python-Markdown/markdown
Markdown
# Library for manipulating IP prefixes and addresses
# https://github.com/drkjam/netaddr
netaddr
# 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
# Extensive cryptographic library (fork of pycrypto)
# https://github.com/Legrandin/pycryptodome
pycryptodome
# YAML rendering library
# https://github.com/yaml/pyyaml
PyYAML
# In-memory key/value store used for caching and queuing
# https://github.com/andymccurdy/redis-py
redis
# SVG image rendering (used for rack elevations)
# https://github.com/mozman/svgwrite
svgwrite

26
contrib/apache.conf Normal file
View File

@@ -0,0 +1,26 @@
<VirtualHost *:443>
ProxyPreserveHost On
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
Alias /static /opt/netbox/netbox/static
<Directory /opt/netbox/netbox/static>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Location /static>
ProxyPass !
</Location>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>

16
contrib/gunicorn.py Normal file
View File

@@ -0,0 +1,16 @@
# The IP address (typically localhost) and port that the Netbox WSGI process should listen on
bind = '127.0.0.1:8001'
# Number of gunicorn workers to spawn. This should typically be 2n+1, where
# n is the number of CPU cores present.
workers = 5
# Number of threads per worker process
threads = 3
# Timeout (in seconds) for a request to complete
timeout = 120
# The maximum number of requests a worker can handle before being respawned
max_requests = 5000
max_requests_jitter = 500

21
contrib/netbox-rq.service Normal file
View File

@@ -0,0 +1,21 @@
[Unit]
Description=NetBox Request Queue Worker
Documentation=https://netbox.readthedocs.io/en/stable/
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=netbox
Group=netbox
WorkingDirectory=/opt/netbox
ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker
Restart=on-failure
RestartSec=30
PrivateTmp=true
[Install]
WantedBy=multi-user.target

22
contrib/netbox.service Normal file
View File

@@ -0,0 +1,22 @@
[Unit]
Description=NetBox WSGI Service
Documentation=https://netbox.readthedocs.io/en/stable/
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=netbox
Group=netbox
PIDFile=/var/tmp/netbox.pid
WorkingDirectory=/opt/netbox
ExecStart=/opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
Restart=on-failure
RestartSec=30
PrivateTmp=true
[Install]
WantedBy=multi-user.target

29
contrib/nginx.conf Normal file
View File

@@ -0,0 +1,29 @@
server {
listen 443 ssl;
# CHANGE THIS TO YOUR SERVER'S NAME
server_name netbox.example.com;
ssl_certificate /etc/ssl/certs/netbox.crt;
ssl_certificate_key /etc/ssl/private/netbox.key;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
# Redirect HTTP traffic to HTTPS
listen 80;
server_name _;
return 301 https://$host$request_uri;
}

View File

@@ -0,0 +1,25 @@
# Caching
NetBox supports database query caching using [django-cacheops](https://github.com/Suor/django-cacheops) and Redis. When a query is made, the results are cached in Redis for a short period of time, as defined by the [CACHE_TIMEOUT](../../configuration/optional-settings/#cache_timeout) parameter (15 minutes by default). Within that time, all recurrences of that specific query will return the pre-fetched results from the cache.
If a change is made to any of the objects returned by the query within that time, or if the timeout expires, the results are automatically invalidated and the next request for those results will be sent to the database.
## Invalidating Cached Data
Although caching is performed automatically and rarely requires administrative intervention, NetBox provides the `invalidate` management command to force invalidation of cached results. This command can reference a specific object my its type and numeric ID:
```no-highlight
$ python netbox/manage.py invalidate dcim.Device.34
```
Alternatively, it can also delete all cached results for an object type:
```no-highlight
$ python netbox/manage.py invalidate dcim.Device
```
Finally, calling it with the `all` argument will force invalidation of the entire cache database:
```no-highlight
$ python netbox/manage.py invalidate all
```

View File

@@ -0,0 +1,9 @@
# Change Logging
Every time an object in NetBox is created, updated, or deleted, a serialized copy of that object is saved to the database, along with meta data including the current time and the user associated with the change. These records form a persistent record of changes both for each individual object as well as NetBox as a whole. The global change log can be viewed by navigating to Other > Change Log.
A serialized representation of the instance being modified is included in JSON format. This is similar to how objects are conveyed within the REST API, but does not include any nested representations. For instance, the `tenant` field of a site will record only the tenant's ID, not a representation of the tenant.
When a request is made, a UUID is generated and attached to any change records resulting from that request. For example, editing three objects in bulk will create a separate change record for each (three in total), and each of those objects will be associated with the same UUID. This makes it easy to identify all the change records resulting from a particular request.
Change records are exposed in the API via the read-only endpoint `/api/extras/object-changes/`. They may also be exported via the web UI in CSV format.

View File

@@ -0,0 +1,69 @@
# Custom Fields
Each model in NetBox is represented in the database as a discrete table, and each attribute of a model exists as a column within its table. For example, sites are stored in the `dcim_site` table, which has columns named `name`, `facility`, `physical_address`, and so on. As new attributes are added to objects throughout the development of NetBox, tables are expanded to include new rows.
However, some users might want to store additional object attributes that are somewhat esoteric in nature, and that would not make sense to include in the core NetBox database schema. For instance, suppose your organization needs to associate each device with a ticket number correlating it with an internal support system record. This is certainly a legitimate use for NetBox, but it's not a common enough need to warrant including a field for _every_ NetBox installation. Instead, you can create a custom field to hold this data.
Within the database, custom fields are stored as JSON data directly alongside each object. This alleviates the need for complex queries when retrieving objects.
## Creating Custom Fields
Custom fields must be created through the admin UI under Extras > Custom Fields. NetBox supports six types of custom field:
* Text: Free-form text (up to 255 characters)
* Integer: A whole number (positive or negative)
* Boolean: True or false
* Date: A date in ISO 8601 format (YYYY-MM-DD)
* URL: This will be presented as a link in the web UI
* Selection: A selection of one of several pre-defined custom choices
Each custom field must have a name; this should be a simple database-friendly string, e.g. `tps_report`. You may also assign a corresponding human-friendly label (e.g. "TPS report"); the label will be displayed on web forms. A weight is also required: Higher-weight fields will be ordered lower within a form. (The default weight is 100.) If a description is provided, it will appear beneath the field in a form.
Marking a field as required will force the user to provide a value for the field when creating a new object or when saving an existing object. A default value for the field may also be provided. Use "true" or "false" for boolean fields, or the exact value of a choice for selection fields.
The filter logic controls how values are matched when filtering objects by the custom field. Loose filtering (the default) matches on a partial value, whereas exact matching requires a complete match of the given string to a field's value. For example, exact filtering with the string "red" will only match the exact value "red", whereas loose filtering will match on the values "red", "red-orange", or "bored". Setting the filter logic to "disabled" disables filtering by the field entirely.
A custom field must be assigned to one or object types, or models, in NetBox. Once created, custom fields will automatically appear as part of these models in the web UI and REST API. Note that not all models support custom fields.
### Custom Field Validation
NetBox supports limited custom validation for custom field values. Following are the types of validation enforced for each field type:
* Text: Regular expression (optional)
* Integer: Minimum and/or maximum value (optional)
* Selection: Must exactly match one of the prescribed choices
### Custom Selection Fields
Each custom selection field must have at least two choices. These are specified as a comma-separated list. Choices appear in forms in the order they are listed. Note that choice values are saved exactly as they appear, so it's best to avoid superfluous punctuation or symbols where possible.
If a default value is specified for a selection field, it must exactly match one of the provided choices.
## Custom Fields and the REST API
When retrieving an object via the REST API, all of its custom data will be included within the `custom_fields` attribute. For example, below is the partial output of a site with two custom fields defined:
```json
{
"id": 123,
"url": "http://localhost:8000/api/dcim/sites/123/",
"name": "Raleigh 42",
...
"custom_fields": {
"deployed": "2018-06-19",
"site_code": "US-NC-RAL42"
},
...
```
To set or change these values, simply include nested JSON data. For example:
```json
{
"name": "New Site",
"slug": "new-site",
"custom_fields": {
"deployed": "2019-03-24"
}
}
```

View File

@@ -0,0 +1,54 @@
# Custom Links
Custom links allow users to display arbitrary hyperlinks to external content within NetBox object views. These are helpful for cross-referencing related records in systems outside of NetBox. For example, you might create a custom link on the device view which links to the current device in a network monitoring system.
Custom links are created under the admin UI. Each link is associated with a particular NetBox object type (site, device, prefix, etc.) and will be displayed on relevant views. Each link is assigned text and a URL, both of which support Jinja2 templating. The text and URL are rendered with the context variable `obj` representing the current object.
For example, you might define a link like this:
* Text: `View NMS`
* URL: `https://nms.example.com/nodes/?name={{ obj.name }}`
When viewing a device named Router4, this link would render as:
```no-highlight
<a href="https://nms.example.com/nodes/?name=Router4">View NMS</a>
```
Custom links appear as buttons at the top right corner of the page. Numeric weighting can be used to influence the ordering of links.
## Context Data
The following context data is available within the template when rendering a custom link's text or URL.
| Variable | Description |
|----------|-------------|
| `obj` | The NetBox object being displayed |
| `debug` | A boolean indicating whether debugging is enabled |
| `request` | The current WSGI request |
| `user` | The current user (if authenticated) |
| `perms` | The [permissions](https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions) assigned to the user |
## Conditional Rendering
Only links which render with non-empty text are included on the page. You can employ conditional Jinja2 logic to control the conditions under which a link gets rendered.
For example, if you only want to display a link for active devices, you could set the link text to
```jinja2
{% if obj.status == 'active' %}View NMS{% endif %}
```
The link will not appear when viewing a device with any status other than "active."
As another example, if you wanted to show only devices belonging to a certain manufacturer, you could do something like this:
```jinja2
{% if obj.device_type.manufacturer.name == 'Cisco' %}View NMS{% endif %}
```
The link will only appear when viewing a device with a manufacturer name of "Cisco."
## Link Groups
Group names can be specified to organize links into groups. Links with the same group name will render as a dropdown menu beneath a single button bearing the name of the group.

View File

@@ -0,0 +1,339 @@
# Custom Scripts
Custom scripting was introduced to provide a way for users to execute custom logic from within the NetBox UI. Custom scripts enable the user to directly and conveniently manipulate NetBox data in a prescribed fashion. They can be used to accomplish myriad tasks, such as:
* Automatically populate new devices and cables in preparation for a new site deployment
* Create a range of new reserved prefixes or IP addresses
* Fetch data from an external source and import it to NetBox
Custom scripts are Python code and exist outside of the official NetBox code base, so they can be updated and changed without interfering with the core NetBox installation. And because they're completely custom, there is no inherent limitation on what a script can accomplish.
## Writing Custom Scripts
All custom scripts must inherit from the `extras.scripts.Script` base class. This class provides the functionality necessary to generate forms and log activity.
```python
from extras.scripts import Script
class MyScript(Script):
...
```
Scripts comprise two core components: a set of variables and a `run()` method. Variables allow your script to accept user input via the NetBox UI, but they are optional: If your script does not require any user input, there is no need to define any variables.
The `run()` method is where your script's execution logic lives. (Note that your script can have as many methods as needed: this is merely the point of invocation for NetBox.)
```python
class MyScript(Script):
var1 = StringVar(...)
var2 = IntegerVar(...)
var3 = ObjectVar(...)
def run(self, data, commit):
...
```
The `run()` method should accept two arguments:
* `data` - A dictionary containing all of the variable data passed via the web form.
* `commit` - A boolean indicating whether database changes will be committed.
!!! note
The `commit` argument was introduced in NetBox v2.7.8. Backward compatibility is maintained for scripts which accept only the `data` argument, however beginning with v2.10 NetBox will require the `run()` method of every script to accept both arguments. (Either argument may still be ignored within the method.)
Defining script variables is optional: You may create a script with only a `run()` method if no user input is needed.
Any output generated by the script during its execution will be displayed under the "output" tab in the UI.
## Module Attributes
### `name`
You can define `name` within a script module (the Python file which contains one or more scripts) to set the module name. If `name` is not defined, the module's file name will be used.
## Script Attributes
Script attributes are defined under a class named `Meta` within the script. These are optional, but encouraged.
### `name`
This is the human-friendly names of your script. If omitted, the class name will be used.
### `description`
A human-friendly description of what your script does.
### `commit_default`
The checkbox to commit database changes when executing a script is checked by default. Set `commit_default` to False under the script's Meta class to leave this option unchecked by default.
```python
commit_default = False
```
## Accessing Request Data
Details of the current HTTP request (the one being made to execute the script) are available as the instance attribute `self.request`. This can be used to infer, for example, the user executing the script and the client IP address:
```python
username = self.request.user.username
ip_address = self.request.META.get('HTTP_X_FORWARDED_FOR') or \
self.request.META.get('REMOTE_ADDR')
self.log_info(f"Running as user {username} (IP: {ip_address})...")
```
For a complete list of available request parameters, please see the [Django documentation](https://docs.djangoproject.com/en/stable/ref/request-response/).
## Reading Data from Files
The Script class provides two convenience methods for reading data from files:
* `load_yaml`
* `load_json`
These two methods will load data in YAML or JSON format, respectively, from files within the local path (i.e. `SCRIPTS_ROOT`).
## Logging
The Script object provides a set of convenient functions for recording messages at different severity levels:
* `log_debug`
* `log_success`
* `log_info`
* `log_warning`
* `log_failure`
Log messages are returned to the user upon execution of the script. Markdown rendering is supported for log messages.
## Variable Reference
### Default Options
All custom script variables support the following default options:
* `default` - The field's default value
* `description` - A brief user-friendly description of the field
* `label` - The field name to be displayed in the rendered form
* `required` - Indicates whether the field is mandatory (all fields are required by default)
* `widget` - The class of form widget to use (see the [Django documentation](https://docs.djangoproject.com/en/stable/ref/forms/widgets/))
### StringVar
Stores a string of characters (i.e. text). Options include:
* `min_length` - Minimum number of characters
* `max_length` - Maximum number of characters
* `regex` - A regular expression against which the provided value must match
Note that `min_length` and `max_length` can be set to the same number to effect a fixed-length field.
### TextVar
Arbitrary text of any length. Renders as a multi-line text input field.
### IntegerVar
Stores a numeric integer. Options include:
* `min_value` - Minimum value
* `max_value` - Maximum value
### BooleanVar
A true/false flag. This field has no options beyond the defaults listed above.
### ChoiceVar
A set of choices from which the user can select one.
* `choices` - A list of `(value, label)` tuples representing the available choices. For example:
```python
CHOICES = (
('n', 'North'),
('s', 'South'),
('e', 'East'),
('w', 'West')
)
direction = ChoiceVar(choices=CHOICES)
```
In the example above, selecting the choice labeled "North" will submit the value `n`.
### MultiChoiceVar
Similar to `ChoiceVar`, but allows for the selection of multiple choices.
### ObjectVar
A particular object within NetBox. Each ObjectVar must specify a particular model, and allows the user to select one of the available instances. ObjectVar accepts several arguments, listed below.
* `model` - The model class
* `display_field` - The name of the REST API object field to display in the selection list (default: `'name'`)
* `query_params` - A dictionary of query parameters to use when retrieving available options (optional)
* `null_option` - A label representing a "null" or empty choice (optional)
The `display_field` argument is useful when referencing a model which does not have a `name` field. For example, when displaying a list of device types, you would likely use the `model` field:
```python
device_type = ObjectVar(
model=DeviceType,
display_field='model'
)
```
To limit the selections available within the list, additional query parameters can be passed as the `query_params` dictionary. For example, to show only devices with an "active" status:
```python
device = ObjectVar(
model=Device,
query_params={
'status': 'active'
}
)
```
Multiple values can be specified by assigning a list to the dictionary key. It is also possible to reference the value of other fields in the form by prepending a dollar sign (`$`) to the variable's name.
```python
region = ObjectVar(
model=Region
)
site = ObjectVar(
model=Site,
query_params={
'region_id': '$region'
}
)
```
### MultiObjectVar
Similar to `ObjectVar`, but allows for the selection of multiple objects.
### FileVar
An uploaded file. Note that uploaded files are present in memory only for the duration of the script's execution: They will not be automatically saved for future use. The script is responsible for writing file contents to disk where necessary.
### IPAddressVar
An IPv4 or IPv6 address, without a mask. Returns a `netaddr.IPAddress` object.
### IPAddressWithMaskVar
An IPv4 or IPv6 address with a mask. Returns a `netaddr.IPNetwork` object which includes the mask.
### IPNetworkVar
An IPv4 or IPv6 network with a mask. Returns a `netaddr.IPNetwork` object. Two attributes are available to validate the provided mask:
* `min_prefix_length` - Minimum length of the mask
* `max_prefix_length` - Maximum length of the mask
## Running Custom Scripts
!!! note
To run a custom script, a user must be assigned the `extras.run_script` permission. This is achieved by assigning the user (or group) a permission on the Script object and specifying the `run` action in the admin UI as shown below.
![Adding the run action to a permission](../../media/admin_ui_run_permission.png)
### Via the Web UI
Custom scripts can be run via the web UI by navigating to the script, completing any required form data, and clicking the "run script" button.
### Via the API
To run a script via the REST API, issue a POST request to the script's endpoint specifying the form data and commitment. For example, to run a script named `example.MyReport`, we would make a request such as the following:
```no-highlight
curl -X POST \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
http://netbox/api/extras/scripts/example.MyReport/ \
--data '{"data": {"foo": "somevalue", "bar": 123}, "commit": true}'
```
## Example
Below is an example script that creates new objects for a planned site. The user is prompted for three variables:
* The name of the new site
* The device model (a filtered list of defined device types)
* The number of access switches to create
These variables are presented as a web form to be completed by the user. Once submitted, the script's `run()` method is called to create the appropriate objects.
```python
from django.utils.text import slugify
from dcim.choices import DeviceStatusChoices, SiteStatusChoices
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
from extras.scripts import *
class NewBranchScript(Script):
class Meta:
name = "New Branch"
description = "Provision a new branch site"
field_order = ['site_name', 'switch_count', 'switch_model']
site_name = StringVar(
description="Name of the new site"
)
switch_count = IntegerVar(
description="Number of access switches to create"
)
manufacturer = ObjectVar(
model=Manufacturer,
required=False
)
switch_model = ObjectVar(
description="Access switch model",
model=DeviceType,
display_field='model',
query_params={
'manufacturer_id': '$manufacturer'
}
)
def run(self, data, commit):
# Create the new site
site = Site(
name=data['site_name'],
slug=slugify(data['site_name']),
status=SiteStatusChoices.STATUS_PLANNED
)
site.save()
self.log_success(f"Created new site: {site}")
# Create access switches
switch_role = DeviceRole.objects.get(name='Access Switch')
for i in range(1, data['switch_count'] + 1):
switch = Device(
device_type=data['switch_model'],
name=f'{site.slug}-switch{i}',
site=site,
status=DeviceStatusChoices.STATUS_PLANNED,
device_role=switch_role
)
switch.save()
self.log_success(f"Created new switch: {switch}")
# Generate a CSV table of new devices
output = [
'name,make,model'
]
for switch in Device.objects.filter(site=site):
attrs = [
switch.name,
switch.device_type.manufacturer.name,
switch.device_type.model
]
output.append(','.join(attrs))
return '\n'.join(output)
```

View File

@@ -0,0 +1,57 @@
# Export Templates
NetBox allows users to define custom templates that can be used when exporting objects. To create an export template, navigate to Extras > Export Templates under the admin interface.
Each export template is associated with a certain type of object. For instance, if you create an export template for VLANs, your custom template will appear under the "Export" button on the VLANs list.
Export templates may be written in Jinja2 or [Django's template language](https://docs.djangoproject.com/en/stable/ref/templates/language/), which is very similar to Jinja2.
!!! warning
Support for Django's native templating logic will be removed in NetBox v2.10.
The list of objects returned from the database when rendering an export template is stored in the `queryset` variable, which you'll typically want to iterate through using a `for` loop. Object properties can be access by name. For example:
```jinja2
{% for rack in queryset %}
Rack: {{ rack.name }}
Site: {{ rack.site.name }}
Height: {{ rack.u_height }}U
{% endfor %}
```
To access custom fields of an object within a template, use the `cf` attribute. For example, `{{ obj.cf.color }}` will return the value (if any) for a custom field named `color` on `obj`.
A MIME type and file extension can optionally be defined for each export template. The default MIME type is `text/plain`.
## Example
Here's an example device export template that will generate a simple Nagios configuration from a list of devices.
```
{% for device in queryset %}{% if device.status and device.primary_ip %}define host{
use generic-switch
host_name {{ device.name }}
address {{ device.primary_ip.address.ip }}
}
{% endif %}{% endfor %}
```
The generated output will look something like this:
```
define host{
use generic-switch
host_name switch1
address 192.0.2.1
}
define host{
use generic-switch
host_name switch2
address 192.0.2.2
}
define host{
use generic-switch
host_name switch3
address 192.0.2.3
}
```

View File

@@ -0,0 +1,67 @@
# NAPALM
NetBox supports integration with the [NAPALM automation](https://napalm-automation.net/) library. NAPALM allows NetBox to serve a proxy for operational data, fetching live data from network devices and returning it to a requester via its REST API. Note that NetBox does not store any NAPALM data locally.
!!! note
To enable this integration, the NAPALM library must be installed. See [installation steps](../../installation/3-netbox/#napalm) for more information.
Below is an example REST API request and response:
```no-highlight
GET /api/dcim/devices/1/napalm/?method=get_environment
{
"get_environment": {
...
}
}
```
!!! note
To make NAPALM requests via the NetBox REST API, a NetBox user must have assigned a permission granting the `napalm_read` action for the device object type.
## Authentication
By default, the [`NAPALM_USERNAME`](../../configuration/optional-settings/#napalm_username) and [`NAPALM_PASSWORD`](../../configuration/optional-settings/#napalm_password) configuration parameters are used for NAPALM authentication. They can be overridden for an individual API call by specifying the `X-NAPALM-Username` and `X-NAPALM-Password` headers.
```
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-Username: foo" \
-H "X-NAPALM-Password: bar"
```
## Method Support
The list of supported NAPALM methods depends on the [NAPALM driver](https://napalm.readthedocs.io/en/latest/support/index.html#general-support-matrix) configured for the platform of a device. Because there is no granular mechanism in place for limiting potentially disruptive requests, NetBox supports only read-only [get](https://napalm.readthedocs.io/en/latest/support/index.html#getters-support-matrix) methods.
## Multiple Methods
It is possible to request the output of multiple NAPALM methods in a single API request by passing multiple `method` parameters. For example:
```no-highlight
GET /api/dcim/devices/1/napalm/?method=get_ntp_servers&method=get_ntp_peers
{
"get_ntp_servers": {
...
},
"get_ntp_peers": {
...
}
}
```
## Optional Arguments
The behavior of NAPALM drivers can be adjusted according to the [optional arguments](https://napalm.readthedocs.io/en/latest/support/index.html#optional-arguments). NetBox exposes those arguments using headers prefixed with `X-NAPALM-`. For example, the SSH port is changed to 2222 in this API call:
```
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-port: 2222"
```

View File

@@ -0,0 +1,29 @@
# Prometheus Metrics
NetBox supports optionally exposing native Prometheus metrics from the application. [Prometheus](https://prometheus.io/) is a popular time series metric platform used for monitoring.
NetBox exposes metrics at the `/metrics` HTTP endpoint, e.g. `https://netbox.local/metrics`. Metric exposition can be toggled with the `METRICS_ENABLED` configuration setting. Metrics are not exposed by default.
## Metric Types
NetBox makes use of the [django-prometheus](https://github.com/korfuri/django-prometheus) library to export a number of different types of metrics, including:
- Per model insert, update, and delete counters
- Per view request counters
- Per view request latency histograms
- Request body size histograms
- Response body size histograms
- Response code counters
- Database connection, execution, and error counters
- Cache hit, miss, and invalidation counters
- Django middleware latency histograms
- Other Django related metadata metrics
For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on your NetBox instance.
## Multi Processing Notes
When deploying NetBox in a multiprocess manner (e.g. running multiple Gunicorn workers) the Prometheus client library requires the use of a shared directory to collect metrics from all worker processes. To configure this, first create or designate a local directory to which the worker processes have read and write access, and then configure your WSGI service (e.g. Gunicorn) to define this path as the `prometheus_multiproc_dir` environment variable.
!!! warning
If having accurate long-term metrics in a multiprocess environment is crucial to your deployment, it's recommended you use the `uwsgi` library instead of `gunicorn`. The issue lies in the way `gunicorn` tracks worker processes (vs `uwsgi`) which helps manage the metrics files created by the above configurations. If you're using Netbox with gunicorn in a containerized enviroment following the one-process-per-container methodology, then you will likely not need to change to `uwsgi`. More details can be found in [issue #3779](https://github.com/netbox-community/netbox/issues/3779#issuecomment-590547562).

View File

@@ -12,7 +12,7 @@ A NetBox report is a mechanism for validating the integrity of data within NetBo
## Writing Reports
Reports must be saved as files in the [`REPORTS_ROOT`](../configuration/optional-settings/#reports_root) path (which defaults to `netbox/reports/`). Each file created within this path is considered a separate module. Each module holds one or more reports (Python classes), each of which performs a certain function. The logic of each report is broken into discrete test methods, each of which applies a small portion of the logic comprising the overall test.
Reports must be saved as files in the [`REPORTS_ROOT`](../../configuration/optional-settings/#reports_root) path (which defaults to `netbox/reports/`). Each file created within this path is considered a separate module. Each module holds one or more reports (Python classes), each of which performs a certain function. The logic of each report is broken into discrete test methods, each of which applies a small portion of the logic comprising the overall test.
!!! warning
The reports path includes a file named `__init__.py`, which registers the path as a Python module. Do not delete this file.
@@ -32,7 +32,7 @@ class DeviceIPsReport(Report):
Within each report class, we'll create a number of test methods to execute our report's logic. In DeviceConnectionsReport, for instance, we want to ensure that every live device has a console connection, an out-of-band management connection, and two power connections.
```
from dcim.constants import CONNECTION_STATUS_PLANNED, STATUS_ACTIVE
from dcim.choices import DeviceStatusChoices
from dcim.models import ConsolePort, Device, PowerPort
from extras.reports import Report
@@ -43,13 +43,14 @@ class DeviceConnectionsReport(Report):
def test_console_connection(self):
# Check that every console port for every active device has a connection defined.
for console_port in ConsolePort.objects.select_related('device').filter(device__status=STATUS_ACTIVE):
if console_port.cs_port is None:
active = DeviceStatusChoices.STATUS_ACTIVE
for console_port in ConsolePort.objects.prefetch_related('device').filter(device__status=active):
if console_port.connected_endpoint is None:
self.log_failure(
console_port.device,
"No console connection defined for {}".format(console_port.name)
)
elif console_port.connection_status == CONNECTION_STATUS_PLANNED:
elif not console_port.connection_status:
self.log_warning(
console_port.device,
"Console connection for {} marked as planned".format(console_port.name)
@@ -60,12 +61,12 @@ class DeviceConnectionsReport(Report):
def test_power_connections(self):
# Check that every active device has at least two connected power supplies.
for device in Device.objects.filter(status=STATUS_ACTIVE):
for device in Device.objects.filter(status=DeviceStatusChoices.STATUS_ACTIVE):
connected_ports = 0
for power_port in PowerPort.objects.filter(device=device):
if power_port.power_outlet is not None:
if power_port.connected_endpoint is not None:
connected_ports += 1
if power_port.connection_status == CONNECTION_STATUS_PLANNED:
if not power_port.connection_status:
self.log_warning(
device,
"Power connection for {} marked as planned".format(power_port.name)
@@ -100,11 +101,14 @@ Once you have created a report, it will appear in the reports list. Initially, r
## Running Reports
!!! note
To run a report, a user must be assigned the `extras.run_report` permission. This is achieved by assigning the user (or group) a permission on the Report object and specifying the `run` action in the admin UI as shown below.
![Adding the run action to a permission](../../media/admin_ui_run_permission.png)
### Via the Web UI
Reports can be run via the web UI by navigating to the report and clicking the "run report" button at top right. Note that a user must have permission to create ReportResults in order to run reports. (Permissions can be assigned through the admin UI.)
Once a report has been run, its associated results will be included in the report view.
Reports can be run via the web UI by navigating to the report and clicking the "run report" button at top right. Once a report has been run, its associated results will be included in the report view.
### Via the API
@@ -128,4 +132,4 @@ Reports can be run on the CLI by invoking the management command:
python3 manage.py runreport <module>
```
One or more report modules may be specified.
where ``<module>`` is the name of the python file in the ``reports`` directory without the ``.py`` extension. One or more report modules may be specified.

View File

@@ -0,0 +1,106 @@
# Webhooks
A webhook is a mechanism for conveying to some external system a change that took place in NetBox. For example, you may want to notify a monitoring system whenever the status of a device is updated in NetBox. This can be done by creating a webhook for the device model in NetBox and identifying the webhook receiver. When NetBox detects a change to a device, an HTTP request containing the details of the change and who made it be sent to the specified receiver. Webhooks are configured in the admin UI under Extras > Webhooks.
## Configuration
* **Name** - A unique name for the webhook. The name is not included with outbound messages.
* **Object type(s)** - The type or types of NetBox object that will trigger the webhook.
* **Enabled** - If unchecked, the webhook will be inactive.
* **Events** - A webhook may trigger on any combination of create, update, and delete events. At least one event type must be selected.
* **HTTP method** - The type of HTTP request to send. Options include `GET`, `POST`, `PUT`, `PATCH`, and `DELETE`.
* **URL** - The fuly-qualified URL of the request to be sent. This may specify a destination port number if needed.
* **HTTP content type** - The value of the request's `Content-Type` header. (Defaults to `application/json`)
* **Additional headers** - Any additional headers to include with the request (optional). Add one header per line in the format `Name: Value`. Jinja2 templating is supported for this field (see below).
* **Body template** - The content of the request being sent (optional). Jinja2 templating is supported for this field (see below). If blank, NetBox will populate the request body with a raw dump of the webhook context. (If the HTTP cotent type is set to `application/json`, this will be formatted as a JSON object.)
* **Secret** - A secret string used to prove authenticity of the request (optional). This will append a `X-Hook-Signature` header to the request, consisting of a HMAC (SHA-512) hex digest of the request body using the secret as the key.
* **SSL verification** - Uncheck this option to disable validation of the receiver's SSL certificate. (Disable with caution!)
* **CA file path** - The file path to a particular certificate authority (CA) file to use when validating the receiver's SSL certificate (optional).
## Jinja2 Template Support
[Jinja2 templating](https://jinja.palletsprojects.com/) is supported for the `additional_headers` and `body_template` fields. This enables the user to convey object data in the request headers as well as to craft a customized request body. Request content can be crafted to enable the direct interaction with external systems by ensuring the outgoing message is in a format the receiver expects and understands.
For example, you might create a NetBox webhook to [trigger a Slack message](https://api.slack.com/messaging/webhooks) any time an IP address is created. You can accomplish this using the following configuration:
* Object type: IPAM > IP address
* HTTP method: `POST`
* URL: Slack incoming webhook URL
* HTTP content type: `application/json`
* Body template: `{"text": "IP address {{ data['address'] }} was created by {{ username }}!"}`
### Available Context
The following data is available as context for Jinja2 templates:
* `event` - The type of event which triggered the webhook: created, updated, or deleted.
* `model` - The NetBox model which triggered the change.
* `timestamp` - The time at which the event occurred (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format).
* `username` - The name of the user account associated with the change.
* `request_id` - The unique request ID. This may be used to correlate multiple changes associated with a single request.
* `data` - A serialized representation of the object _after_ the change was made. This is typically equivalent to the model's representation in NetBox's REST API.
### Default Request Body
If no body template is specified, the request body will be populated with a JSON object containing the context data. For example, a newly created site might appear as follows:
```no-highlight
{
"event": "created",
"timestamp": "2020-02-25 15:10:26.010582+00:00",
"model": "site",
"username": "jstretch",
"request_id": "fdbca812-3142-4783-b364-2e2bd5c16c6a",
"data": {
"id": 19,
"name": "Site 1",
"slug": "site-1",
"status":
"value": "active",
"label": "Active",
"id": 1
},
"region": null,
...
}
}
```
## Webhook Processing
When a change is detected, any resulting webhooks are placed into a Redis queue for processing. This allows the user's request to complete without needing to wait for the outgoing webhook(s) to be processed. The webhooks are then extracted from the queue by the `rqworker` process and HTTP requests are sent to their respective destinations. The current webhook queue and any failed webhooks can be inspected in the admin UI under Django RQ > Queues.
A request is considered successful if the response has a 2XX status code; otherwise, the request is marked as having failed. Failed requests may be retried manually via the admin UI.
## Troubleshooting
To assist with verifying that the content of outgoing webhooks is rendered correctly, NetBox provides a simple HTTP listener that can be run locally to receive and display webhook requests. First, modify the target URL of the desired webhook to `http://localhost:9000/`. This will instruct NetBox to send the request to the local server on TCP port 9000. Then, start the webhook receiver service from the NetBox root directory:
```no-highlight
$ python netbox/manage.py webhook_receiver
Listening on port http://localhost:9000. Stop with CONTROL-C.
```
You can test the receiver itself by sending any HTTP request to it. For example:
```no-highlight
$ curl -X POST http://localhost:9000 --data '{"foo": "bar"}'
```
The server will print output similar to the following:
```no-highlight
[1] Tue, 07 Apr 2020 17:44:02 GMT 127.0.0.1 "POST / HTTP/1.1" 200 -
Host: localhost:9000
User-Agent: curl/7.58.0
Accept: */*
Content-Length: 14
Content-Type: application/x-www-form-urlencoded
{"foo": "bar"}
------------
```
Note that `webhook_receiver` does not actually _do_ anything with the information received: It merely prints the request headers and body for inspection.
Now, when the NetBox webhook is triggered and processed, you should see its headers and content appear in the terminal where the webhook receiver is listening. If you don't, check that the `rqworker` process is running and that webhook events are being placed into the queue (visible under the NetBox admin UI).

View File

@@ -0,0 +1,203 @@
# The NetBox Python Shell
NetBox includes a Python management shell within which objects can be directly queried, created, modified, and deleted. To enter the shell, run the following command:
```
./manage.py nbshell
```
This will launch a lightly customized version of [the built-in Django shell](https://docs.djangoproject.com/en/stable/ref/django-admin/#shell) with all relevant NetBox models pre-loaded. (If desired, the stock Django shell is also available by executing `./manage.py shell`.)
```
$ ./manage.py nbshell
### NetBox interactive shell (localhost)
### Python 3.6.9 | Django 2.2.11 | NetBox 2.7.10
### lsmodels() will show available models. Use help(<model>) for more info.
```
The function `lsmodels()` will print a list of all available NetBox models:
```
>>> lsmodels()
DCIM:
ConsolePort
ConsolePortTemplate
ConsoleServerPort
ConsoleServerPortTemplate
Device
...
```
!!! warning
The NetBox shell affords direct access to NetBox data and function with very little validation in place. As such, it is crucial to ensure that only authorized, knowledgeable users are ever granted access to it. Never perform any action in the management shell without having a full backup in place.
## Querying Objects
Objects are retrieved from the database using a [Django queryset](https://docs.djangoproject.com/en/stable/topics/db/queries/#retrieving-objects). The base queryset for an object takes the form `<model>.objects.all()`, which will return a (truncated) list of all objects of that type.
```
>>> Device.objects.all()
<QuerySet [<Device: TestDevice1>, <Device: TestDevice2>, <Device: TestDevice3>,
<Device: TestDevice4>, <Device: TestDevice5>, '...(remaining elements truncated)...']>
```
Use a `for` loop to cycle through all objects in the list:
```
>>> for device in Device.objects.all():
... print(device.name, device.device_type)
...
('TestDevice1', <DeviceType: PacketThingy 9000>)
('TestDevice2', <DeviceType: PacketThingy 9000>)
('TestDevice3', <DeviceType: PacketThingy 9000>)
('TestDevice4', <DeviceType: PacketThingy 9000>)
('TestDevice5', <DeviceType: PacketThingy 9000>)
...
```
To count all objects matching the query, replace `all()` with `count()`:
```
>>> Device.objects.count()
1274
```
To retrieve a particular object (typically by its primary key or other unique field), use `get()`:
```
>>> Site.objects.get(pk=7)
<Site: Test Lab>
```
### Filtering Querysets
In most cases, you will want to retrieve only a specific subset of objects. To filter a queryset, replace `all()` with `filter()` and pass one or more keyword arguments. For example:
```
>>> Device.objects.filter(status="active")
<QuerySet [<Device: TestDevice1>, <Device: TestDevice2>, <Device: TestDevice3>,
<Device: TestDevice8>, <Device: TestDevice9>, '...(remaining elements truncated)...']>
```
Querysets support slicing to return a specific range of objects.
```
>>> Device.objects.filter(status="active")[:3]
<QuerySet [<Device: TestDevice1>, <Device: TestDevice2>, <Device: TestDevice3>]>
```
The `count()` method can be appended to the queryset to return a count of objects rather than the full list.
```
>>> Device.objects.filter(status="active").count()
982
```
Relationships with other models can be traversed by concatenating attribute names with a double-underscore. For example, the following will return all devices assigned to the tenant named "Pied Piper."
```
>>> Device.objects.filter(tenant__name="Pied Piper")
```
This approach can span multiple levels of relations. For example, the following will return all IP addresses assigned to a device in North America:
```
>>> IPAddress.objects.filter(interface__device__site__region__slug="north-america")
```
!!! note
While the above query is functional, it's not very efficient. There are ways to optimize such requests, however they are out of scope for this document. For more information, see the [Django queryset method reference](https://docs.djangoproject.com/en/stable/ref/models/querysets/) documentation.
Reverse relationships can be traversed as well. For example, the following will find all devices with an interface named "em0":
```
>>> Device.objects.filter(interfaces__name="em0")
```
Character fields can be filtered against partial matches using the `contains` or `icontains` field lookup (the later of which is case-insensitive).
```
>>> Device.objects.filter(name__icontains="testdevice")
```
Similarly, numeric fields can be filtered by values less than, greater than, and/or equal to a given value.
```
>>> VLAN.objects.filter(vid__gt=2000)
```
Multiple filters can be combined to further refine a queryset.
```
>>> VLAN.objects.filter(vid__gt=2000, name__icontains="engineering")
```
To return the inverse of a filtered queryset, use `exclude()` instead of `filter()`.
```
>>> Device.objects.count()
4479
>>> Device.objects.filter(status="active").count()
4133
>>> Device.objects.exclude(status="active").count()
346
```
!!! info
The examples above are intended only to provide a cursory introduction to queryset filtering. For an exhaustive list of the available filters, please consult the [Django queryset API documentation](https://docs.djangoproject.com/en/stable/ref/models/querysets/).
## Creating and Updating Objects
New objects can be created by instantiating the desired model, defining values for all required attributes, and calling `save()` on the instance. For example, we can create a new VLAN by specifying its numeric ID, name, and assigned site:
```
>>> lab1 = Site.objects.get(pk=7)
>>> myvlan = VLAN(vid=123, name='MyNewVLAN', site=lab1)
>>> myvlan.save()
```
Alternatively, the above can be performed as a single operation. (Note, however, that `save()` does _not_ return the new instance for reuse.)
```
>>> VLAN(vid=123, name='MyNewVLAN', site=Site.objects.get(pk=7)).save()
```
To modify an existing object, we retrieve it, update the desired field(s), and call `save()` again.
```
>>> vlan = VLAN.objects.get(pk=1280)
>>> vlan.name
'MyNewVLAN'
>>> vlan.name = 'BetterName'
>>> vlan.save()
>>> VLAN.objects.get(pk=1280).name
'BetterName'
```
!!! warning
The Django ORM provides methods to create/edit many objects at once, namely `bulk_create()` and `update()`. These are best avoided in most cases as they bypass a model's built-in validation and can easily lead to database corruption if not used carefully.
## Deleting Objects
To delete an object, simply call `delete()` on its instance. This will return a dictionary of all objects (including related objects) which have been deleted as a result of this operation.
```
>>> vlan
<VLAN: 123 (BetterName)>
>>> vlan.delete()
(1, {'ipam.VLAN': 1})
```
To delete multiple objects at once, call `delete()` on a filtered queryset. It's a good idea to always sanity-check the count of selected objects _before_ deleting them.
```
>>> Device.objects.filter(name__icontains='test').count()
27
>>> Device.objects.filter(name__icontains='test').delete()
(35, {'dcim.DeviceBay': 0, 'secrets.Secret': 0, 'dcim.InterfaceConnection': 4,
'extras.ImageAttachment': 0, 'dcim.Device': 27, 'dcim.Interface': 4,
'dcim.ConsolePort': 0, 'dcim.PowerPort': 0})
```
!!! warning
Deletions are immediate and irreversible. Always consider the impact of deleting objects carefully before calling `delete()` on an instance or queryset.

View File

@@ -0,0 +1,45 @@
# Permissions
NetBox v2.9 introduced a new object-based permissions framework, which replace's Django's built-in permissions model. Object-based permissions enable an administrator to grant users or groups the ability to perform an action on arbitrary subsets of objects in NetBox, rather than all objects of a certain type. For example, it is possible to grant a user permission to view only sites within a particular region, or to modify only VLANs with a numeric ID within a certain range.
{!docs/models/users/objectpermission.md!}
### Example Constraint Definitions
| Constraints | Description |
| ----------- | ----------- |
| `{"status": "active"}` | Status is active |
| `{"status__in": ["planned", "reserved"]}` | Status is active **OR** reserved |
| `{"status": "active", "role": "testing"}` | Status is active **OR** role is testing |
| `{"name__startswith": "Foo"}` | Name starts with "Foo" (case-sensitive) |
| `{"name__iendswith": "bar"}` | Name ends with "bar" (case-insensitive) |
| `{"vid__gte": 100, "vid__lt": 200}` | VLAN ID is greater than or equal to 100 **AND** less than 200 |
| `[{"vid__lt": 200}, {"status": "reserved"}]` | VLAN ID is less than 200 **OR** status is reserved |
## Permissions Enforcement
### Viewing Objects
Object-based permissions work by filtering the database query generated by a user's request to restrict the set of objects returned. When a request is received, NetBox first determines whether the user is authenticated and has been granted to perform the requested action. For example, if the requested URL is `/dcim/devices/`, NetBox will check for the `dcim.view_device` permission. If the user has not been assigned this permission (either directly or via a group assignment), NetBox will return a 403 (forbidden) HTTP response.
If the permission _has_ been granted, NetBox will compile any specified constraints for the model and action. For example, suppose two permissions have been assigned to the user granting view access to the device model, with the following constraints:
```json
[
{"site__name__in": ["NYC1", "NYC2"]},
{"status": "offline", "tenant__isnull": true}
]
```
This grants the user access to view any device that is assigned to a site named NYC1 or NYC2, **or** which has a status of "offline" and has no tenant assigned. These constraints are equivalent to the following ORM query:
```no-highlight
Site.objects.filter(
Q(site__name__in=['NYC1', 'NYC2']),
Q(status='active', tenant__isnull=True)
)
```
### Creating and Modifying Objects
The same sort of logic is in play when a user attempts to create or modify an object in NetBox, with a twist. Once validation has completed, NetBox starts an atomic database transaction to facilitate the change, and the object is created or saved normally. Next, still within the transaction, NetBox issues a second query to retrieve the newly created/updated object, filtering the restricted queryset with the object's primary key. If this query fails to return the object, NetBox knows that the new revision does not match the constraints imposed by the permission. The transaction is then rolled back, leaving the database in its original state prior to the change, and the user is informed of the violation.

View File

@@ -0,0 +1,81 @@
# Replicating NetBox
## Replicating the Database
NetBox employs a [PostgreSQL](https://www.postgresql.org/) database, so general PostgreSQL best practices apply here. The database can be written to a file and restored using the `pg_dump` and `psql` utilities, respectively.
!!! note
The examples below assume that your database is named `netbox`.
### Export the Database
Use the `pg_dump` utility to export the entire database to a file:
```no-highlight
pg_dump netbox > netbox.sql
```
When replicating a production database for development purposes, you may find it convenient to exclude changelog data, which can easily account for the bulk of a database's size. To do this, exclude the `extras_objectchange` table data from the export. The table will still be included in the output file, but will not be populated with any data.
```no-highlight
pg_dump --exclude-table-data=extras_objectchange netbox > netbox.sql
```
### Load an Exported Database
When restoring a database from a file, it's recommended to delete any existing database first to avoid potential conflicts.
!!! warning
The following will destroy and replace any existing instance of the database.
```no-highlight
psql -c 'drop database netbox'
psql -c 'create database netbox'
psql netbox < netbox.sql
```
Keep in mind that PostgreSQL user accounts and permissions are not included with the dump: You will need to create those manually if you want to fully replicate the original database (see the [installation docs](../installation/1-postgresql.md)). When setting up a development instance of NetBox, it's strongly recommended to use different credentials anyway.
### Export the Database Schema
If you want to export only the database schema, and not the data itself (e.g. for development reference), do the following:
```no-highlight
pg_dump -s netbox > netbox_schema.sql
```
---
## Replicating Uploaded Media
By default, NetBox stores uploaded files (such as image attachments) in its media directory. To fully replicate an instance of NetBox, you'll need to copy both the database and the media files.
!!! note
These operations are not necessary if your installation is utilizing a [remote storage backend](../../configuration/optional-settings/#storage_backend).
### Archive the Media Directory
Execute the following command from the root of the NetBox installation path (typically `/opt/netbox`):
```no-highlight
tar -czf netbox_media.tar.gz netbox/media/
```
### Restore the Media Directory
To extract the saved archive into a new installation, run the following from the installation root:
```no-highlight
tar -xf netbox_media.tar.gz
```
---
## Cache Invalidation
If you are migrating your instance of NetBox to a different machine, be sure to first invalidate the cache on the original instance by issuing the `invalidate all` management command (within the Python virtual environment):
```no-highlight
# source /opt/netbox/venv/bin/activate
(venv) # python3 manage.py invalidate all
```

View File

@@ -1,48 +0,0 @@
The NetBox API employs token-based authentication. For convenience, cookie authentication can also be used when navigating the browsable API.
# Tokens
A token is a unique identifier that identifies a user to the API. Each user in NetBox may have one or more tokens which he or she can use to authenticate to the API. To create a token, navigate to the API tokens page at `/user/api-tokens/`.
Each token contains a 160-bit key represented as 40 hexadecimal characters. When creating a token, you'll typically leave the key field blank so that a random key will be automatically generated. However, NetBox allows you to specify a key in case you need to restore a previously deleted token to operation.
By default, a token can be used for all operations available via the API. Deselecting the "write enabled" option will restrict API requests made with the token to read operations (e.g. GET) only.
Additionally, a token can be set to expire at a specific time. This can be useful if an external client needs to be granted temporary access to NetBox.
# Authenticating to the API
By default, read operations will be available without authentication. In this case, a token may be included in the request, but is not necessary.
```
$ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
{
"count": 10,
"next": null,
"previous": null,
"results": [...]
}
```
However, if the [`LOGIN_REQUIRED`](../configuration/optional-settings/#login_required) configuration setting has been set to `True`, all requests must be authenticated.
```
$ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
{
"detail": "Authentication credentials were not provided."
}
```
To authenticate to the API, set the HTTP `Authorization` header to the string `Token ` (note the trailing space) followed by the token key.
```
$ curl -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
{
"count": 10,
"next": null,
"previous": null,
"results": [...]
}
```
Additionally, the browsable interface to the API (which can be seen by navigating to the API root `/api/` in a web browser) will attempt to authenticate requests using the same cookie that the normal NetBox front end uses. Thus, if you have logged into NetBox, you will be logged into the browsable API as well.

View File

@@ -1,146 +0,0 @@
# API Examples
Supported HTTP methods:
* `GET`: Retrieve an object or list of objects
* `POST`: Create a new object
* `PUT`: Update an existing object, all mandatory fields must be specified
* `PATCH`: Updates an existing object, only specifiying the field to be changed
* `DELETE`: Delete an existing object
To authenticate a request, attach your token in an `Authorization` header:
```
curl -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0"
```
### Retrieving a list of sites
Send a `GET` request to the object list endpoint. The response contains a paginated list of JSON objects.
```
$ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
{
"count": 14,
"next": null,
"previous": null,
"results": [
{
"id": 6,
"name": "Corporate HQ",
"slug": "corporate-hq",
"region": null,
"tenant": null,
"facility": "",
"asn": null,
"physical_address": "742 Evergreen Terrace, Springfield, USA",
"shipping_address": "",
"contact_name": "",
"contact_phone": "",
"contact_email": "",
"comments": "",
"custom_fields": {},
"count_prefixes": 108,
"count_vlans": 46,
"count_racks": 8,
"count_devices": 254,
"count_circuits": 6
},
...
]
}
```
### Retrieving a single site by ID
Send a `GET` request to the object detail endpoint. The response contains a single JSON object.
```
$ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/6/
{
"id": 6,
"name": "Corporate HQ",
"slug": "corporate-hq",
"region": null,
"tenant": null,
"facility": "",
"asn": null,
"physical_address": "742 Evergreen Terrace, Springfield, USA",
"shipping_address": "",
"contact_name": "",
"contact_phone": "",
"contact_email": "",
"comments": "",
"custom_fields": {},
"count_prefixes": 108,
"count_vlans": 46,
"count_racks": 8,
"count_devices": 254,
"count_circuits": 6
}
```
### Creating a new site
Send a `POST` request to the site list endpoint with token authentication and JSON-formatted data. Only mandatory fields are required.
```
$ curl -X POST -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/ --data '{"name": "My New Site", "slug": "my-new-site"}'
{
"id": 16,
"name": "My New Site",
"slug": "my-new-site",
"region": null,
"tenant": null,
"facility": "",
"asn": null,
"physical_address": "",
"shipping_address": "",
"contact_name": "",
"contact_phone": "",
"contact_email": "",
"comments": ""
}
```
### Modify an existing site
Make an authenticated `PUT` request to the site detail endpoint. As with a create (`POST`) request, all mandatory fields must be included.
```
$ curl -X PUT -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/16/ --data '{"name": "Renamed Site", "slug": "renamed-site"}'
```
### Modify an object by changing a field
Make an authenticated `PATCH` request to the device endpoint. With `PATCH`, unlike `POST` and `PUT`, we only specify the field that is being changed. In this example, we add a serial number to a device.
```
$ curl -X PATCH -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/devices/2549/ --data '{"serial": "FTX1123A090"}'
```
### Delete an existing site
Send an authenticated `DELETE` request to the site detail endpoint.
```
$ curl -v -X DELETE -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/16/
* Connected to localhost (127.0.0.1) port 8000 (#0)
> DELETE /api/dcim/sites/16/ HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:8000
> Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0
> Content-Type: application/json
> Accept: application/json; indent=4
>
* HTTP 1.0, assume close after body
< HTTP/1.0 204 No Content
< Date: Mon, 20 Mar 2017 16:13:08 GMT
< Server: WSGIServer/0.1 Python/2.7.6
< Vary: Accept, Cookie
< X-Frame-Options: SAMEORIGIN
< Allow: GET, PUT, PATCH, DELETE, OPTIONS
<
* Closing connection 0
```
The response to a successfull `DELETE` request will have code 204 (No Content); the body of the response will be empty.

View File

@@ -1,208 +0,0 @@
NetBox v2.0 and later includes a full-featured REST API that allows its data model to be read and manipulated externally.
# What is a REST API?
REST stands for [representational state transfer](https://en.wikipedia.org/wiki/Representational_state_transfer). It's a particular type of API which employs HTTP to create, retrieve, update, and delete objects from a database. (This set of operations is commonly referred to as CRUD.) Each type of operation is associated with a particular HTTP verb:
* `GET`: Retrieve an object or list of objects
* `POST`: Create an object
* `PUT` / `PATCH`: Modify an existing object. `PUT` requires all mandatory fields to be specified, while `PATCH` only expects the field that is being modified to be specified.
* `DELETE`: Delete an existing object
The NetBox API represents all objects in [JavaScript Object Notation (JSON)](http://www.json.org/). This makes it very easy to interact with NetBox data on the command line with common tools. For example, we can request an IP address from NetBox and output the JSON using `curl` and `jq`. (Piping the output through `jq` isn't strictly required but makes it much easier to read.)
```
$ curl -s http://localhost:8000/api/ipam/ip-addresses/2954/ | jq '.'
{
"custom_fields": {},
"nat_outside": null,
"nat_inside": null,
"description": "An example IP address",
"id": 2954,
"family": 4,
"address": "5.101.108.132/26",
"vrf": null,
"tenant": null,
"status": {
"label": "Active",
"value": 1
},
"role": null,
"interface": null
}
```
Each attribute of the NetBox object is expressed as a field in the dictionary. Fields may include their own nested objects, as in the case of the `status` field above. Every object includes a primary key named `id` which uniquely identifies it in the database.
# URL Hierarchy
NetBox's entire API is housed under the API root at `https://<hostname>/api/`. The URL structure is divided at the root level by application: circuits, DCIM, extras, IPAM, secrets, and tenancy. Within each application, each model has its own path. For example, the provider and circuit objects are located under the "circuits" application:
* /api/circuits/providers/
* /api/circuits/circuits/
Likewise, the site, rack, and device objects are located under the "DCIM" application:
* /api/dcim/sites/
* /api/dcim/racks/
* /api/dcim/devices/
The full hierarchy of available endpoints can be viewed by navigating to the API root in a web browser.
Each model generally has two views associated with it: a list view and a detail view. The list view is used to request a list of multiple objects or to create a new object. The detail view is used to retrieve, update, or delete an existing object. All objects are referenced by their numeric primary key (`id`).
* /api/dcim/devices/ - List devices or create a new device
* /api/dcim/devices/123/ - Retrieve, update, or delete the device with ID 123
Lists of objects can be filtered using a set of query parameters. For example, to find all interfaces belonging to the device with ID 123:
```
GET /api/dcim/interfaces/?device_id=123
```
# Serialization
The NetBox API employs three types of serializers to represent model data:
* Base serializer
* Nested serializer
* Writable serializer
The base serializer is used to represent the default view of a model. This includes all database table fields which comprise the model, and may include additional metadata. A base serializer includes relationships to parent objects, but **does not** include child objects. For example, the `VLANSerializer` includes a nested representation its parent VLANGroup (if any), but does not include any assigned Prefixes.
```
{
"id": 1048,
"site": {
"id": 7,
"url": "http://localhost:8000/api/dcim/sites/7/",
"name": "Corporate HQ",
"slug": "corporate-hq"
},
"group": {
"id": 4,
"url": "http://localhost:8000/api/ipam/vlan-groups/4/",
"name": "Production",
"slug": "production"
},
"vid": 101,
"name": "Users-Floor1",
"tenant": null,
"status": {
"value": 1,
"label": "Active"
},
"role": {
"id": 9,
"url": "http://localhost:8000/api/ipam/roles/9/",
"name": "User Access",
"slug": "user-access"
},
"description": "",
"display_name": "101 (Users-Floor1)",
"custom_fields": {}
}
```
Related objects (e.g. `ForeignKey` fields) are represented using a nested serializer. A nested serializer provides a minimal representation of an object, including only its URL and enough information to construct its name.
When a base serializer includes one or more nested serializers, the hierarchical structure precludes it from being used for write operations. Thus, a flat representation of an object may be provided using a writable serializer. This serializer includes only raw database values and is not typically used for retrieval, except as part of the response to the creation or updating of an object.
```
{
"id": 1201,
"site": 7,
"group": 4,
"vid": 102,
"name": "Users-Floor2",
"tenant": null,
"status": 1,
"role": 9,
"description": ""
}
```
## Static Choice Fields
Some model fields, such as the `status` field in the above example, utilize static integers corresponding to static choices. The available choices can be retrieved from the read-only `_choices` endpoint within each app. A specific `model:field` tuple may optionally be specified in the URL.
Each choice includes a human-friendly label and its corresponding numeric value. For example, `GET /api/ipam/_choices/prefix:status/` will return:
```
[
{
"value": 0,
"label": "Container"
},
{
"value": 1,
"label": "Active"
},
{
"value": 2,
"label": "Reserved"
},
{
"value": 3,
"label": "Deprecated"
}
]
```
Thus, to set a prefix's status to "Reserved," it would be assigned the integer `2`.
A request for `GET /api/ipam/_choices/` will return choices for _all_ fields belonging to models within the IPAM app.
# Pagination
API responses which contain a list of objects (for example, a request to `/api/dcim/devices/`) will be paginated to avoid unnecessary overhead. The root JSON object will contain the following attributes:
* `count`: The total count of all objects matching the query
* `next`: A hyperlink to the next page of results (if applicable)
* `previous`: A hyperlink to the previous page of results (if applicable)
* `results`: The list of returned objects
Here is an example of a paginated response:
```
HTTP 200 OK
Allow: GET, POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 2861,
"next": "http://localhost:8000/api/dcim/devices/?limit=50&offset=50",
"previous": null,
"results": [
{
"id": 123,
"name": "DeviceName123",
...
},
...
]
}
```
The default page size derives from the [`PAGINATE_COUNT`](../configuration/optional-settings/#paginate_count) configuration setting, which defaults to 50. However, this can be overridden per request by specifying the desired `offset` and `limit` query parameters. For example, if you wish to retrieve a hundred devices at a time, you would make a request for:
```
http://localhost:8000/api/dcim/devices/?limit=100
```
The response will return devices 1 through 100. The URL provided in the `next` attribute of the response will return devices 101 through 200:
```
{
"count": 2861,
"next": "http://localhost:8000/api/dcim/devices/?limit=100&offset=100",
"previous": null,
"results": [...]
}
```
The maximum number of objects that can be returned is limited by the [`MAX_PAGE_SIZE`](../configuration/optional-settings/#max_page_size) setting, which is 1000 by default. Setting this to `0` or `None` will remove the maximum limit. An API consumer can then pass `?limit=0` to retrieve _all_ matching objects with a single request.
!!! warning
Disabling the page size limit introduces a potential for very resource-intensive requests, since one API request can effectively retrieve an entire table from the database.

View File

@@ -0,0 +1,18 @@
# NetBox Configuration
NetBox's local configuration is stored in `$INSTALL_ROOT/netbox/netbox/configuration.py`. An example configuration is provided as `configuration.example.py`. You may copy or rename the example configuration and make changes as appropriate. NetBox will not run without a configuration file.
While NetBox has many configuration settings, only a few of them must be defined at the time of installation.
## Configuration Parameters
* [Required settings](required-settings.md)
* [Optional settings](optional-settings.md)
## Changing the Configuration
Configuration settings may be changed at any time. However, the WSGI service (e.g. Gunicorn) must be restarted before the changes will take effect:
```no-highlight
$ sudo systemctl restart netbox
```

View File

@@ -1,45 +0,0 @@
NetBox's local configuration is held in `netbox/netbox/configuration.py`. An example configuration is provided at `netbox/netbox/configuration.example.py`. You may copy or rename the example configuration and make changes as appropriate. NetBox will not run without a configuration file.
## ALLOWED_HOSTS
This is a list of valid fully-qualified domain names (FQDNs) that is used to reach the NetBox service. Usually this is the same as the hostname for the NetBox server, but can also be different (e.g. when using a reverse proxy serving the NetBox website under a different FQDN than the hostname of the NetBox server). NetBox will not permit access to the server via any other hostnames (or IPs). The value of this option is also used to set `CSRF_TRUSTED_ORIGINS`, which restricts `HTTP POST` to the same set of hosts (more about this [here](https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-CSRF_TRUSTED_ORIGINS)). Keep in mind that NetBox, by default, has `USE_X_FORWARDED_HOST = True` (in `netbox/netbox/settings.py`) which means that if you're using a reverse proxy, it's the FQDN used to reach that reverse proxy which needs to be in this list (more about this [here](https://docs.djangoproject.com/en/1.9/ref/settings/#allowed-hosts)).
Example:
```
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
---
## DATABASE
NetBox requires access to a PostgreSQL database service to store data. This service can run locally or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
* NAME - Database name
* USER - PostgreSQL username
* PASSWORD - PostgreSQL password
* HOST - Name or IP address of the database server (use `localhost` if running locally)
* PORT - TCP port of the PostgreSQL service; leave blank for default port (5432)
Example:
```
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
```
---
## SECRET_KEY
This is a secret cryptographic key is used to improve the security of cookies and password resets. The key defined here should not be shared outside of the configuration file. `SECRET_KEY` can be changed at any time, however be aware that doing so will invalidate all existing sessions.
Please note that this key is **not** used for hashing user passwords or for the encrypted storage of secret data in NetBox.
`SECRET_KEY` should be at least 50 characters in length and contain a random mix of letters, digits, and symbols. The script located at `netbox/generate_secret_key.py` may be used to generate a suitable key.

View File

@@ -1,10 +1,10 @@
The following are optional settings which may be declared in `netbox/netbox/configuration.py`.
# Optional Configuration Settings
## ADMINS
NetBox will email details about critical errors to the administrators listed here. This should be a list of (name, email) tuples. For example:
```
```python
ADMINS = [
['Hank Hill', 'hhill@example.com'],
['Dale Gribble', 'dgribble@example.com'],
@@ -13,13 +13,21 @@ ADMINS = [
---
## ALLOWED_URL_SCHEMES
Default: `('file', 'ftp', 'ftps', 'http', 'https', 'irc', 'mailto', 'sftp', 'ssh', 'tel', 'telnet', 'tftp', 'vnc', 'xmpp')`
A list of permitted URL schemes referenced when rendering links within NetBox. Note that only the schemes specified in this list will be accepted: If adding your own, be sure to replicate all of the default values as well (excluding those schemes which are not desirable).
---
## BANNER_TOP
## BANNER_BOTTOM
Setting these variables will display content in a banner at the top and/or bottom of the page, respectively. HTML is allowed. To replicate the content of the top banner in the bottom banner, set:
Setting these variables will display custom content in a banner at the top and/or bottom of the page, respectively. HTML is allowed. To replicate the content of the top banner in the bottom banner, set:
```
```python
BANNER_TOP = 'Your banner text'
BANNER_BOTTOM = BANNER_TOP
```
@@ -28,7 +36,7 @@ BANNER_BOTTOM = BANNER_TOP
## BANNER_LOGIN
The value of this variable will be displayed on the login page above the login form. HTML is allowed.
This defines custom content to be displayed on the login page above the login form. HTML is allowed.
---
@@ -38,12 +46,32 @@ Default: None
The base URL path to use when accessing NetBox. Do not include the scheme or domain name. For example, if installed at http://example.com/netbox/, set:
```
```python
BASE_PATH = 'netbox/'
```
---
## CACHE_TIMEOUT
Default: 900
The number of seconds to cache entries will be retained before expiring.
---
## CHANGELOG_RETENTION
Default: 90
The number of days to retain logged changes (object creations, updates, and deletions). Set this to `0` to retain
changes in the database indefinitely.
!!! warning
If enabling indefinite changelog retention, it is recommended to periodically delete old entries. Otherwise, the database may eventually exceed capacity.
---
## CORS_ORIGIN_ALLOW_ALL
Default: False
@@ -56,7 +84,15 @@ If True, cross-origin resource sharing (CORS) requests will be accepted from all
## CORS_ORIGIN_REGEX_WHITELIST
These settings specify a list of origins that are authorized to make cross-site API requests. Use `CORS_ORIGIN_WHITELIST` to define a list of exact hostnames, or `CORS_ORIGIN_REGEX_WHITELIST` to define a set of regular expressions. (These settings have no effect if `CORS_ORIGIN_ALLOW_ALL` is True.)
These settings specify a list of origins that are authorized to make cross-site API requests. Use
`CORS_ORIGIN_WHITELIST` to define a list of exact hostnames, or `CORS_ORIGIN_REGEX_WHITELIST` to define a set of regular
expressions. (These settings have no effect if `CORS_ORIGIN_ALLOW_ALL` is True.) For example:
```python
CORS_ORIGIN_WHITELIST = [
'https://example.com',
]
```
---
@@ -64,38 +100,133 @@ These settings specify a list of origins that are authorized to make cross-site
Default: False
This setting enables debugging. This should be done only during development or troubleshooting. Never enable debugging on a production system, as it can expose sensitive data to unauthenticated users.
This setting enables debugging. Debugging should be enabled only during development or troubleshooting. Note that only
clients which access NetBox from a recognized [internal IP address](#internal_ips) will see debugging tools in the user
interface.
!!! warning
Never enable debugging on a production system, as it can expose sensitive data to unauthenticated users and impose a
substantial performance penalty.
---
## DEVELOPER
Default: False
This parameter serves as a safeguard to prevent some potentially dangerous behavior, such as generating new database schema migrations. Set this to `True` **only** if you are actively developing the NetBox code base.
---
## DOCS_ROOT
Default: `$INSTALL_ROOT/docs/`
The filesystem path to NetBox's documentation. This is used when presenting context-sensitive documentation in the web UI. By default, this will be the `docs/` directory within the root NetBox installation path. (Set this to `None` to disable the embedded documentation.)
---
## EMAIL
In order to send email, NetBox needs an email server configured. The following items can be defined within the `EMAIL` setting:
In order to send email, NetBox needs an email server configured. The following items can be defined within the `EMAIL` configuration parameter:
* SERVER - Host name or IP address of the email server (use `localhost` if running locally)
* PORT - TCP port to use for the connection (default: 25)
* USERNAME - Username with which to authenticate
* PASSSWORD - Password with which to authenticate
* TIMEOUT - Amount of time to wait for a connection (seconds)
* FROM_EMAIL - Sender address for emails sent by NetBox
* `SERVER` - Hostname or IP address of the email server (use `localhost` if running locally)
* `PORT` - TCP port to use for the connection (default: `25`)
* `USERNAME` - Username with which to authenticate
* `PASSSWORD` - Password with which to authenticate
* `USE_SSL` - Use SSL when connecting to the server (default: `False`)
* `USE_TLS` - Use TLS when connecting to the server (default: `False`)
* `SSL_CERTFILE` - Path to the PEM-formatted SSL certificate file (optional)
* `SSL_KEYFILE` - Path to the PEM-formatted SSL private key file (optional)
* `TIMEOUT` - Amount of time to wait for a connection, in seconds (default: `10`)
* `FROM_EMAIL` - Sender address for emails sent by NetBox
!!! note
The `USE_SSL` and `USE_TLS` parameters are mutually exclusive.
Email is sent from NetBox only for critical events or if configured for [logging](#logging). If you would like to test the email server configuration, Django provides a convenient [send_mail()](https://docs.djangoproject.com/en/stable/topics/email/#send-mail) fuction accessible within the NetBox shell:
```no-highlight
# python ./manage.py nbshell
>>> from django.core.mail import send_mail
>>> send_mail(
'Test Email Subject',
'Test Email Body',
'noreply-netbox@example.com',
['users@example.com'],
fail_silently=False
)
```
---
# ENFORCE_GLOBAL_UNIQUE
## ENFORCE_GLOBAL_UNIQUE
Default: False
Enforcement of unique IP space can be toggled on a per-VRF basis. To enforce unique IP space within the global table (all prefixes and IP addresses not assigned to a VRF), set `ENFORCE_GLOBAL_UNIQUE` to True.
By default, NetBox will permit users to create duplicate prefixes and IP addresses in the global table (that is, those which are not assigned to any VRF). This behavior can be disabled by setting `ENFORCE_GLOBAL_UNIQUE` to True.
---
## EXEMPT_VIEW_PERMISSIONS
Default: Empty list
A list of NetBox models to exempt from the enforcement of view permissions. Models listed here will be viewable by all users, both authenticated and anonymous.
List models in the form `<app>.<model>`. For example:
```python
EXEMPT_VIEW_PERMISSIONS = [
'dcim.site',
'dcim.region',
'ipam.prefix',
]
```
To exempt _all_ models from view permission enforcement, set the following. (Note that `EXEMPT_VIEW_PERMISSIONS` must be an iterable.)
```python
EXEMPT_VIEW_PERMISSIONS = ['*']
```
!!! note
Using a wildcard will not affect certain potentially sensitive models, such as user permissions. If there is a need to exempt these models, they must be specified individually.
---
## HTTP_PROXIES
Default: None
A dictionary of HTTP proxies to use for outbound requests originating from NetBox (e.g. when sending webhook requests). Proxies should be specified by schema (HTTP and HTTPS) as per the [Python requests library documentation](https://2.python-requests.org/en/master/user/advanced/). For example:
```python
HTTP_PROXIES = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
```
---
## INTERNAL_IPS
Default: `('127.0.0.1', '::1')`
A list of IP addresses recognized as internal to the system, used to control the display of debugging output. For
example, the debugging toolbar will be viewable only when a client is accessing NetBox from one of the listed IP
addresses (and [`DEBUG`](#debug) is true).
---
## LOGGING
By default, all messages of INFO severity or higher will be logged to the console. Additionally, if `DEBUG` is False and email access has been configured, ERROR and CRITICAL messages will be emailed to the users defined in `ADMINS`.
By default, all messages of INFO severity or higher will be logged to the console. Additionally, if [`DEBUG`](#debug) is False and email access has been configured, ERROR and CRITICAL messages will be emailed to the users defined in [`ADMINS`](#admins).
The Django framework on which NetBox runs allows for the customization of logging, e.g. to write logs to file. Please consult the [Django logging documentation](https://docs.djangoproject.com/en/1.11/topics/logging/) for more information on configuring this setting. Below is an example which will write all INFO and higher messages to a file:
The Django framework on which NetBox runs allows for the customization of logging format and destination. Please consult the [Django logging documentation](https://docs.djangoproject.com/en/stable/topics/logging/) for more information on configuring this setting. Below is an example which will write all INFO and higher messages to a local file:
```
```python
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
@@ -115,6 +246,15 @@ LOGGING = {
}
```
### Available Loggers
* `netbox.<app>.<model>` - Generic form for model-specific log messages
* `netbox.auth.*` - Authentication events
* `netbox.api.views.*` - Views which handle business logic for the REST API
* `netbox.reports.*` - Report execution (`module.name`)
* `netbox.scripts.*` - Custom script execution (`module.name`)
* `netbox.views.*` - Views which handle business logic for the web UI
---
## LOGIN_REQUIRED
@@ -125,11 +265,19 @@ Setting this to True will permit only authenticated users to access any part of
---
## LOGIN_TIMEOUT
Default: 1209600 seconds (14 days)
The lifetime (in seconds) of the authentication cookie issued to a NetBox user upon login.
---
## MAINTENANCE_MODE
Default: False
Setting this to True will display a "maintenance mode" banner at the top of every page.
Setting this to True will display a "maintenance mode" banner at the top of every page. Additionally, NetBox will no longer update a user's "last active" time upon login. This is to allow new logins when the database is in a read-only state. Recording of login times will resume when maintenance mode is disabled.
---
@@ -137,25 +285,34 @@ Setting this to True will display a "maintenance mode" banner at the top of ever
Default: 1000
An API consumer can request an arbitrary number of objects by appending the "limit" parameter to the URL (e.g. `?limit=1000`). This setting defines the maximum limit. Setting it to `0` or `None` will allow an API consumer to request all objects by specifying `?limit=0`.
A web user or API consumer can request an arbitrary number of objects by appending the "limit" parameter to the URL (e.g. `?limit=1000`). This parameter defines the maximum acceptable limit. Setting this to `0` or `None` will allow a client to retrieve _all_ matching objects at once with no limit by specifying `?limit=0`.
---
## MEDIA_ROOT
Default: $BASE_DIR/netbox/media/
Default: $INSTALL_ROOT/netbox/media/
The file path to the location where media files (such as image attachments) are stored. By default, this is the `netbox/media/` directory within the base NetBox installation path.
---
## METRICS_ENABLED
Default: False
Toggle the availability Prometheus-compatible metrics at `/metrics`. See the [Prometheus Metrics](../../additional-features/prometheus-metrics/) documentation for more details.
---
## NAPALM_USERNAME
## NAPALM_PASSWORD
NetBox will use these credentials when authenticating to remote devices via the [NAPALM library](https://napalm-automation.net/), if installed. Both parameters are optional.
Note: If SSH public key authentication has been set up for the system account under which NetBox runs, these parameters are not needed.
!!! note
If SSH public key authentication has been set up on the remote device(s) for the system account under which NetBox runs, these parameters are not needed.
---
@@ -163,16 +320,16 @@ Note: If SSH public key authentication has been set up for the system account un
A dictionary of optional arguments to pass to NAPALM when instantiating a network driver. See the NAPALM documentation for a [complete list of optional arguments](http://napalm.readthedocs.io/en/latest/support/#optional-arguments). An example:
```
```python
NAPALM_ARGS = {
'api_key': '472071a93b60a1bd1fafb401d9f8ef41',
'port': 2222,
}
```
Note: Some platforms (e.g. Cisco IOS) require an argument named `secret` to be passed in addition to the normal password. If desired, you can use the configured `NAPALM_PASSWORD` as the value for this argument:
Some platforms (e.g. Cisco IOS) require an argument named `secret` to be passed in addition to the normal password. If desired, you can use the configured `NAPALM_PASSWORD` as the value for this argument:
```
```python
NAPALM_USERNAME = 'username'
NAPALM_PASSWORD = 'MySecretPassword'
NAPALM_ARGS = {
@@ -195,7 +352,40 @@ The amount of time (in seconds) to wait for NAPALM to connect to a device.
Default: 50
Determine how many objects to display per page within each list of objects.
The default maximum number of objects to display per page within each list of objects.
---
## PLUGINS
Default: Empty
A list of installed [NetBox plugins](../../plugins/) to enable. Plugins will not take effect unless they are listed here.
!!! warning
Plugins extend NetBox by allowing external code to run with the same access and privileges as NetBox itself. Only install plugins from trusted sources. The NetBox maintainers make absolutely no guarantees about the integrity or security of your installation with plugins enabled.
---
## PLUGINS_CONFIG
Default: Empty
This parameter holds configuration settings for individual NetBox plugins. It is defined as a dictionary, with each key using the name of an installed plugin. The specific parameters supported are unique to each plugin: Reference the plugin's documentation to determine the supported parameters. An example configuration is shown below:
```python
PLUGINS_CONFIG = {
'plugin1': {
'foo': 123,
'bar': True
},
'plugin2': {
'foo': 456,
},
}
```
Note that a plugin must be listed in `PLUGINS` for its configuration to take effect.
---
@@ -207,33 +397,161 @@ When determining the primary IP address for a device, IPv6 is preferred over IPv
---
## RACK_ELEVATION_DEFAULT_UNIT_HEIGHT
Default: 22
Default height (in pixels) of a unit within a rack elevation. For best results, this should be approximately one tenth of `RACK_ELEVATION_DEFAULT_UNIT_WIDTH`.
---
## RACK_ELEVATION_DEFAULT_UNIT_WIDTH
Default: 220
Default width (in pixels) of a unit within a rack elevation.
---
## REMOTE_AUTH_AUTO_CREATE_USER
Default: `False`
If true, NetBox will automatically create local accounts for users authenticated via a remote service. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_BACKEND
Default: `'netbox.authentication.RemoteUserBackend'`
This is the Python path to the custom [Django authentication backend](https://docs.djangoproject.com/en/stable/topics/auth/customizing/) to use for external user authentication. NetBox provides two built-in backends (listed below), though custom authentication backends may also be provided by other packages or plugins.
* `netbox.authentication.RemoteUserBackend`
* `netbox.authentication.LDAPBackend`
---
## REMOTE_AUTH_DEFAULT_GROUPS
Default: `[]` (Empty list)
The list of groups to assign a new user account when created using remote authentication. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_DEFAULT_PERMISSIONS
Default: `{}` (Empty dictionary)
A mapping of permissions to assign a new user account when created using remote authentication. Each key in the dictionary should be set to a dictionary of the attributes to be applied to the permission, or `None` to allow all objects. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_ENABLED
Default: `False`
NetBox can be configured to support remote user authentication by inferring user authentication from an HTTP header set by the HTTP reverse proxy (e.g. nginx or Apache). Set this to `True` to enable this functionality. (Local authentication will still take effect as a fallback.)
---
## REMOTE_AUTH_HEADER
Default: `'HTTP_REMOTE_USER'`
When remote user authentication is in use, this is the name of the HTTP header which informs NetBox of the currently authenticated user. For example, to use the request header `X-Remote-User` it needs to be set to `HTTP_X_REMOTE_USER`. (Requires `REMOTE_AUTH_ENABLED`.)
---
## RELEASE_CHECK_TIMEOUT
Default: 86,400 (24 hours)
The number of seconds to retain the latest version that is fetched from the GitHub API before automatically invalidating it and fetching it from the API again. This must be set to at least one hour (3600 seconds).
---
## RELEASE_CHECK_URL
Default: None (disabled)
This parameter defines the URL of the repository that will be checked periodically for new NetBox releases. When a new release is detected, a message will be displayed to administrative users on the home page. This can be set to the official repository (`'https://api.github.com/repos/netbox-community/netbox/releases'`) or a custom fork. Set this to `None` to disable automatic update checks.
!!! note
The URL provided **must** be compatible with the [GitHub REST API](https://docs.github.com/en/rest).
---
## REPORTS_ROOT
Default: $BASE_DIR/netbox/reports/
Default: `$INSTALL_ROOT/netbox/reports/`
The file path to the location where custom reports will be kept. By default, this is the `netbox/reports/` directory within the base NetBox installation path.
---
## RQ_DEFAULT_TIMEOUT
Default: `300`
The maximum execution time of a background task (such as running a custom script), in seconds.
---
## SCRIPTS_ROOT
Default: `$INSTALL_ROOT/netbox/scripts/`
The file path to the location where custom scripts will be kept. By default, this is the `netbox/scripts/` directory within the base NetBox installation path.
---
## SESSION_FILE_PATH
Default: None
HTTP session data is used to track authenticated users when they access NetBox. By default, NetBox stores session data in its 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 NetBox system user must have read and write permissions to this path.
---
## STORAGE_BACKEND
Default: None (local storage)
The backend storage engine for handling uploaded files (e.g. image attachments). NetBox supports integration with the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) package, which provides backends for several popular file storage services. If not configured, local filesystem storage will be used.
The configuration parameters for the specified storage backend are defined under the `STORAGE_CONFIG` setting.
---
## STORAGE_CONFIG
Default: Empty
A dictionary of configuration parameters for the storage backend configured as `STORAGE_BACKEND`. The specific parameters to be used here are specific to each backend; see the [`django-storages` documentation](https://django-storages.readthedocs.io/en/stable/) for more detail.
If `STORAGE_BACKEND` is not defined, this setting will be ignored.
---
## TIME_ZONE
Default: UTC
The time zone NetBox will use when dealing with dates and times. It is recommended to use UTC time unless you have a specific need to use a local time zone. [List of available time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
The time zone NetBox will use when dealing with dates and times. It is recommended to use UTC time unless you have a specific need to use a local time zone. Please see the [list of available time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
---
## Date and Time Formatting
You may define custom formatting for date and times. For detailed instructions on writing format strings, please see [the Django documentation](https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date).
You may define custom formatting for date and times. For detailed instructions on writing format strings, please see [the Django documentation](https://docs.djangoproject.com/en/stable/ref/templates/builtins/#date). Default formats are listed below.
Defaults:
```
```python
DATE_FORMAT = 'N j, Y' # June 26, 2016
SHORT_DATE_FORMAT = 'Y-m-d' # 2016-06-27
SHORT_DATE_FORMAT = 'Y-m-d' # 2016-06-26
TIME_FORMAT = 'g:i a' # 1:23 p.m.
SHORT_TIME_FORMAT = 'H:i:s' # 13:23:00
DATETIME_FORMAT = 'N j, Y g:i a' # June 26, 2016 1:23 p.m.
SHORT_DATETIME_FORMAT = 'Y-m-d H:i' # 2016-06-27 13:23
SHORT_DATETIME_FORMAT = 'Y-m-d H:i' # 2016-06-26 13:23
```

View File

@@ -0,0 +1,147 @@
# Required Configuration Settings
## ALLOWED_HOSTS
This is a list of valid fully-qualified domain names (FQDNs) and/or IP addresses that can be used to reach the NetBox service. Usually this is the same as the hostname for the NetBox server, but can also be different; for example, when using a reverse proxy serving the NetBox website under a different FQDN than the hostname of the NetBox server. To help guard against [HTTP Host header attackes](https://docs.djangoproject.com/en/3.0/topics/security/#host-headers-virtual-hosting), NetBox will not permit access to the server via any other hostnames (or IPs).
!!! note
This parameter must always be defined as a list or tuple, even if only value is provided.
The value of this option is also used to set `CSRF_TRUSTED_ORIGINS`, which restricts POST requests to the same set of hosts (more about this [here](https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-CSRF_TRUSTED_ORIGINS)). Keep in mind that NetBox, by default, sets `USE_X_FORWARDED_HOST` to true, which means that if you're using a reverse proxy, it's the FQDN used to reach that reverse proxy which needs to be in this list (more about this [here](https://docs.djangoproject.com/en/stable/ref/settings/#allowed-hosts)).
Example:
```
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
If you are not yet sure what the domain name and/or IP address of the NetBox installation will be, and are comfortable accepting the risks in doing so, you can set this to a wildcard (asterisk) to allow all host values:
```
ALLOWED_HOSTS = ['*']
```
---
## DATABASE
NetBox requires access to a PostgreSQL 9.6 or later database service to store data. This service can run locally on the NetBox server or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
* `NAME` - Database name
* `USER` - PostgreSQL username
* `PASSWORD` - PostgreSQL password
* `HOST` - Name or IP address of the database server (use `localhost` if running locally)
* `PORT` - TCP port of the PostgreSQL service; leave blank for default port (TCP/5432)
* `CONN_MAX_AGE` - Lifetime of a [persistent database connection](https://docs.djangoproject.com/en/stable/ref/databases/#persistent-connections), in seconds (300 is the default)
Example:
```python
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
}
```
!!! note
NetBox supports all PostgreSQL database options supported by the underlying Django framework. For a complete list of available parameters, please see [the Django documentation](https://docs.djangoproject.com/en/stable/ref/settings/#databases).
---
## REDIS
[Redis](https://redis.io/) is an in-memory data store similar to memcached. While Redis has been an optional component of
NetBox since the introduction of webhooks in version 2.4, it is required starting in 2.6 to support NetBox's caching
functionality (as well as other planned features). In 2.7, the connection settings were broken down into two sections for
task queuing and caching, allowing the user to connect to different Redis instances/databases per feature.
Redis is configured using a configuration setting similar to `DATABASE` and these settings are the same for both of the `tasks` and `caching` subsections:
* `HOST` - Name or IP address of the Redis server (use `localhost` if running locally)
* `PORT` - TCP port of the Redis service; leave blank for default port (6379)
* `PASSWORD` - Redis password (if set)
* `DATABASE` - Numeric database ID
* `SSL` - Use SSL connection to Redis
An example configuration is provided below:
```python
REDIS = {
'tasks': {
'HOST': 'redis.example.com',
'PORT': 1234,
'PASSWORD': 'foobar',
'DATABASE': 0,
'SSL': False,
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1,
'SSL': False,
}
}
```
!!! note
If you are upgrading from a NetBox release older than v2.7.0, please note that the Redis connection configuration
settings have changed. Manual modification to bring the `REDIS` section inline with the above specification is
necessary
!!! warning
It is highly recommended to keep the task and cache databases separate. Using the same database number on the
same Redis instance for both may result in queued background tasks being lost during cache flushing events.
### Using Redis Sentinel
If you are using [Redis Sentinel](https://redis.io/topics/sentinel) for high-availability purposes, there is minimal
configuration necessary to convert NetBox to recognize it. It requires the removal of the `HOST` and `PORT` keys from
above and the addition of two new keys.
* `SENTINELS`: List of tuples or tuple of tuples with each inner tuple containing the name or IP address
of the Redis server and port for each sentinel instance to connect to
* `SENTINEL_SERVICE`: Name of the master / service to connect to
* `SENTINEL_TIMEOUT`: Connection timeout, in seconds
Example:
```python
REDIS = {
'tasks': {
'SENTINELS': [('mysentinel.redis.example.com', 6379)],
'SENTINEL_SERVICE': 'netbox',
'SENTINEL_TIMEOUT': 10,
'PASSWORD': '',
'DATABASE': 0,
'SSL': False,
},
'caching': {
'SENTINELS': [
('mysentinel.redis.example.com', 6379),
('othersentinel.redis.example.com', 6379)
],
'SENTINEL_SERVICE': 'netbox',
'PASSWORD': '',
'DATABASE': 1,
'SSL': False,
}
}
```
!!! note
It is permissible to use Sentinel for only one database and not the other.
---
## SECRET_KEY
This is a secret, random string used to assist in the creation new cryptographic hashes for passwords and HTTP cookies. The key defined here should not be shared outside of the configuration file. `SECRET_KEY` can be changed at any time, however be aware that doing so will invalidate all existing sessions.
Please note that this key is **not** used directly for hashing user passwords or for the encrypted storage of secret data in NetBox.
`SECRET_KEY` should be at least 50 characters in length and contain a random mix of letters, digits, and symbols. The script located at `$INSTALL_ROOT/netbox/generate_secret_key.py` may be used to generate a suitable key.

View File

@@ -0,0 +1,9 @@
# Circuits
{!docs/models/circuits/provider.md!}
---
{!docs/models/circuits/circuit.md!}
{!docs/models/circuits/circuittype.md!}
{!docs/models/circuits/circuittermination.md!}

View File

@@ -0,0 +1,40 @@
# Device Types
{!docs/models/dcim/devicetype.md!}
{!docs/models/dcim/manufacturer.md!}
---
## Device Component Templates
Each device type is assigned a number of component templates which define the physical components within a device. These are:
* Console ports
* Console server ports
* 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:
* One template for a console port ("Console")
* Two templates for power ports ("PSU0" and "PSU1")
* 48 templates for 1GE interfaces ("ge-0/0/0" through "ge-0/0/47")
* Four templates for 10GE interfaces ("xe-0/2/0" through "xe-0/2/3")
Once component templates have been created, every new device that you create as an instance of this type will automatically be assigned each of the components listed above.
!!! note
Assignment of components from templates occurs only at the time of device creation. If you modify the templates of a device type, it will not affect devices which have already been created. However, you always have the option of adding, modifying, or deleting components on existing devices.
{!docs/models/dcim/consoleporttemplate.md!}
{!docs/models/dcim/consoleserverporttemplate.md!}
{!docs/models/dcim/powerporttemplate.md!}
{!docs/models/dcim/poweroutlettemplate.md!}
{!docs/models/dcim/interfacetemplate.md!}
{!docs/models/dcim/frontporttemplate.md!}
{!docs/models/dcim/rearporttemplate.md!}
{!docs/models/dcim/devicebaytemplate.md!}

View File

@@ -0,0 +1,27 @@
# Devices and Cabling
{!docs/models/dcim/device.md!}
{!docs/models/dcim/devicerole.md!}
{!docs/models/dcim/platform.md!}
---
## Device Components
{!docs/models/dcim/consoleport.md!}
{!docs/models/dcim/consoleserverport.md!}
{!docs/models/dcim/powerport.md!}
{!docs/models/dcim/poweroutlet.md!}
{!docs/models/dcim/interface.md!}
{!docs/models/dcim/frontport.md!}
{!docs/models/dcim/rearport.md!}
{!docs/models/dcim/devicebay.md!}
{!docs/models/dcim/inventoryitem.md!}
---
{!docs/models/dcim/virtualchassis.md!}
---
{!docs/models/dcim/cable.md!}

View File

@@ -0,0 +1,18 @@
# IP Address Management
{!docs/models/ipam/aggregate.md!}
{!docs/models/ipam/rir.md!}
---
{!docs/models/ipam/prefix.md!}
{!docs/models/ipam/role.md!}
---
{!docs/models/ipam/ipaddress.md!}
---
{!docs/models/ipam/vrf.md!}
{!docs/models/ipam/routetarget.md!}

View File

@@ -0,0 +1,8 @@
# Power Tracking
{!docs/models/dcim/powerpanel.md!}
{!docs/models/dcim/powerfeed.md!}
# Example Power Topology
![Power distribution model](../../media/power_distribution.png)

View File

@@ -0,0 +1,8 @@
# Secrets
{!docs/models/secrets/secret.md!}
{!docs/models/secrets/secretrole.md!}
---
{!docs/models/secrets/userkey.md!}

View File

@@ -0,0 +1,3 @@
# Service Mapping
{!docs/models/ipam/service.md!}

View File

@@ -0,0 +1,11 @@
# Sites and Racks
{!docs/models/dcim/site.md!}
{!docs/models/dcim/region.md!}
---
{!docs/models/dcim/rack.md!}
{!docs/models/dcim/rackgroup.md!}
{!docs/models/dcim/rackrole.md!}
{!docs/models/dcim/rackreservation.md!}

View File

@@ -0,0 +1,4 @@
# Tenancy Assignment
{!docs/models/tenancy/tenant.md!}
{!docs/models/tenancy/tenantgroup.md!}

View File

@@ -0,0 +1,10 @@
# Virtualization
{!docs/models/virtualization/cluster.md!}
{!docs/models/virtualization/clustertype.md!}
{!docs/models/virtualization/clustergroup.md!}
---
{!docs/models/virtualization/virtualmachine.md!}
{!docs/models/virtualization/vminterface.md!}

View File

@@ -0,0 +1,4 @@
# VLAN Management
{!docs/models/ipam/vlan.md!}
{!docs/models/ipam/vlangroup.md!}

View File

@@ -1,33 +0,0 @@
The circuits component of NetBox deals with the management of long-haul Internet and private transit links and providers.
# Providers
A provider is any entity which provides some form of connectivity. While this obviously includes carriers which offer Internet and private transit service, it might also include Internet exchange (IX) points and even organizations with whom you peer directly.
Each provider may be assigned an autonomous system number (ASN), an account number, and contact information.
---
# Circuits
A circuit represents a single physical data link connecting two endpoints. Each circuit belongs to a provider and must be assigned a circuit ID which is unique to that provider.
### Circuit Types
Circuits are classified by type. For example, you might define circuit types for:
* Internet transit
* Out-of-band connectivity
* Peering
* Private backhaul
Circuit types are fully customizable.
### Circuit Terminations
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.
!!! 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.

View File

@@ -1,114 +0,0 @@
Data center infrastructure management (DCIM) entails all physical assets: sites, racks, devices, cabling, etc.
# Sites
How you choose to use sites will depend on the nature of your organization, but typically a site will equate to a building or campus. For example, a chain of banks might create a site to represent each of its branches, a site for its corporate headquarters, and two additional sites for its presence in two colocation facilities.
Sites can be assigned an optional facility ID to identify the actual facility housing colocated equipment, and an Autonomous System (AS) number.
### Regions
Sites can be arranged geographically using regions. A region might represent a continent, country, city, campus, or other area depending on your use case. Regions can be nested recursively to construct a hierarchy. For example, you might define several country regions, and within each of those several state or city regions to which sites are assigned.
---
# Racks
The rack model represents a physical two- or four-post equipment rack in which equipment is mounted. Each rack is assigned to a site. Rack height is measured in *rack units* (U); racks are commonly between 42U and 48U, but NetBox allows you to define racks of arbitrary height. Each rack has two faces (front and rear) on which devices can be mounted.
Each rack is assigned a name and (optionally) a separate facility ID. This is helpful when leasing space in a data center your organization does not own: The facility will often assign a seemingly arbitrary ID to a rack (for example, "M204.313") whereas internally you refer to is simply as "R113." The facility ID can alternatively be used to store a rack's serial number.
The available rack types include 2- and 4-post frames, 4-post cabinet, and wall-mounted frame and cabinet. Rail-to-rail width may be 19 or 23 inches.
### Rack Groups
Racks can be arranged into groups. As with sites, how you choose to designate rack groups will depend on the nature of your organization. For example, if each site represents a campus, each group might represent a building within a campus. If each site represents a building, each rack group might equate to a floor or room.
Each group is assigned to a parent site for easy navigation. Hierarchical recursion of rack groups is not supported.
### Rack Roles
Each rack can optionally be assigned a functional role. For example, you might designate a rack for compute or storage resources, or to house colocated customer devices. Rack roles are fully customizable.
### Rack Space Reservations
Users can reserve units within a rack for future use. Multiple non-contiguous rack units can be associated with a single reservation (but reservations cannot span multiple racks).
---
# Device Types
A device type represents a particular hardware model that exists in the real world. Device types describe the physical attributes of a device (rack height and depth), its class (e.g. console server, PDU, etc.), and its individual components (console, power, and data).
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.
### Manufacturers
Each device type belongs to one manufacturer; e.g. Cisco, Opengear, or APC. The model number of a device type must be unique to its manufacturer.
### Component Templates
Each device type is assigned a number of component templates which define the physical interfaces a device has. These are:
* Console ports
* Console server ports
* Power ports
* Power outlets
* Interfaces
* Device bays
Whenever a new device is created, it is automatically assigned components per the templates assigned to its device type. For example, a Juniper EX4300-48T device type might have the following component templates:
* One template for a console port ("Console")
* Two templates for power ports ("PSU0" and "PSU1")
* 48 templates for 1GE interfaces ("ge-0/0/0" through "ge-0/0/47")
* Four templates for 10GE interfaces ("xe-0/2/0" through "xe-0/2/3")
Once component templates have been created, every new device that you create as an instance of this type will automatically be assigned each of the components listed above.
!!! note
Assignment of components from templates occurs only at the time of device creation. If you modify the templates of a device type, it will not affect devices which have already been created. However, you always have the option of adding, modifying, or deleting components of existing devices individually.
---
# Devices
Every piece of hardware which is installed within a rack exists in NetBox as a device. Devices are measured in rack units (U) and depth. 0U devices which can be installed in a rack but don't consume vertical rack space (such as a vertically-mounted power distribution unit) can also be defined.
When assigning a multi-U device to a rack, it is considered to be mounted in the lowest-numbered rack unit which it occupies. For example, a 3U device which occupies U8 through U10 shows as being mounted in U8. This logic applies to racks with both ascending and descending unit numbering.
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 air flow.
### Roles
NetBox allows for the definition of arbitrary device roles by which devices can be organized. For example, you might create roles for core switches, distribution switches, and access switches. In the interest of simplicity, a device can belong to only one role.
### Platforms
A device's platform is used to denote the type of software running on it. This can be helpful when it is necessary to distinguish between, for instance, different feature sets. Note that two devices of same type may be assigned different platforms: for example, one Juniper MX240 running Junos 14 and another running Junos 15.
The assignment of platforms to devices is an optional feature, and may be disregarded if not desired.
### Inventory Items
Inventory items represent hardware components installed within a device, such as a power supply or CPU. Currently, these are used merely for inventory tracking, although future development might see their functionality expand. Each item can optionally be assigned a manufacturer.
!!! note
Prior to version 2.0, inventory items were called modules.
### Components
There are six types of device components which comprise all of the interconnection logic with NetBox:
* Console ports
* Console server ports
* Power ports
* Power outlets
* Interfaces
* Device bays
Console ports connect only to console server ports, and power ports connect only to power outlets. Interfaces connect to one another in a symmetric manner: If interface A connects to interface B, interface B therefore connects to interface A. (The relationship between two interfaces is actually represented in the database by an InterfaceConnection object, but this is transparent to the user.) Each type of connection can be classified as either *planned* or *connected*. This allows for easily denoting connections which have not yet been installed.
Each interface is a assigned a form factor denoting its physical properties. Two special form factors exist: the "virtual" form factor can be used to designate logical interfaces (such as SVIs), and the "LAG" form factor can be used to desinate link aggregation groups to which physical interfaces can be assigned. Each interface can also be designated as management-only (for out-of-band management) and assigned a short description.
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 on rack elevations, but they are included in the "Non-Racked Devices" list within the rack view.

View File

@@ -1,132 +0,0 @@
This section entails features of NetBox which are not crucial to its primary functions, but provide additional value.
# Custom Fields
Each object in NetBox is represented in the database as a discrete table, and each attribute of an object exists as a column within its table. For example, sites are stored in the `dcim_site` table, which has columns named `name`, `facility`, `physical_address`, and so on. As new attributes are added to objects throughout the development of NetBox, tables are expanded to include new rows.
However, some users might want to associate with objects attributes that are somewhat esoteric in nature, and that would not make sense to include in the core NetBox database schema. For instance, suppose your organization needs to associate each device with a ticket number pointing to the support ticket that was opened to have it installed. This is certainly a legitimate use for NetBox, but it's perhaps not a common enough need to warrant expanding the internal data schema. Instead, you can create a custom field to hold this data.
Custom fields must be created through the admin UI under Extras > Custom Fields. To create a new custom field, select the object(s) to which you want it to apply, and the type of field it will be. NetBox supports six field types:
* Free-form text (up to 255 characters)
* Integer
* Boolean (true/false)
* Date
* URL
* Selection
Assign the field a name. This should be a simple database-friendly string, e.g. `tps_report`. You may optionally assign the field a human-friendly label (e.g. "TPS report") as well; the label will be displayed on forms. If a description is provided, it will appear beneath the field in a form.
Marking the field as required will require the user to provide a value for the field when creating a new object or when saving an existing object. A default value for the field may also be provided. Use "true" or "false" for boolean fields. (The default value has no effect for selection fields.)
When creating a selection field, you should create at least two choices. These choices will be arranged first by weight, with lower weights appearing higher in the list, and then alphabetically.
## Using Custom Fields
When a single object is edited, the form will include any custom fields which have been defined for the object type. These fields are included in the "Custom Fields" panel. On the backend, each custom field value is saved separately from the core object as an independent database call, so it's best to avoid adding too many custom fields per object.
When editing multiple objects, custom field values are saved in bulk. There is no significant difference in overhead when saving a custom field value for 100 objects versus one object. However, the bulk operation must be performed separately for each custom field.
# Export Templates
NetBox allows users to define custom templates that can be used when exporting objects. To create an export template, navigate to Extras > Export Templates under the admin interface.
Each export template is associated with a certain type of object. For instance, if you create an export template for VLANs, your custom template will appear under the "Export" button on the VLANs list.
Export templates are written in [Django's template language](https://docs.djangoproject.com/en/1.9/ref/templates/language/), which is very similar to Jinja2. The list of objects returned from the database is stored in the `queryset` variable, which you'll typically want to iterate through using a `for` loop. Object properties can be access by name. For example:
```
{% for rack in queryset %}
Rack: {{ rack.name }}
Site: {{ rack.site.name }}
Height: {{ rack.u_height }}U
{% endfor %}
```
To access custom fields of an object within a template, use the `cf` attribute. For example, `{{ obj.cf.color }}` will return the value (if any) for a custom field named `color` on `obj`.
A MIME type and file extension can optionally be defined for each export template. The default MIME type is `text/plain`.
## Example
Here's an example device export template that will generate a simple Nagios configuration from a list of devices.
```
{% for device in queryset %}{% if device.status and device.primary_ip %}define host{
use generic-switch
host_name {{ device.name }}
address {{ device.primary_ip.address.ip }}
}
{% endif %}{% endfor %}
```
The generated output will look something like this:
```
define host{
use generic-switch
host_name switch1
address 192.0.2.1
}
define host{
use generic-switch
host_name switch2
address 192.0.2.2
}
define host{
use generic-switch
host_name switch3
address 192.0.2.3
}
```
# Graphs
NetBox does not have the ability to generate graphs natively, but this feature allows you to embed contextual graphs from an external resources (such as a monitoring system) inside the site, provider, and interface views. Each embedded graph must be defined with the following parameters:
* **Type:** Site, provider, or interface. This determines in which view the graph will be displayed.
* **Weight:** Determines the order in which graphs are displayed (lower weights are displayed first). Graphs with equal weights will be ordered alphabetically by name.
* **Name:** The title to display above the graph.
* **Source URL:** The source of the image to be embedded. The associated object will be available as a template variable named `obj`.
* **Link URL (optional):** A URL to which the graph will be linked. The associated object will be available as a template variable named `obj`.
## Examples
You only need to define one graph object for each graph you want to include when viewing an object. For example, if you want to include a graph of traffic through an interface over the past five minutes, your graph source might looks like this:
```
https://my.nms.local/graphs/?node={{ obj.device.name }}&interface={{ obj.name }}&duration=5m
```
You can define several graphs to provide multiple contexts when viewing an object. For example:
```
https://my.nms.local/graphs/?type=throughput&node={{ obj.device.name }}&interface={{ obj.name }}&duration=60m
https://my.nms.local/graphs/?type=throughput&node={{ obj.device.name }}&interface={{ obj.name }}&duration=24h
https://my.nms.local/graphs/?type=errors&node={{ obj.device.name }}&interface={{ obj.name }}&duration=60m
```
# Topology Maps
NetBox can generate simple topology maps from the physical network connections recorded in its database. First, you'll need to create a topology map definition under the admin UI at Extras > Topology Maps.
Each topology map is associated with a site. A site can have multiple topology maps, which might each illustrate a different aspect of its infrastructure (for example, production versus backend infrastructure).
To define the scope of a topology map, decide which devices you want to include. The map will only include interface connections with both points terminated on an included device. Specify the devices to include in the **device patterns** field by entering a list of [regular expressions](https://en.wikipedia.org/wiki/Regular_expression) matching device names. For example, if you wanted to include "mgmt-switch1" through "mgmt-switch99", you might use the regex `mgmt-switch\d+`.
Each line of the **device patterns** field represents a hierarchical layer within the topology map. For example, you might map a traditional network with core, distribution, and access tiers like this:
```
core-switch-[abcd]
dist-switch\d
access-switch\d+;oob-switch\d+
```
Note that you can combine multiple regexes onto one line using semicolons. The order in which regexes are listed on a line is significant: devices matching the first regex will be rendered first, and subsequent groups will be rendered to the right of those.
# Image Attachments
Certain objects within NetBox (namely sites, racks, and devices) can have photos or other images attached to them. (Note that _only_ image files are supported.) Each attachment may optionally be assigned a name; if omitted, the attachment will be represented by its file name.
!!! note
If you experience a server error while attempting to upload an image attachment, verify that the system user NetBox runs as has write permission to the media root directory (`netbox/media/`).

View File

@@ -1,99 +0,0 @@
IP address management (IPAM) entails the allocation of IP networks, addresses, and related numeric resources.
# VRFs
A VRF object in NetBox represents a virtual routing and forwarding (VRF) domain within a network. Each VRF is essentially a separate routing table: the same IP prefix or address can exist in multiple VRFs. VRFs are commonly used to isolate customers or organizations from one another within a network.
Each VRF is assigned a name and a unique route distinguisher (RD). VRFs are an optional feature of NetBox: Any IP prefix or address not assigned to a VRF is said to belong to the "global" table.
!!! note
By default, NetBox allows for overlapping IP space both in the global table and within each VRF. Unique space enforcement can be toggled per-VRF as well as in the global table using the `ENFORCE_GLOBAL_UNIQUE` configuration setting.
---
# Aggregates
IP address space is organized as a hierarchy, with more-specific (smaller) prefixes arranged as child nodes under less-specific (larger) prefixes. For example:
* 10.0.0.0/8
* 10.1.0.0/16
* 10.1.2.0/24
The root of the IPv4 hierarchy is 0.0.0.0/0, which encompasses all possible IPv4 addresses (and similarly, ::/0 for IPv6). However, even the largest organizations use only a small fraction of the global address space. Therefore, it makes sense to track in NetBox only the address space which is of interest to your organization.
Aggregates serve as arbitrary top-level nodes in the IP space hierarchy. They allow you to easily construct your IP scheme without any clutter of unused address space. For instance, most organizations utilize some portion of the private IPv4 space set aside in RFC 1918. So, you might define three aggregates for this space:
* 10.0.0.0/8
* 172.16.0.0/12
* 192.168.0.0/16
Additionally, you might define an aggregate for each large swath of public IPv4 space your organization uses. You'd also create aggregates for both globally routable and unique local IPv6 space. (Most organizations will not have a need to track IPv6 link local space.)
Prefixes you create in NetBox (discussed below) will be automatically organized under their respective aggregates. Any space within an aggregate which is not covered by an existing prefix will be annotated as available for allocation. Total utilization for each aggregate is displayed in the aggregates list.
Aggregates cannot overlap with one another; they can only exist in parallel. For instance, you cannot define both 10.0.0.0/8 and 10.16.0.0/16 as aggregates, because they overlap. 10.16.0.0/16 in this example would be created as a prefix and automatically grouped under 10.0.0.0/8.
### RIRs
Regional Internet Registries (RIRs) are responsible for the allocation of global address space. The five RIRs are ARIN, RIPE, APNIC, LACNIC, and AFRINIC. However, some address space has been set aside for private or internal use only, such as defined in RFCs 1918 and 6598. NetBox considers these RFCs as a sort of RIR as well; that is, an authority which "owns" certain address space.
Each aggregate must be assigned to one RIR. You are free to define whichever RIRs you choose (or create your own). Each RIR can be annotated as representing only private space.
---
# Prefixes
A prefix is an IPv4 or IPv6 network and mask expressed in CIDR notation (e.g. 192.0.2.0/24). A prefix entails only the "network portion" of an IP address; all bits in the address not covered by the mask must be zero.
Each prefix may be assigned to one VRF; prefixes not assigned to a VRF are assigned to the "global" table. Prefixes are also organized under their respective aggregates, irrespective of VRF assignment.
A prefix may optionally be assigned to one VLAN; a VLAN may have multiple prefixes assigned to it. Each prefix may also be assigned a short description.
### Statuses
Each prefix is assigned an operational status. This is one of the following:
* Container - A summary of child prefixes
* Active - Provisioned and in use
* Reserved - Designated for future use
* Deprecated - No longer in use
### Roles
Whereas a status describes a prefix's operational state, a role describes its function. For example, roles might include:
* Access segment
* Infrastructure
* NAT
* Lab
* Out-of-band
Role assignment is optional and roles are fully customizable.
---
# IP Addresses
An IP address comprises a single address (either IPv4 or IPv6) and its subnet mask. Its mask should match exactly how the IP address is configured on an interface in the real world.
Like prefixes, an IP address can optionally be assigned to a VRF (or it will appear in the "global" table). IP addresses are automatically organized under parent prefixes within their respective VRFs. Each IP address can also be assigned a short description.
An IP address can be assigned to a device's interface; an interface may have multiple IP addresses assigned to it. Further, each device may have one of its interface IPs designated as its primary IP address (for both IPv4 and IPv6).
One IP address can be designated as the network address translation (NAT) IP address for exactly one other IP address. This is useful primarily to denote the public address for a private internal IP. Tracking one-to-many NAT (or PAT) assignments is not supported.
---
# VLANs
A VLAN represents an isolated layer two domain, identified by a name and a numeric ID (1-4094) as defined in [IEEE 802.1Q](https://en.wikipedia.org/wiki/IEEE_802.1Q). Each VLAN may be assigned to a site and/or VLAN group. Like prefixes, each VLAN is assigned an operational status and (optionally) a functional role, and may include a short description.
### VLAN Groups
VLAN groups can be employed for administrative organization within NetBox. Each VLAN within a group must have a unique ID and name. VLANs which are not assigned to a group may have overlapping names and IDs, including within a site.
---
# Services
A service represents a TCP or UDP service available on a device or virtual machine. Each service must be defined with a name, protocol, and port number; for example, "SSH (TCP/22)." A service may optionally be bound to one or more specific IP addresses belonging to its parent. (If no IP addresses are bound, the service is assumed to be reachable via any assigned IP address.)

View File

@@ -1,20 +0,0 @@
NetBox supports the assignment of resources to tenant organizations. Typically, these are used to represent individual customers of or internal departments within the organization using NetBox.
# Tenants
A tenant represents a discrete organization. The following objects can be assigned to tenants:
* Sites
* Racks
* Devices
* VRFs
* Prefixes
* IP addresses
* VLANs
* Circuits
If a prefix or IP address is not assigned to a tenant, it will appear to inherit the tenant to which its parent VRF is assigned, if any.
### Tenant Groups
Tenants can be grouped by type. For instance, you might create one group called "Customers" and one called "Acquisitions." The assignment of tenants to groups is optional.

View File

@@ -1,29 +0,0 @@
NetBox supports the definition of virtual machines arranged in clusters. A cluster can optionally have physical host devices associated with it.
# Clusters
A cluster is a logical grouping of physical resources within which virtual machines run. A cluster must be assigned a type, and may optionally be assigned an organizational group.
Physical devices (from NetBox's DCIM component) may be associated with clusters as hosts. This allows users to track on which host(s) a particular VM may reside. However, NetBox does not support pinning a specific VM within a cluster to a particular host device.
### Cluster Types
A cluster type represents a technology or mechanism by which a cluster is formed. For example, you might create a cluster type named "VMware vSphere" for a locally hosted cluster or "DigitalOcean NYC3" for one hosted by a cloud provider.
### Cluster Groups
Cluster groups may be created for the purpose of organizing clusters.
---
# Virtual Machines
A virtual machine represents a virtual compute instance hosted within a cluster. Each VM must be associated with exactly one cluster.
Like devices, each VM can have interfaces created on it. These behave similarly to device interfaces, and can be assigned IP addresses, however given their virtual nature they cannot be connected to other interfaces. VMs can also be assigned layer four services. Unlike physical devices, VMs cannot be assigned console or power ports, or device bays.
The following resources can be defined for each VM:
* vCPU count
* Memory (MB)
* Disk space (GB)

View File

@@ -0,0 +1,57 @@
# Application Registry
The registry is an in-memory data structure which houses various application-wide parameters, such as the list of enabled plugins. It is not exposed to the user and is not intended to be modified by any code outside of NetBox core.
The registry behaves essentially like a Python dictionary, with the notable exception that once a store (key) has been declared, it cannot be deleted or overwritten. The value of a store can, however, be modified; e.g. by appending a value to a list. Store values generally do not change once the application has been initialized.
The registry can be inspected by importing `registry` from `extras.registry`.
## Stores
### `model_features`
A dictionary of particular features (e.g. custom fields) mapped to the NetBox models which support them, arranged by app. For example:
```python
{
'custom_fields': {
'circuits': ['provider', 'circuit'],
'dcim': ['site', 'rack', 'devicetype', ...],
...
},
'webhooks': {
...
},
...
}
```
### `plugin_menu_items`
Navigation menu items provided by NetBox plugins. Each plugin is registered as a key with the list of menu items it provides. An example:
```python
{
'Plugin A': (
<MenuItem>, <MenuItem>, <MenuItem>,
),
'Plugin B': (
<MenuItem>, <MenuItem>, <MenuItem>,
),
}
```
### `plugin_template_extensions`
Plugin content that gets embedded into core NetBox templates. The store comprises NetBox models registered as dictionary keys, each pointing to a list of applicable template extension classes that exist. An example:
```python
{
'dcim.site': [
<TemplateExtension>, <TemplateExtension>, <TemplateExtension>,
],
'dcim.rack': [
<TemplateExtension>, <TemplateExtension>,
],
}
```

View File

@@ -0,0 +1,82 @@
# Extending Models
Below is a list of tasks to consider when adding a new field to a core model.
## 1. Generate and run database migrations
Django migrations are used to express changes to the database schema. In most cases, Django can generate these automatically, however very complex changes may require manual intervention. Always remember to specify a short but descriptive name when generating a new migration.
```
./manage.py makemigrations <app> -n <name>
./manage.py migrate
```
Where possible, try to merge related changes into a single migration. For example, if three new fields are being added to different models within an app, these can be expressed in the same migration. You can merge a new migration with an existing one by combining their `operations` lists.
!!! note
Migrations can only be merged within a release. Once a new release has been published, its migrations cannot be altered (other than for the purpose of correcting a bug).
## 2. Add validation logic to `clean()`
If the new field introduces additional validation requirements (beyond what's included with the field itself), implement them in the model's `clean()` method. Remember to call the model's original method using `super()` before or after your custom validation as appropriate:
```
class Foo(models.Model):
def clean(self):
super().clean()
# Custom validation goes here
if self.bar is None:
raise ValidationError()
```
## 3. Add CSV helpers
Add the name of the new field to `csv_headers` and included a CSV-friendly representation of its data in the model's `to_csv()` method. These will be used when exporting objects in CSV format.
## 4. Update relevant querysets
If you're adding a relational field (e.g. `ForeignKey`) and intend to include the data when retreiving a list of objects, be sure to include the field using `prefetch_related()` as appropriate. This will optimize the view and avoid extraneous database queries.
## 5. Update API serializer
Extend the model's API serializer in `<app>.api.serializers` to include the new field. In most cases, it will not be necessary to also extend the nested serializer, which produces a minimal represenation of the model.
## 6. Add field to forms
Extend any forms to include the new field as appropriate. Common forms include:
* **Credit/edit** - Manipulating a single object
* **Bulk edit** - Performing a change on many objects at once
* **CSV import** - The form used when bulk importing objects in CSV format
* **Filter** - Displays the options available for filtering a list of objects (both UI and API)
## 7. Extend object filter set
If the new field should be filterable, add it to the `FilterSet` for the model. If the field should be searchable, remember to reference it in the FilterSet's `search()` method.
## 8. Add column to object table
If the new field will be included in the object list view, add a column to the model's table. For simple fields, adding the field name to `Meta.fields` will be sufficient. More complex fields may require declaring a custom column.
## 9. Update the UI templates
Edit the object's view template to display the new field. There may also be a custom add/edit form template that needs to be updated.
## 10. Create/extend test cases
Create or extend the relevant test cases to verify that the new field and any accompanying validation logic perform as expected. This is especially important for relational fields. NetBox incorporates various test suites, including:
* API serializer/view tests
* Filter tests
* Form tests
* Model tests
* View tests
Be diligent to ensure all of the relevant test suites are adapted or extended as necessary to test any new functionality.
## 11. Update the model's documentation
Each model has a dedicated page in the documentation, at `models/<app>/<model>.md`. Update this file to include any relevant information about the new field.

View File

@@ -0,0 +1,140 @@
# Getting Started
## Setting up a Development Environment
Getting started with NetBox development is pretty straightforward, and should feel very familiar to anyone with Django development experience. There are a few things you'll need:
* A Linux system or environment
* A PostgreSQL server, which can be installed locally [per the documentation](/installation/1-postgresql/)
* A Redis server, which can also be [installed locally](/installation/2-redis/)
* A supported version of Python
### Fork the Repo
Assuming you'll be working on your own fork, your first step will be to fork the [official git repository](https://github.com/netbox-community/netbox). (If you're a maintainer who's going to be working directly with the official repo, skip this step.) You can then clone your GitHub fork locally for development:
```no-highlight
$ git clone https://github.com/youruseraccount/netbox.git
Cloning into 'netbox'...
remote: Enumerating objects: 231, done.
remote: Counting objects: 100% (231/231), done.
remote: Compressing objects: 100% (147/147), done.
remote: Total 56705 (delta 134), reused 145 (delta 84), pack-reused 56474
Receiving objects: 100% (56705/56705), 27.96 MiB | 34.92 MiB/s, done.
Resolving deltas: 100% (44177/44177), done.
$ ls netbox/
base_requirements.txt contrib docs mkdocs.yml NOTICE requirements.txt upgrade.sh
CHANGELOG.md CONTRIBUTING.md LICENSE.txt netbox README.md scripts
```
The NetBox project utilizes three long-term branches:
* `master` - Serves as a snapshot of the current stable release
* `develop` - All development on the upcoming stable release occurs here
* `develop-x.y` - Tracks work on an upcoming major release
Typically, you'll base pull requests off of the `develop` branch, or off of `develop-x.y` if you're working on a new major release. **Never** base pull requests off of the master branch, which receives merged only from the `develop` branch.
### Enable Pre-Commit Hooks
NetBox ships with a [git pre-commit hook](https://githooks.com/) script that automatically checks for style compliance and missing database migrations prior to committing changes. This helps avoid erroneous commits that result in CI test failures. You are encouraged to enable it by creating a link to `scripts/git-hooks/pre-commit`:
```no-highlight
$ cd .git/hooks/
$ ln -s ../../scripts/git-hooks/pre-commit
```
### Create a Python Virtual Environment
A [virtual environment](https://docs.python.org/3/tutorial/venv.html) is like a container for a set of Python packages. They allow you to build environments suited to specific projects without interfering with system packages or other projects. When installed per the documentation, NetBox uses a virtual environment in production.
Create a virtual environment using the `venv` Python module:
```no-highlight
$ mkdir ~/.venv
$ python3 -m venv ~/.venv/netbox
```
This will create a directory named `.venv/netbox/` in your home directory, which houses a virtual copy of the Python executable and its related libraries and tooling. When running NetBox for development, it will be run using the Python binary at `~/.venv/netbox/bin/python`.
!!! info
Keeping virtual environments in `~/.venv/` is a common convention but entirely optional: Virtual environments can be created wherever you please.
Once created, activate the virtual environment:
```no-highlight
$ source ~/.venv/netbox/bin/activate
(netbox) $
```
Notice that the console prompt changes to indicate the active environment. This updates the necessary system environment variables to ensure that any Python scripts are run within the virtual environment.
### Install Dependencies
With the virtual environment activated, install the project's required Python packages using the `pip` module:
```no-highlight
(netbox) $ python -m pip install -r requirements.txt
Collecting Django==3.1 (from -r requirements.txt (line 1))
Cache entry deserialization failed, entry ignored
Using cached https://files.pythonhosted.org/packages/2b/5a/4bd5624546912082a1bd2709d0edc0685f5c7827a278d806a20cf6adea28/Django-3.1-py3-none-any.whl
...
```
### Configure NetBox
Within the `netbox/netbox/` directory, copy `configuration.example.py` to `configuration.py` and update the following parameters:
* `ALLOWED_HOSTS`: This can be set to `['*']` for development purposes
* `DATABASE`: PostgreSQL database connection parameters
* `REDIS`: Redis configuration, if different from the defaults
* `SECRET_KEY`: Set to a random string (use `generate_secret_key.py` in the parent directory to generate a suitable key)
* `DEBUG`: Set to `True`
* `DEVELOPER`: Set to `True` (this enables the creation of new database migrations)
### Start the Development Server
Django provides a lightweight, auto-updating HTTP/WSGI server for development use. NetBox extends this slightly to automatically import models and other utilities. Run the NetBox development server with the `nbshell` management command:
```no-highlight
$ python netbox/manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
November 18, 2020 - 15:52:31
Django version 3.1, using settings 'netbox.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
```
This ensures that your development environment is now complete and operational. Any changes you make to the code base will be automatically adapted by the development server.
## Running Tests
Throughout the course of development, it's a good idea to occasionally run NetBox's test suite to catch any potential errors. Tests are run using the `test` management command:
```no-highlight
$ python netbox/manage.py test
```
In cases where you haven't made any changes to the database (which is most of the time), you can append the `--keepdb` argument to this command to reuse the test database between runs. This cuts down on the time it takes to run the test suite since the database doesn't have to be rebuilt each time. (Note that this argument will cause errors if you've modified any model fields since the previous test run.)
```no-highlight
$ python netbox/manage.py test --keepdb
```
## Submitting Pull Requests
Once you're happy with your work and have verified that all tests pass, commit your changes and push it upstream to your fork. Always provide descriptive (but not excessively verbose) commit messages. When working on a specific issue, be sure to reference it.
```no-highlight
$ git commit -m "Closes #1234: Add IPv5 support"
$ git push origin
```
Once your fork has the new commit, submit a [pull request](https://github.com/netbox-community/netbox/compare) to the NetBox repo to propose the changes. Be sure to provide a detailed accounting of the changes being made and the reasons for doing so.
Once submitted, a maintainer will review your pull request and either merge it or request changes. If changes are needed, you can make them via new commits to your fork: The pull request will update automatically.
!!! note
Remember, pull requests are entertained only for **accepted** issues. If an issue you want to work on hasn't been approved by a maintainer yet, it's best to avoid risking your time and effort on a change that might not be accepted.

32
docs/development/index.md Normal file
View File

@@ -0,0 +1,32 @@
# NetBox Development
NetBox is maintained as a [GitHub project](https://github.com/netbox-community/netbox) under the Apache 2 license. Users are encouraged to submit GitHub issues for feature requests and bug reports, however we are very selective about pull requests. Please see the `CONTRIBUTING` guide for more direction on contributing to NetBox.
## Communication
Communication among developers should always occur via public channels:
* [GitHub issues](https://github.com/netbox-community/netbox/issues) - All feature requests, bug reports, and other substantial changes to the code base **must** be documented in an issue.
* [GitHub discussions](https://github.com/netbox-community/netbox/discussions) - The preferred forum for general discussion and support issues. Ideal for shaping a feature request prior to submitting an issue.
* [The mailing list](https://groups.google.com/g/netbox-discuss) - An alternative forum for general discussion (GitHub is preferred).
* [#netbox on NetworkToCode](http://slack.networktocode.com/) - Good for quick chats. Avoid any discussion that might need to be referenced later on, as the chat history is not retained long.
## Governance
NetBox follows the [benevolent dictator](http://oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel) model of governance, with [Jeremy Stretch](https://github.com/jeremystretch) ultimately responsible for all changes to the code base. While community contributions are welcomed and encouraged, the lead maintainer's primary role is to ensure the project's long-term maintainability and continued focus on its primary functions (in other words, avoid scope creep).
## Project Structure
All development of the current NetBox release occurs in the `develop` branch; releases are packaged from the `master` branch. The `master` branch should _always_ represent the current stable release in its entirety, such that installing NetBox by either downloading a packaged release or cloning the `master` branch provides the same code base.
NetBox components are arranged into functional subsections called _apps_ (a carryover from Django vernacular). Each app holds the models, views, and templates relevant to a particular function:
* `circuits`: Communications circuits and providers (not to be confused with power circuits)
* `dcim`: Datacenter infrastructure management (sites, racks, and devices)
* `extras`: Additional features not considered part of the core data model
* `ipam`: IP address management (VRFs, prefixes, IP addresses, and VLANs)
* `secrets`: Encrypted storage of sensitive data (e.g. login credentials)
* `tenancy`: Tenants (such as customers) to which NetBox objects may be assigned
* `users`: Authentication and user preferences
* `utilities`: Resources which are not user-facing (extendable classes, etc.)
* `virtualization`: Virtual machines and clusters

View File

@@ -0,0 +1,94 @@
# Release Checklist
## Minor Version Bumps
### Update Requirements
Required Python packages are maintained in two files. `base_requirements.txt` contains a list of all the packages required by NetBox. Some of them may be pinned to a specific version of the package due to a known issue. For example:
```
# https://github.com/encode/django-rest-framework/issues/6053
djangorestframework==3.8.1
```
The other file is `requirements.txt`, which lists each of the required packages pinned to its current stable version. When NetBox is installed, the Python environment is configured to match this file. This helps ensure that a new release of a dependency doesn't break NetBox.
Every minor version release should refresh `requirements.txt` so that it lists the most recent stable release of each package. To do this:
1. Create a new virtual environment.
2. Install the latest version of all required packages `pip install -U -r base_requirements.txt`).
3. Run all tests and check that the UI and API function as expected.
4. Review each requirement's release notes for any breaking or otherwise noteworthy changes.
5. Update the package versions in `requirements.txt` as appropriate.
### Update Static Libraries
Update the following static libraries to their most recent stable release:
* Bootstrap 3
* Material Design Icons
* Select2
* jQuery
* jQuery UI
### Link to the Release Notes Page
Add the release notes (`/docs/release-notes/X.Y.md`) to the table of contents within `mkdocs.yml`, and point `index.md` to the new file.
### Manually Perform a New Install
Install `mkdocs` in your local environment, then start the documentation server:
```no-highlight
$ pip install -r docs/requirements.txt
$ mkdocs serve
```
Follow these instructions to perform a new installation of NetBox. This process must _not_ be automated: The goal of this step is to catch any errors or omissions in the documentation, and ensure that it is kept up-to-date for each release. Make any necessary changes to the documentation before proceeding with the release.
### Close the Release Milestone
Close the release milestone on GitHub after ensuring there are no remaining open issues associated with it.
### Merge the Release Branch
Submit a pull request to merge the release branch `develop-x.y` into the `develop` branch in preparation for its releases.
!!! warning
No further releases for the current major version can be published once this pull request is merged.
---
## All Releases
### Verify CI Build Status
Ensure that continuous integration testing on the `develop` branch is completing successfully.
### Update Version and Changelog
Update the `VERSION` constant in `settings.py` to the new release version and annotate the current data in the release notes for the new version. Commit these changes to the `develop` branch.
### Submit a Pull Request
Submit a pull request title **"Release vX.Y.Z"** to merge the `develop` branch into `master`. Copy the documented release notes into the pull request's body.
Once CI has completed on the PR, merge it.
### Create a New Release
Draft a [new release](https://github.com/netbox-community/netbox/releases/new) with the following parameters.
* **Tag:** Current version (e.g. `v2.9.9`)
* **Target:** `master`
* **Title:** Version and date (e.g. `v2.9.9 - 2020-11-09`)
Copy the description from the pull request to the release.
### Update the Development Version
On the `develop` branch, update `VERSION` in `settings.py` to point to the next release. For example, if you just released v2.9.9, set:
```
VERSION = 'v2.9.10-dev'
```

View File

@@ -0,0 +1,62 @@
# Style Guide
NetBox generally follows the [Django style guide](https://docs.djangoproject.com/en/stable/internals/contributing/writing-code/coding-style/), which is itself based on [PEP 8](https://www.python.org/dev/peps/pep-0008/). [Pycodestyle](https://github.com/pycqa/pycodestyle) is used to validate code formatting, ignoring certain violations. See `scripts/cibuild.sh`.
## PEP 8 Exceptions
* Wildcard imports (for example, `from .constants import *`) are acceptable under any of the following conditions:
* The library being import contains only constant declarations (e.g. `constants.py`)
* The library being imported explicitly defines `__all__`
* Maximum line length is 120 characters (E501)
* This does not apply to HTML templates or to automatically generated code (e.g. database migrations).
* Line breaks are permitted following binary operators (W504)
## Enforcing Code Style
The `pycodestyle` utility (previously `pep8`) is used by the CI process to enforce code style. It is strongly recommended to include as part of your commit process. A git commit hook is provided in the source at `scripts/git-hooks/pre-commit`. Linking to this script from `.git/hooks/` will invoke `pycodestyle` prior to every commit attempt and abort if the validation fails.
```
$ cd .git/hooks/
$ ln -s ../../scripts/git-hooks/pre-commit
```
To invoke `pycodestyle` manually, run:
```
pycodestyle --ignore=W504,E501 netbox/
```
## Introducing New Dependencies
The introduction of a new dependency is best avoided unless it is absolutely necessary. For small features, it's generally preferable to replicate functionality within the NetBox code base rather than to introduce reliance on an external project. This reduces both the burden of tracking new releases and our exposure to outside bugs and attacks.
If there's a strong case for introducing a new dependency, it must meet the following criteria:
* Its complete source code must be published and freely accessible without registration.
* Its license must be conducive to inclusion in an open source project.
* It must be actively maintained, with no longer than one year between releases.
* It must be available via the [Python Package Index](https://pypi.org/) (PyPI).
When adding a new dependency, a short description of the package and the URL of its code repository must be added to `base_requirements.txt`. Additionally, a line specifying the package name pinned to the current stable release must be added to `requirements.txt`. This ensures that NetBox will install only the known-good release and simplify support efforts.
## General Guidance
* When in doubt, remain consistent: It is better to be consistently incorrect than inconsistently correct. If you notice in the course of unrelated work a pattern that should be corrected, continue to follow the pattern for now and open a bug so that the entire code base can be evaluated at a later point.
* Prioritize readability over concision. Python is a very flexible language that typically offers several options for expressing a given piece of logic, but some may be more friendly to the reader than others. (List comprehensions are particularly vulnerable to over-optimization.) Always remain considerate of the future reader who may need to interpret your code without the benefit of the context within which you are writing it.
* No easter eggs. While they can be fun, NetBox must be considered as a business-critical tool. The potential, however minor, for introducing a bug caused by unnecessary logic is best avoided entirely.
* Constants (variables which generally do not change) should be declared in `constants.py` within each app. Wildcard imports from the file are acceptable.
* Every model should have a docstring. Every custom method should include an explanation of its function.
* Nested API serializers generate minimal representations of an object. These are stored separately from the primary serializers to avoid circular dependencies. Always import nested serializers from other apps directly. For example, from within the DCIM app you would write `from ipam.api.nested_serializers import NestedIPAddressSerializer`.
## Branding
* When referring to NetBox in writing, use the proper form "NetBox," with the letters N and B capitalized. The lowercase form "netbox" should be used in code, filenames, etc. But never "Netbox" or any other deviation.
* There is an SVG form of the NetBox logo at [docs/netbox_logo.svg](../netbox_logo.svg). It is preferred to use this logo for all purposes as it scales to arbitrary sizes without loss of resolution. If a raster image is required, the SVG logo should be converted to a PNG image of the prescribed size.

View File

@@ -0,0 +1,11 @@
# User Preferences
The `users.UserConfig` model holds individual preferences for each user in the form of JSON data. This page serves as a manifest of all recognized user preferences in NetBox.
## Available Preferences
| Name | Description |
| ---- | ----------- |
| extras.configcontext.format | Preferred format when rendering config context data (JSON or YAML) |
| pagination.per_page | The number of items to display per page of a paginated table |
| tables.TABLE_NAME.columns | The ordered list of columns to display when viewing the table |

View File

@@ -1,53 +0,0 @@
# Utility Views
Utility views are reusable views that handle common CRUD tasks, such as listing and updating objects. Some views operate on individual objects, whereas others (referred to as "bulk" views) operate on multiple objects at once.
## Individual Views
### ObjectListView
Generates a paginated table of objects from a given queryset, which may optionally be filtered.
### ObjectEditView
Updates an object identified by a primary key (PK) or slug. If no existing object is specified, a new object will be created.
### ObjectDeleteView
Deletes an object. The user is redirected to a confirmation page before the deletion is executed.
## Bulk Views
### BulkCreateView
Creates multiple objects at once based on a given pattern. Currently used only for IP addresses.
### BulkImportView
Accepts CSV-formatted data and creates a new object for each line. Creation is all-or-none.
### BulkEditView
Applies changes to multiple objects at once in a two-step operation. First, the list of PKs for selected objects is POSTed and an edit form is presented to the user. On submission of that form, the specified changes are made to all selected objects.
### BulkDeleteView
Deletes multiple objects. The user selects the objects to be deleted and confirms the deletion.
## Component Views
### ComponentCreateView
Create one or more component objects beloning to a parent object (e.g. interfaces attached to a device).
### ComponentEditView
A subclass of `ObjectEditView`: Updates an individual component object.
### ComponentDeleteView
A subclass of `ObjectDeleteView`: Deletes an individual component object.
### BulkComponentCreateView
Create a set of components objects for each of a selected set of parent objects. This view can be used e.g. to create multiple interfaces on multiple devices at once.

19
docs/extra.css Normal file
View File

@@ -0,0 +1,19 @@
/* Images */
img {
display: block;
margin-left: auto;
margin-right: auto;
}
/* Tables */
table {
margin-bottom: 24px;
width: 100%;
}
th {
background-color: #f0f0f0;
padding: 6px;
}
td {
padding: 6px;
}

View File

@@ -1,3 +1,5 @@
![NetBox](netbox_logo.svg "NetBox logo")
# What is NetBox?
NetBox is an open source web application designed to help manage and document computer networks. Initially conceived by the network engineering team at [DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically to address the needs of network and infrastructure engineers. It encompasses the following aspects of network management:
@@ -10,7 +12,7 @@ NetBox is an open source web application designed to help manage and document co
* **Data circuits** - Long-haul communications circuits and providers
* **Secrets** - Encrypted storage of sensitive credentials
# What NetBox Isn't
## What NetBox Is Not
While NetBox strives to cover many areas of network management, the scope of its feature set is necessarily limited. This ensures that development focuses on core functionality and that scope creep is reasonably contained. To that end, it might help to provide some examples of functionality that NetBox **does not** provide:
@@ -22,33 +24,39 @@ While NetBox strives to cover many areas of network management, the scope of its
That said, NetBox _can_ be used to great effect in populating external tools with the data they need to perform these functions.
# Design Philosophy
## Design Philosophy
NetBox was designed with the following tenets foremost in mind.
## Replicate the Real World
### Replicate the Real World
Careful consideration has been given to the data model to ensure that it can accurately reflect a real-world network. For instance, IP addresses are assigned not to devices, but to specific interfaces attached to a device, and an interface may have multiple IP addresses assigned to it.
## Serve as a "Source of Truth"
### Serve as a "Source of Truth"
NetBox intends to represent the _desired_ state of a network versus its _operational_ state. As such, automated import of live network state is strongly discouraged. All data created in NetBox should first be vetted by a human to ensure its integrity. NetBox can then be used to populate monitoring and provisioning systems with a high degree of confidence.
## Keep it Simple
### Keep it Simple
When given a choice between a relatively simple [80% solution](https://en.wikipedia.org/wiki/Pareto_principle) and a much more complex complete solution, the former will typically be favored. This ensures a lean codebase with a low learning curve.
# Application Stack
## Application Stack
NetBox is built on the [Django](https://djangoproject.com/) Python framework and utilizes a [PostgreSQL](https://www.postgresql.org/) database. It runs as a WSGI service behind your choice of HTTP server.
| Function | Component |
|--------------|-------------------|
| HTTP Service | nginx or Apache |
| WSGI Service | gunicorn or uWSGI |
| Application | Django/Python |
| Database | PostgreSQL 9.4+ |
| Function | Component |
|--------------------|-------------------|
| HTTP service | nginx or Apache |
| WSGI service | gunicorn or uWSGI |
| Application | Django/Python |
| Database | PostgreSQL 9.6+ |
| Task queuing | Redis/django-rq |
| Live device access | NAPALM |
# Getting Started
## Supported Python Versions
See the [installation guide](installation/postgresql.md) for help getting NetBox up and running quickly.
NetBox supports Python 3.6, 3.7, and 3.8 environments currently. (Support for Python 3.5 was removed in NetBox v2.8.)
## Getting Started
See the [installation guide](installation/index.md) for help getting NetBox up and running quickly.

View File

@@ -0,0 +1,80 @@
# PostgreSQL Database Installation
This section entails the installation and configuration of a local PostgreSQL database. If you already have a PostgreSQL database service in place, skip to [the next section](2-redis.md).
!!! warning
NetBox requires PostgreSQL 9.6 or higher. Please note that MySQL and other relational databases are **not** currently supported.
## Installation
#### Ubuntu
Install the PostgreSQL server and client development libraries using `apt`.
```no-highlight
sudo apt update
sudo apt install -y postgresql libpq-dev
```
#### CentOS
PostgreSQL 9.6 and later are available natively on CentOS 8.2. If using an earlier CentOS release, you may need to [install it from an RPM](https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/).
```no-highlight
sudo yum install -y postgresql-server libpq-devel
sudo postgresql-setup --initdb
```
CentOS configures ident host-based authentication for PostgreSQL by default. Because NetBox will need to authenticate using a username and password, modify `/var/lib/pgsql/data/pg_hba.conf` to support MD5 authentication by changing `ident` to `md5` for the lines below:
```no-highlight
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
```
Then, start the service and enable it to run at boot:
```no-highlight
sudo systemctl start postgresql
sudo systemctl enable postgresql
```
## Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. This is done with the following commands.
!!! danger
**Do not use the password from the example.** Choose a strong, random password to ensure secure database authentication for your NetBox installation.
```no-highlight
$ sudo -u postgres psql
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
Type "help" for help.
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q
```
## Verify Service Status
You can verify that authentication works issuing the following command and providing the configured password. (Replace `localhost` with your database server if using a remote database.)
```no-highlight
$ psql --username netbox --password --host localhost netbox
Password for user netbox:
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
netbox=> \conninfo
You are connected to database "netbox" as user "netbox" on host "localhost" (address "127.0.0.1") at port "5432".
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
netbox=> \q
```
If successful, you will enter a `netbox` prompt. Type `\conninfo` to confirm your connection, or type `\q` to exit.

View File

@@ -0,0 +1,33 @@
# Redis Installation
## Install Redis
[Redis](https://redis.io/) is an in-memory key-value store which NetBox employs for caching and queuing. This section entails the installation and configuration of a local Redis instance. If you already have a Redis service in place, skip to [the next section](3-netbox.md).
!!! note
NetBox v2.9.0 and later require Redis v4.0 or higher. If your distribution does not offer a recent enough release, you will need to build Redis from source. Please see [the Redis installation documentation](https://github.com/redis/redis) for further details.
### Ubuntu
```no-highlight
sudo apt install -y redis-server
```
### CentOS
```no-highlight
sudo yum install -y redis
sudo systemctl start redis
sudo systemctl enable redis
```
You may wish to modify the Redis configuration at `/etc/redis.conf` or `/etc/redis/redis.conf`, however in most cases the default configuration is sufficient.
## Verify Service Status
Use the `redis-cli` utility to ensure the Redis service is functional:
```no-highlight
$ redis-cli ping
PONG
```

View File

@@ -0,0 +1,281 @@
# NetBox Installation
This section of the documentation discusses installing and configuring the NetBox application itself.
## Install System Packages
Begin by installing all system packages required by NetBox and its dependencies.
!!! note
NetBox v2.8.0 and later require Python 3.6, 3.7, or 3.8. This documentation assumes Python 3.6.
### Ubuntu
```no-highlight
sudo apt install -y python3.6 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev
```
### CentOS
```no-highlight
sudo yum install -y gcc python36 python36-devel python3-pip libxml2-devel libxslt-devel libffi-devel openssl-devel redhat-rpm-config
```
Before continuing with either platform, update pip (Python's package management tool) to its latest release:
```no-highlight
sudo pip3 install --upgrade pip
```
## Download NetBox
This documentation provides two options for installing NetBox: from a downloadable archive, or from the git repository. Installing from a package (option A below) requires manually fetching and extracting the archive for every future update, whereas installation via git (option B) allows for seamless upgrades by re-pulling the `master` branch.
### Option A: Download a Release Archive
Download the [latest stable release](https://github.com/netbox-community/netbox/releases) from GitHub as a tarball or ZIP archive and extract it to your desired path. In this example, we'll use `/opt/netbox` as the NetBox root.
```no-highlight
$ sudo wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
$ sudo tar -xzf vX.Y.Z.tar.gz -C /opt
$ sudo ln -s /opt/netbox-X.Y.Z/ /opt/netbox
$ ls -l /opt | grep netbox
lrwxrwxrwx 1 root root 13 Jul 20 13:44 netbox -> netbox-2.9.0/
drwxr-xr-x 2 root root 4096 Jul 20 13:44 netbox-2.9.0
```
!!! note
It is recommended to install NetBox in a directory named for its version number. For example, NetBox v2.9.0 would be installed into `/opt/netbox-2.9.0`, and a symlink from `/opt/netbox/` would point to this location. This allows for future releases to be installed in parallel without interrupting the current installation. When changing to the new release, only the symlink needs to be updated.
### Option B: Clone the Git Repository
Create the base directory for the NetBox installation. For this guide, we'll use `/opt/netbox`.
```no-highlight
sudo mkdir -p /opt/netbox/ && cd /opt/netbox/
```
If `git` is not already installed, install it:
#### Ubuntu
```no-highlight
sudo apt install -y git
```
#### CentOS
```no-highlight
sudo yum install -y git
```
Next, clone the **master** branch of the NetBox GitHub repository into the current directory. (This branch always holds the current stable release.)
```no-highlight
$ sudo git clone -b master https://github.com/netbox-community/netbox.git .
Cloning into '.'...
remote: Counting objects: 1994, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 1994 (delta 80), reused 0 (delta 0), pack-reused 1842
Receiving objects: 100% (1994/1994), 472.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1495/1495), done.
Checking connectivity... done.
```
!!! note
Installation via git also allows you to easily try out development versions of NetBox. The `develop` branch contains all work underway for the next minor release, and the `develop-x.y` branch (if present) tracks progress on the next major release.
## Create the NetBox System User
Create a system user account named `netbox`. We'll configure the WSGI and HTTP services to run under this account. We'll also assign this user ownership of the media directory. This ensures that NetBox will be able to save uploaded files.
#### Ubuntu
```
sudo adduser --system --group netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
```
#### CentOS
```
sudo groupadd --system netbox
sudo adduser --system -g netbox netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
```
## Configuration
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`. This file will hold all of your local configuration parameters.
```no-highlight
cd /opt/netbox/netbox/netbox/
sudo cp configuration.example.py configuration.py
```
Open `configuration.py` with your preferred editor to begin configuring NetBox. NetBox offers [many configuration parameters](/configuration/), but only the following four are required for new installations:
* `ALLOWED_HOSTS`
* `DATABASE`
* `REDIS`
* `SECRET_KEY`
### ALLOWED_HOSTS
This is a list of the valid hostnames and IP addresses by which this server can be reached. You must specify at least one name or IP address. (Note that this does not restrict the locations from which NetBox may be accessed: It is merely for [HTTP host header validation](https://docs.djangoproject.com/en/3.0/topics/security/#host-headers-virtual-hosting).)
```python
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
If you are not yet sure what the domain name and/or IP address of the NetBox installation will be, you can set this to a wildcard (asterisk) to allow all host values:
```python
ALLOWED_HOSTS = ['*']
```
### DATABASE
This parameter holds the database configuration details. You must define the username and password used when you configured PostgreSQL. If the service is running on a remote host, update the `HOST` and `PORT` parameters accordingly. See the [configuration documentation](/configuration/required-settings/#database) for more detail on individual parameters.
```python
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}
```
### REDIS
Redis is a in-memory key-value store used by NetBox for caching and background task queuing. Redis typically requires minimal configuration; the values below should suffice for most installations. See the [configuration documentation](/configuration/required-settings/#redis) for more detail on individual parameters.
Note that NetBox requires the specification of two separate Redis databases: `tasks` and `caching`. These may both be provided by the same Redis service, however each should have a unique numeric database ID.
```python
REDIS = {
'tasks': {
'HOST': 'localhost', # Redis server
'PORT': 6379, # Redis port
'PASSWORD': '', # Redis password (optional)
'DATABASE': 0, # Database ID
'SSL': False, # Use SSL (optional)
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1, # Unique ID for second database
'SSL': False,
}
}
```
### SECRET_KEY
This parameter must be assigned a randomly-generated key employed as a salt for hashing and related cryptographic functions. (Note, however, that it is _never_ directly used in the encryption of secret data.) This key must be unique to this installation and is recommended to be at least 50 characters long. It should not be shared outside the local system.
A simple Python script named `generate_secret_key.py` is provided in the parent directory to assist in generating a suitable key:
```no-highlight
python3 ../generate_secret_key.py
```
!!! warning
In the case of a highly available installation with multiple web servers, `SECRET_KEY` must be identical among all servers in order to maintain a persistent user session state.
When you have finished modifying the configuration, remember to save the file.
## Optional Requirements
All Python packages required by NetBox are listed in `requirements.txt` and will be installed automatically. NetBox also supports some optional packages. If desired, these packages must be listed in `local_requirements.txt` within the NetBox root directory.
### NAPALM
The [NAPALM automation](https://napalm-automation.net/) library allows NetBox to fetch live data from devices and return it to a requester via its REST API. The `NAPALM_USERNAME` and `NAPALM_PASSWORD` configuration parameters define the credentials to be used when connecting to a device.
```no-highlight
sudo echo napalm >> /opt/netbox/local_requirements.txt
```
### Remote File Storage
By default, NetBox will use the local filesystem to store uploaded files. To use a remote filesystem, install the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) library and configure your [desired storage backend](/configuration/optional-settings/#storage_backend) in `configuration.py`.
```no-highlight
sudo echo django-storages >> /opt/netbox/local_requirements.txt
```
## Run the Upgrade Script
Once NetBox has been configured, we're ready to proceed with the actual installation. We'll run the packaged upgrade script (`upgrade.sh`) to perform the following actions:
* Create a Python virtual environment
* Install all required Python packages
* Run database schema migrations
* Aggregate static resource files on disk
```no-highlight
sudo /opt/netbox/upgrade.sh
```
!!! note
Upon completion, the upgrade script may warn that no existing virtual environment was detected. As this is a new installation, this warning can be safely ignored.
## Create a Super User
NetBox does not come with any predefined user accounts. You'll need to create a super user (administrative account) to be able to log into NetBox. First, enter the Python virtual environment created by the upgrade script:
```no-highlight
source /opt/netbox/venv/bin/activate
```
Once the virtual environment has been activated, you should notice the string `(venv)` prepended to your console prompt.
Next, we'll create a superuser account using the `createsuperuser` Django management command (via `manage.py`). Specifying an email address for the user is not required, but be sure to use a very strong password.
```no-highlight
(venv) $ cd /opt/netbox/netbox
(venv) $ python3 manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
```
## Test the Application
At this point, we should be able to run NetBox's development server for testing. We can check by starting a development instance:
```no-highlight
(venv) $ python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
November 17, 2020 - 16:08:13
Django version 3.1.3, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
```
Next, connect to the name or IP of the server (as defined in `ALLOWED_HOSTS`) on port 8000; for example, <http://127.0.0.1:8000/>. You should be greeted with the NetBox home page.
!!! warning
The development server is for development and testing purposes only. It is neither performant nor secure enough for production use. **Do not use it in production.**
!!! warning
If the test service does not run, or you cannot reach the NetBox home page, something has gone wrong. Do not proceed with the rest of this guide until the installation has been corrected.
Note that the initial user interface will be locked down for non-authenticated users.
![NetBox UI as seen by a non-authenticated user](../media/installation/netbox_ui_guest.png)
Try logging in using the superuser account we just created. Once authenticated, you'll be able to access all areas of the UI:
![NetBox UI as seen by an administrator](../media/installation/netbox_ui_admin.png)
Type `Ctrl+c` to stop the development server.

View File

@@ -0,0 +1,52 @@
# Gunicorn
Like most Django applications, NetBox runs as a [WSGI application](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface) behind an HTTP server. This documentation shows how to install and configure [gunicorn](http://gunicorn.org/) (which is automatically installed with NetBox) for this role, however other WSGI servers are available and should work similarly well. [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) is a popular alternative.
## Configuration
NetBox ships with a default configuration file for gunicorn. To use it, copy `/opt/netbox/contrib/gunicorn.py` to `/opt/netbox/gunicorn.py`. (We make a copy of this file rather than pointing to it directly to ensure that any local changes to it do not get overwritten by a future upgrade.)
```no-highlight
sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
```
While the provided configuration should suffice for most initial installations, you may wish to edit this file to change the bound IP address and/or port number, or to make performance-related adjustments. See [the Gunicorn documentation](https://docs.gunicorn.org/en/stable/configure.html) for the available configuration parameters.
## systemd Setup
We'll use systemd to control both gunicorn and NetBox's background worker process. First, copy `contrib/netbox.service` and `contrib/netbox-rq.service` to the `/etc/systemd/system/` directory and reload the systemd dameon:
```no-highlight
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload
```
Then, start the `netbox` and `netbox-rq` services and enable them to initiate at boot time:
```no-highlight
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq
```
You can use the command `systemctl status netbox` to verify that the WSGI service is running:
```no-highlight
# systemctl status netbox.service
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-11-17 16:18:23 UTC; 3min 35s ago
Docs: https://netbox.readthedocs.io/en/stable/
Main PID: 22836 (gunicorn)
Tasks: 6 (limit: 2345)
Memory: 339.3M
CGroup: /system.slice/netbox.service
├─22836 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid>
├─22854 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid>
├─22855 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid>
...
```
!!! note
If the NetBox service fails to start, issue the command `journalctl -eu netbox` to check for log messages that may indicate the problem.
Once you've verified that the WSGI workers are up and running, move on to HTTP server setup.

View File

@@ -0,0 +1,94 @@
# HTTP Server Setup
This documentation provides example configurations for both [nginx](https://www.nginx.com/resources/wiki/) and [Apache](http://httpd.apache.org/docs/current/), though any HTTP server which supports WSGI should be compatible.
!!! info
For the sake of brevity, only Ubuntu 20.04 instructions are provided here. These tasks are not unique to NetBox and should carry over to other distributions with minimal changes. Please consult your distribution's documentation for assistance if needed.
## Obtain an SSL Certificate
To enable HTTPS access to NetBox, you'll need a valid SSL certificate. You can purchase one from a trusted commercial provider, obtain one for free from [Let's Encrypt](https://letsencrypt.org/getting-started/), or generate your own (although self-signed certificates are generally untrusted). Both the public certificate and private key files need to be installed on your NetBox server in a location that is readable by the `netbox` user.
The command below can be used to generate a self-signed certificate for testing purposes, however it is strongly recommended to use a certificate from a trusted authority in production. Two files will be created: the public certificate (`netbox.crt`) and the private key (`netbox.key`). The certificate is published to the world, whereas the private key must be kept secret at all times.
```no-highlight
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/netbox.key \
-out /etc/ssl/certs/netbox.crt
```
The above command will prompt you for additional details of the certificate; all of these are optional.
## HTTP Server Installation
### Option A: nginx
Begin by installing nginx:
```no-highlight
sudo apt install -y nginx
```
Once nginx is installed, copy the nginx configuration file provided by NetBox to `/etc/nginx/sites-available/netbox`. Be sure to replace `netbox.example.com` with the domain name or IP address of your installation. (This should match the value configured for `ALLOWED_HOSTS` in `configuration.py`.)
```no-highlight
sudo cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netbox
```
Then, delete `/etc/nginx/sites-enabled/default` and create a symlink in the `sites-enabled` directory to the configuration file you just created.
```no-highlight
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/netbox
```
Finally, restart the `nginx` service to use the new configuration.
```no-highlight
sudo systemctl restart nginx
```
### Option B: Apache
Begin by installing Apache:
```no-highlight
sudo apt install -y apache2
```
Next, copy the default configuration file to `/etc/apache2/sites-available/`. Be sure to modify the `ServerName` parameter appropriately.
```no-highlight
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
```
Finally, ensure that the required Apache modules are enabled, enable the `netbox` site, and reload Apache:
```no-highlight
sudo a2enmod ssl proxy proxy_http headers
sudo a2ensite netbox
sudo systemctl restart apache2
```
## Confirm Connectivity
At this point, you should be able to connect to the HTTPS service at the server name or IP address you provided.
!!! info
Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You may want to make adjustments to better suit your production environment.
!!! warning
Certain components of NetBox (such as the display of rack elevation diagrams) rely on the use of embedded objects. Ensure that your HTTP server configuration does not override the `X-Frame-Options` response header set by NetBox.
## Troubleshooting
If you are unable to connect to the HTTP server, check that:
* Nginx/Apache is running and configured to listen on the correct port.
* Access is not being blocked by a firewall somewhere along the path. (Try connecting locally from the server itself.)
If you are able to connect but receive a 502 (bad gateway) error, check the following:
* The WSGI worker processes (gunicorn) are running (`systemctl status netbox` should show a status of "active (running)")
* Nginx/Apache is configured to connect to the port on which gunicorn is listening (default is 8001).
* SELinux is not preventing the reverse proxy connection. You may need to allow HTTP network connections with the command `setsebool -P httpd_can_network_connect 1`

View File

@@ -1,32 +1,49 @@
# LDAP Configuration
This guide explains how to implement LDAP authentication using an external server. User authentication will fall back to built-in Django users in the event of a failure.
# Requirements
## Install Requirements
## Install openldap-devel
### Install System Packages
On Ubuntu:
```no-highlight
sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
sudo apt install -y libldap2-dev libsasl2-dev libssl-dev
```
On CentOS:
```no-highlight
sudo yum install -y python-devel openldap-devel
sudo yum install -y openldap-devel
```
## Install django-auth-ldap
### Install django-auth-ldap
Activate the Python virtual environment and install the `django-auth-ldap` package using pip:
```no-highlight
sudo pip install django-auth-ldap
source /opt/netbox/venv/bin/activate
pip3 install django-auth-ldap
```
# Configuration
Once installed, add the package to `local_requirements.txt` to ensure it is re-installed during future rebuilds of the virtual environment:
Create a file in the same directory as `configuration.py` (typically `netbox/netbox/`) named `ldap_config.py`. Define all of the parameters required below in `ldap_config.py`.
```no-highlight
sudo echo django-auth-ldap >> /opt/netbox/local_requirements.txt
```
## General Server Configuration
## Configuration
First, enable the LDAP authentication backend in `configuration.py`. (Be sure to overwrite this definition if it is already set to `RemoteUserBackend`.)
```python
REMOTE_AUTH_BACKEND = 'netbox.authentication.LDAPBackend'
```
Next, create a file in the same directory as `configuration.py` (typically `/opt/netbox/netbox/netbox/`) named `ldap_config.py`. Define all of the parameters required below in `ldap_config.py`. Complete documentation of all `django-auth-ldap` configuration options is included in the project's [official documentation](http://django-auth-ldap.readthedocs.io/).
### General Server Configuration
!!! info
When using Windows Server 2012 you may need to specify a port on `AUTH_LDAP_SERVER_URI`. Use `3269` for secure, or `3268` for non-secure.
@@ -52,7 +69,9 @@ AUTH_LDAP_BIND_PASSWORD = "demo"
LDAP_IGNORE_CERT_ERRORS = True
```
## User Authentication
STARTTLS can be configured by setting `AUTH_LDAP_START_TLS = True` and using the `ldap://` URI scheme.
### User Authentication
!!! info
When using Windows Server 2012, `AUTH_LDAP_USER_DN_TEMPLATE` should be set to None.
@@ -77,15 +96,16 @@ AUTH_LDAP_USER_ATTR_MAP = {
}
```
# User Groups for Permissions
!!! Info
When using Microsoft Active Directory, Support for nested Groups can be activated by using `GroupOfNamesType()` instead of `NestedGroupOfNamesType()` for `AUTH_LDAP_GROUP_TYPE`.
### User Groups for Permissions
!!! info
When using Microsoft Active Directory, support for nested groups can be activated by using `NestedGroupOfNamesType()` instead of `GroupOfNamesType()` for `AUTH_LDAP_GROUP_TYPE`. You will also need to modify the import line to use `NestedGroupOfNamesType` instead of `GroupOfNamesType` .
```python
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
# This search ought to return all groups to which the user belongs. django_auth_ldap uses this to determine group
# heirarchy.
# hierarchy.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("dc=example,dc=com", ldap.SCOPE_SUBTREE,
"(objectClass=group)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
@@ -93,6 +113,9 @@ AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
# Define a group required to login.
AUTH_LDAP_REQUIRE_GROUP = "CN=NETBOX_USERS,DC=example,DC=com"
# Mirror LDAP group assignments.
AUTH_LDAP_MIRROR_GROUPS = True
# Define special user types using groups. Exercise great caution when assigning superuser status.
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=active,ou=groups,dc=example,dc=com",
@@ -104,10 +127,43 @@ AUTH_LDAP_USER_FLAGS_BY_GROUP = {
AUTH_LDAP_FIND_GROUP_PERMS = True
# Cache groups for one hour to reduce LDAP traffic
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
AUTH_LDAP_CACHE_TIMEOUT = 3600
```
* `is_active` - All users must be mapped to at least this group to enable authentication. Without this, users cannot log in.
* `is_staff` - Users mapped to this group are enabled for access to the administration tools; this is the equivalent of checking the "staff status" box on a manually created user. This doesn't grant any specific permissions.
* `is_superuser` - Users mapped to this group will be granted superuser status. Superusers are implicitly granted all permissions.
!!! warning
Authentication will fail if the groups (the distinguished names) do not exist in the LDAP directory.
## Troubleshooting LDAP
`systemctl restart netbox` restarts the Netbox service, and initiates any changes made to `ldap_config.py`. If there are syntax errors present, the NetBox process will not spawn an instance, and errors should be logged to `/var/log/messages`.
For troubleshooting LDAP user/group queries, add or merge the following [logging](/configuration/optional-settings.md#logging) configuration to `configuration.py`:
```python
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'netbox_auth_log': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/opt/netbox/logs/django-ldap-debug.log',
'maxBytes': 1024 * 500,
'backupCount': 5,
},
},
'loggers': {
'django_auth_ldap': {
'handlers': ['netbox_auth_log'],
'level': 'DEBUG',
},
},
}
```
Ensure the file and path specified in logfile exist and are writable and executable by the application service account. Restart the netbox service and attempt to log into the site to trigger log entries to this file.

View File

@@ -0,0 +1,31 @@
# Installation
The installation instructions provided here have been tested to work on Ubuntu 20.04 and CentOS 8.2. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
The following sections detail how to set up a new instance of NetBox:
1. [PostgreSQL database](1-postgresql.md)
1. [Redis](2-redis.md)
3. [NetBox components](3-netbox.md)
4. [Gunicorn](4-gunicorn.md)
5. [HTTP server](5-http-server.md)
6. [LDAP authentication](6-ldap.md) (optional)
## Requirements
| Dependency | Minimum Version |
|------------|-----------------|
| Python | 3.6 |
| PostgreSQL | 9.6 |
| Redis | 4.0 |
Below is a simplified overview of the NetBox application stack for reference:
![NetBox UI as seen by a non-authenticated user](../media/installation/netbox_application_stack.png)
## Upgrading
If you are upgrading from an existing installation, please consult the [upgrading guide](upgrading.md).
!!! note
Beginning with v2.5.9, the official documentation calls for systemd to be used for managing the WSGI workers in place of supervisord. Please see the instructions for [migrating to systemd](migrating-to-systemd.md) if you are still using supervisord.

View File

@@ -1,33 +0,0 @@
# Migration
Remove Python 2 packages
```no-highlight
# apt-get remove --purge -y python-dev python-pip
```
Install Python 3 packages
```no-highlight
# apt-get install -y python3 python3-dev python3-pip
```
Install Python Packages
```no-highlight
# cd /opt/netbox
# pip3 install -r requirements.txt
```
Gunicorn Update
```no-highlight
# pip uninstall gunicorn
# pip3 install gunicorn
```
Re-install LDAP Module (optional if using LDAP for auth)
```no-highlight
sudo pip3 install django-auth-ldap
```

View File

@@ -0,0 +1,55 @@
# Migrating to systemd
This document contains instructions for migrating from a legacy NetBox deployment using [supervisor](http://supervisord.org/) to a systemd-based approach.
## Ubuntu
### Uninstall supervisord
```no-highlight
# apt-get remove -y supervisor
```
### Configure systemd
!!! note
These instructions assume the presence of a Python virtual environment at `/opt/netbox/venv`. If you have not created this environment, please refer to the [installation instructions](3-netbox.md#set-up-python-environment) for direction.
We'll use systemd to control the daemonization of NetBox services. First, copy `contrib/netbox.service` and `contrib/netbox-rq.service` to the `/etc/systemd/system/` directory:
```no-highlight
# cp contrib/*.service /etc/systemd/system/
```
!!! note
You may need to modify the user that the systemd service runs as. Please verify the user for httpd on your specific release and edit both files to match your httpd service under user and group. The username could be "nobody", "nginx", "apache", "www-data", or something else.
Then, start the `netbox` and `netbox-rq` services and enable them to initiate at boot time:
```no-highlight
# systemctl daemon-reload
# systemctl start netbox netbox-rq
# systemctl enable netbox netbox-rq
```
You can use the command `systemctl status netbox` to verify that the WSGI service is running:
```
# systemctl status netbox.service
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-10-24 19:23:40 UTC; 25s ago
Docs: https://netbox.readthedocs.io/en/stable/
Main PID: 11993 (gunicorn)
Tasks: 6 (limit: 2362)
CGroup: /system.slice/netbox.service
├─11993 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12015 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12016 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
...
```
At this point, you should be able to connect to the HTTP service at the server name or IP address you provided. If you are unable to connect, check that the nginx service is running and properly configured. If you receive a 502 (bad gateway) error, this indicates that gunicorn is misconfigured or not running. Issue the command `journalctl -xe` to see why the services were unable to start.
!!! info
Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You may want to make adjustments to better suit your production environment.

View File

@@ -1,249 +0,0 @@
# Installation
This section of the documentation discusses installing and configuring the NetBox application.
!!! note
Python 3 is strongly encouraged for new installations. Support for Python 2 will be discontinued in the near future. This documentation includes a guide on [migrating from Python 2 to Python 3](migrating-to-python3).
**Ubuntu**
Python 3:
```no-highlight
# apt-get install -y python3 python3-dev python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
# easy_install3 pip
```
Python 2:
```no-highlight
# apt-get install -y python2.7 python-dev python-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
# easy_install pip
```
**CentOS**
Python 3:
```no-highlight
# yum install -y epel-release
# yum install -y gcc python34 python34-devel python34-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config
# easy_install-3.4 pip
```
Python 2:
```no-highlight
# yum install -y epel-release
# yum install -y gcc python2 python-devel python-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config
# easy_install pip
```
You may opt to install NetBox either from a numbered release or by cloning the master branch of its repository on GitHub.
## Option A: Download a Release
Download the [latest stable release](https://github.com/digitalocean/netbox/releases) from GitHub as a tarball or ZIP archive and extract it to your desired path. In this example, we'll use `/opt/netbox`.
```no-highlight
# wget https://github.com/digitalocean/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# cd /opt/
# ln -s netbox-X.Y.Z/ netbox
# cd /opt/netbox/
```
## Option B: Clone the Git Repository
Create the base directory for the NetBox installation. For this guide, we'll use `/opt/netbox`.
```no-highlight
# mkdir -p /opt/netbox/ && cd /opt/netbox/
```
If `git` is not already installed, install it:
**Ubuntu**
```no-highlight
# apt-get install -y git
```
**CentOS**
```no-highlight
# yum install -y git
```
Next, clone the **master** branch of the NetBox GitHub repository into the current directory:
```no-highlight
# git clone -b master https://github.com/digitalocean/netbox.git .
Cloning into '.'...
remote: Counting objects: 1994, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 1994 (delta 80), reused 0 (delta 0), pack-reused 1842
Receiving objects: 100% (1994/1994), 472.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1495/1495), done.
Checking connectivity... done.
```
## Install Python Packages
Install the required Python packages using pip. (If you encounter any compilation errors during this step, ensure that you've installed all of the system dependencies listed above.)
Python 3:
```no-highlight
# pip3 install -r requirements.txt
```
Python 2:
```no-highlight
# pip install -r requirements.txt
```
!!! note
If you encounter errors while installing the required packages, check that you're running a recent version of pip (v9.0.1 or higher) with the command `pip -V` or `pip3 -V`.
### NAPALM Automation
As of v2.1.0, NetBox supports integration with the [NAPALM automation](https://napalm-automation.net/) library. NAPALM allows NetBox to fetch live data from devices and return it to a requester via its REST API. Installation of NAPALM is optional. To enable it, install the `napalm` package using pip or pip3:
```no-highlight
# pip3 install napalm
```
# Configuration
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`.
```no-highlight
# cd netbox/netbox/
# cp configuration.example.py configuration.py
```
Open `configuration.py` with your preferred editor and set the following variables:
* ALLOWED_HOSTS
* DATABASE
* SECRET_KEY
## ALLOWED_HOSTS
This is a list of the valid hostnames by which this server can be reached. You must specify at least one name or IP address.
Example:
```python
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
## DATABASE
This parameter holds the database configuration details. You must define the username and password used when you configured PostgreSQL. If the service is running on a remote host, replace `localhost` with its address.
Example:
```python
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
```
## SECRET_KEY
Generate a random secret key of at least 50 alphanumeric characters. This key must be unique to this installation and must not be shared outside the local system.
You may use the script located at `netbox/generate_secret_key.py` to generate a suitable key.
!!! note
In the case of a highly available installation with multiple web servers, `SECRET_KEY` must be identical among all servers in order to maintain a persistent user session state.
# Run Database Migrations
!!! warning
The examples on the rest of this page call the `python3` executable. Replace this with `python2` or `python` if you're using Python 2.
Before NetBox can run, we need to install the database schema. This is done by running `python3 manage.py migrate` from the `netbox` directory (`/opt/netbox/netbox/` in our example):
```no-highlight
# cd /opt/netbox/netbox/
# python3 manage.py migrate
Operations to perform:
Apply all migrations: dcim, sessions, admin, ipam, utilities, auth, circuits, contenttypes, extras, secrets, users
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
...
```
If this step results in a PostgreSQL authentication error, ensure that the username and password created in the database match what has been specified in `configuration.py`
# Create a Super User
NetBox does not come with any predefined user accounts. You'll need to create a super user to be able to log into NetBox:
```no-highlight
# python3 manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
```
# Collect Static Files
```no-highlight
# python3 manage.py collectstatic --no-input
You have requested to collect static files at the destination
location as specified in your settings:
/opt/netbox/netbox/static
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
```
# Load Initial Data (Optional)
NetBox ships with some initial data to help you get started: RIR definitions, common devices roles, etc. You can delete any seed data that you don't want to keep.
!!! note
This step is optional. It's perfectly fine to start using NetBox without using this initial data if you'd rather create everything from scratch.
```no-highlight
# python3 manage.py loaddata initial_data
Installed 43 object(s) from 4 fixture(s)
```
# Test the Application
At this point, NetBox should be able to run. We can verify this by starting a development instance:
```no-highlight
# python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
June 17, 2016 - 16:17:36
Django version 1.9.7, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
```
Now if we navigate to the name or IP of the server (as defined in `ALLOWED_HOSTS`) we should be greeted with the NetBox home page. Note that this built-in web service is for development and testing purposes only. **It is not suited for production use.**
!!! warning
If the test service does not run, or you cannot reach the NetBox home page, something has gone wrong. Do not proceed with the rest of this guide until the installation has been corrected.

View File

@@ -1,71 +0,0 @@
NetBox requires a PostgreSQL database to store data. This can be hosted locally or on a remote server. (Please note that MySQL is not supported, as NetBox leverages PostgreSQL's built-in [network address types](https://www.postgresql.org/docs/current/static/datatype-net-types.html).)
!!! note
The installation instructions provided here have been tested to work on Ubuntu 16.04 and CentOS 7.4. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
!!! warning
NetBox v2.2 and later requires PostgreSQL 9.4 or higher.
# Installation
**Ubuntu**
If a recent enough version of PostgreSQL is not available through your distribution's package manager, you'll need to install it from an official [PostgreSQL repository](https://wiki.postgresql.org/wiki/Apt).
```no-highlight
# apt-get update
# apt-get install -y postgresql libpq-dev
```
**CentOS**
CentOS 7.4 does not ship with a recent enough version of PostgreSQL, so it will need to be installed from an external repository. The instructions below show the installation of PostgreSQL 9.6.
```no-highlight
# yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# yum install postgresql96 postgresql96-server postgresql96-devel
# /usr/pgsql-9.6/bin/postgresql96-setup initdb
```
CentOS users should modify the PostgreSQL configuration to accept password-based authentication by replacing `ident` with `md5` for all host entries within `/var/lib/pgsql/9.6/data/pg_hba.conf`. For example:
```no-highlight
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
```
Then, start the service and enable it to run at boot:
```no-highlight
# systemctl start postgresql-9.6
# systemctl enable postgresql-9.6
```
# Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. This is done with the following commands.
!!! danger
DO NOT USE THE PASSWORD FROM THE EXAMPLE.
```no-highlight
# sudo -u postgres psql
psql (9.4.5)
Type "help" for help.
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q
```
You can verify that authentication works issuing the following command and providing the configured password. (Replace `localhost` with your database server if using a remote database.)
```no-highlight
# psql -U netbox -W -h localhost netbox
```
If successful, you will enter a `netbox` prompt. Type `\q` to exit.

View File

@@ -1,82 +1,106 @@
# Install the Latest Code
# Upgrading to a New NetBox Release
## Review the Release Notes
Prior to upgrading your NetBox instance, be sure to carefully review all [release notes](../../release-notes/) that have been published since your current version was released. Although the upgrade process typically does not involve additional work, certain releases may introduce breaking or backward-incompatible changes. These are called out in the release notes under the release in which the change went into effect.
## Update Dependencies to Required Versions
NetBox v2.9.0 and later requires the following:
| Dependency | Minimum Version |
|------------|-----------------|
| Python | 3.6 |
| PostgreSQL | 9.6 |
| Redis | 4.0 |
## Install the Latest Release
As with the initial installation, you can upgrade NetBox by either downloading the latest release package or by cloning the `master` branch of the git repository.
## Option A: Download a Release
### Option A: Download a Release
Download the [latest stable release](https://github.com/digitalocean/netbox/releases) from GitHub as a tarball or ZIP archive. Extract it to your desired path. In this example, we'll use `/opt/netbox`.
Download the [latest stable release](https://github.com/netbox-community/netbox/releases) from GitHub as a tarball or ZIP archive. Extract it to your desired path. In this example, we'll use `/opt/netbox`.
Download and extract the latest version:
```no-highlight
# wget https://github.com/digitalocean/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# cd /opt/
# ln -sf netbox-X.Y.Z/ netbox
wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
sudo tar -xzf vX.Y.Z.tar.gz -C /opt
sudo ln -sfn /opt/netbox-X.Y.Z/ /opt/netbox
```
Copy the 'configuration.py' you created when first installing to the new version:
Copy `local_requirements.txt`, `configuration.py`, and `ldap_config.py` (if present) from the current installation to the new version:
```no-highlight
# cp /opt/netbox-X.Y.Z/netbox/netbox/configuration.py /opt/netbox/netbox/netbox/configuration.py
sudo cp /opt/netbox-X.Y.Z/local_requirements.txt /opt/netbox/
sudo cp /opt/netbox-X.Y.Z/netbox/netbox/configuration.py /opt/netbox/netbox/netbox/
sudo cp /opt/netbox-X.Y.Z/netbox/netbox/ldap_config.py /opt/netbox/netbox/netbox/
```
Be sure to replicate your uploaded media as well. (The exact action necessary will depend on where you choose to store your media, but in general moving or copying the media directory will suffice.)
```no-highlight
sudo cp -pr /opt/netbox-X.Y.Z/netbox/media/ /opt/netbox/netbox/
```
Also make sure to copy or link any custom scripts and reports that you've made. Note that if these are stored outside the project root, you will not need to copy them. (Check the `SCRIPTS_ROOT` and `REPORTS_ROOT` parameters in the configuration file above if you're unsure.)
```no-highlight
sudo cp -r /opt/netbox-X.Y.Z/netbox/scripts /opt/netbox/netbox/
sudo cp -r /opt/netbox-X.Y.Z/netbox/reports /opt/netbox/netbox/
```
If you followed the original installation guide to set up gunicorn, be sure to copy its configuration as well:
```no-highlight
# cp /opt/netbox-X.Y.Z/gunicorn_config.py /opt/netbox/gunicorn_config.py
sudo cp /opt/netbox-X.Y.Z/gunicorn.py /opt/netbox/
```
Copy the LDAP configuration if using LDAP:
```no-highlight
# cp /opt/netbox-X.Y.Z/netbox/netbox/ldap_config.py /opt/netbox/netbox/netbox/ldap_config.py
```
## Option B: Clone the Git Repository (latest master release)
### Option B: Clone the Git Repository
This guide assumes that NetBox is installed at `/opt/netbox`. Pull down the most recent iteration of the master branch:
```no-highlight
# cd /opt/netbox
# git checkout master
# git pull origin master
# git status
cd /opt/netbox
sudo git checkout master
sudo git pull origin master
```
# Run the Upgrade Script
## Run the Upgrade Script
Once the new code is in place, run the upgrade script (which may need to be run as root depending on how your environment is configured).
Once the new code is in place, verify that any optional Python packages required by your deployment (e.g. `napalm` or `django-auth-ldap`) are listed in `local_requirements.txt`. Then, run the upgrade script:
```no-highlight
# ./upgrade.sh
sudo ./upgrade.sh
```
!!! warning
The upgrade script will prefer Python3 and pip3 if both executables are available. To force it to use Python2 and pip, use the `-2` argument as below.
This script performs the following actions:
```no-highlight
# ./upgrade.sh -2
```
This script:
* Installs or upgrades any new required Python packages
* Destroys and rebuilds the Python virtual environment
* Installs all required Python packages (listed in `requirements.txt`)
* Installs any additional packages from `local_requirements.txt`
* Applies any database migrations that were included in the release
* Collects all static files to be served by the HTTP service
* Deletes stale content types from the database
* Deletes all expired user sessions from the database
* Clears all cached data to prevent conflicts with the new release
!!! note
It's possible that the upgrade script will display a notice warning of unreflected database migrations:
If the upgrade script prompts a warning about unreflected database migrations, this indicates that some change has
been made to your local codebase and should be investigated. Never attempt to create new migrations unless you are
intentionally modifying the database schema.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
## Restart the NetBox Services
This may occur due to semantic differences in environment, and can be safely ignored. Never attempt to create new migrations unless you are intentionally modifying the database schema.
!!! warning
If you are upgrading from an installation that does not use a Python virtual environment (any release prior to v2.7.9), you'll need to update the systemd service files to reference the new Python and gunicorn executables before restarting the services. These are located in `/opt/netbox/venv/bin/`. See the example service files in `/opt/netbox/contrib/` for reference.
# Restart the WSGI Service
Finally, restart the WSGI service to run the new code. If you followed this guide for the initial installation, this is done using `supervisorctl`:
Finally, restart the gunicorn and RQ services:
```no-highlight
# sudo supervisorctl restart netbox
sudo systemctl restart netbox netbox-rq
```
!!! note
If upgrading from an installation that uses supervisord, please see the instructions for [migrating to systemd](migrating-to-systemd.md). The use of supervisord is no longer supported.

View File

@@ -1,145 +0,0 @@
We'll set up a simple WSGI front end using [gunicorn](http://gunicorn.org/) for the purposes of this guide. For web servers, we provide example configurations for both [nginx](https://www.nginx.com/resources/wiki/) and [Apache](http://httpd.apache.org/docs/2.4). (You are of course free to use whichever combination of HTTP and WSGI services you'd like.) We'll also use [supervisord](http://supervisord.org/) to enable service persistence.
!!! info
For the sake of brevity, only Ubuntu 16.04 instructions are provided here, but this sort of web server and WSGI configuration is not unique to NetBox. Please consult your distribution's documentation for assistance if needed.
# Web Server Installation
## Option A: nginx
The following will serve as a minimal nginx configuration. Be sure to modify your server name and installation path appropriately.
```no-highlight
# apt-get install -y nginx
```
Once nginx is installed, save the following configuration to `/etc/nginx/sites-available/netbox`. Be sure to replace `netbox.example.com` with the domain name or IP address of your installation. (This should match the value configured for `ALLOWED_HOSTS` in `configuration.py`.)
```nginx
server {
listen 80;
server_name netbox.example.com;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
```
Then, delete `/etc/nginx/sites-enabled/default` and create a symlink in the `sites-enabled` directory to the configuration file you just created.
```no-highlight
# cd /etc/nginx/sites-enabled/
# rm default
# ln -s /etc/nginx/sites-available/netbox
```
Restart the nginx service to use the new configuration.
```no-highlight
# service nginx restart
```
To enable SSL, consider this guide on [securing nginx with Let's Encrypt](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04).
## Option B: Apache
```no-highlight
# apt-get install -y apache2
```
Once Apache is installed, proceed with the following configuration (Be sure to modify the `ServerName` appropriately):
```apache
<VirtualHost *:80>
ProxyPreserveHost On
ServerName netbox.example.com
Alias /static /opt/netbox/netbox/static
# Needed to allow token-based API authentication
WSGIPassAuthorization on
<Directory /opt/netbox/netbox/static>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Location /static>
ProxyPass !
</Location>
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
```
Save the contents of the above example in `/etc/apache2/sites-available/netbox.conf`, enable the `proxy` and `proxy_http` modules, and reload Apache:
```no-highlight
# a2enmod proxy
# a2enmod proxy_http
# a2ensite netbox
# service apache2 restart
```
To enable SSL, consider this guide on [securing Apache with Let's Encrypt](https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04).
# gunicorn Installation
Install gunicorn using `pip3` (Python 3) or `pip` (Python 2):
```no-highlight
# pip3 install gunicorn
```
Save the following configuration in the root netbox installation path as `gunicorn_config.py` (e.g. `/opt/netbox/gunicorn_config.py` per our example installation). Be sure to verify the location of the gunicorn executable on your server (e.g. `which gunicorn`) and to update the `pythonpath` variable if needed. If using CentOS/RHEL, change the username from `www-data` to `nginx` or `apache`.
```no-highlight
command = '/usr/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '127.0.0.1:8001'
workers = 3
user = 'www-data'
```
# supervisord Installation
Install supervisor:
```no-highlight
# apt-get install -y supervisor
```
Save the following as `/etc/supervisor/conf.d/netbox.conf`. Update the `command` and `directory` paths as needed. If using CentOS/RHEL, change the username from `www-data` to `nginx` or `apache`.
```no-highlight
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
```
Then, restart the supervisor service to detect and run the gunicorn service:
```no-highlight
# service supervisor restart
```
At this point, you should be able to connect to the nginx HTTP service at the server name or IP address you provided. If you are unable to connect, check that the nginx service is running and properly configured. If you receive a 502 (bad gateway) error, this indicates that gunicorn is misconfigured or not running.
!!! info
Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You will almost certainly want to make some changes to better suit your production environment.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 339 KiB

View File

@@ -1,194 +0,0 @@
NetBox includes a Python shell withing which objects can be directly queried, created, modified, and deleted. To enter the shell, run the following command:
```
./manage.py nbshell
```
This will launch a customized version of [the built-in Django shell](https://docs.djangoproject.com/en/dev/ref/django-admin/#shell) with all relevant NetBox models pre-loaded. (If desired, the stock Django shell is also available by executing `./manage.py shell`.)
```
$ ./manage.py nbshell
### NetBox interactive shell (jstretch-laptop)
### Python 2.7.6 | Django 1.11.3 | NetBox 2.1.0-dev
### lsmodels() will show available models. Use help(<model>) for more info.
```
The function `lsmodels()` will print a list of all available NetBox models:
```
>>> lsmodels()
DCIM:
ConsolePort
ConsolePortTemplate
ConsoleServerPort
ConsoleServerPortTemplate
Device
...
```
## Querying Objects
Objects are retrieved by forming a [Django queryset](https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects). The base queryset for an object takes the form `<model>.objects.all()`, which will return a (truncated) list of all objects of that type.
```
>>> Device.objects.all()
<QuerySet [<Device: TestDevice1>, <Device: TestDevice2>, <Device: TestDevice3>, <Device: TestDevice4>, <Device: TestDevice5>, '...(remaining elements truncated)...']>
```
Use a `for` loop to cycle through all objects in the list:
```
>>> for device in Device.objects.all():
... print(device.name, device.device_type)
...
(u'TestDevice1', <DeviceType: PacketThingy 9000>)
(u'TestDevice2', <DeviceType: PacketThingy 9000>)
(u'TestDevice3', <DeviceType: PacketThingy 9000>)
(u'TestDevice4', <DeviceType: PacketThingy 9000>)
(u'TestDevice5', <DeviceType: PacketThingy 9000>)
...
```
To count all objects matching the query, replace `all()` with `count()`:
```
>>> Device.objects.count()
1274
```
To retrieve a particular object (typically by its primary key or other unique field), use `get()`:
```
>>> Site.objects.get(pk=7)
<Site: Test Lab>
```
### Filtering Querysets
In most cases, you want to retrieve only a specific subset of objects. To filter a queryset, replace `all()` with `filter()` and pass one or more keyword arguments. For example:
```
>>> Device.objects.filter(status=STATUS_ACTIVE)
<QuerySet [<Device: TestDevice1>, <Device: TestDevice2>, <Device: TestDevice3>, <Device: TestDevice8>, <Device: TestDevice9>, '...(remaining elements truncated)...']>
```
Querysets support slicing to return a specific range of objects.
```
>>> Device.objects.filter(status=STATUS_ACTIVE)[:3]
<QuerySet [<Device: TestDevice1>, <Device: TestDevice2>, <Device: TestDevice3>]>
```
The `count()` method can be appended to the queryset to return a count of objects rather than the full list.
```
>>> Device.objects.filter(status=STATUS_ACTIVE).count()
982
```
Relationships with other models can be traversed by concatenting field names with a double-underscore. For example, the following will return all devices assigned to the tenant named "Pied Piper."
```
>>> Device.objects.filter(tenant__name='Pied Piper')
```
This approach can span multiple levels of relations. For example, the following will return all IP addresses assigned to a device in North America:
```
>>> IPAddress.objects.filter(interface__device__site__region__slug='north-america')
```
!!! note
While the above query is functional, it is very inefficient. There are ways to optimize such requests, however they are out of the scope of this document. For more information, see the [Django queryset method reference](https://docs.djangoproject.com/en/dev/ref/models/querysets/) documentation.
Reverse relationships can be traversed as well. For example, the following will find all devices with an interface named "em0":
```
>>> Device.objects.filter(interfaces__name='em0')
```
Character fields can be filtered against partial matches using the `contains` or `icontains` field lookup (the later of which is case-insensitive).
```
>>> Device.objects.filter(name__icontains='testdevice')
```
Similarly, numeric fields can be filtered by values less than, greater than, and/or equal to a given value.
```
>>> VLAN.objects.filter(vid__gt=2000)
```
Multiple filters can be combined to further refine a queryset.
```
>>> VLAN.objects.filter(vid__gt=2000, name__icontains='engineering')
```
To return the inverse of a filtered queryset, use `exclude()` instead of `filter()`.
```
>>> Device.objects.count()
4479
>>> Device.objects.filter(status=STATUS_ACTIVE).count()
4133
>>> Device.objects.exclude(status=STATUS_ACTIVE).count()
346
```
!!! info
The examples above are intended only to provide a cursory introduction to queryset filtering. For an exhaustive list of the available filters, please consult the [Django queryset API docs](https://docs.djangoproject.com/en/dev/ref/models/querysets/).
## Creating and Updating Objects
New objects can be created by instantiating the desired model, defining values for all required attributes, and calling `save()` on the instance.
```
>>> lab1 = Site.objects.get(pk=7)
>>> myvlan = VLAN(vid=123, name='MyNewVLAN', site=lab1)
>>> myvlan.save()
```
Alternatively, the above can be performed as a single operation:
```
>>> VLAN(vid=123, name='MyNewVLAN', site=Site.objects.get(pk=7)).save()
```
To modify an object, retrieve it, update the desired field(s), and call `save()` again.
```
>>> vlan = VLAN.objects.get(pk=1280)
>>> vlan.name
u'MyNewVLAN'
>>> vlan.name = 'BetterName'
>>> vlan.save()
>>> VLAN.objects.get(pk=1280).name
u'BetterName'
```
!!! warning
The Django ORM provides methods to create/edit many objects at once, namely `bulk_create()` and `update()`. These are best avoided in most cases as they bypass a model's built-in validation and can easily lead to database corruption if not used carefully.
## Deleting Objects
To delete an object, simply call `delete()` on its instance. This will return a dictionary of all objects (including related objects) which have been deleted as a result of this operation.
```
>>> vlan
<VLAN: 123 (BetterName)>
>>> vlan.delete()
(1, {u'extras.CustomFieldValue': 0, u'ipam.VLAN': 1})
```
To delete multiple objects at once, call `delete()` on a filtered queryset. It's a good idea to always sanity-check the count of selected objects _before_ deleting them.
```
>>> Device.objects.filter(name__icontains='test').count()
27
>>> Device.objects.filter(name__icontains='test').delete()
(35, {u'extras.CustomFieldValue': 0, u'dcim.DeviceBay': 0, u'secrets.Secret': 0, u'dcim.InterfaceConnection': 4, u'extras.ImageAttachment': 0, u'dcim.Device': 27, u'dcim.Interface': 4, u'dcim.ConsolePort': 0, u'dcim.PowerPort': 0})
```
!!! warning
Deletions are immediate and irreversible. Always think very carefully before calling `delete()` on an instance or queryset.

View File

@@ -0,0 +1,19 @@
# Circuits
A communications circuit represents a single _physical_ link connecting exactly two endpoints, commonly referred to as its A and Z terminations. A circuit in NetBox may have zero, one, or two terminations defined. It is common to have only one termination defined when you don't necessarily care about the details of the provider side of the circuit, e.g. for Internet access circuits. Both terminations would likely be modeled for circuits which connect one customer site to another.
Each circuit is associated with a provider and a user-defined type. For example, you might have Internet access circuits delivered to each site by one provider, and private MPLS circuits delivered by another. Each circuit must be assigned a circuit ID, each of which must be unique per provider.
Each circuit is also assigned one of the following operational statuses:
* Planned
* Provisioning
* Active
* Offline
* Deprovisioning
* Decommissioned
Circuits also have optional fields for annotating their installation date and commit rate, and may be assigned to NetBox tenants.
!!! note
NetBox currently models only physical circuits: those which have exactly two endpoints. It is common to layer virtualized constructs (_virtual circuits_) such as MPLS or EVPN tunnels on top of these, however NetBox does not yet support virtual circuit modeling.

View File

@@ -0,0 +1,10 @@
# Circuit Terminations
The association of a circuit with a particular site and/or device is modeled separately as a circuit termination. A circuit may have up to two terminations, labeled A and Z. 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 may optionally be connected via a cable to a specific device interface or port within that site. Each termination must be assigned a port speed, and can optionally be assigned an upstream speed if it differs from the downstream speed (a common scenario with e.g. DOCSIS cable modems). Fields are also available to track cross-connect and patch panel details.
In adherence with NetBox's philosophy of closely modeling the real world, a circuit may terminate only to a physical interface. For example, circuits may not terminate to LAG interfaces, which are virtual in nature. In such cases, a separate physical circuit is associated with each LAG member interface and each needs to be modeled discretely.
!!! note
A circuit in NetBox 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, with one end terminating within the provider's infrastructure.

View File

@@ -0,0 +1,8 @@
# Circuit Types
Circuits are classified by functional type. These types are completely customizable, and are typically used to convey the type of service being delivered over a circuit. For example, you might define circuit types for:
* Internet transit
* Out-of-band connectivity
* Peering
* Private backhaul

View File

@@ -0,0 +1,5 @@
# Providers
A circuit provider is any entity which provides some form of connectivity of among sites or organizations within a site. While this obviously includes carriers which offer Internet and private transit service, it might also include Internet exchange (IX) points and even organizations with whom you peer directly. Each circuit within NetBox must be assigned a provider and a circuit ID which is unique to that provider.
Each provider may be assigned an autonomous system number (ASN), an account number, and contact information.

34
docs/models/dcim/cable.md Normal file
View File

@@ -0,0 +1,34 @@
# Cables
All connections between device components in NetBox are represented using cables. A cable represents a direct physical connection between two termination points, such as between a console port and a patch panel port, or between two network interfaces.
Each cable must have two endpoints defined. These endpoints are sometimes referenced as A and B for clarity, however cables are direction-agnostic and the order in which terminations are made has no meaning. Cables may be connected to the following objects:
* Circuit terminations
* Console ports
* Console server ports
* Interfaces
* Pass-through ports (front and rear)
* Power feeds
* Power outlets
* Power ports
Each cable may be assigned a type, label, length, and color. Each cable is also assigned one of three operational statuses:
* Active (default)
* Planned
* Decommissioning
## Tracing Cables
A cable may be traced from either of its endpoints by clicking the "trace" button. (A REST API endpoint also provides this functionality.) NetBox will follow the path of connected cables from this termination across the directly connected cable to the far-end termination. If the cable connects to a pass-through port, and the peer port has another cable connected, NetBox will continue following the cable path until it encounters a non-pass-through or unconnected termination point. The entire path will be displayed to the user.
In the example below, three individual cables comprise a path between devices A and D:
![Cable path](../../media/models/dcim_cable_trace.png)
Traced from Interface 1 on Device A, NetBox will show the following path:
* Cable 1: Interface 1 to Front Port 1
* Cable 2: Rear Port 1 to Rear Port 2
* Cable 3: Front Port 2 to Interface 2

Some files were not shown because too many files have changed in this diff Show More