Compare commits

...

3672 Commits

Author SHA1 Message Date
Jeremy Stretch
f8cbd322ba Merge pull request #9801 from netbox-community/develop
Release v3.2.7
2022-07-20 11:13:00 -04:00
jeremystretch
9835d6b2df Release NetBox v3.2.7 2022-07-20 10:57:11 -04:00
jeremystretch
17e00ac040 Fixes #9705: Support filter expressions for the serial field on racks, devices, and inventory items 2022-07-20 10:39:36 -04:00
jeremystretch
1c9db2d9f8 Fixes #9499: Fix filtered bulk deletion of VM Interfaces 2022-07-19 16:21:32 -04:00
jeremystretch
44586743ea Fixes #9437: Standardize form submission buttons and behavior when using enter key 2022-07-19 14:21:20 -04:00
jeremystretch
802d9d2b6e Fixes #9749: Retain original slug values when modifying object names 2022-07-19 13:01:51 -04:00
jeremystretch
a7a20ad2ea Fixes #9775: Fix exception when viewing a report with no descripton 2022-07-19 13:01:21 -04:00
Jeremy Stretch
124ff23e3d Merge pull request #9750 from smuth4/fix/broken-image-urls
Fixes #9634: Respect image URLs which are already fully formed
2022-07-19 12:46:32 -04:00
jeremystretch
1a028f77d4 Changelog for #9754 2022-07-18 09:16:43 -04:00
Jeremy Stretch
7603468abc Merge pull request #9757 from kkthxbye-code/fix-9754-2
Fixes #9754 -Revert #9735 & #9696
2022-07-18 08:40:45 -04:00
kkthxbye-code
b854cefb57 Revert #9735 & #9696 2022-07-17 17:33:47 +02:00
Stephen Muth
3d475e5afa Fixes #9634: Respect image URLs which are already fully formed
For local storage, URLs will always be relative, but some custom storage backends
such as S3 may return absolute ones.
2022-07-16 11:46:25 -04:00
jeremystretch
250265c3d9 Fixes #9746: Permit filtering interfaces by arbitrary speed value in UI 2022-07-15 15:40:55 -04:00
jeremystretch
e07dd3ddcb Define NESTED_SERIALIZER_PREFIX constant 2022-07-15 15:31:42 -04:00
jeremystretch
68f53aaa87 Closes #9745: Add wireless LANs and links to global search 2022-07-15 15:28:00 -04:00
Jeremy Stretch
5fda5cc08c Merge pull request #9742 from henryriveraCS/develop
Corrected typo for description of 'snapshots'
2022-07-15 14:53:15 -04:00
Henry
6da171a699 Corrected typo for description of 'snapshots' 2022-07-15 10:52:37 -04:00
jeremystretch
fe2fae5b86 Closes #9741: Check for UserConfig instance during user login 2022-07-15 09:42:12 -04:00
jeremystretch
5b5160ca6f Fixes #9715: Fix SOCIAL_AUTH_PIPELINE config parameter not taking effect 2022-07-15 08:34:30 -04:00
Jeremy Stretch
b9dd654e7a Merge pull request #9735 from kkthxbye-code/fix-9734
Fixes #9734 & #9713 - Only set focus on select field search boxes if the select is open
2022-07-15 08:14:46 -04:00
kkthxbye-code
b0df24e6d1 UI: Only set focus on select field search boxes if the select is open 2022-07-15 08:51:05 +02:00
jeremystretch
57397570c0 Drop extraneous/invalid prefetches 2022-07-11 12:45:53 -04:00
jeremystretch
e106d7ac3a PRVB 2022-07-11 12:11:50 -04:00
Jeremy Stretch
b72793a85a Merge pull request #9706 from netbox-community/develop
Release v3.2.6
2022-07-11 12:09:21 -04:00
jeremystretch
68f24755aa Release v3.2.6 2022-07-11 11:41:28 -04:00
jeremystretch
5a4467a4a8 Fixes #9687: Don't restrict custom text field lengths when entering via UI form 2022-07-11 11:12:06 -04:00
jeremystretch
7c109ffd8c Fixes #9697: Fix device role link under device view 2022-07-11 11:02:18 -04:00
jeremystretch
6415661b61 Remove extraneous argument to GenericRelation 2022-07-11 10:33:14 -04:00
jeremystretch
ed7f42a803 Fixes #9704: Include last_updated field on JournalEntry REST API serializer 2022-07-11 10:28:37 -04:00
jeremystretch
e2af716a81 #9686: Add default accessor to TenantGroupColumn 2022-07-11 10:03:45 -04:00
jeremystretch
d3f91ce0a6 Changelog for #9632, #9686 2022-07-11 09:57:12 -04:00
Jeremy Stretch
dde005366a Merge pull request #9700 from PieterL75/issue9656_journalviewlayout
Fixes: #9656 Re-order journal list and form
2022-07-11 09:54:48 -04:00
Jeremy Stretch
85cab8d9b0 Merge pull request #9696 from kkthxbye-code/fix-9632
Fixes #9632 - Focus on select field after populating data
2022-07-11 09:51:45 -04:00
Jeremy Stretch
a49d3d2ddc Merge pull request #9695 from hagbarddenstore/issue_9686
Add Tenant Group column to tables #9686
2022-07-11 09:50:42 -04:00
kkthxbye-code
93c30c94b3 Focus on select field after populating data 2022-07-10 19:16:16 +02:00
Kim Johansson
1539769c08 Prefetch Tenant Group on user configurable tables
Prefetch the Tenant Group in views which allows its table to be configured
by the user. This decreases the amount of database queries that are required
to fetch the data.
2022-07-10 17:17:56 +02:00
Kim Johansson
c7ece43a18 Remove Tenant Group from child tables
Removes the Tenant Group column from tables which aren't configurable
by the user.
2022-07-10 17:16:12 +02:00
Kim Johansson
69a22ffe5e Prefetch Tenant Group in global search
Configure the prefetch to also include the Tenant Group, avoids additional
database queries when the Tenant Group column is to be rendered.

NOTE: If no personalisation of the global search tables should be done,
this commit can be reverted.
2022-07-10 15:38:21 +02:00
Kim Johansson
e6bfde1397 Replace TenantColumn with new TenancyColumnsMixin
Replaces all usages of the TenantColumn with the new TenancyColumnsMixin.

This enables the user to add a column for Tenant Group on all tables which
also has a column for Tenant.
2022-07-10 15:13:48 +02:00
Kim Johansson
bd60d46b82 Table mixin for Tenancy columns
A mixin to add the Tenant and Tenant Group columns to a table.
2022-07-10 15:08:55 +02:00
Kim Johansson
3c2a55a521 Add TenantGroupColumn to display Tenant Group on tables
Works the same as the existing TenantColumn, but displats the Tenant Group of
the Tenant.

Views should prefetch the Tenants Group for this to be efficient in large
tables.
2022-07-10 11:58:45 +02:00
jeremystretch
a40ab9ffb1 Fixes #9657: Fix filtering for custom fields and webhooks in the UI 2022-07-08 14:59:16 -04:00
jeremystretch
55b3e4eeb3 Fixes #9682: Fix bulk assignment of ASNs to sites 2022-07-08 14:16:42 -04:00
Pieter Lambrecht
13f854c91f Re-order journal list and form 2022-07-06 14:10:10 +02:00
jeremystretch
29f629156a Update NOTICE file 2022-07-01 11:36:34 -04:00
jeremystretch
8e200a9cb4 #9403: Add labels to device VC fields 2022-06-28 16:24:56 -04:00
jeremystretch
ccb7e96d8a Changelog for #8854, #9403, #9540 2022-06-28 16:22:38 -04:00
Jeremy Stretch
f75ddeb721 Merge pull request #9622 from cpund/9403-branch
Closes #9403: Add support for setting a virtual chassis on a device in the GUI
2022-06-28 16:21:22 -04:00
Jeremy Stretch
221ddc6d0f Merge pull request #9600 from huntabyte/issue-8854
Fixes #8854: Remote auth default groups added to new remote auth users
2022-06-28 15:29:23 -04:00
Jeremy Stretch
31c752bf3a Merge pull request #9607 from huntabyte/feature-9540
Closes #9540: Filter IP addresses by assigned Device/VM
2022-06-28 15:08:37 -04:00
Hunter Johnston
2077378ae1 Closes #9540: Filter IP addresses by assigned Device/VM 2022-06-25 15:41:31 -04:00
Hunter Johnston
9b91c2a886 syntax: Removed dev imports 2022-06-23 23:29:14 -04:00
Hunter Johnston
d8b40056b5 Fixes #8854: Remote auth default groups added to new remote auth users 2022-06-23 20:54:26 -04:00
jeremystretch
4315c4697c Ignore default field values which reference ConfigItems when calculating migrations 2022-06-23 17:44:19 -04:00
jeremystretch
b77013c859 Docs & cleanup for #7702 2022-06-23 17:26:20 -04:00
Jeremy Stretch
f7de2611c1 Merge pull request #9576 from huntabyte/feature-7702
Closes #7702: Add Power feed defaults to user configurations
2022-06-23 17:00:06 -04:00
Hunter Johnston
c330282919 Fix syntax error 2022-06-23 14:56:24 -04:00
Hunter Johnston
db807ab4a6 Closes #7702: Add power feed defaults to user configurations 2022-06-23 14:16:09 -04:00
jeremystretch
d55e3c352a Changelog for #9396, #9575, #9597 2022-06-23 14:14:02 -04:00
Hunter Johnston
afec53cea3 Fixes #9575: Add exception handling to services (#9586) 2022-06-23 14:11:59 -04:00
Hunter Johnston
6cb8b9110e Closes #9396: Query modules by module bay & display installed_modules for module_bay REST API endpoint (#9574)
* Closes #9396 - Added ability to query modules by module bay & installed_modules for module bay REST API endpoint

* Closes #9396 - Added ability to query modules by module bay & installed_modules for module bay REST API endpoint

* Closes #9396 - Added ability to query modules by module bay & installed_modules for module bay REST API endpoint
2022-06-23 13:28:36 -04:00
Hunter Johnston
52178f78d1 Closes #7702: Add Powerfeed Defaults to User Configurations 2022-06-21 12:58:41 -04:00
jeremystretch
575e2c443b PRVB 2022-06-20 11:38:49 -04:00
Jeremy Stretch
7c09259b7d Merge pull request #9569 from netbox-community/develop
Release v3.2.5
2022-06-20 11:35:48 -04:00
jeremystretch
7ba268946a Release v3.2.5 2022-06-20 11:22:36 -04:00
jeremystretch
8074ca95bd Closes #9453: Disable default loggers when running tests 2022-06-20 11:17:15 -04:00
jeremystretch
d691ea92d0 #9525: Add button colors 2022-06-20 09:44:59 -04:00
jeremystretch
903a3e1a9c Changelog for #8944, #9108, #9556 2022-06-20 08:34:05 -04:00
Jeremy Stretch
4109113319 Merge pull request #9558 from kkthxbye-code/fix-9556
Fixes #9556 - Don't close select field when multiple select (v2)
2022-06-20 08:25:49 -04:00
Jeremy Stretch
872c11502f Merge pull request #9522 from kkthxbye-code/fix-9108
Fixes #9108 & #8944 - Sanitize HTML after rendering markdown
2022-06-20 08:16:43 -04:00
jeremystretch
10cb4f359a Changelog for #9417, #9517, #9525 2022-06-20 08:06:49 -04:00
Jeremy Stretch
45babf162e Merge pull request #9562 from huntabyte/feature-9525
Closes: #9525 - Add split button functionality to table rows
2022-06-20 08:03:20 -04:00
Jeremy Stretch
3434428357 Merge pull request #9563 from huntabyte/feature-9417
Closes #9417: Pre-populate manufacturer when adding modules to devices
2022-06-20 07:49:10 -04:00
Jeremy Stretch
25128bd06f Merge pull request #9564 from huntabyte/feature-9517
Closes #9517: Linkify Power Port on Power Outlet Object View
2022-06-20 07:45:30 -04:00
Hunter Johnston
e7620b0dd0 Closes #9517: Linkify Power Port on Power Outlet Object View 2022-06-19 22:10:01 -04:00
Hunter Johnston
65683d0df1 Closes #9417: Pre-populate manufacturer when adding modules to devices 2022-06-19 20:00:15 -04:00
Hunter Johnston
ff2ccfd670 Closes #9525: Added split button functionality to ActionsColumn 2022-06-19 19:12:52 -04:00
Hunter Johnston
b1ec703ba9 Implemented feature #9525 2022-06-18 23:08:06 -04:00
Hunter Johnston
3d785d836d Implemented feature #9525 2022-06-18 23:05:18 -04:00
kkthxbye-code
7c79c90cd2 Sanitize HTML after rendering markdown 2022-06-17 23:16:57 +02:00
kkthxbye-code
a6e285316a Don't close select field when multiple select 2022-06-17 22:53:51 +02:00
jeremystretch
e6018cd38f Closes #9534: Add VLAN group selector to interface bulk edit forms 2022-06-17 14:51:45 -04:00
jeremystretch
92a6523bf3 Fixes #9549: Fix device counts for rack list under rack role view 2022-06-17 14:40:37 -04:00
jeremystretch
2815eca260 Fixes #9503: Hyperlinks in ack elevation SVGs must always use absolute URLs 2022-06-17 14:36:55 -04:00
jeremystretch
896ebf01b1 Changelog for #8704, #9533, #9374, #9466, #9537 2022-06-17 14:04:57 -04:00
Jeremy Stretch
a71b2e231b Merge pull request #9309 from CroogQT/multiselect
Multiselect
2022-06-17 14:00:54 -04:00
Jeremy Stretch
56f3aaf7c8 Merge pull request #9473 from kkthxbye-code/fix-9466
Fixes #9466 - Clear webhook queue on script failure
2022-06-17 13:58:26 -04:00
Jeremy Stretch
87a9cc0b9e Merge pull request #9527 from kkthxbye-code/fix-9374
Partially fixes #9374 - Implement a custom paginator for DeviceViewSet to improve config_context load times
2022-06-17 13:44:37 -04:00
Jeremy Stretch
972a1fdd14 Merge pull request #9543 from hagbarddenstore/fix-9537
Replace None in templates with placeholder filter
2022-06-17 13:16:46 -04:00
Jeremy Stretch
723954f0d9 Merge pull request #9547 from kkthxbye-code/fix-9533
Fixes #9533 - Move markdown documentation to docs
2022-06-17 13:14:44 -04:00
kkthxbye-code
cf76d5c46a Move markdown documentation to docs 2022-06-16 22:26:37 +02:00
Kim Johansson
e8b970608e Replace None in templates with placeholder filter
To be consistent, all uses of — or None is replaced with the
placeholder filter.

Fixes #9537
2022-06-15 22:33:21 +02:00
Jeremy Stretch
83fdfaa0eb Fixes #9524: Correct order of VLAN fields under VM interface creation form 2022-06-13 19:14:29 -04:00
Jeremy Stretch
86c35a403a Changelog for #9501, #9512 2022-06-13 19:05:16 -04:00
Jeremy Stretch
e96c382138 Merge pull request #9520 from kkthxbye-code/fix-9501
Fixes #9501 - Add configuration option JINJA2_FILTERS
2022-06-13 18:55:25 -04:00
Craig Pund
6876c9878e added field definitions for device form 2022-06-13 17:06:08 -04:00
Craig Pund
29a5fb041f add fields for virtual chassis to device_edit form 2022-06-13 17:04:25 -04:00
kkthxbye-code
8ef74192ec Implement a custom paginator for DeviceViewSet
Running count on the annotated query for loading config_context is slow. The custom paginator removes the annotation before getting the count.
2022-06-13 20:45:08 +02:00
Jeremy Stretch
135ce93d03 Merge pull request #9523 from kkthxbye-code/fix-9512
Fixes #9512 -  Add distinct to Site search to prevent duplicates when search matches ASN
2022-06-13 12:12:34 -04:00
kkthxbye
f13b090b5c Add distinct to Site search to prevent duplicates when search matches ASN 2022-06-13 07:56:31 +02:00
kkthxbye-code
d1aa820856 Add configuration option JINJA2_FILTERS 2022-06-10 23:13:49 +02:00
jeremystretch
c81c3d11ed Fixes #9495: Correct link to contacts in contact groups table column 2022-06-09 10:20:44 -04:00
jeremystretch
36c65b7b22 Closes #8893: Include count of IP ranges under tenant view 2022-06-07 11:12:40 -04:00
jeremystretch
8a4c808be5 Closes #8882: Support filtering IP addresses by multiple parent prefixes 2022-06-07 11:00:14 -04:00
jeremystretch
6ed2dbf172 Fixes #9486: Fix redirect URL when adding device components from the module view 2022-06-07 10:06:19 -04:00
jeremystretch
1b8350fe48 Add warning against bumping stale issues 2022-06-07 09:59:59 -04:00
jeremystretch
15080aad66 Changelog for #9480, #9484 2022-06-07 08:51:53 -04:00
Jeremy Stretch
7a7f7c5dec Merge pull request #9483 from kkthxbye-code/fix-9480
Fixes #9480 - Make the Service and ServiceTemplate tables sortable by ports
2022-06-07 08:46:13 -04:00
Jeremy Stretch
c958208c47 Merge pull request #9485 from kkthxbye-code/fix-9484
Fixes #9484 - List services listening on all IPs in IPAddressView
2022-06-07 08:43:14 -04:00
kkthxbye-code
9f4e565b8e List services listening on all IPs in IPAddressView 2022-06-06 16:28:33 +02:00
kkthxbye-code
bb2d21abdd Make the Service and ServiceTemplate tables sortable by ports 2022-06-05 10:31:21 +02:00
kkthxbye
e2eb7fdfb5 Clear webhook queue on script failure 2022-06-03 13:03:58 +02:00
jeremystretch
3fbf1f7e71 PRVB 2022-05-31 15:31:22 -04:00
Jeremy Stretch
9d308e6246 Merge pull request #9454 from netbox-community/develop
Release v3.2.4
2022-05-31 15:28:13 -04:00
jeremystretch
6c035eb13d Release v3.2.4 2022-05-31 15:08:33 -04:00
jeremystretch
b0a56a71bb Fixes #9291: Improve data validation for MultiObjectVar script fields 2022-05-31 13:37:14 -04:00
jeremystretch
201b9f635e Fixes #9402: Fix custom field population when creating a virtual chassis 2022-05-31 13:26:25 -04:00
jeremystretch
f1d0d8e57a Fixes #9407: Clean up display of prefixes values when exporting prefixes list 2022-05-31 12:23:22 -04:00
jeremystretch
5838a9f3a0 Closes #9451: Add export_raw argument for TemplateColumn 2022-05-31 12:20:39 -04:00
jeremystretch
998a392bd3 Fixes #9425: Fix bulk import for object and multi-object custom fields 2022-05-31 11:37:30 -04:00
jeremystretch
a0a87fc4c0 Changelog for #9420, #9430 2022-05-31 09:14:23 -04:00
Jeremy Stretch
6c0b4c66c0 Merge pull request #9438 from kkthxbye-code/fix-9420
Fixes #9420: Allow script inheritance
2022-05-31 09:12:49 -04:00
Jeremy Stretch
2c8a1ed69c Merge pull request #9435 from kkthxbye-code/fix-9430
Fixes #9435 - Make sure initial data is passed as array for DynamicModelChoiceFields
2022-05-31 09:09:42 -04:00
kkthxbye-code
fe899d9d7c Iterate base classes when searching for ScriptVariables 2022-05-28 11:29:18 +02:00
kkthxbye-code
6d3cded579 Make sure initial data is passed as array for DynamicModelChoiceFields 2022-05-27 20:41:50 +02:00
jeremystretch
2e5a5f71ba Changelog for #9277 2022-05-24 16:00:18 -04:00
Jeremy Stretch
72516c00fb Merge pull request #9415 from tyler-8/csrf_cookie_setting
Add optional CSRF_COOKIE_NAME setting, update example config, and docs.
2022-05-24 15:58:00 -04:00
tyler-8
d34d5869be Add optional CSRF_COOKIE_NAME setting, update example config, and docs. 2022-05-24 10:57:38 -04:00
jeremystretch
72726c784a Clean up imports 2022-05-24 09:56:14 -04:00
jeremystretch
662b02e2d8 Closes #9347: Include services in global search 2022-05-24 09:49:36 -04:00
jeremystretch
a9ec1a7b4e Closes #9379: Redirect to virtual chassis view after adding a member device 2022-05-24 09:20:05 -04:00
jeremystretch
f03c5037c4 Fixes #9387: Ensure ActionsColumn extra_buttons are always displayed 2022-05-24 09:14:25 -04:00
Jeremy Stretch
a52c68f4c2 Merge pull request #9406 from lastorel/9365-rolefilter
add `role_id` attribute to filter form of InventoryItem
2022-05-24 08:52:06 -04:00
jeremystretch
a73dda35e8 Bump stale to v5 2022-05-24 08:39:43 -04:00
lastorel
0570203891 add role attribute to filter inventoryitems 2022-05-22 17:22:28 +03:00
jeremystretch
3b3247592e Changelog for #9098 2022-05-18 08:42:20 -04:00
Jeremy Stretch
17292324a3 Merge pull request #9383 from bluikko/patch-1
Add other power, front/rear port types
2022-05-18 08:41:01 -04:00
bluikko
e5aa9d47f7 Add other power, front/rear port types
Fixes #9098
2022-05-18 15:08:08 +07:00
jeremystretch
9e1d8beaf0 Changelog for #9239, #9358 2022-05-16 09:56:02 -04:00
jeremystretch
17fb562740 #9239: Organize contact form fields 2022-05-16 09:55:17 -04:00
Jeremy Stretch
2910aaeec0 Merge pull request #9362 from kkthxbye-code/fix-9358
Fixes #9358 - Annotate provider table in ASN view with count_circuits
2022-05-16 09:31:45 -04:00
Jeremy Stretch
aeef12cdc0 Merge pull request #9364 from kkthxbye-code/fix-9239
Fixes #9239 - Add contact_group to ContactModelFilterSet
2022-05-16 09:28:46 -04:00
kkthxbye-code
8ad203f97a Added contact_group to region, site, manufacturer, tenant filters 2022-05-14 17:53:40 +02:00
kkthxbye-code
aba4e03d3b Add contact_group to ContactModelFilterSet 2022-05-14 17:48:37 +02:00
kkthxbye-code
6a99b36cce Fix provider table in ASN view when ordering by circuit_count 2022-05-14 12:01:49 +02:00
Daniel Sheppard
f415d81049 Fixes #8374 - Display device type and asset tag if name is blank but asset tag is populated 2022-05-13 09:49:07 -05:00
Daniel Sheppard
24ff360ee0 Fixes #8922 - Add service list to IP address view 2022-05-13 09:40:24 -05:00
Daniel Sheppard
2a4c728375 Merge remote-tracking branch 'origin/develop' into develop 2022-05-13 09:29:12 -05:00
Daniel Sheppard
752a497218 Fixes #9094 - Fix partial address search within Prefix and Aggregate filters 2022-05-13 09:28:24 -05:00
Daniel Sheppard
1d4409c703 Fixes #9094 - Fix partial address search within Prefix and Aggregate filters 2022-05-13 09:08:00 -05:00
jeremystretch
3c7c8c8776 PRVB 2022-05-12 14:14:40 -04:00
Jeremy Stretch
bb2235b05e Merge pull request #9354 from netbox-community/develop
Release v3.2.3
2022-05-12 14:09:30 -04:00
jeremystretch
a6aec9ebac Release v3.2.3 2022-05-12 13:53:26 -04:00
jeremystretch
5f3695d2d0 Closes #8805: Add "mixed" option for device airflow indication 2022-05-12 12:18:58 -04:00
jeremystretch
ad12ad4a77 Closes #9221: Add definition list support for Markdown 2022-05-12 11:05:34 -04:00
jeremystretch
37903776fd Fixes #9296: Improve Markdown link sanitization 2022-05-12 10:41:29 -04:00
jeremystretch
c4c93ee346 Closes #9343: Add Ubiquiti SmartPower power outlet type 2022-05-12 10:17:29 -04:00
jeremystretch
72b2ab03cc #9340: Introduce config parameters for Sentry sampling rates 2022-05-12 10:00:57 -04:00
jeremystretch
4cefe26f80 #9340: Add default Sentry DSN 2022-05-12 09:35:13 -04:00
jeremystretch
991950650b Add Sentry as a sponsor 2022-05-11 16:44:26 -04:00
Jeremy Stretch
8cc94689d8 Merge pull request #9342 from netbox-community/9340-sentry
Closes #9340: Enable Sentry integration
2022-05-11 16:26:46 -04:00
jeremystretch
312d6c890e Add sentry-sdk as a dependency 2022-05-11 15:20:18 -04:00
jeremystretch
c146596564 Implement a custom 404 handler to enable Sentry reporting 2022-05-11 14:27:18 -04:00
jeremystretch
6f5c2f1e29 Enable & document Sentry integration 2022-05-11 14:13:50 -04:00
jeremystretch
1726593fb0 Introduce MODULE_TOKEN constant 2022-05-11 10:37:04 -04:00
jeremystretch
e8575495db Changelog for #9190, #9314 2022-05-11 10:31:04 -04:00
devon-mar
cffc064a33 Add device & vm to FHRPGroupAssignmentFilterSet (#9314)
* Add device & vm to `FHRPGroupAssignmentFilterSet`

* Apply suggestions from code review

* Update netbox/ipam/tests/test_filtersets.py

* Update netbox/ipam/filtersets.py

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-11 10:27:50 -04:00
Jeremy Stretch
3dda7e2da2 Merge pull request #9331 from kkthxbye-code/fix-9001
Fixes #9001 & #9190 - Add form validation to model installation
2022-05-11 10:04:06 -04:00
jeremystretch
22f1863475 Add security document 2022-05-11 09:12:07 -04:00
jeremystretch
bdb21da26e Fixes #9330: Add missing module_type field to REST API serializers for modular device component templates 2022-05-11 08:57:19 -04:00
jeremystretch
e759e123ac Fixes #9333: Annotate unit on interface speed field 2022-05-11 08:09:51 -04:00
kkthxbye-code
d858eceb38 Fix pep8 2022-05-10 17:53:01 +02:00
kkthxbye-code
af126fe7e3 Added form validation to model installation
Raises a ValidationError whenever installation would cause a foreign key violation.
2022-05-10 17:50:33 +02:00
CroogQT
124e93f737 yarn bundle. 2022-05-06 12:16:45 -07:00
CroogQT
fbd933b56a prettier fixes 2022-05-06 11:44:34 -07:00
CroogQT
9c5355a300 added JSDoc comments 2022-05-06 11:43:18 -07:00
CroogQT
491a4e7d78 various punctuation and spacing fixes 2022-05-06 11:33:00 -07:00
jeremystretch
39a9ebaeee Fixes #9313: Remove HTML code from CSV output of many-to-many relationships 2022-05-06 10:26:02 -04:00
jeremystretch
9b4e016fe4 Fixes #9306: Include VC master interfaces when selecting a LAG/bridge for a VC member interface 2022-05-06 09:47:52 -04:00
jeremystretch
422ec7ecec Fixes #9311: Permit creating contact assignment without a priority via the REST API 2022-05-06 09:25:40 -04:00
kkthxbye
a06a280534 Merge pull request #9312 from kkthxbye-code/fix-9310
Fixes #9310 - Remove stray characters from Config Context tab
2022-05-06 13:58:47 +02:00
kkthxbye
1358469375 Remove stray characters from Config Context tab 2022-05-06 08:01:15 +02:00
CroogQT
90d8395a2c Fixed variable type issue...i think. 2022-05-05 15:24:16 -07:00
CroogQT
11f7e3099d fixed text deselection and refactor 2022-05-05 15:01:40 -07:00
CroogQT
ef29bffb72 is this supposed to be ignored? 2022-05-05 13:27:09 -07:00
CroogQT
3effa37fa7 click event calls multiselect function 2022-05-05 13:24:50 -07:00
CroogQT
1493c920fd silly text highlight workaround... 2022-05-05 13:24:12 -07:00
CroogQT
ea9258d36c added main multi-select function 2022-05-05 13:23:43 -07:00
CroogQT
db142061ff clicking a PkCheckbox updates state 2022-05-05 12:37:28 -07:00
CroogQT
c536944a10 now exports multiselect function 2022-05-05 12:36:17 -07:00
CroogQT
ae7ddecaa6 now exports previousPkCheck.ts 2022-05-05 12:14:15 -07:00
CroogQT
2e38e62101 create store to store previously checked element 2022-05-05 12:13:02 -07:00
CroogQT
2979a64ce3 add file, skeleton from "select all" 2022-05-05 12:11:02 -07:00
jeremystretch
bddca8e232 Changelog for #9280 2022-05-05 14:14:49 -04:00
Jeremy Stretch
e9bf6a7bc5 Merge pull request #9281 from kkthxbye-code/adopt-module-component
Fixes #9280 - Add option to adopt existing DeviceComponents
2022-05-05 10:29:20 -04:00
kkthxbye-code
9c3dfdfd14 Fix test_module_component_adoption 2022-05-05 09:30:13 +02:00
kkthxbye-code
c52aa2196d Prefetch installed components when adding modules 2022-05-04 23:21:03 +02:00
kkthxbye-code
81c7fe2084 Don't adopt components already belonging to a module 2022-05-04 22:59:28 +02:00
jeremystretch
0301aec409 Closes #9260: Apply user preferences to tables under object detail views 2022-05-04 15:46:13 -04:00
jeremystretch
015bc48345 #8998: Add region filter for rack reservations; Add filter tests 2022-05-04 14:29:36 -04:00
jeremystretch
da1aabdfc1 Changelog for #8894, #8998, #9122; PEP8 fix 2022-05-04 14:19:09 -04:00
Jeremy Stretch
c2fe2ba56f Merge pull request #9147 from minitriga/issue_8998
Closes #8998: Add site group filter to racks
2022-05-04 14:16:35 -04:00
Jeremy Stretch
52b18393eb Merge pull request #9150 from minitriga/issue_8894
Closes #8894: Add first and last name username user api select
2022-05-04 14:09:38 -04:00
Jeremy Stretch
b172ae65d2 Merge pull request #9256 from kkthxbye-code/fix-9122
Fix #9122 - Clear the cache when running the upgrade script
2022-05-04 14:03:48 -04:00
jeremystretch
eab187fb6b Changelog for #9267, #9278 2022-05-04 13:59:38 -04:00
Jeremy Stretch
502a14e820 Merge pull request #9288 from huntabyte/develop
Closes #9278: Linkify device type in manufacturer table
2022-05-04 13:43:16 -04:00
kkthxbye
7de27c69c0 Fix PEP8 2022-05-04 09:16:19 +02:00
kkthxbye
f455f91ea3 Add view test for module component adoption 2022-05-04 08:58:42 +02:00
Hunter Johnston
bdaefc0e4d Closes #9278: Linkify device type in manufacturer table 2022-05-03 18:34:32 -04:00
kkthxbye-code
8040804c75 Allow mixture of component replication and adoption 2022-05-03 22:03:12 +02:00
minitriga
7cd840610b Update netbox/dcim/forms/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 11:47:37 +01:00
minitriga
15e91908e8 Update netbox/dcim/forms/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 11:47:32 +01:00
Alex Gittings
0a9ba3b2e6 add get_display to users serializer 2022-05-03 10:45:08 +00:00
minitriga
535606a185 Update netbox/users/api/nested_serializers.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 09:01:06 +01:00
minitriga
25c266e4de Update netbox/users/api/nested_serializers.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 09:00:52 +01:00
kkthxbye-code
977ccb01f2 Formatting: Remove whitespace on blank line 2022-05-02 21:55:34 +02:00
kkthxbye-code
c2a6a1c125 Create module components in bulk 2022-05-02 21:37:37 +02:00
Jeremy Stretch
f6402a8b62 Merge pull request #9275 from kkthxbye-code/fix-9267
Fixes #9267 - Fix early terminated tuple in IPAddressRoleChoices
2022-05-02 09:19:11 -04:00
kkthxbye
30d4097fd8 Fix early terminated tuple in IPAddressRoleChoices 2022-05-02 12:09:49 +02:00
kkthxbye-code
3fb967b482 Add ability to adopt components when adding a module 2022-04-30 02:19:11 +02:00
kkthxbye
9f3846ec5f Clear the cache when running the upgrade script 2022-04-29 09:19:37 +02:00
kkthxbye
7b5625a722 Add management command for clearing cache 2022-04-29 09:19:19 +02:00
jeremystretch
152d5a3b9a PRVB 2022-04-28 15:06:27 -04:00
Jeremy Stretch
50b6ded6f0 Merge pull request #9253 from netbox-community/develop
Release v3.2.2
2022-04-28 15:00:11 -04:00
jeremystretch
5ee3ee6181 Release v3.2.2 2022-04-28 14:39:02 -04:00
Jeremy Stretch
cd3e901a60 Merge pull request #9248 from kkthxbye-code/fix-9138
Fixes #9138 - Prevent searching when pressing enter in Quick Search
2022-04-28 12:24:07 -04:00
kkthxbye
314c41f47f Prevent searching when pressing enter in Quick Search 2022-04-28 07:47:04 +02:00
jeremystretch
a1c1532614 Changelog for #4264 2022-04-27 15:36:29 -04:00
Jeremy Stretch
ffef78d426 Merge pull request #9112 from sc68cal/rfc_4291
Closes #4264: Do not allocate subnet router anycast for IPv6 prefixes
2022-04-27 15:30:05 -04:00
jeremystretch
8153406dd0 Fixes #9227: Fix related object assignment when recording change record for interfaces 2022-04-27 14:12:20 -04:00
Sean M. Collins
b5613a2cc6 Do not allocate subnet router anycast in certain IPv6 prefixes 2022-04-26 14:54:52 -04:00
jeremystretch
6a225e53f5 Fixes #9222: Fix circuit ID display under cable view 2022-04-25 21:09:20 -04:00
jeremystretch
6b73d22da1 Changelog for #8959 2022-04-25 10:11:51 -04:00
Jeremy Stretch
8b81c10f84 Merge pull request #9201 from kkthxbye-code/fix-8959
Fixes #8959: Add lock around script loading to prevent race condition
2022-04-25 10:10:06 -04:00
jeremystretch
a6a1bec437 Closes #9218: Update documentation links with docs.netbox.dev 2022-04-25 09:48:39 -04:00
jeremystretch
562d1bfcd0 Fixes #9194: Support position assignment when add module bays to multiple devices 2022-04-25 08:41:38 -04:00
jeremystretch
4f86d6a690 Fixes #9206: Show header for comments field under module & module type creation views 2022-04-25 08:33:41 -04:00
jeremystretch
e63a191373 Closes #9214: Linkify cluster counts in cluster type & group tables 2022-04-25 08:23:21 -04:00
Jeremy Stretch
74b5e55643 Merge pull request #9200 from kkthxbye-code/fix-9189
Fixes #9189:  Correct custom validators docs
2022-04-25 08:11:15 -04:00
Jeremy Stretch
405d0ab972 Merge pull request #9199 from kkthxbye-code/fix-8941
Fixes #8941: Fix apiSelect scrolling while zoomed in chrome
2022-04-25 08:09:04 -04:00
kkthxbye-code
84e4156259 Add lock around script loading to prevent race condition 2022-04-22 21:21:01 +02:00
kkthxbye-code
50428c3f01 Correct custom validators docs 2022-04-22 20:42:29 +02:00
kkthxbye-code
a91c46b4c0 UI: Fix apiSelect scrolling while zoomed in chrome 2022-04-22 20:33:46 +02:00
Kevin Meijer
8315883db9 Adds Ubiquiti SmartPower to the power port types (#9193)
Co-authored-by: Kevin Meijer <kevinmeijer@brightfish.nl>
2022-04-22 08:11:31 -04:00
jeremystretch
d22f9000d6 Add troubleshooting section to Azure AD guide 2022-04-19 10:00:41 -04:00
jeremystretch
bb99cee48a Changelog & test for #9060 2022-04-18 13:14:30 -04:00
minitriga
a3805fe04d Closes #9060: Implement modulebay, iventory items and device bay filters (#9146)
* Closes #9060: Implement modulebay, iventory items and device bay filters

* add blank line
2022-04-18 13:07:41 -04:00
jeremystretch
d4f1cb5d6a Fixes #9158: Do not list tags field for CSV forms which do not support tag assignment 2022-04-18 09:39:36 -04:00
jeremystretch
118bf5152c Fixes #9132: Limit location options by selected site when creating a wireless link 2022-04-18 09:02:03 -04:00
jeremystretch
41244dc677 Closes #9152: Annotate related object type under custom field view 2022-04-18 08:56:28 -04:00
jeremystretch
671e1aed9f Fixes #9151: Child prefix counts not annotated on aggregates list under RIR view 2022-04-18 08:43:46 -04:00
jeremystretch
1636508a6a Fixes #9156: Fix loading UserConfig data from fixtures 2022-04-18 08:36:41 -04:00
Alex Gittings
bc2491e6b7 Closes #8894: Add first and last name to APISelect widget if set 2022-04-15 21:50:24 +00:00
Alex Gittings
69a1cc8759 Closes #8998: Add site group filter to racks 2022-04-15 20:36:40 +00:00
jeremystretch
c21db0ff6a Closes #9137: Add SSO configuration guide for Okta 2022-04-15 16:03:36 -04:00
jeremystretch
a889b3a4be Add title for missing okta-openidconnect backend 2022-04-15 15:04:44 -04:00
jeremystretch
10c7fdb618 Closes #9136: Add SSO configuration guide for Microsoft Azure AD 2022-04-14 21:42:47 -04:00
jeremystretch
7be0a1a55f Changelog for #9133 2022-04-14 15:51:26 -04:00
Jeremy Stretch
a98b2fabe0 Merge pull request #9134 from markkuleinio/python-version
Fixes #9133: Require Python 3.8+ to run upgrade.sh
2022-04-14 15:50:18 -04:00
Markku Leiniö
7779b66972 Require Python 3.8+ to run upgrade.sh 2022-04-14 22:01:21 +03:00
jeremystretch
7463c40c40 Restore documentation search function 2022-04-14 14:24:34 -04:00
jeremystretch
996221147e PRVB 2022-04-14 14:15:48 -04:00
Jeremy Stretch
7cd9bcd3f5 Merge pull request #9131 from netbox-community/develop
Release v3.2.1
2022-04-14 14:12:24 -04:00
jeremystretch
fdc018d809 Release v3.2.1 2022-04-14 13:58:18 -04:00
jeremystretch
fa5cf665ce Fixes #9128: Resolve component labels per module bay position when installing modules 2022-04-14 11:13:04 -04:00
jeremystretch
d6df6b444f Closes #9123: Improve appearance of SSO login providers 2022-04-14 10:54:07 -04:00
jeremystretch
78836389f0 Changelog for #8543 & cleanup 2022-04-14 08:37:58 -04:00
Jeremy Stretch
fa4b88a504 Merge pull request #9124 from tyler-8/wlan_site_filter_3_2
Add filters to VLAN selection group for WirelessLAN Form
2022-04-14 08:33:51 -04:00
Tyler Bigler
1a374a1669 Add filters to VLAN selection group 2022-04-14 00:58:17 -04:00
jeremystretch
01ba1b8c03 Fixes #9118: Fix validation error when importing VM child interfaces 2022-04-13 13:43:18 -04:00
jeremystretch
f09a5aacae Changelog for #9110 2022-04-12 14:17:08 -04:00
Jeremy Stretch
95d084d36d Merge pull request #9110 from JoeIzzard/develop
Closes #8415: Adds Neutrik power connectors
2022-04-12 12:40:31 -04:00
Joe Izzard
d35cd18745 fix: standardisation 2022-04-12 17:06:33 +01:00
jeremystretch
4e493d7836 Changelog for #8920, #8956 2022-04-12 12:05:09 -04:00
Jeremy Stretch
68b8cca540 Merge pull request #8957 from kkthxbye-code/save-job-results
Fix #8956: Save old JobResults
2022-04-12 11:57:48 -04:00
kkthxbye-code
c216405a81 Change default JOBRESULT_RETENTION from 0 to 90 2022-04-12 11:42:47 -04:00
kkthxbye
aa2ec3b9c9 Add dynamic config JOBRESULT_RETENTION
and cleanup functionality to the housekeeping script
2022-04-12 11:42:47 -04:00
kkthxbye
f13a00b2dd Save old JobResults 2022-04-12 11:42:47 -04:00
Jeremy Stretch
8781d03aa7 Merge pull request #9067 from jasonyates/FR8920-nonrackeddevices
Limit amount of nonracked devices displayed
2022-04-12 11:38:14 -04:00
jeremystretch
1266a2f753 Fixes #9116: assigned_to_interface filter for IP addresses should not match FHRP group assignments 2022-04-12 10:07:31 -04:00
jeremystretch
23d2cf1718 Closes #9081: Add fhrpgroup_id filter for IP addresses 2022-04-12 09:56:33 -04:00
jeremystretch
d11031c694 Closes #9099: Enable display of installed module serial & asset tag in module bays list 2022-04-12 09:00:19 -04:00
jeremystretch
916e976297 Tweak changelog for #9061 2022-04-12 08:22:17 -04:00
jeremystretch
27a9313396 #9096: Correct getattr() call 2022-04-12 08:13:08 -04:00
jeremystretch
517d0158b6 Fixes #9096: Remove duplicate filter tag when filtering by "none" 2022-04-11 08:51:11 -04:00
jeremystretch
a9e05aec7c Fixes #9100: Include position field in module type YAML export 2022-04-11 08:28:10 -04:00
Joe Izzard
9b3e43cb21 Closes #8415: Adds Neutrik power connectors 2022-04-11 12:20:44 +01:00
Jason Yates
23fddf74b6 Updating to use a single queryset
Updating to use a single queryset for both template variables
2022-04-10 09:06:14 +01:00
Jeremy Stretch
9b8de19fe6 Merge pull request #9085 from stephanblanke/8913-improve-documentation-regarding-vcs
Closes #8913: Improve documentation regarding VC masters interfaces
2022-04-08 14:17:35 -04:00
jeremystretch
1d8b8aad3b Changelog & documentation for #5479 2022-04-08 14:10:21 -04:00
Jeremy Stretch
84c30580aa Merge pull request #9028 from kkthxbye-code/job-timeout
Fixes #5479 - Allow setting individual timeouts on scripts and reports
2022-04-08 13:54:08 -04:00
Stephan Blanke
a5f25726cd Closes #8913: Improve documentation regarding VC masters interfaces 2022-04-08 19:39:18 +02:00
Jeremy Stretch
7a6e047519 Merge pull request #9082 from danielestevez/doc-remote-auth-default-group
Conflicting documentation on remote default group
2022-04-08 10:44:38 -04:00
jeremystretch
1e65ef0c1a Fixes #9055: Restore ability to move inventory item to other device 2022-04-08 09:41:37 -04:00
jeremystretch
2269bf0167 Fixes #9079: Fail validation when an inventory item is assigned as its own parent 2022-04-08 09:08:55 -04:00
jeremystretch
5526f8e3dc Fix dumpdata ordering for VRFs 2022-04-07 21:19:38 -04:00
Jason Yates
2781b8535c Update nonracked_devices.html
Fixing issue where Displaying 10 of 10 would appear when it's not required.
2022-04-07 08:32:50 +01:00
Jason Yates
c3d9910e08 Limit amount of nonracked devices displayed
Fixes #8920

Limits the amount of non-racked devices on Site and Location view to 10 and provides a link to the device list this is pre-filtered to the relevant site or location.
2022-04-07 08:21:13 +01:00
jeremystretch
b9f6a5625f Update supported Python versions 2022-04-06 20:30:29 -04:00
jeremystretch
f4e78b0ea6 Fixes #9065: Min/max VID should not be required when filtering VLAN groups 2022-04-06 20:29:28 -04:00
jeremystretch
d93e944c07 Closes #8973: Display VLAN group count under site view 2022-04-06 20:12:14 -04:00
jeremystretch
6760533a10 Fixes #8931: Copy assigned tenant when cloning a location 2022-04-06 20:01:09 -04:00
Daniel Sheppard
85e65edb7d Fixes #9057 - Fix missing instance counts for module types 2022-04-06 13:46:31 -05:00
Daniel Sheppard
523390cd8e #9061 - Change inheritance order for DeviceComponentFilterSets 2022-04-06 13:35:22 -05:00
jeremystretch
ea197eff5f PRVB 2022-04-05 17:12:13 -04:00
Jeremy Stretch
d4938b7699 Merge pull request #9041 from netbox-community/develop
Release v3.2.0
2022-04-05 17:03:58 -04:00
jeremystretch
6ee6227b67 Pin Jinja2 to v3.0 2022-04-05 16:34:15 -04:00
jeremystretch
6f0ae8a5b8 Release v3.2.0 2022-04-05 16:26:07 -04:00
jeremystretch
c1b7f09530 Ensure legacy data checks run before other migrations 2022-04-05 15:56:21 -04:00
jeremystretch
9addde00e3 Merge branch 'feature' into develop 2022-04-05 14:51:26 -04:00
Jeremy Stretch
10f8a94399 Merge pull request #9039 from netbox-community/develop
Release v3.1.11
2022-04-05 14:45:41 -04:00
jeremystretch
631de20a8d Release v3.1.11 2022-04-05 14:35:27 -04:00
jeremystretch
66464fd807 Implement bypass for migration safeguard 2022-04-05 14:24:28 -04:00
jeremystretch
0f5fe746e0 Add warning for legacy ASN field on site 2022-04-05 10:22:42 -04:00
jeremystretch
a7fc8621a8 Closes #9036: Add bulk edit capability for site contact fields 2022-04-05 10:18:20 -04:00
jeremystretch
8b92bc6c4a Add migration safeguard to prevent accidental destruction of data 2022-04-05 10:07:48 -04:00
jeremystretch
830b56ac9e Check that ChoiceSet CHOICES is mutable if key is set 2022-04-05 08:40:30 -04:00
jeremystretch
fcfdbfc2b5 Merge branch 'develop' into feature 2022-04-05 08:21:39 -04:00
jeremystretch
e575279738 Changelog for #8365 2022-04-04 15:58:54 -04:00
Jeremy Stretch
796f7258cc Merge pull request #9018 from stephanblanke/8365-filering-for-child-devices-by-parent-device
Closes #8365: Filtering for child devices by parent device
2022-04-04 15:18:20 -04:00
jeremystretch
ea88b040ec Fixes #8658: Fix display of assigned components under inventory item lists 2022-04-04 14:40:22 -04:00
kkthxbye-code
69b4d0d44b #9028 - Fix pep8 syntax 2022-04-04 18:13:13 +02:00
kkthxbye-code
36d6ae33d1 Allow setting individual timeouts on scripts and reports 2022-04-04 18:00:38 +02:00
Stephan Blanke
8126087b3e Merge branch 'netbox-community:develop' into 8365-filering-for-child-devices-by-parent-device 2022-04-02 18:10:12 +02:00
Stephan Blanke
780459d2bf Closes #8365: Filtering for child devices by parent device 2022-04-02 18:08:48 +02:00
jeremystretch
e2b6d69596 Monkey-patch Django's force_text in lieu of graphene-django 2.16 release 2022-04-01 10:15:45 -04:00
jeremystretch
7fff1e6fe5 Closes #9003: Enable bulk module assignment/removal for device components 2022-04-01 09:42:30 -04:00
jeremystretch
b576ce72a1 Merge branch 'develop' into feature 2022-04-01 09:13:37 -04:00
jeremystretch
99a01207bc Closes #9012: Linkify circuits count in providers list 2022-04-01 09:06:44 -04:00
Jeremy Stretch
6d6457ad18 Merge pull request #9010 from kkthxbye-code/fix-9009
Annotate rack search queryset with device count
2022-04-01 08:43:22 -04:00
jeremystretch
35f3a42e7f Remove 2022 survey announcement 2022-04-01 08:31:53 -04:00
kkthxbye
a84ae88214 Annotate rack search queryset with device count 2022-04-01 09:34:16 +02:00
jeremystretch
4fae42de51 Fixes #9007: Fix FieldError exception when instantiating a device type with nested inventory items 2022-03-31 12:07:02 -04:00
jeremystretch
1d55c04c21 Closes #9006: Enable custom fields, custom links, and tags for journal entries 2022-03-31 11:40:02 -04:00
jeremystretch
7a54658710 Fixes #8978: Fix instantiation of front ports when provisioning a module 2022-03-31 09:03:01 -04:00
jeremystretch
bddc35bbc7 Closes #8496: Enable assigning multiple ASNs to a provider 2022-03-30 17:17:36 -04:00
jeremystretch
cdacd2a951 Closes #8593: Add link field to contact model 2022-03-30 16:19:12 -04:00
jeremystretch
58e4d08bb0 Closes #8790: Include site and prefixes columns in VLAN group VLANs table 2022-03-30 15:51:12 -04:00
jeremystretch
3ff4fd814e Merge branch 'develop' into feature 2022-03-30 15:45:40 -04:00
jeremystretch
91e8f57afb Change log & cleanup for #8163, #8866 2022-03-30 15:39:28 -04:00
Jeremy Stretch
e3d0628a06 Merge pull request #8870 from minitriga/issue_8866
APISelect JavaScript only perform fetch if Django substitutes have been replaced.
2022-03-30 15:37:14 -04:00
Jeremy Stretch
9fca9ca7ec Merge pull request #8983 from stephanblanke/8163-bridge-members-panel-in-interface-view
Closes #8163: Add bridge members panel to interface view
2022-03-30 15:27:37 -04:00
jeremystretch
2d09a40663 Closes #8601: Include group when displaying tenant assigned to cluster 2022-03-30 15:04:13 -04:00
jeremystretch
1eaf55c555 Closes #8336: Add note about referening object in custom link template 2022-03-30 14:14:49 -04:00
jeremystretch
db535e6453 Closes #8436: Update token permissions documentation 2022-03-30 14:05:27 -04:00
jeremystretch
dadec9d3cb Add instruction for checking out an older release 2022-03-30 13:03:08 -04:00
jeremystretch
ff780177d0 Clean up exception templates 2022-03-29 16:01:10 -04:00
Stephan Blanke
b7e2ea1ca5 Closes #8163: Add bridge members panel to interface view 2022-03-28 20:37:00 +02:00
jeremystretch
bf50134d94 #8976: Set required=False on serializer field 2022-03-28 14:18:45 -04:00
jeremystretch
227bac7c60 Fixes #8976: Add missing object_type field on CustomField REST API serializer 2022-03-28 13:34:37 -04:00
jeremystretch
340ff82487 Fixes #8970: Permit nested inventory item templates on device types 2022-03-28 13:22:43 -04:00
jeremystretch
894665b067 Changelog for #8785, #8830 2022-03-28 10:35:49 -04:00
jeremystretch
48b7294ff1 #8785: Tweak regex validator to avoid creating no-op migration file 2022-03-28 10:35:00 -04:00
Jeremy Stretch
cde8ff282d Merge pull request #8962 from apellini/patch-2
#8830 Adding ClusterXL
2022-03-28 10:06:50 -04:00
Jeremy Stretch
0b44a595e2 Merge pull request #8945 from fmlshai/develop
Fix #8785 - allow wildcard dns records
2022-03-28 10:04:33 -04:00
Jeremy Stretch
37781bd208 Fix parentheses 2022-03-28 09:37:33 -04:00
fmlshai
e0344e9251 Update validators.py
Updated DNSValidator regex
2022-03-28 15:20:19 +02:00
jeremystretch
a1808a54a4 Fixes #8974: Use monospace font for text areas in config revision form 2022-03-28 09:13:15 -04:00
neope
1cef513f6c Adding ClusterXL as FHRPGroupProtocolChoices
Adding in choices group standard, checkpoint and cisco and ungroupped other.
2022-03-25 19:41:35 +01:00
jeremystretch
22908a12e9 Merge branch 'develop' into feature 2022-03-25 10:38:44 -04:00
jeremystretch
57759aa4a3 PRVB 2022-03-25 10:29:44 -04:00
Jeremy Stretch
d50148fab7 Merge pull request #8968 from netbox-community/develop
Release v3.1.10
2022-03-25 10:28:38 -04:00
jeremystretch
271c2ea3e3 Correct changelog 2022-03-25 10:16:40 -04:00
jeremystretch
20a6f6ac79 Release v3.1.10 2022-03-25 10:14:37 -04:00
jeremystretch
8924d5fa05 Correct change log 2022-03-25 10:04:48 -04:00
jeremystretch
26637d934b Change log for #8232, #8926 2022-03-25 10:02:21 -04:00
jeremystretch
dde4495e20 #8232: Cleanup & test fix 2022-03-25 09:59:58 -04:00
tranthang2404
1278429518 Closes #8232: Add color show full 100% utilization (#8816)
* Closes #8232: Add color show full 100% utilization

* change rounding

* change rounding

* fix hard code html

* format
2022-03-25 09:52:13 -04:00
Jeremy Stretch
421f5a03aa Merge pull request #8963 from minitriga/issue_8926
Closes #8926: Implement type and roll to device bay table
2022-03-25 09:12:45 -04:00
Alex Gittings
a433d5d59d Closes #8926: Implement type and roll to device bay table 2022-03-25 09:25:55 +00:00
neope
934493bf5f #8830 Adding ClusterXL
Adding ClusterCL Choice to FHRP Group
2022-03-25 08:35:57 +01:00
jeremystretch
58f97bc0e7 Merge develop into feature 2022-03-24 16:35:35 -04:00
jeremystretch
a5820e27a6 Fixes #8905: Disable ordering by assigned tags to prevent erroneous results 2022-03-24 11:56:18 -04:00
jeremystretch
d312fe7c2b Fixes #8696: Fix help link under FHRP group assigment creation view 2022-03-24 11:14:24 -04:00
Jeremy Stretch
124fc73386 Merge pull request #8953 from 991jo/fix-8952
Fixed #8952: rack rear faces link not clickable
2022-03-24 10:53:42 -04:00
jeremystretch
c78e7c14d3 Fixes #8947: Retain filter parameters when handling an export template exception 2022-03-24 10:47:39 -04:00
jeremystretch
30a6dc2f64 Fixes #8951: Allow changing device type & platform to different manufacturer simultaneously 2022-03-24 10:34:09 -04:00
Johannes Erwerle
6ceb78fd4c Fixed #8952: rack rear faces link not clickable 2022-03-24 09:34:23 +01:00
jeremystretch
e09ab79a1a Changelog for #8924 2022-03-23 17:01:57 -04:00
Jeremy Stretch
b6587c00ce Merge pull request #8925 from kkthxbye-code/fast_script_list
Fix #8924 - Speed up rendering of the script list
2022-03-23 16:43:15 -04:00
jeremystretch
df2f6d4a7d Fixes #8872: Enable filtering by custom object fields 2022-03-23 14:34:42 -04:00
jeremystretch
3b69f07b86 Clean up module template 2022-03-23 14:00:56 -04:00
jeremystretch
fdc0036872 Closes #8846: Enable image attachments for module types 2022-03-23 13:58:35 -04:00
jeremystretch
fab90ecbe5 Closes #8803: Enable adding components from module view 2022-03-23 13:50:03 -04:00
jeremystretch
f72d160249 Add form examples to plugin dev docs 2022-03-23 12:12:31 -04:00
jeremystretch
b65404a8a9 Fix cable creation view 2022-03-23 10:55:09 -04:00
jeremystretch
42446cb87b Clean up interface template 2022-03-23 10:51:38 -04:00
fmlshai
f45e64c756 Fix #8785 - allow wildcard dns records
Added * to the DNSValidator regex to allow wildcard domains like *.example.com
2022-03-23 14:38:26 +01:00
kkthxbye
ae46cd33b6 - Move do_not_call_in_templates to BaseScript
- Fix the name classproperty
2022-03-23 12:18:14 +01:00
Jeremy Stretch
61eb22f4f7 Merge pull request #8943 from netbox-community/8912-linkify-filter
Closes #8912: Add linkify template filter
2022-03-22 15:47:29 -04:00
jeremystretch
7c14b8d97b Clean up display of tenant groups 2022-03-22 15:29:05 -04:00
jeremystretch
8d682041a4 Extend linkify() to accept an attr name for the link text 2022-03-22 15:17:34 -04:00
jeremystretch
75dae5fbe8 Introduce linkify template filter 2022-03-22 14:51:20 -04:00
jeremystretch
dc92e19f76 Limit custom field object types to suitable models 2022-03-22 13:12:31 -04:00
jeremystretch
ce87e0dfa4 Merge branch 'develop' into feature 2022-03-22 12:57:23 -04:00
jeremystretch
41efad4056 Fixes #8919: Fix filtering of VLAN groups by site under prefix edit form 2022-03-22 11:39:26 -04:00
jeremystretch
5f89226cd7 Update testing instructions 2022-03-22 10:59:43 -04:00
jeremystretch
197dfca5b2 Fixes #8935: Correct ordering of next/previous racks to use naturalized names 2022-03-22 09:50:38 -04:00
jeremystretch
e6980626d8 Fixes #8932: Fix error when setting null value for interface rf_role via REST API 2022-03-22 09:37:57 -04:00
jeremystretch
ca44a654a5 Closes #8794: Support dynamic configuration for JournalEntry kinds 2022-03-21 16:35:24 -04:00
jeremystretch
48dc76a694 Closes #8685: Add modules, module types to global search 2022-03-21 16:27:38 -04:00
jeremystretch
0c5eab680b Document the use of WritableNestedSerializer 2022-03-21 15:22:45 -04:00
jeremystretch
3dc671395e Introduce local ChoiceField and MultipleChoiceField classes 2022-03-21 15:08:05 -04:00
jeremystretch
ba1e6e91b9 Rename ObjectEditView.model_form to form 2022-03-21 10:22:30 -04:00
kkthxbye
22980cea7b Speed up rendering of the script list 2022-03-21 10:46:51 +01:00
jeremystretch
ed0c19807a Link to plugin tutorial in development docs 2022-03-18 13:43:58 -04:00
jeremystretch
15005209d1 Merge branch 'develop' into feature 2022-03-18 13:34:31 -04:00
jeremystretch
f64987d0c4 Changelog for #8813 2022-03-18 13:25:47 -04:00
PieterL75
0da04232f3 Fixes #8813 Retain search value after submitting (#8907)
* Fixes #8813 Retain search value after submitting

* remove autofocus from searchbar

Co-authored-by: Pieter Lambrecht <pieter.lambrecht@sentia.com>
2022-03-18 13:23:39 -04:00
jeremystretch
8d53b46e82 Merge branch 'develop' into feature 2022-03-18 13:17:11 -04:00
jeremystretch
9a0bb14e76 Install tblib to fix tracebacks during parallel test runs 2022-03-18 11:47:43 -04:00
jeremystretch
900825a2af Changelog for #8457, #8575, #8645 2022-03-18 11:46:49 -04:00
Jeremy Stretch
52de50aa64 Merge pull request #8873 from minitriga/issue_8457
Closes: #8457 - Nonracked  Devices Location/Site
2022-03-18 11:32:24 -04:00
Jeremy Stretch
1541060091 Merge pull request #8742 from minitriga/issue_8645
Allow filtering on Core models for Contacts
2022-03-18 11:24:09 -04:00
Alex Gittings
50bc0caccf Fix issues with ordering and add field_groups 2022-03-18 14:58:51 +00:00
minitriga
8f5b14ec84 Update netbox/dcim/forms/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-03-18 14:39:37 +00:00
minitriga
da37db1ea9 Update netbox/circuits/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-03-18 14:39:22 +00:00
Alex Gittings
5abde866f1 Closes: #8457 - implement nonracked devices on locations and sites 2022-03-18 14:34:42 +00:00
Jeremy Stretch
32eed72d2b Merge pull request #8874 from minitriga/issue_8575
Closes: #8575 - Show Racks on Cable Table and Cable Page
2022-03-18 10:14:40 -04:00
jeremystretch
585b5a221d Changelog for #8553 2022-03-17 17:06:21 -04:00
Jeremy Stretch
db52fe475a Merge pull request #8573 from 991jo/asn_search_fix
Fixes 8553: Fix contacts and ASNs missing in the search dropdown and …
2022-03-17 16:43:30 -04:00
jeremystretch
57ad730f74 Fixes #8888: Use HTTPS to pull graphene-django branch from GitHub 2022-03-17 08:57:13 -04:00
Jeremy Stretch
c5db99f383 Merge pull request #8887 from sc68cal/sc68cal-patch-1
Update GitHub link for Netaddr
2022-03-16 20:18:47 -04:00
Sean M. Collins
fd6d3205d0 Update GitHub link for Netaddr
The project was renamed/moved to a new location in GitHub and we should update the link
in case the redirect stops functioning
2022-03-16 11:45:14 -04:00
Alex Gittings
9548cf32ff add new line 2022-03-15 00:05:10 +00:00
Alex Gittings
bdbfff911b add new line 2022-03-15 00:04:22 +00:00
Alex Gittings
a143eca57d Closes: #8575 Implement rack_a and rack_b for cable table 2022-03-15 00:02:16 +00:00
jeremystretch
2101f714cc Closes #8848: Show module bay & type in API serilizer display 2022-03-14 14:06:14 -04:00
Alex Gittings
3edff89a4d Fixes: #8866 - Does not perform API Select Search if a django peramiter has not been replaced 2022-03-14 17:57:33 +00:00
jeremystretch
f2079de2cb Fixes #8838: Fix FieldError exception during global search 2022-03-14 13:55:35 -04:00
jeremystretch
93527d892b Fixes #8845: Correct default ASN formatting in table 2022-03-14 13:49:54 -04:00
jeremystretch
b91218308b Fixes #8869: Fix NoReverseMatch exception when displaying tag w/assignments 2022-03-14 13:47:41 -04:00
jeremystretch
6170138124 Rename ActionsColumn sequence to actions 2022-03-14 13:45:21 -04:00
jeremystretch
1add5accf2 Fixes #8844: Correct VLAN ID max value 2022-03-14 09:57:51 -04:00
jeremystretch
faba6c9bdc Fixes #8850: Show airflow field on device REST API serializer when config context data is included 2022-03-14 09:54:11 -04:00
jeremystretch
4eb7cd06b4 Adjust font size for serial number under device status view 2022-03-14 09:46:40 -04:00
jeremystretch
245cff887c Move q filter to NetBoxModelFilterSet 2022-03-11 16:16:58 -05:00
jeremystretch
59aba52b03 Rename OrderedDefaultRouter to NetBoxRouter & document for plugins 2022-03-11 15:59:03 -05:00
jeremystretch
6d05a4117a Update plugins documentation 2022-03-11 15:47:52 -05:00
jeremystretch
49e5268d48 Fitlerset class declration on ObjectListField should be optional 2022-03-11 15:46:16 -05:00
jeremystretch
76445bd19c Move bulk edit/delete buttons to template tags 2022-03-10 16:27:53 -05:00
jeremystretch
5a3e99626d Simplify add/import/export button invocation 2022-03-10 15:56:09 -05:00
jeremystretch
ffc29d14a8 Add tags field to NetBoxModelForm 2022-03-10 15:08:23 -05:00
jeremystretch
7cffa6ebcc Release v3.2.0-beta2 2022-03-09 12:56:20 -05:00
Alex Gittings
342f1d31be fix pycodestyle issues 2022-03-09 17:55:45 +00:00
Alex Gittings
b779bbfc9d add contacts to site table 2022-03-09 17:49:02 +00:00
Alex Gittings
ef6576bdd6 merge develop into issue 2022-03-09 17:47:58 +00:00
Alex Gittings
27dab262de add columns for each model table that has contacts 2022-03-09 17:35:25 +00:00
Jeremy Stretch
f559ceeb7f Merge pull request #8833 from netbox-community/8823-api-serializers
Closes #8823: Add plugin support for REST API components
2022-03-09 12:31:01 -05:00
jeremystretch
e36ae4f0f7 Document support for NetBoxModelSerializer, NetBoxModelViewSet 2022-03-09 11:52:14 -05:00
Alex Gittings
412c1df15a acidentally removed NestedContactAssignmentSerializer in previous commit 2022-03-09 16:48:29 +00:00
Alex Gittings
73af3ba095 remove contacts from api endpoints 2022-03-09 16:45:19 +00:00
jeremystretch
bbdeae0ed9 Move CustomFieldModelViewSet functionality into NetBoxModelViewSet 2022-03-09 11:44:55 -05:00
Alex Gittings
21b7564976 Merge branch 'issue_8645' of https://github.com/minitriga/netbox into issue_8645 2022-03-09 16:36:16 +00:00
Alex Gittings
bf22b820bf Fixes #8645; Allow filtering on core models in the UI 2022-03-09 16:35:47 +00:00
jeremystretch
efd5a73a18 Refactor API views 2022-03-09 11:27:42 -05:00
jeremystretch
a11abf87ec Refactor API serializers 2022-03-09 10:59:22 -05:00
thatmattlove
8cd24b1a67 Fixes #8820: correct navbar color in dark mode 2022-03-08 14:28:52 -07:00
jeremystretch
28f7b411ed Revise plugins documentation 2022-03-08 15:44:35 -05:00
jeremystretch
655bc49fad Clean up form select widgets 2022-03-07 15:11:57 -05:00
jeremystretch
18c9ee2f9d Closes #8804: Include module type count on manufacturer view 2022-03-07 13:44:27 -05:00
jeremystretch
07f2cdac58 Fixes #8810: Enable filtering modules by type 2022-03-07 13:40:49 -05:00
jeremystretch
06781beb81 Fixes #8815: Fix display of custom object fields in table columns 2022-03-07 13:30:52 -05:00
jeremystretch
cd29293dd6 Merge v3.1.9 2022-03-07 10:55:30 -05:00
jeremystretch
1fdc7a9163 Merge branch 'master' into develop 2022-03-07 10:49:06 -05:00
Jeremy Stretch
6807db4967 Merge pull request #8818 from netbox-community/fix-tzdata
Add tzdata dependency
2022-03-07 10:48:12 -05:00
jeremystretch
b0ea416d6d Add tzdata dependency 2022-03-07 10:38:05 -05:00
jeremystretch
c515218760 PRVB 2022-03-07 10:07:07 -05:00
Jeremy Stretch
8053ea0a22 Merge pull request #8814 from netbox-community/develop
Release v3.1.9
2022-03-07 09:59:16 -05:00
jeremystretch
a5603c9953 Release v3.1.9 2022-03-07 09:47:31 -05:00
Jeremy Stretch
bffe63a233 Merge pull request #8793 from seros1521/fix_8715
Fixes #8715: eliminates duplicates when used in many-to-many field constraints
2022-03-07 09:27:14 -05:00
jeremystretch
2cfbfe473e Fixes #8807: Correct REST API URL for FHRP group assignments 2022-03-07 09:02:47 -05:00
jeremystretch
3c78c100b5 Fixes #8808: Fix members count under FHRP group list 2022-03-07 09:00:00 -05:00
jeremystretch
2451b0a5b1 Clean up search results layout 2022-03-07 08:50:58 -05:00
Jeremy Stretch
85e9438ff7 Merge pull request #8734 from emersonfelipesp/add_pluginfooter_block
Closes #8733: Add {% block pluginfooter %} to 'base/layout.html' template
2022-03-04 16:07:54 -05:00
jeremystretch
81610ba86e Fixes #8724: Fix exception during device import with invalid device type 2022-03-04 13:45:59 -05:00
jeremystretch
6423b386d2 Closes #8758: Allow empty string substitution when renaming objects in bulk 2022-03-04 13:30:32 -05:00
jeremystretch
5c48d116eb Closes #8664: Show assigned ASNs/sites under list views 2022-03-04 13:20:17 -05:00
seros1521
90257e9dee Fixes #8715: eliminates duplicates when used in many-to-many field constraints
When using permissions that use tags, a user may receive multiple permissions
of the same type if multiple tags are assigned to the device. This causes the
RestrictedQuerySet class to generate a query similar to this:

>>> dcim.models.Device.objects.filter(Q(tags__name='tag1')|Q(tags__name='tag2'))
<ConfigContextModelQuerySet [<Device: device1>, <Device: device1>]>

This query returns the same object twice if both tags are assigned to it. This
is due to the use of the django-taggit library. The library's documentation
describes this behavior as expected and suggests using an explicit distinct()
call in queries to avoid duplicates.

However, the use of DISTINCT in queries has a global side effect -
deduplication of responses, which may or may not be acceptable behavior
(depending on further use). Since it is not known how RestrictedQuerySet will
be used in the rest of the code, it was decided to dedupe using a subquery.
2022-03-04 14:37:05 +07:00
jeremystretch
a740203444 Fixes #8792: Fix creation of circuit terminations via UI 2022-03-03 16:42:48 -05:00
jeremystretch
25dc9cc14a Fixes #7891: Fix display of form validation failures during device component creation 2022-03-03 16:18:24 -05:00
jeremystretch
d4d2af46ac Refactor tables modules 2022-03-03 15:16:23 -05:00
jeremystretch
64acfc3187 #8787: Fix toggling of PK table column 2022-03-03 14:09:32 -05:00
jeremystretch
62a1d4b3e0 Fixes #8763: Fix inventory item component assignment 2022-03-03 11:52:36 -05:00
jeremystretch
e6072a51f8 Closes #8765: Display and enable bulk clearing of user's table preferences 2022-03-03 10:03:43 -05:00
jeremystretch
21e3159711 Hide table checkboxes when no bulk actions are enabled 2022-03-02 16:13:59 -05:00
jeremystretch
dadd8cb93a Support the direct use of TagFilter 2022-03-02 12:06:07 -05:00
jeremystretch
5f8af6ad66 Closes #8779: Enable the use of ChoiceSet by plugins 2022-03-02 11:43:28 -05:00
Jeremy Stretch
3436905744 Merge pull request #8771 from jasonyates/8770-documentation
Updating mkdocs to automatically adjust theme
2022-03-02 08:38:04 -05:00
Jason Yates
e3258bcf5a Updating mkdocs to automatically adjust theme
Automatically adjusts documentation theme between default/slate based on users preference for dark mode.
2022-03-02 08:45:22 +00:00
jeremystretch
2b6e0405a5 Closes #8736: Add PC and UPC fiber end faces for LC/SC/LSH port types 2022-03-01 11:43:00 -05:00
jeremystretch
7f752d9102 Closes #8762: Link to rack elevations list from site view 2022-03-01 11:32:17 -05:00
jeremystretch
df430394b0 Closes #8766: Add SCTP to service protocols list 2022-03-01 11:07:19 -05:00
Jeremy Stretch
638d89e73b Merge pull request #8767 from peteeckel/fix/plugin-api-endpoint
Correct the endpoint for plugin API view names
2022-03-01 10:11:49 -05:00
jeremystretch
1ab51ca04e Announce 2022 community survey 2022-03-01 09:29:58 -05:00
jeremystretch
cb0386779c Announce 2022 community survey 2022-03-01 09:17:24 -05:00
Peter Eckel
4dc428d75b Closes #8764: Correct the endpoint for plugin API view names 2022-03-01 13:11:49 +01:00
jeremystretch
e7496c8840 Use get_viewname() to resolve view name under ObjectDeleteView 2022-02-28 15:20:41 -05:00
jeremystretch
d6c272cfd6 Fixes #8764: Correct view name resolution for dynamic form fields 2022-02-28 15:17:49 -05:00
jeremystretch
da6ed8ea11 Fixes #8761: Correct view name resolution under journal entry views 2022-02-28 12:10:22 -05:00
Emerson Pereira
28de330b50 Replace 'pluginfooter' block with 'footer' and 'footer_links' blocks
- 'footer' blocks represents the <footer> html tag
- 'footer_links' are the anchor tags inside nav
2022-02-26 01:13:11 -03:00
jeremystretch
7823fa05ef Fix changelog table column ordering 2022-02-25 14:19:50 -05:00
jeremystretch
fab4d95156 Merge branch 'develop' into feature 2022-02-25 14:06:45 -05:00
jeremystretch
06cb7f35f1 Update changelog 2022-02-25 13:26:02 -05:00
thatmattlove
796c5d785e Fix navbar-toggler-icon visibility in dark mode 2022-02-25 11:23:14 -07:00
thatmattlove
c88db77814 Fixes #8633: Recheck sidenav state on window resize
* Recheck sidenav state on window resize
* Remove `data-sidenav-pinned` attribute when hiding sidenav
* Remove `data-sidenav-hidden` attribute when showing sidenav
2022-02-25 11:23:14 -07:00
Jeremy Stretch
6fe0f4cd7d Merge pull request #8741 from djothi/develop
Closes #8594: Add description filter for all models with a description field
2022-02-25 13:18:40 -05:00
Jeremy Stretch
3bf90c3c38 Merge pull request #8735 from minitriga/issue_8629
Add description to tag table search function
2022-02-25 13:13:14 -05:00
Matt Love
992f3535b7 Merge pull request #8722 from stephanblanke/develop
Generalize scopeSelector js to allow easy reuse of existing layout configurations
2022-02-25 10:55:18 -07:00
Djothi Carpentier
06eacb5a5c Add description filter to WirelessLAN & WirelessLink 2022-02-25 18:15:33 +01:00
Djothi Carpentier
c0152ce52f Add description filter to VMInterface 2022-02-25 18:15:33 +01:00
Djothi Carpentier
5a60224d77 Add description filter for Token & ObjectPermission 2022-02-25 18:15:33 +01:00
Djothi Carpentier
c137fa2022 Add description filter for Tenant & ContactRole 2022-02-25 18:15:33 +01:00
Djothi Carpentier
879d01a750 Add description filter for VRF, RouteTarget, Aggregate, ASN, Role, Prefix, IPRange, VLAN & Service 2022-02-25 18:15:33 +01:00
Djothi Carpentier
6db878743c Add description filter for CustomField, ExportTemplate & Tag 2022-02-25 18:15:33 +01:00
Djothi Carpentier
08b90090f5 Add description filter for Site, RackRole, RackReservation & DeviceRole 2022-02-25 18:15:33 +01:00
Djothi Carpentier
42466d5fc4 Add description filter for ProviderNetwork, CircuitType, Circuit & CircuitTermination 2022-02-25 18:15:22 +01:00
Daniel Estévez
a3f172fc77 Conflicting documentation on remote default group
In the current documentation we have two seemingly conflicting sentences:
* REMOTE_AUTH_DEFAULT_GROUPS: (Requires REMOTE_AUTH_ENABLED.)
* REMOTE_AUTH_ENABLED: (REMOTE_AUTH_DEFAULT_GROUPS will not function if REMOTE_AUTH_ENABLED is enabled)
2022-02-25 11:30:13 -05:00
jeremystretch
0953bba0a3 Closes #8747: Rename ObjectListView action_buttons to actions 2022-02-24 16:33:51 -05:00
Alex Gittings
36d6dd1ca9 Fixes #8645; Allow filtering on core models in the UI and API for contact assignments 2022-02-24 17:08:38 +00:00
Alex Gittings
4863591bc8 Fixes #8629; Add description to tag table search function 2022-02-24 10:02:21 +00:00
Emerson Pereira
c489501441 Add {% block pluginfooter %} to 'base/layout.html' template
Makes it easy to insert footer information into Netbox footer.
2022-02-24 00:38:11 -03:00
jeremystretch
6638f560f8 Fixes #8683: Fix ZoneInfoNotFoundError exception under Python 3.9+ 2022-02-23 14:16:12 -05:00
jeremystretch
a2fe23549b Closes #8667: Support position patterning when creating module bays & templates 2022-02-23 13:02:14 -05:00
Stephan Blanke
1a7438acfd Fixed code comments 2022-02-22 23:32:34 +01:00
Stephan Blanke
b1de85a44f Fixes #8710: Show/hide form elements based on scope selection 2022-02-22 23:27:11 +01:00
jeremystretch
6604ebfd01 Fix tag background color 2022-02-22 13:10:04 -05:00
jeremystretch
7872460162 Fixes #8682: Limit available VLANs by group min/max VIDs 2022-02-22 11:39:05 -05:00
jeremystretch
d9696ae34c Fixes #8714: Remove label from comments form field 2022-02-22 10:47:02 -05:00
jeremystretch
7c937bf8b8 Fixes #8692: Restore misisng tabs under cluster, VM views 2022-02-22 09:35:21 -05:00
jeremystretch
4913d7ee39 Fixes #8713: Restore missing "add" button on services list view 2022-02-22 09:05:31 -05:00
jeremystretch
2503a3e3ca Fixes #8717: Fix redirection after bulk edit/delete of prefixes from aggregate view 2022-02-22 09:02:31 -05:00
Johannes Erwerle
538984c6d2 Fixes 8553: Fix Provider network, ASN, and contact options missings from global search selector 2022-02-21 12:26:12 +01:00
jeremystretch
5f92ed492b Update development docs 2022-02-18 15:35:08 -05:00
jeremystretch
bca0978434 Clean up component template creation for ModuleTypes 2022-02-18 11:56:49 -05:00
jeremystretch
e1f06ec862 Enable adding inventory items to components from device component list views 2022-02-18 10:09:51 -05:00
jeremystretch
a5c8bbf79e Closes #8684: Change custom link template context variable 'obj' to 'object' (backward-compatible) 2022-02-18 09:50:02 -05:00
jeremystretch
e8df373abf Change results tab name for clarity 2022-02-18 09:28:34 -05:00
jeremystretch
39b8eb0ae0 Fixes #8656: Fix migration error when upgrading from a v2.11 database 2022-02-17 14:14:23 -05:00
jeremystretch
eb02f6137e Fixes #8670: Fix filtering device components by installed module 2022-02-17 11:42:18 -05:00
jeremystretch
90ee689d5a Closes #8678: Validate minimum required Python version 2022-02-17 10:31:28 -05:00
jeremystretch
90558a2e80 Fixes #8671: Fix AttributeError when viewing console/power/interface connection lists 2022-02-16 16:45:56 -05:00
jeremystretch
b343035060 Fixes #8674: Fix rendering of tabbed content in documentation 2022-02-16 16:21:32 -05:00
jeremystretch
bcdd006dd5 Fixes #8661: Fix ValueError exception when trying to connect a cable 2022-02-16 09:27:16 -05:00
jeremystretch
92c4e5bfaf Fixes #8659: Fix display of multi-object custom fields after deleting related object 2022-02-16 09:07:01 -05:00
jeremystretch
fdbdf26afc Fixes #8655: Fix AttributeError when viewing cabled interfaces 2022-02-16 08:23:57 -05:00
jeremystretch
1aa295dc84 Release v3.2-beta1 2022-02-15 14:56:01 -05:00
Jeremy Stretch
85b534a0b0 Merge pull request #8650 from netbox-community/8649-config-module
Closes #8649: Enable customization of configuration module
2022-02-15 13:11:50 -05:00
jeremystretch
e728738e34 Closes #8649: Enable customization of configuration module using NETBOX_CONFIGURATION environment variable 2022-02-15 12:36:03 -05:00
Daniel Sheppard
6bbf168cec Fixes #8546 - Fix import to restrict bridge, parent, lag to device interfaces 2022-02-15 09:27:55 -06:00
jeremystretch
aa85ae89c1 Merge v3.1.8 2022-02-15 10:05:07 -05:00
jeremystretch
b5e4fdc3d8 PRVB 2022-02-15 09:32:52 -05:00
Jeremy Stretch
90f91eeea4 Merge pull request #8640 from netbox-community/develop
Release v3.1.8
2022-02-15 09:31:00 -05:00
jeremystretch
ae0ae5fd4e Remove outdated installation video 2022-02-15 09:20:19 -05:00
jeremystretch
5b7486cff8 Release v3.1.8 2022-02-15 09:01:58 -05:00
jeremystretch
14240318f1 Fixes #8609: Display validation error when attempting to assign VLANs to interface with no mode during bulk edit 2022-02-15 08:39:45 -05:00
jeremystretch
18eb9ffae6 Changelog for #8391 2022-02-14 10:34:30 -05:00
Jeremy Stretch
c0a62793c4 Merge pull request #8441 from seulsale/8391-install-date-null
Fixes #8391: Install date should appear empty when exported
2022-02-14 10:32:56 -05:00
jeremystretch
dd848d754f Changelog & cleanup for #8556 2022-02-14 10:06:56 -05:00
Jeremy Stretch
f058850598 Merge pull request #8581 from mathieu-mp/8556-add-full-name-to-change-log-tables
Closes #8556: Add 'Full Name' column to Change Log table
2022-02-14 09:49:36 -05:00
Jeremy Stretch
0c7220016b Merge pull request #8621 from JonathonReinhart/nbshell-tab-complete
Enable tab completion in nbshell
2022-02-14 09:27:35 -05:00
jeremystretch
8c19124717 Fixes #8622: Correct help text of status field on VM import form 2022-02-14 08:54:36 -05:00
Mathieu PAYROL
46f4359e1f Closes #8556: Add 'Full Name' column to Change Log table 2022-02-14 09:07:57 +01:00
Sergio Saucedo
f80452c7d9 Update import order 2022-02-14 00:47:48 -06:00
Sergio Saucedo
611f1b57dd Implement custom DateTimeColumn improving null values handling 2022-02-14 00:44:50 -06:00
Jonathon Reinhart
d1b1a45725 Enable tab completion in nbshell 2022-02-13 03:00:57 -05:00
jeremystretch
6e38f7e532 Changelog for #8577 2022-02-11 16:00:01 -05:00
Jeremy Stretch
2c1e681984 Merge pull request #8584 from 991jo/assigned_contacts_fix
Fixes #8577: Contact assignment amounts not shown during contact glob…
2022-02-11 15:49:02 -05:00
jeremystretch
f11ad99983 Fixes #8611: Fix bulk editing for certain custom link, webhook, and journal entry fields 2022-02-11 15:34:41 -05:00
jeremystretch
e1ef911d40 #8564: Fix deepmerge logic to allow nullifying dicts 2022-02-11 15:22:50 -05:00
jeremystretch
b40afd1006 Create custom RTD configuration 2022-02-11 14:49:45 -05:00
jeremystretch
af01122f33 Fix mkdocs requirements specification 2022-02-11 14:43:43 -05:00
jeremystretch
189e835499 Use project requirements to build docs 2022-02-11 14:36:03 -05:00
jeremystretch
1319b62acb Standardize on get_FOO_color() method for returning ChoiceField colors 2022-02-11 14:25:13 -05:00
jeremystretch
9cf9f1bdba Update documentation for v3.2 2022-02-11 12:57:08 -05:00
jeremystretch
0bf1789464 Fix template context for API token views 2022-02-11 12:28:49 -05:00
jeremystretch
fe6acf07a5 Fix component column on InventoryItemTemplateTable 2022-02-11 12:26:26 -05:00
jeremystretch
8e888b4435 Use ColoredLabelColumn for InventoryItem role 2022-02-11 12:08:16 -05:00
jeremystretch
47e99ecb54 Use ContentTypeChoiceField for object_type 2022-02-11 11:33:16 -05:00
jeremystretch
3b80f67e4d #7844: Show module when viewing/editing device components 2022-02-11 11:09:07 -05:00
jeremystretch
71d3dc6e44 Improve ChoiceFieldColumn to not rely on model method to derive label color 2022-02-10 16:29:19 -05:00
jeremystretch
f111380674 Disable I10N to restore pre-4.0 datetime formatting 2022-02-10 15:30:29 -05:00
jeremystretch
d52105b3b8 Merge branch 'develop' into feature 2022-02-10 15:05:54 -05:00
jeremystretch
a4ca585ef2 Remove references to the old mailing list 2022-02-10 14:56:21 -05:00
jeremystretch
076461a1b6 Change notes for #7150, #8398 2022-02-10 14:22:40 -05:00
Jeremy Stretch
0c7407ebb6 Merge pull request #8592 from 991jo/fix_rack_svg_url
Fixes #7150: Devices on the elevations opposite side should be clickable
2022-02-10 14:21:01 -05:00
Jeremy Stretch
f13a3fa549 Merge pull request #8589 from ITJamie/patch-1
small documentation upgrade regarding group syncs
2022-02-10 14:11:12 -05:00
Markku Leiniö
c0a65eb593 Fixes #8398: Add ConfigParam.size to enlarge specific config fields (#8565)
* Fixes #8398: Add ConfigParam.size to enlarge specific config fields

* Revert "Fixes #8398: Add ConfigParam.size to enlarge specific config fields"

This reverts commit 05e8fff458.

* Use forms.Textarea for the banner config fields
2022-02-10 12:15:02 -05:00
jeremystretch
450a7730d3 Fixes #8578: Object change log tables should honor user's configured preferences 2022-02-10 12:07:09 -05:00
jeremystretch
41ee4b642f Fixes #8604: Fix tag filter on config context list filter form 2022-02-10 11:56:41 -05:00
jeremystretch
d42c59792f #8334: Move object changelog & journaling to generic views 2022-02-09 16:24:10 -05:00
jeremystretch
7c105019d8 Closes #8600: Document built-in template tags & filters 2022-02-09 16:01:58 -05:00
jeremystretch
ee566723d7 Document supported table columns 2022-02-09 14:31:40 -05:00
jeremystretch
23a80770e1 Move configure_table() logic to NetBoxTable.configure() 2022-02-09 14:10:54 -05:00
jeremystretch
10e6ae2094 Introduce get_viewname() as a standard utility 2022-02-09 13:47:12 -05:00
jeremystretch
e2286a4c48 Fix plugin name resolution 2022-02-09 12:55:10 -05:00
thatmattlove
3ee3c52e14 Improve CI performance 2022-02-09 10:26:09 -07:00
Johannes Erwerle
e76a5bfd85 Fixes #7150: Devices on the elevations opposite side should be clickable 2022-02-09 15:07:36 +01:00
Jamie (Bear) Murphy
59c89a3b9d small documentation upgrade regarding group syncs
small documentation upgrade regarding group syncs
2022-02-09 13:05:51 +00:00
jeremystretch
272d6e7437 Closes #8463: Change the created field on all change-logged models from date to datetime 2022-02-08 14:41:44 -05:00
Jeremy Stretch
45e5c4eb46 Merge pull request #8586 from netbox-community/template-cleanup
Closes #8585: Support generic templates for plugins
2022-02-08 13:22:44 -05:00
jeremystretch
d9b7c012a6 Document templates supported for plugin use 2022-02-08 12:14:37 -05:00
jeremystretch
270288f730 Rename bulk operation templates 2022-02-08 11:49:18 -05:00
jeremystretch
1e55d064ab Document the base layout template 2022-02-08 11:45:23 -05:00
jeremystretch
e796fd1e11 Clean up and document the bulk import/edit/delete templates 2022-02-08 11:23:52 -05:00
jeremystretch
b0039e938e Clean up and document object edit & delete templates 2022-02-08 11:19:33 -05:00
Sergio Saucedo
8fc605037a Implement custom DateColumn improving null values handling 2022-02-08 01:26:26 -06:00
Johannes Erwerle
311ddf82c5 Fixes #8577: Contact assignment amounts not shown during contact global search 2022-02-08 08:03:48 +01:00
thatmattlove
9d65486c64 Fixes #8564: reset the table config to an empty object when reset is clicked 2022-02-07 16:03:09 -07:00
jeremystretch
624eda297f Clean up and document object, object list templates 2022-02-07 16:50:17 -05:00
thatmattlove
ccce7751a0 Fixes #8564: only use columns form field in user table config form submit 2022-02-07 14:36:28 -07:00
thatmattlove
7252f0b490 Add optional selector to getSelectedOptions for more specific field selection 2022-02-07 14:34:35 -07:00
thatmattlove
094d2e586a Fix code formatting 2022-02-07 14:14:43 -07:00
thatmattlove
6c1507c88c Implement replaceAll utility function
add #8331 release notes
2022-02-07 14:04:58 -07:00
mathieu-mp
60f48326e1 #8331 Maximize browser compatibility 2022-02-07 14:04:49 -07:00
jeremystretch
26db326483 Fix field group header 2022-02-07 15:09:09 -05:00
jeremystretch
d816f797a4 Clean up release notes 2022-02-07 14:31:49 -05:00
Jeremy Stretch
0e827b6ae6 Merge pull request #8562 from netbox-community/8405-plugins-graphql
Closes #8405: GraphQL support for plugins
2022-02-07 13:08:32 -05:00
jeremystretch
049acde5b0 Closes #8572: Add a pre_run() method for reports 2022-02-07 12:57:02 -05:00
Jeremy Stretch
733a9bb2e1 Merge pull request #8510 from netbox-community/8032-django-40
Closes #8032: Upgrade to Django 4.0
2022-02-07 11:47:38 -05:00
jeremystretch
9ac769e4f8 Pull graphene-django from v2 branch 2022-02-07 11:32:02 -05:00
jeremystretch
2157f93f36 Clean up merge conflict remnants 2022-02-07 10:47:07 -05:00
jeremystretch
5b985a924b Changelog for #8548 & misc cleanup 2022-02-07 10:37:11 -05:00
Jeremy Stretch
ee74989f74 Merge pull request #8566 from tijshuisman/develop
Fixes #8548: Virtual Chassis position zero not shown in device page
2022-02-07 10:32:44 -05:00
jeremystretch
3651ef53e3 #7852: Extend VRF assignment to VM interfaces 2022-02-07 09:54:00 -05:00
Tijs Huisman
e2fc7e8cd7 Fixes #8548: Virtual Chassis position zero not shown in device page 2022-02-05 15:10:03 +01:00
jeremystretch
aff55881df Changelog for #8561 2022-02-04 16:22:30 -05:00
Jeremy Stretch
4d066a075d Merge pull request #8563 from jasonyates/8561-rear-console
Fixes #8561 - Unable to connect a cable from rear ports of a patch panel to a device console port
2022-02-04 16:17:07 -05:00
Jason Yates
201077b6f6 Fixes #8561 - Unable to connect a cable from rear ports of a patch panel to a device console port 2022-02-04 20:44:43 +00:00
jeremystretch
dae5c94be0 Expose BaseObjectType and NetBoxObjectType for plugins 2022-02-04 15:07:35 -05:00
jeremystretch
03ea257711 Initial work on GraphQL 2022-02-04 15:06:58 -05:00
jeremystretch
df95115e2e Refactor plugins registry 2022-02-04 14:37:29 -05:00
jeremystretch
5fea012eab Fix GitHub templates 2022-02-04 13:57:30 -05:00
jeremystretch
a2981870ce #7844: Allow installing modules via UI without replicating components 2022-02-04 11:51:30 -05:00
jeremystretch
60e87cd496 Enable the use of fieldsets on bulk edit forms 2022-02-04 09:59:53 -05:00
jeremystretch
ac1c0b0715 #8054: Allow replacing default static choices 2022-02-03 13:52:42 -05:00
jeremystretch
6575af6b93 Fix saving interfaces 2022-02-03 13:25:27 -05:00
jeremystretch
0e95ca7b69 Fix ProgrammingError exception when annotating config context data 2022-02-03 12:58:54 -05:00
jeremystretch
630ff2abb4 Remove dependency on is_safe_url() 2022-02-03 12:58:54 -05:00
jeremystretch
7611cfddae Tweak related names in old migrations to avoid creating new ones 2022-02-03 12:58:54 -05:00
jeremystretch
ef75f7e650 Upgrade to Django 4.0 2022-02-03 12:58:54 -05:00
jeremystretch
478eefb74c Merge v3.1.7 2022-02-03 12:55:34 -05:00
jeremystretch
795134c084 PRVB 2022-02-03 11:34:36 -05:00
Jeremy Stretch
4f689223b4 Merge pull request #8540 from netbox-community/develop
Release v3.1.7
2022-02-03 11:31:48 -05:00
jeremystretch
70ce7293ac Release v3.1.7 2022-02-03 10:51:41 -05:00
jeremystretch
94a0a3b568 Closes #8502: Omit [all] from social-auth-core in base requirements 2022-02-03 10:39:39 -05:00
jeremystretch
69305f0509 Fixes #8315: Fix display of NAT link for primary IPv4 address under device view 2022-02-03 10:30:26 -05:00
jeremystretch
24f48b11e6 Closes #8530: Indicate CSV or YAML as format for "all data" export 2022-02-03 10:22:38 -05:00
jeremystretch
ff3b48fa59 Fixes #8527: Fix display of changelog retention period 2022-02-03 09:48:21 -05:00
jeremystretch
db3f478598 Closes #8517: Render boolean custom fields as icons in object tables 2022-02-02 16:24:51 -05:00
jeremystretch
e20ac803f3 Fixes #8498: Fix display of selected content type filters in object list views 2022-02-02 16:08:12 -05:00
Daniel Sheppard
ea283365e7 Fixes #8425 - Fix exception when viewing change list/records with removed plugins 2022-02-02 11:18:41 -06:00
jeremystretch
8211830bd8 Fixes #8514: Correct several links to config parameters 2022-02-02 09:27:29 -05:00
jeremystretch
2a8e0f9404 Update table accessors to use dunders in path 2022-02-02 09:18:50 -05:00
jeremystretch
c15cfc26f1 Fixes #8512: Correct file permissions to allow execution of housekeeping script 2022-02-01 16:58:09 -05:00
jeremystretch
4f4e6938eb Closes #7504: Include IP range data under IPAM role views 2022-02-01 16:47:29 -05:00
jeremystretch
8545a547b9 Closes #8494: Include locations count under tenant view 2022-02-01 16:31:34 -05:00
jeremystretch
3bb7184f28 Fixes #8499: Content types REST API endpoint should not require model permission 2022-02-01 15:14:13 -05:00
jeremystretch
74c4f12b27 Closes #8509: CSRF_TRUSTED_ORIGINS is now a discrete configuration parameter 2022-02-01 14:29:52 -05:00
jeremystretch
5af18c2d8a Move pk field declaration under NetBoxModelBulkEditForm 2022-02-01 11:40:23 -05:00
jeremystretch
d38620bad2 Fix bulk nullification of custom fields 2022-02-01 11:31:11 -05:00
jeremystretch
3621b1a0d0 Set model as attribute on bulk edit forms 2022-02-01 11:00:18 -05:00
Jeremy Stretch
4347f624d8 Merge pull request #8504 from netbox-community/8488-plugins-forms
Closes #8488: Support form components for plugins
2022-01-31 16:46:33 -05:00
jeremystretch
bfb1a82754 Update docstrings for base form classes 2022-01-31 16:23:23 -05:00
jeremystretch
d1672f8818 Move nullable_fields out of Meta for bulk edit forms 2022-01-31 16:15:40 -05:00
jeremystretch
353e132cf9 Replace filter_groups with fieldsets on filter forms 2022-01-31 16:03:26 -05:00
jeremystretch
ccb3a75281 Move fieldsets out of Meta for model forms 2022-01-31 15:52:36 -05:00
jeremystretch
cf3ca5a661 Refactor & document supported form fields 2022-01-31 14:10:13 -05:00
jeremystretch
e4eee1cdfc Clean up nullable fields declaration for bulk edit forms 2022-01-28 16:47:54 -05:00
jeremystretch
f4776731ec Establish 4 core forms in netbox.forms.base 2022-01-28 15:48:15 -05:00
Jeremy Stretch
dd71942a5e Merge pull request #8489 from 991jo/fix-unittest-docs
Fixes #8477: The commands for running the tests in the development se…
2022-01-28 14:19:57 -05:00
jeremystretch
19fdd5e151 Fixes #8465: Accept empty string values for Interface rf_channel in REST API 2022-01-28 14:03:36 -05:00
jeremystretch
f537dc632e Fixes #8456: Fix redundant display of VRF RD in prefix view 2022-01-28 13:19:23 -05:00
jeremystretch
2221006970 Closes #8462: Linkify manufacturer column in device type table 2022-01-28 13:09:57 -05:00
Johannes Erwerle
5d29c5958b Fixes #8477: The commands for running the tests in the development section are not working 2022-01-28 17:54:37 +01:00
jeremystretch
0fe72376b1 Remove unused form attribute from BulkDeleteView 2022-01-28 10:00:36 -05:00
Jeremy Stretch
64dd46c7e4 Merge pull request #8482 from 991jo/feature-asn-ui-improvement
Fixes #8476: Bring the ASN Web UI up to the standard set by other obj…
2022-01-28 09:37:54 -05:00
Johannes Erwerle
8df382d976 Fixes #8476: Bring the ASN Web UI up to the standard set by other objects 2022-01-28 11:58:29 +01:00
Jeremy Stretch
3a447d5515 Merge pull request #8473 from netbox-community/6221-pluginviews
Closes #8472: Make view name resolution plugin-safe
2022-01-27 16:56:20 -05:00
jeremystretch
75aa1c7b80 Merge feature 2022-01-27 16:38:36 -05:00
jeremystretch
f1697c6856 Add change log for plugins framework additions 2022-01-27 16:21:19 -05:00
jeremystretch
3c1ea5d0fb Closes #8470: Expose NetBoxTable in the plugins framework 2022-01-27 16:14:02 -05:00
jeremystretch
59d3f5c4ea Split out NetBoxTable from BaseTable 2022-01-27 16:00:38 -05:00
jeremystretch
4a1b4e0485 Closes #8469: Move BaseTable, columns to netbox core app 2022-01-27 15:00:10 -05:00
jeremystretch
083d1acb81 Closes #8453: Rename PrimaryModelFilterSet to NetBoxModelFilterSet & expose for plugins 2022-01-27 09:27:33 -05:00
jeremystretch
c5650bb278 Rename PrimaryModel to NetBoxModel 2022-01-26 20:57:14 -05:00
jeremystretch
a795b95f7e Closes #8451: Include ChangeLoggingMixin in BaseModel 2022-01-26 20:41:41 -05:00
jeremystretch
b67859832a Refactor to_objectchange() 2022-01-26 20:25:23 -05:00
jeremystretch
eb00e20269 Revert "Refactor ChangeLoggedModelFilterSet"
This reverts commit 28de9b8913.
2022-01-26 09:03:30 -05:00
jeremystretch
b797b08bcf Remove BigIDModel 2022-01-26 09:02:04 -05:00
jeremystretch
e4abbfb2c6 Closes #8454: Set DEFAULT_AUTO_FIELD to BigAutoField 2022-01-25 17:37:06 -05:00
jeremystretch
28de9b8913 Refactor ChangeLoggedModelFilterSet 2022-01-25 16:18:07 -05:00
jeremystretch
acc9ca7d7d Move TagFilter to PrimaryFilterSet 2022-01-25 16:11:49 -05:00
jeremystretch
497afcc1e4 Rearrange plugins documentation 2022-01-25 13:53:31 -05:00
jeremystretch
571e9801f3 Closes #8195: Ensure all GenericForeignKey ID fields employ PositiveBigIntegerField 2022-01-24 16:02:54 -05:00
Sergio Saucedo
31c58409e1 Set install_date default value as empty string 2022-01-24 02:36:27 -06:00
jeremystretch
5abfe821bc Changelog cnad cleanup for #7853 2022-01-21 15:43:53 -05:00
Jeremy Stretch
05d4c127ee Merge pull request #8428 from netbox-community/8334-plugins-views
Closes #8334: Formally support use of generic views by plugins
2022-01-21 15:37:20 -05:00
jeremystretch
1c94625042 Remove widget_attrs from BulkImportView 2022-01-21 14:48:27 -05:00
jeremystretch
a74ed33b0e Move get_object() to BaseObjectView 2022-01-21 14:41:37 -05:00
jeremystretch
e03593d86f Move get_extra_context() to base views 2022-01-21 14:01:14 -05:00
Jeremy Stretch
3d6c2c5fef Merge pull request #8420 from netbox-community/7853-speed_duplex
Fixes #7853 - Add speed and duplex
2022-01-21 13:07:23 -05:00
jeremystretch
54834c47f8 Refactor generic views; add plugins dev documentation 2022-01-20 16:31:55 -05:00
Daniel Sheppard
d0bfd7e19a #7853 - Add tests 2022-01-20 14:13:13 -06:00
Daniel Sheppard
1a807416b8 #7853 - Add columns to tables 2022-01-20 13:58:37 -06:00
Daniel Sheppard
5f8870d448 #7853 - Change Duplex Filterset to allow multivalues 2022-01-20 13:58:11 -06:00
Daniel Sheppard
375a140343 Merge branch 'feature' of https://github.com/netbox-community/netbox into 7853-speed_duplex 2022-01-20 13:12:04 -06:00
Jeremy Stretch
7002319cc8 Merge pull request #8414 from netbox-community/8392-plugins-features
Closes #8392: Enable NetBox features for plugin models
2022-01-20 12:23:52 -05:00
jeremystretch
e6acae5f94 Omit job results as a supported feature 2022-01-20 11:41:00 -05:00
jeremystretch
1a8f144f5c Include custom validation in BaseModel 2022-01-20 10:53:00 -05:00
jeremystretch
b7682ca9e8 Fix documentation build 2022-01-20 09:27:37 -05:00
jeremystretch
196784474d Update documentation requirements 2022-01-19 16:58:06 -05:00
jeremystretch
d104544d6f Add mkdocstrings 2022-01-19 16:52:00 -05:00
jeremystretch
dd55226455 Draft documentation for model features 2022-01-19 16:47:41 -05:00
jeremystretch
047bed2a86 Tweak registry initialization 2022-01-19 15:22:28 -05:00
jeremystretch
cdae0c2bef Remove extras_features() decorator 2022-01-19 15:16:10 -05:00
jeremystretch
c7825e391c Designate feature mixin classes & employ class_prepared signal to register features 2022-01-19 14:46:50 -05:00
jeremystretch
bf6345aa90 Closes #5429: Enable toggling the placement of table paginators 2022-01-19 09:14:38 -05:00
jeremystretch
3fcae36cf1 Closes #8307: Add data_type indicator to REST API serializer for custom fields 2022-01-18 16:57:54 -05:00
jeremystretch
69eb6b11d0 Closes #8368: Enable controlling the order of custom script form fields with field_order 2022-01-18 16:01:40 -05:00
jeremystretch
1f2d4fd2b3 Closes #8381: Add contacts to global search function 2022-01-18 15:40:19 -05:00
jeremystretch
21468fff25 Closes #8367: Add ASNs to global search function 2022-01-18 15:36:21 -05:00
jeremystretch
4711b4d529 Correct FeatureQuery invocations 2022-01-18 15:17:05 -05:00
Daniel Sheppard
29d4859e02 Fixes #8375 - Change ASN display column from ASDOT to ASPLAIN. Add ASDOT display column. 2022-01-18 11:23:52 -06:00
jeremystretch
4b81d86311 Closes #8376: Correct example condition defitinions; call out value vs label ealuation for choice fields 2022-01-18 11:31:39 -05:00
jeremystretch
38963e7960 Fixes #8377: Fix calculation of absolute cable lengths when specified in fractional units 2022-01-18 11:09:12 -05:00
jeremystretch
3e3880823b Merge v3.1.6 2022-01-17 11:12:54 -05:00
jeremystretch
1584d51433 PRVB 2022-01-17 10:16:37 -05:00
Jeremy Stretch
98571c62a6 Merge pull request #8372 from netbox-community/develop
Release v3.1.6
2022-01-17 10:15:24 -05:00
jeremystretch
69f525bfd3 Release v3.1.6 2022-01-17 09:49:16 -05:00
jeremystretch
2b31154834 Fixes #8358: Fix inconsistent styling of custom fields on filter & bulk edit forms 2022-01-14 14:23:58 -05:00
jeremystretch
b0948ea018 Changelog for #8342, #8357 2022-01-14 11:51:02 -05:00
Jeremy Stretch
a50e4e3380 Merge pull request #8352 from jasonyates/8342-created-updated
Fixes #8342
2022-01-14 11:48:52 -05:00
Jeremy Stretch
5564664b13 Merge pull request #8360 from jasonyates/8357-location-filter
Fixes #8357 - Filter view for Locations is missing tags field
2022-01-14 11:48:36 -05:00
Jason Yates
1ae5a2c808 Fixes #8357 - Filter view for Locations is missing tags field
Adding tag field to Locations filter view
2022-01-14 06:19:25 -08:00
Jason Yates
0181a25d70 Fixes #8342
created & last_updated fields are missing from some REST API calls. Added missing fields to the following API calls

/api/dcim/virtual-chassis/
/api/dcim/cables/
/api/dcim/power-panels/
/api/dcim/rack-reservations/
/api/circuits/circuit-terminations/
/api/extras/webhooks/
/api/extras/custom-fields/
/api/extras/custom-links/
/api/extras/export-templates/
/api/extras/tags/
2022-01-13 19:13:28 -08:00
jeremystretch
60ba4a9830 Changelog for #8337 2022-01-13 15:24:15 -05:00
Jeremy Stretch
3802a78c9d Merge pull request #8341 from jasonyates/8337-created-updated
Add created & last updated as available fields to all tables
2022-01-13 15:23:12 -05:00
jeremystretch
0ca6d73614 #8293: Tweak table column output & add changelog 2022-01-13 15:10:06 -05:00
Jeremy Stretch
aa77f8f0d2 Merge pull request #8329 from jasonyates/8293-asdot
Adding asdot notation to ASN views
2022-01-13 15:02:21 -05:00
jeremystretch
7767692394 Changelog for #8295 2022-01-13 12:10:25 -05:00
Jeremy Stretch
5077ff169e Merge pull request #8343 from netbox-community/1591-service-templates
Closes #1591: Service templates
2022-01-13 12:09:36 -05:00
jeremystretch
b21b6238cf Fix test permissions 2022-01-13 11:52:06 -05:00
Jeremy Stretch
cf89984c7a Merge pull request #8339 from rodvand/feature
Fixes: #8295 Render the payload_url of a Webhook with Jinja2
2022-01-13 11:36:56 -05:00
jeremystretch
707aad234e Add view test for creating service from template 2022-01-13 11:27:29 -05:00
jeremystretch
5b851a2d09 Changelog for #1591 2022-01-13 10:48:08 -05:00
jeremystretch
bb5ded2039 Enable creating services from templates in the UI 2022-01-13 10:32:42 -05:00
Jason Yates
381796e708 Add created & last updated as available fields to all tables
Adds two fields to all relevant tables to allow the addition of Created & Last Updated columns.

All tables with a Configure Table option were updated.

Some sections reformatted to comply with E501 line length as a result of changes
2022-01-13 09:22:32 +00:00
Jason Yates
62fc7717c8 Suggested changes
* Updating asdot computation to use an fstring
* Cleaning code. Custom property now returns either the ASN with ASDOT notation or just the ASN. asn_with_asdot can now be referenced in ASNTable & objet template.
2022-01-13 04:58:51 +00:00
jeremystretch
b07a7ba9bc Fix display of custom object fields within tables 2022-01-12 17:07:54 -05:00
jeremystretch
97e7ef9a3f Introduce ServiceTemplate 2022-01-12 16:42:28 -05:00
Martin Rødvand
5cbc978cad Render the payload_url of the Webhook with Jinja2
- Update markdown documentation
- Expand on the help text for the Webhook model
2022-01-12 21:58:19 +01:00
jeremystretch
e19451bb4f Plug WG8333 in the plugins development docs 2022-01-12 14:40:33 -05:00
Jason Yates
85f588e8c9 Updating page title to include asdot notation 2022-01-12 16:44:22 +00:00
Jason Yates
ea644868a6 Adding asdot notation to ASN views
Adds custom property to asn model to compute asdot notation if required.
Updates asn view to show asdot notation if one exists in the format xxxxx (yyy.yyy)
Adds a custom column renderer to asn table to display asdot notation if one exists
2022-01-12 14:06:22 +00:00
jeremystretch
d08accaaf1 Changelog for #8279 2022-01-11 16:27:30 -05:00
Jeremy Stretch
f49272cacb Merge pull request #8321 from jasonyates/8279-vc-rack-view
Fixes #8279 - No virtual chassis name in rack view
2022-01-11 16:25:50 -05:00
jeremystretch
c8713d94d8 Merge branch 'develop' into feature 2022-01-11 16:16:13 -05:00
Jason Yates
be8fef0228 Fixes #8279
A device that is part of a VC that has no name should display [virtual-chassis name]:[virtual-chassis position] as opposed to [device_type] in the rack rendering.
2022-01-11 21:03:18 +00:00
jeremystretch
b584f09223 Fixes #8319: Custom URL fields should honor ALLOWED_URL_SCHEMES config parameter 2022-01-11 15:32:04 -05:00
jeremystretch
d2968c95df Fixes #8314: Prevent custom fields with default values from appearing as applied filters erroneously 2022-01-11 15:02:10 -05:00
jeremystretch
7421e5f7d7 Fixes #8317: Fix CSV import of multi-select custom field values 2022-01-11 14:52:47 -05:00
jeremystretch
0b2a43cfcc Document formal release cycle 2022-01-11 12:54:07 -05:00
jeremystretch
50309d3ab3 Reference netbox-demo-data repo in development guide 2022-01-10 15:34:27 -05:00
jeremystretch
dd0b16bff5 Fixes #8305: Fix assignment of custom field data to FHRP groups via UI 2022-01-10 15:26:01 -05:00
jeremystretch
d5443adc74 Tweak sidebar colors & remove hover delay 2022-01-10 15:13:12 -05:00
jeremystretch
9152ba72f1 Fixes #8306: Redirect user to previous page after login 2022-01-10 14:44:25 -05:00
jeremystretch
ff396b5953 Fix CSV import test & form cleanup 2022-01-10 14:27:52 -05:00
jeremystretch
21e0e6e495 Closes #6954: Remember users' table ordering preferences 2022-01-10 14:03:07 -05:00
jeremystretch
72e17914e2 Closes #8296: Allow disabling custom links 2022-01-10 12:11:37 -05:00
Jeremy Stretch
17aa37ae21 Merge pull request #8303 from netbox-community/7679-table-actions
Closes #7679: Object table actions menus
2022-01-10 11:38:07 -05:00
jeremystretch
94c116617a Changelog for #7679 2022-01-10 11:20:06 -05:00
jeremystretch
aed23d61fc Replace ButtonsColumn with ActionsColumn 2022-01-10 11:17:40 -05:00
jeremystretch
076ca46ab4 Closes #8302: Linkify role column in device & VM tables 2022-01-10 09:48:14 -05:00
jeremystretch
02519b270e Fixes #8301: Fix delete button for various object children views 2022-01-10 09:30:50 -05:00
jeremystretch
5aa7dedccb Changelog for #8246, #8285 2022-01-10 08:38:08 -05:00
Jeremy Stretch
6383dfa854 Merge pull request #8292 from jasonyates/8246-commit-rate
Fixes #8246 - Circuits list view to display formatted commit rate
2022-01-10 08:36:47 -05:00
Jeremy Stretch
5a4fb0323b Merge pull request #8286 from jasonyates/8285-cluster-count-tenant
Fixes #8285 tenant cluster count
2022-01-10 08:34:02 -05:00
jeremystretch
e84a282aa6 Revert REST API changes from #8284 2022-01-10 08:24:45 -05:00
Jason Yates
f732493473 Fixing code style E302 2022-01-08 22:24:25 +00:00
Jason Yates
f66a265fcf Fixes #8246 - Circuits list view to display formatted commit rate
Adds a custom column class to format the commit rate in the circuits table view using humanize_speed template helper. Export still exports the raw number.
2022-01-08 21:55:07 +00:00
Daniel Sheppard
0f58faaddb #7853 - Initial work on Speed/Duplex.
TODO: Documentation, Tests, Form order
2022-01-08 12:25:30 -06:00
Daniel Sheppard
f1472d218e Update changelog for #8262 and #8265 2022-01-08 00:21:38 -06:00
Daniel Sheppard
d65c05aacd Merge pull request #8269 from bluikko/cisco-stackwise-n
Merge PR from bluikko for #8265
2022-01-08 00:20:43 -06:00
Daniel Sheppard
2b28ffa2f4 Merge pull request #8284 from jasonyates/8262-tenant-cable-stat
Fixes #8262 - Add Cable stat for Tenant
2022-01-08 00:15:35 -06:00
Daniel Sheppard
10ec31df3e Fix #8287 - Correct label in export template form 2022-01-08 00:13:58 -06:00
Jason Yates
184b1055dc Fixes #8285 - Cluster count missing from tenant api output 2022-01-07 20:17:43 +00:00
Jeremy Stretch
447a5f01a9 Merge pull request #8282 from netbox-community/7852-interface-vrf
Closes #7852: Interface VRF assignment
2022-01-07 15:16:11 -05:00
Jason Yates
eaec25e6c2 Fixes #8262 - Add Cable stat for Tenant 2022-01-07 20:02:45 +00:00
jeremystretch
3e277de82d Closes #7852: Enable assigning interfaces to VRFs 2022-01-07 14:57:43 -05:00
jeremystretch
8b07fbc554 Allow passing additional columns & specifying a sequence 2022-01-07 11:56:18 -05:00
jeremystretch
bff7400de4 Convert ActionsMenuItem to dataclass 2022-01-07 11:23:04 -05:00
jeremystretch
1024adca72 Exclude actions column from export 2022-01-07 11:00:35 -05:00
jeremystretch
ededa69e4a Only show relevant links for user permissions 2022-01-07 10:53:00 -05:00
jeremystretch
6d48ce4a25 Always include actions as a default column 2022-01-07 10:36:58 -05:00
jeremystretch
00a8fd654e Refactor table utilities 2022-01-07 09:12:48 -05:00
bluikko
b63e29610e Add Cisco StackWise-n choices 2022-01-07 11:56:54 +07:00
jeremystretch
58f7eb319f Initial work on #7679 2022-01-06 16:53:24 -05:00
Jeremy Stretch
453f2ab02d Merge pull request #8261 from netbox-community/7006-custom-object-fields
Closes #7006: Custom object fields
2022-01-06 14:09:40 -05:00
jeremystretch
3002382edc Documentation and changelog for #7006 2022-01-06 13:44:21 -05:00
jeremystretch
bfc695434c Add object_type validation 2022-01-06 13:43:40 -05:00
jeremystretch
1e80cc6db5 Clean up & extend custom field tests 2022-01-06 13:24:37 -05:00
jeremystretch
b0db5a8b0a PRVB 2022-01-06 09:58:50 -05:00
Jeremy Stretch
d3e2241ff7 Merge pull request #8257 from netbox-community/develop
Release v3.1.5
2022-01-06 09:52:54 -05:00
jeremystretch
e90b9f6c19 Release v3.1.5 2022-01-06 09:24:28 -05:00
jeremystretch
4c1199e009 Fixes #8255: Fix bulk editing of authentication parameters for wireless LANs and links 2022-01-06 08:54:05 -05:00
jeremystretch
65471068b6 Closes #8252: Linkify type and group columns in clusters table 2022-01-05 21:36:20 -05:00
jeremystretch
7aa1fabbd7 Fix tests 2022-01-05 21:21:23 -05:00
jeremystretch
85c06372ff Fix bulk editing for custom object fields 2022-01-05 21:04:44 -05:00
jeremystretch
c6467a824b #8228: Always add a blank choice 2022-01-05 17:10:59 -05:00
jeremystretch
271b7adeb8 Extend to support the assignment of multiple objects per field 2022-01-05 17:05:54 -05:00
jeremystretch
b1d1f3c6b2 Fixes #8228: Optional ChoiceVar fields should not force a selection 2022-01-05 15:46:04 -05:00
jeremystretch
574c2e2770 Closes #8244: Add length & length unit fields to cable filter form 2022-01-05 15:32:34 -05:00
jeremystretch
aec2d233c9 Changelog for #8231 2022-01-05 15:18:49 -05:00
Jeremy Stretch
39418f2bbe Merge pull request #8247 from netbox-community/8231-htmx-confirmation-dialogs
Closes #8231: Use HTMX for object deletion confirmations
2022-01-05 15:14:51 -05:00
jeremystretch
ccda73494f Center modal dialog vertically 2022-01-05 14:57:56 -05:00
jeremystretch
443b4ccc57 Initial work on #8231 2022-01-05 14:06:56 -05:00
Daniel Sheppard
88ac0f5d34 Work on #6221 - Make templatetags safe for consumption when using plugins and update ButtonColumn to use viewname helper. 2022-01-05 11:31:00 -06:00
jeremystretch
511aedd5db Omit table configuration form from rack elevations view 2022-01-05 11:39:58 -05:00
jeremystretch
2524290099 Introduce modals template block 2022-01-05 09:21:48 -05:00
jeremystretch
01e8017265 Clean up template blocks 2022-01-05 09:09:39 -05:00
jeremystretch
8338fc405f Simplify theme color palette 2022-01-04 20:51:10 -05:00
jeremystretch
0a22b3990f #7450: Clean up footer and navbar styles 2022-01-04 20:42:44 -05:00
jeremystretch
954d81147e Reindex migrations 2022-01-04 17:07:37 -05:00
jeremystretch
fa1e28e860 Initial work on #7006 2022-01-04 16:59:52 -05:00
jeremystretch
662cafe416 Form widgets & style cleanup 2022-01-04 15:01:16 -05:00
jeremystretch
ea961ba8f2 Fixes #8224: Fix KeyError exception when creating FHRP group with IP address and protocol "other" 2022-01-04 13:49:07 -05:00
jeremystretch
8c8774cd2f Fixes #8226: Honor return URL after populating a device bay 2022-01-04 13:24:15 -05:00
jeremystretch
2fe02ddb1f Add tests for IPAM object children views 2022-01-04 09:32:41 -05:00
jeremystretch
e11e8a5d64 Fixes #8213: Fix ValueError exception under prefix IP addresses view 2022-01-04 09:15:25 -05:00
jeremystretch
0978777eec Merge v3.1.4 2022-01-03 11:20:58 -05:00
jeremystretch
79bebf7c9b PRVB 2022-01-03 11:18:46 -05:00
Jeremy Stretch
8d3b660ce0 Merge pull request #8212 from netbox-community/develop
Release v3.1.4
2022-01-03 11:16:27 -05:00
jeremystretch
9de53fe070 Release v3.1.4 2022-01-03 11:00:23 -05:00
jeremystretch
ecb9fc65b7 Closes #8197: Allow filtering sites by group when connecting a cable 2022-01-03 10:41:43 -05:00
Jeremy Stretch
7b25d0379f Merge pull request #8202 from netbja/patch-1
Small syntax error
2022-01-03 10:39:56 -05:00
jeremystretch
05d4176d34 Fixes #8201: Custom integer fields should allow negative integers as minimum/maximum values 2022-01-03 10:07:19 -05:00
jeremystretch
7b0dff88ae Closes #8210: Establish netbox/local/ as a path for local resources 2022-01-03 09:45:30 -05:00
jeremystretch
1c7604e0fe Fixes #8200: Correct typo in navigation menu 2022-01-03 09:20:26 -05:00
jeremystretch
e18dc43aae Fixes #8196: Fix IndexError exception when viewing large IPv6 prefixes in UI 2022-01-03 09:17:15 -05:00
netbja
caaad684a4 Small syntax error
No double quotes after password.
2021-12-31 11:25:12 +01:00
jeremystretch
cdd51aee75 Closes #8194: Enable bulk user assignment to groups under admin UI 2021-12-30 13:19:18 -05:00
jeremystretch
51851f6c99 Refactor users.admin 2021-12-30 13:08:09 -05:00
jeremystretch
ab98aa489c Related objects should be prefetched for Prefix/IPRange child object views 2021-12-30 12:43:37 -05:00
jeremystretch
5829985ca8 Remove power utilization as default column from racks table 2021-12-30 12:02:20 -05:00
jeremystretch
2fa8e27f05 Fixes #8192: Add "add prefix" button to aggregate child prefixes view 2021-12-30 12:00:37 -05:00
jeremystretch
68f92dfd5d Fix redirection URL for prefix IP ranges view 2021-12-30 11:47:21 -05:00
jeremystretch
67aeb380e7 Fix DNS name label in IP address bulk edit form 2021-12-30 11:46:09 -05:00
jeremystretch
f7d91b7139 Extend "Adding models" documentation 2021-12-30 10:12:28 -05:00
jeremystretch
b6e157f393 Add features summary to README 2021-12-30 10:08:31 -05:00
jeremystretch
2319fce092 Add tab to cable connect view 2021-12-30 09:51:30 -05:00
jeremystretch
a5f1707662 Fixes #8191: Fix return URL when adding IP addresses to VM interfaces 2021-12-30 09:46:02 -05:00
jeremystretch
6cda55da06 Fixes #8187: Fix rendering of tags column in object tables 2021-12-30 09:41:35 -05:00
jeremystretch
8e69961744 Fix CustomLinkButtonClassChoices references in tests 2021-12-30 08:15:43 -05:00
jeremystretch
9f53497e39 Clean up & expand button color choices 2021-12-29 20:28:12 -05:00
Jeremy Stretch
ae3c871438 Merge pull request #8186 from netbox-community/8118-inventoryitem-template
Closes #8118: Inventory item templates
2021-12-29 16:58:57 -05:00
jeremystretch
1edf80db8e Changelog & documentation for #8118 2021-12-29 16:40:03 -05:00
jeremystretch
791cc093f4 Enable the association of inventory item templates with component templates 2021-12-29 16:30:44 -05:00
jeremystretch
4c15f4a84f Initial work on #8118 2021-12-29 15:37:01 -05:00
jeremystretch
3bb485d0b8 Merge v3.1.3 2021-12-29 12:41:56 -05:00
jeremystretch
c3f2fee633 PRVB 2021-12-29 12:40:04 -05:00
Jeremy Stretch
1f575a2a47 Merge pull request #8185 from netbox-community/develop
Release v3.1.3
2021-12-29 12:31:07 -05:00
jeremystretch
13c4d13157 Release NetBox v3.1.3 2021-12-29 12:10:46 -05:00
jeremystretch
43fadab3bb Closes #8034: Enable specifying custom field validators during CSV import 2021-12-29 11:57:27 -05:00
jeremystretch
82a0240d2e Closes #8182: Introduce checkmark template tag 2021-12-29 10:26:42 -05:00
jeremystretch
f2aa35d3d2 Closes #7600: Include count of available IPs on prefix view 2021-12-29 09:59:25 -05:00
jeremystretch
9c9fcaf42f Fixes #7290: Defer loading API-backed form fields 2021-12-29 09:30:43 -05:00
jeremystretch
146a51ceba Clean up API tokens view 2021-12-29 09:10:56 -05:00
jeremystretch
b0350e9e96 Remove navbar background color 2021-12-29 08:56:59 -05:00
Jeremy Stretch
e0126d971c Merge pull request #8179 from netbox-community/8089-choice-colors
Closes #8089: Color names
2021-12-28 21:23:01 -05:00
jeremystretch
b60ace80be Update documentation for FIELD_CHOICES 2021-12-28 20:21:35 -05:00
jeremystretch
b3ea007e0a Update ChoiceSets to use base colors 2021-12-28 20:18:07 -05:00
jeremystretch
a0d6cb1fd3 Simplify theme color palette 2021-12-28 17:14:04 -05:00
jeremystretch
7b66dae2f0 Merge branch 'develop' into feature 2021-12-28 16:14:24 -05:00
jeremystretch
35e346c4b9 Fix circuit termination button style 2021-12-28 16:13:58 -05:00
jeremystretch
3982f13569 Show parent device/VM when creating new components 2021-12-28 15:19:41 -05:00
jeremystretch
21356b487a #7846: Show assigned component (if any) when creating inventory item 2021-12-28 14:15:06 -05:00
jeremystretch
1987647cc3 Closes #8175: Display parent object when attaching an image 2021-12-28 13:06:27 -05:00
Jeremy Stretch
e9910d1fe2 Merge pull request #8176 from netbox-community/7846-inventoryitem-component
Closes #7846: Associate inventory items with device components
2021-12-28 11:48:36 -05:00
jeremystretch
4c5a5c70b0 Changelog for #7846 2021-12-28 11:19:46 -05:00
jeremystretch
a0836b6876 Add inventory items panel to device component views 2021-12-28 11:06:34 -05:00
jeremystretch
e0319cc894 Clean up form rendering 2021-12-28 10:22:00 -05:00
jeremystretch
4075cc8518 Restore front port component creation 2021-12-28 09:53:56 -05:00
jeremystretch
8ca09ec07f Clean up form display 2021-12-28 08:54:03 -05:00
jeremystretch
ba85101d30 Update component model forms to use DynamicModelChoiceField query_params for related objects 2021-12-27 21:25:47 -05:00
jeremystretch
a237c01b4b Refactor ComponentCreateView to use separate forms for names/labels and model creation 2021-12-27 21:04:29 -05:00
jeremystretch
99d5013de3 Initial work on #7846 2021-12-27 14:01:25 -05:00
Jeremy Stretch
a58f1c6a7d Merge pull request #8172 from netbox-community/3087-inventory-item-roles
Closes #3087: Add inventory item roles
2021-12-27 11:06:50 -05:00
jeremystretch
a748083f26 Changelog for #3087 2021-12-27 10:52:04 -05:00
jeremystretch
6e9afccfd7 #8037: Add role field to InventoryItem 2021-12-27 10:45:33 -05:00
jeremystretch
04fb5e544d #3087: Add InvetoryItemRole 2021-12-27 10:18:39 -05:00
jeremystretch
542534aeba Add direct link to preferences in user menu 2021-12-23 14:41:39 -05:00
jeremystretch
908a2824ba Reduce saturation of 'info' theme color 2021-12-23 14:34:09 -05:00
jeremystretch
77dd684916 Closes #7784: Support cluster type assignment for config contexts 2021-12-23 14:20:03 -05:00
jeremystretch
bffd22038b Closes #7681: Add service_id field for provider networks 2021-12-23 13:50:01 -05:00
jeremystretch
a03ae295f6 Update release notes 2021-12-23 11:39:56 -05:00
jeremystretch
544d991e1e Closes #8168: Add min/max VID fields to VLANGroup 2021-12-23 11:22:10 -05:00
jeremystretch
083fda3172 #2658: Fix test permissions 2021-12-23 10:46:57 -05:00
jeremystretch
e0cfd5e49b Closes #2658: Avalable VLANs API endpoint for VLAN groups 2021-12-23 10:14:28 -05:00
jeremystretch
2dd165bbef Merge branch 'develop' into feature 2021-12-23 08:32:40 -05:00
Jeremy Stretch
cab9733b60 Merge pull request #8159 from netbox-community/6782-custom-link-columns
Closes #6782: Custom link columns
2021-12-22 21:13:13 -05:00
jeremystretch
99e0dcec76 Changelog & docs for #6782 2021-12-22 20:57:59 -05:00
jeremystretch
9dafb36c88 Introduce CustomLinkColumn 2021-12-22 20:56:11 -05:00
jeremystretch
3d7d19b608 Move rendering logic under CustomLink class 2021-12-22 20:25:57 -05:00
jeremystretch
d650d10cb2 #7449: Apply distinctive styling to top navbar 2021-12-22 15:32:35 -05:00
jeremystretch
7fe45018e9 #7449: Remove red color from logout link 2021-12-22 15:22:06 -05:00
jeremystretch
4c4cab87fb #7449: Don't color valid form fields 2021-12-22 15:18:24 -05:00
jeremystretch
94c7f64baf Relocate confirmation_form.html 2021-12-22 15:08:04 -05:00
jeremystretch
f369b5f588 Reorganize & clean up templatetag templates 2021-12-22 15:05:24 -05:00
jeremystretch
37065b7c50 Remove obsolete template 2021-12-22 14:47:42 -05:00
jeremystretch
0a7372460f Changelog for #7887 2021-12-22 12:48:24 -05:00
Jeremy Stretch
063abc8ef7 Merge pull request #8153 from davama/develop
Add missing HTTP_X_FORWARDED_FOR
2021-12-22 12:46:22 -05:00
Jeremy Stretch
d64c88786e Merge pull request #8143 from netbox-community/7759-user-preferences
Closes #7759: User preferences framework
2021-12-22 11:00:18 -05:00
jeremystretch
fb4511d099 Fixes #8140: Restore missing fields on wireless LAN & link REST API serializers 2021-12-22 10:55:06 -05:00
jeremystretch
7343ae7339 Fix invalid key retrieval 2021-12-22 10:45:21 -05:00
jeremystretch
cb6342c874 Reference DEFAULT_USER_PREFERENCES for undefined preferences 2021-12-22 10:13:08 -05:00
jeremystretch
01997efcbe Add tests & cleanup 2021-12-22 09:51:31 -05:00
jeremystretch
7926225e9b Improve preferences form rendering 2021-12-22 09:35:29 -05:00
jeremystretch
1aafcf241f Enable plugins to define user preferences 2021-12-22 09:10:50 -05:00
jeremystretch
1eeac7f4f4 Introduce DEFAULT_USER_PREFERENCES dynamic config setting 2021-12-21 20:30:59 -05:00
jeremystretch
2c01e178c7 Update config context display to reference data_format preference 2021-12-21 19:59:33 -05:00
jeremystretch
36d2422eef Introduce UserPreference to define user preferences 2021-12-21 17:05:06 -05:00
jeremystretch
70f257b1ea Introduce UserConfigForm for managing user preferences 2021-12-21 16:29:01 -05:00
jeremystretch
275560698f Fixes #8139: Fix rendering of table configuration form under VM interfaces view 2021-12-21 14:10:12 -05:00
jeremystretch
d4b6fe14c3 Fixes #8138: Fix alignment of tags panel within IP address view 2021-12-21 14:04:15 -05:00
jeremystretch
f1350a1022 FIxes #7972: Standardize name of RemoteUserBackend logger 2021-12-21 13:57:12 -05:00
jeremystretch
344fb638fd Fixes #8127: Fix disassociation of interface under IP address edit view 2021-12-21 13:17:54 -05:00
thatmattlove
373cc74a33 Fixes #8134: reinitialize event listeners when HTMX swaps elements 2021-12-21 11:11:33 -07:00
jeremystretch
8e95ac42c2 Closes #8100: Add "other" choice for FHRP group protocol 2021-12-21 13:05:38 -05:00
jeremystretch
ceb941df81 Closes #8135: Append version when fetching static assets 2021-12-21 13:00:52 -05:00
jeremystretch
d275538116 Changelog & cleanup for #7246, #8097 2021-12-21 11:53:31 -05:00
Jeremy Stretch
fa38cdbc0d Merge pull request #8121 from kkthxbye-code/fix-8097
Fix #8097: Re-fix markdown table rendering
2021-12-21 11:50:24 -05:00
Jeremy Stretch
7569544b7b Merge pull request #8063 from rizlas/develop
Get_Environment from napalm should not need any decoding
2021-12-21 11:43:23 -05:00
Jeremy Stretch
853a52f3ca Merge branch 'develop' into fix-8097 2021-12-21 11:37:58 -05:00
jeremystretch
5e32c69e0e Merge branch 'develop' into feature 2021-12-21 11:28:16 -05:00
rizlas
39a0b15df4 Update netbox/dcim/api/views.py
Test without decode_dict function

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-12-21 17:15:54 +01:00
jeremystretch
a0db10838b Fixes #8131: Restore annotation of available IPs under prefix IPs view 2021-12-21 11:09:30 -05:00
jeremystretch
f2f10dff92 Fix RearPortTemplateTable buttons 2021-12-21 10:57:46 -05:00
jeremystretch
7ba45b2887 Clean up imports 2021-12-21 10:48:10 -05:00
jeremystretch
c91eb8f406 Remove extraneous output from service edit template 2021-12-21 10:30:30 -05:00
jeremystretch
57a78b3cad Clean up device/devicetype tab views 2021-12-21 10:28:28 -05:00
jeremystretch
b755c7dab3 Add changelog for #7962 (via #8114) 2021-12-21 09:03:36 -05:00
Jeremy Stretch
9ffd791ae4 Merge pull request #8130 from netbox-community/8114-htmx-jobs
Closes #8114: Use HTMX to update report/script results
2021-12-21 09:01:15 -05:00
jeremystretch
8af12b22bb Clean up report & script templates 2021-12-21 08:43:01 -05:00
jeremystretch
17ba0a97d5 Remove jobs Javascript 2021-12-20 20:59:14 -05:00
jeremystretch
4ae2b4e0b9 Convert reports to use HTMX 2021-12-20 20:52:29 -05:00
jeremystretch
872691a138 Convert scripts to use HTMX 2021-12-20 20:45:32 -05:00
kkthxbye-code
3a54ecb522 Fix #8097: Re-fix markdown table rendering 2021-12-20 23:31:24 +01:00
jeremystretch
71b4641e18 Merge v3.1.2 2021-12-20 16:28:11 -05:00
jeremystretch
42b590af77 PRVB 2021-12-20 16:06:42 -05:00
Jeremy Stretch
b15ecf7649 Merge pull request #8123 from netbox-community/develop
Release v3.1.2
2021-12-20 16:04:41 -05:00
jeremystretch
df4f80e773 Release v3.1.2 2021-12-20 15:48:28 -05:00
jeremystretch
b8b485af4d Changelog & PEP8 cleanup for #7999 2021-12-20 14:17:52 -05:00
Jeremy Stretch
892d6b55ec Merge pull request #8000 from joni1993/more-channels
feat: add 6GHz & 60Ghz channels
2021-12-20 14:16:12 -05:00
Jeremy Stretch
4a3bc8d365 Merge pull request #8111 from bonktree/opaque-icon
templates: add an opaque icon for mobile home screens
2021-12-20 13:58:25 -05:00
jeremystretch
e12da72615 Fixes #8101: Preserve return URL when using "create and add another" button 2021-12-20 13:41:22 -05:00
jeremystretch
f95e510060 Fixes #8102: Raise validation error when attempting to assign an IP address to multiple objects 2021-12-20 13:09:28 -05:00
Daniel Sheppard
82932ae7a5 Fixes #8102 - Add validation around assigned objects 2021-12-20 11:07:44 -06:00
jeremystretch
ae55ca7fd7 Changelog for #7844 2021-12-20 11:02:56 -05:00
Jeremy Stretch
d69a314bbf Merge pull request #8105 from netbox-community/7844-modules
Closes #7844: Add support for device modules
2021-12-20 10:55:50 -05:00
jeremystretch
e35aa4bd1e Add documentation for modules 2021-12-20 10:31:18 -05:00
jeremystretch
eaa1165611 Add position field for module bays 2021-12-20 09:51:55 -05:00
jeremystretch
14fc37a8b8 Closes #7661: Remove forced styling of custom banners 2021-12-19 15:33:48 -05:00
Arseny Maslennikov
7b23856cc8 templates: add an opaque icon for mobile home screens
The netbox_touch-icon-180.png icon was produced by rendering
netbox_icon.svg into a 160x160 square, centered in a 180x180 PNG filled
by the background colour of #212529.

In other words, it is a screenshot of the following HTML element:
```html
  <div style="width: 180px;height: 180px;background-color: #212529;">
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320" style="padding: 10px;">
    <g fill="#9cc8f8" stroke="#9cc8f8">
      <circle cx="37" cy="284" r="23"></circle>
      <circle cx="101" cy="37" r="23"></circle>
      <circle cx="101" cy="220" r="23"></circle>
      <circle cx="284" cy="220" r="23"></circle>
      <rect x="93" y="37" width="16" height="180"></rect>
      <rect x="101" y="212" width="180" height="16"></rect>
      <rect x="93" y="212" width="16" height="90" transform="rotate(45 101 220)"></rect>
    </g>
    <g fill="#1685fc" stroke="#1685fc">
      <circle cx="284" cy="37" r="23"></circle>
      <circle cx="37" cy="101" r="23"></circle>
      <circle cx="220" cy="101" r="23"></circle>
      <circle cx="220" cy="284" r="23"></circle>
      <rect x="37" y="93" width="180" height="16"></rect>
      <rect x="212" y="101" width="16" height="180"></rect>
      <rect x="212" y="93" width="16" height="90" transform="rotate(225 220 101)"></rect>
    </g>
  </svg>
  </div>
```
2021-12-19 01:32:15 +03:00
jeremystretch
85f9690377 Closes #8083: Removed "related devices" panel from device view 2021-12-18 14:30:28 -05:00
jeremystretch
4723500c5f Fixes #8092: Rack elevations should not include device asset tags 2021-12-18 14:26:32 -05:00
jeremystretch
2db82a73a5 #8096: Include only first assigned IP in FHRPGroup string representation 2021-12-18 14:19:57 -05:00
jeremystretch
b00eeb86ea Fixes #8096: Fix DataError during change logging of objects with very long string representations 2021-12-18 14:16:37 -05:00
jeremystretch
628e186846 Closes #8108: Improve breadcrumb links for device/VM components 2021-12-18 14:02:01 -05:00
jeremystretch
cf4a55bc2f Closes #8107: Correct template name 2021-12-18 13:52:39 -05:00
jeremystretch
ed6a160372 Add modules to device component serializers 2021-12-17 20:31:15 -05:00
jeremystretch
7dc4e00b4d Add module, module_bay columns to device component tables 2021-12-17 20:15:49 -05:00
jeremystretch
e0d7511eaa Misc cleanup 2021-12-17 16:34:51 -05:00
jeremystretch
7777922bef Add Module model 2021-12-17 16:12:03 -05:00
jeremystretch
5bd223a468 Fix YAML import for ModuleTypes 2021-12-17 13:28:17 -05:00
jeremystretch
7c60e3c0ff Add Module model 2021-12-17 12:18:37 -05:00
jeremystretch
e529d7fd3b Add ModuleBay and ModuleBayTemplate models 2021-12-17 09:35:57 -05:00
jeremystretch
5f9f0e3ed3 Split generic views into separate modules 2021-12-16 16:41:43 -05:00
jeremystretch
e91a76c936 Refactor bulk generic views 2021-12-16 16:28:23 -05:00
Christian Jonak
cab07c7c4b fix: non 20Mhz-wide channel centers 2021-12-16 19:28:39 +01:00
jeremystretch
7735a539e9 Fixes #8088: Improve legibility of text in labels with light-colored backgrounds 2021-12-16 12:44:18 -05:00
Christian Jonak
68eb6fc3c1 fix: use center freq instead of beginning of freq range for 6Ghz 2021-12-16 18:14:56 +01:00
jeremystretch
1dd3d2ec48 Changelog for #8054 2021-12-16 11:32:31 -05:00
jeremystretch
ea6cdc9673 Closes #7650: Add support for local account password validation 2021-12-16 11:28:57 -05:00
Jeremy Stretch
134742a8b7 Merge pull request #8090 from netbox-community/8054-configurable-choice-fields
Closes #8054: Configurable choice fields
2021-12-16 11:17:32 -05:00
jeremystretch
d8be8e25a5 ChoiceSet cleanup 2021-12-16 10:31:32 -05:00
jeremystretch
1902ecb8ca Drop as_dict() method from ChoiceSet 2021-12-16 10:22:05 -05:00
jeremystretch
124302908a Support nested choice groups 2021-12-16 10:19:16 -05:00
jeremystretch
0d3b50a5e5 Support CSS class definition directly in CHOICES iterable 2021-12-16 10:03:23 -05:00
jeremystretch
419f86a4a5 #8054: Support configurable status choices 2021-12-16 09:36:15 -05:00
jeremystretch
fd785fc9a5 Move speed select dropdown menu to widget template 2021-12-16 08:41:43 -05:00
jeremystretch
8d06908353 Bulk component add view should use tabs 2021-12-15 16:57:30 -05:00
jeremystretch
806706ca1d Refresh development documentation 2021-12-15 16:31:06 -05:00
jeremystretch
28f577738a Merge branch 'develop' into feature 2021-12-15 13:19:17 -05:00
jeremystretch
044e203eab Standardize button colors 2021-12-15 12:16:50 -05:00
jeremystretch
fcc7207b67 Restore actions column under VM interfaces table 2021-12-15 12:11:20 -05:00
jeremystretch
8dbd3f332b Closes #8081: Allow creating services directly from navigation menu 2021-12-15 11:55:27 -05:00
jeremystretch
f43ec7c05d Add "add IP range" button to prefix IP ranges view 2021-12-15 11:03:38 -05:00
jeremystretch
997e88af00 Merge branch 'develop' into feature 2021-12-15 10:53:21 -05:00
jeremystretch
ff9dde54e3 Ensure consistent placement of table paginator 2021-12-15 10:34:20 -05:00
jeremystretch
3699f16848 Show per-page selector only when results are present 2021-12-15 09:46:59 -05:00
jeremystretch
fee2ac2ebd Changelog for #8057 2021-12-15 09:36:52 -05:00
Jeremy Stretch
57d3bfcfc9 Merge pull request #8073 from netbox-community/8057-htmx-tables
Closes #8057: Dynamic object tables using HTMX
2021-12-15 09:16:41 -05:00
jeremystretch
b92e34556f Fixes #8077: Fix exception when attaching image to location, circuit, or power panel 2021-12-15 08:45:17 -05:00
jeremystretch
b6ff55309e Fixes #8078: Add missing wireless models to lsmodels() in nbshell 2021-12-15 08:38:19 -05:00
jeremystretch
305d88ebda Fixes #8079: Fix validation of LLDP neighbors when connected device has an asset tag 2021-12-15 08:36:03 -05:00
jeremystretch
cdc73d4f56 Closes #8080: Link to NAT IPs for device/VM primary IPs 2021-12-15 08:35:01 -05:00
jeremystretch
0e50c964d5 Remove obsolete pagination TS/CSS 2021-12-14 21:00:48 -05:00
jeremystretch
863fb9aa47 Sync HTMX and non-HTMX paginator styles 2021-12-14 20:53:24 -05:00
jeremystretch
298fb00a3e Remove obsolete "quick find" TS 2021-12-14 20:04:49 -05:00
jeremystretch
d1e8c06d36 Fixes #8074: Ordering VMs by name should reference naturalized value 2021-12-14 17:03:03 -05:00
jeremystretch
8ed79d5973 Remove obsolete templates 2021-12-14 16:44:03 -05:00
jeremystretch
85b10b59e4 Introduce child prefixes view for aggregates 2021-12-14 16:38:25 -05:00
jeremystretch
9a53c22833 Serve HTMX JS locally 2021-12-14 15:55:40 -05:00
jeremystretch
c981b5cba0 Add prep_table_data() method to ObjectChildrenView 2021-12-14 15:42:28 -05:00
jeremystretch
4ffa823ab8 Enable HTMX for all ObjectChildrenViews 2021-12-14 15:31:42 -05:00
Jeremy Stretch
001c7e4b18 Merge pull request #8070 from netbox-community/8069-generic-children-view
Closes #8069: Generic children view
2021-12-14 14:30:41 -05:00
jeremystretch
402136dc8f Merge branch '8069-generic-children-view' into 8057-htmx-tables 2021-12-14 14:21:08 -05:00
jeremystretch
59ee30f056 Update cluster VM/device views to use ObjectChildrenView 2021-12-14 14:08:44 -05:00
jeremystretch
c795068a78 Update VLAN member interface views to use ObjectChildrenView 2021-12-14 14:03:44 -05:00
jeremystretch
5ce080779b Update IPRange IP addresses view to use ObjectChildrenView 2021-12-14 13:55:09 -05:00
jeremystretch
8d3b296eed Update device/VM component views to use ObjectChildrenView 2021-12-14 13:47:40 -05:00
jeremystretch
cfdb985d00 Update prefix children views to use ObjectChildrenView 2021-12-14 13:33:53 -05:00
jeremystretch
af6f0db284 Introduce ObjectChildrenView 2021-12-14 13:33:36 -05:00
jeremystretch
491eac184e Enable HTMX for connections lists 2021-12-14 11:53:16 -05:00
jeremystretch
414d33eb26 Refactor HTMX table template 2021-12-14 11:41:39 -05:00
jeremystretch
2dad35186a Generic view cleanup 2021-12-14 11:28:13 -05:00
jeremystretch
6dd6094088 Push HTMX URL to browser location 2021-12-14 08:25:17 -05:00
rizlas
2ec64a2ea2 Get_Environment from napalm should not need any decoding 2021-12-14 10:17:00 +01:00
jeremystretch
5c34a75032 Enable HTMX for quick table search 2021-12-13 20:15:03 -05:00
jeremystretch
91f33d3289 #8057: Enable dynamic tables for object list views 2021-12-13 16:51:59 -05:00
jeremystretch
c50dc1eb35 Standardize usage of table template 2021-12-13 15:36:51 -05:00
jeremystretch
dc1331e736 Fixes #7674: Fix inadvertent application of device type context to virtual machines 2021-12-13 13:42:59 -05:00
jeremystretch
afc866eee4 #7665: Refactored add_requested_prefixes(); removed button icons 2021-12-13 12:15:43 -05:00
jeremystretch
b6d93b7c5b Changelog for #7665 2021-12-13 12:10:03 -05:00
Jeremy Stretch
5d6158dd64 Merge pull request #7826 from WillIrvine/develop
Add filter for optionally including assigned prefixes
2021-12-13 12:04:38 -05:00
jeremystretch
f2f6edabf9 Merge branch 'develop' into feature 2021-12-13 11:29:54 -05:00
jeremystretch
e9549ab0bd PRVB 2021-12-13 09:16:55 -05:00
Jeremy Stretch
779249ff81 Merge pull request #8053 from netbox-community/develop
Release v3.1.1
2021-12-13 09:08:33 -05:00
jeremystretch
66d206a710 Release v3.1.1 2021-12-13 08:51:55 -05:00
jeremystretch
bfc1cab6df Fixes #8051: Contact group parent assignment should not be required under REST API 2021-12-13 08:22:48 -05:00
jeremystretch
5b0c79629e Closes #8047: Display sorting indicator in table column headers 2021-12-10 21:03:24 -05:00
jeremystretch
7922d3909a Fixes #8042: Fix filtering cables list by site slug or rack name 2021-12-10 16:41:03 -05:00
jeremystretch
ee6e2e0af1 Fixes #7690: Fix custom field integer support for MultiValueNumberFilter 2021-12-10 16:34:38 -05:00
jeremystretch
326a6be91c #7519: Update REST API tests 2021-12-10 15:45:22 -05:00
jeremystretch
58095e1916 Fixes #8038: Placeholder filter should display zero integer values 2021-12-10 15:38:51 -05:00
jeremystretch
3dae077b4d Fixes #8035: Redirect back to parent prefix after creating IP address(es) where applicable 2021-12-10 15:34:12 -05:00
jeremystretch
7c14c0812b Fixes #7519: Return a 409 status for unfulfillable available prefix/IP requests 2021-12-10 15:11:45 -05:00
Jeremy Stretch
3a05eda63a Merge pull request #8039 from netbox-community/5869-available-prefixes
Fixes #5869: Fix permissions evaluation under available prefix/IP REST API endpoints
2021-12-10 14:22:29 -05:00
jeremystretch
d850b3ac7e Fix available prefix creation test 2021-12-10 13:58:11 -05:00
jeremystretch
08de6c32c9 Changelog for #5869 2021-12-10 13:26:56 -05:00
jeremystretch
91fe158c26 Restore endpoint schema documentation 2021-12-10 13:23:49 -05:00
jeremystretch
661b3c4bfb Fix queryset restrictions 2021-12-10 12:52:48 -05:00
jeremystretch
35eabc0353 Move available IPs endpoints to separate views 2021-12-10 12:37:55 -05:00
jeremystretch
ef5bbdb1e2 Move available prefixes endpoint to its own view 2021-12-10 11:40:57 -05:00
jeremystretch
88fae2171d Closes #7691: Remove field_order from filterset forms 2021-12-10 08:57:19 -05:00
jeremystretch
7d99e15dc3 Closes #7743: Remove legacy ASN field from site model 2021-12-09 17:01:27 -05:00
jeremystretch
d2d2978288 Closes #7748: Remove legacy contact fields from site model 2021-12-09 16:23:39 -05:00
jeremystretch
8680981990 Closes #8031: Remove automatic redirection of legacy slug-based URLs 2021-12-09 15:43:41 -05:00
jeremystretch
78ca6f1a87 Use strings for build matrix 2021-12-09 15:39:50 -05:00
jeremystretch
62e5680eaf Closes #7731: Require Python 3.8 or later 2021-12-09 15:35:40 -05:00
jeremystretch
de698154cd Fixes #8030: Validate custom field names 2021-12-09 15:19:19 -05:00
jeremystretch
1df05715c2 Fixes #8033: Fix display of zero values for custom integer fields in tables 2021-12-09 14:56:12 -05:00
jeremystretch
e5524da40e Fixes #8009: Validate IP addresses for uniqueness when creating an FHRP group 2021-12-09 13:46:19 -05:00
jeremystretch
50d393e0f9 Clean up user preferences view 2021-12-08 16:36:06 -05:00
jeremystretch
cd08836f3e Refresh user profile view; add recent activity 2021-12-08 16:32:31 -05:00
jeremystretch
45ac1cfd54 Fixes #8019: Exclude metrics endpoint when LOGIN_REQUIRED is true 2021-12-08 15:47:41 -05:00
jeremystretch
dda11ec69e Fixes #8003: Fix cable tracing across bridged interfaces with no cable 2021-12-08 11:35:50 -05:00
jeremystretch
7be6206d9d Fixes #8010: Allow filtering devices by multiple serial numbers 2021-12-08 11:08:19 -05:00
jeremystretch
4d896573b1 Fixes #8005: Fix contact email display 2021-12-08 11:04:03 -05:00
jeremystretch
988383648c Fixes #8001: Correct verbose name for wireless LAN group model 2021-12-08 10:45:27 -05:00
Daniel Sheppard
d59847537d Fix #7990 - Fix title display on contact view 2021-12-07 10:58:44 -06:00
jeremystretch
36859d89c8 Fixes #7996: Show WWN field in interface creation form 2021-12-07 10:59:08 -05:00
Christian Jonak-Möchel
cc50e22928 feat: add 6GHz & 60Ghz channels 2021-12-07 15:14:17 +01:00
William Irvine
13414dcd25 pep8 compliance... 2021-12-07 10:13:54 +13:00
jeremystretch
ba8b593351 PRVB 2021-12-06 16:13:48 -05:00
William Irvine
aebfccfd4b Merge branch 'develop' into develop 2021-12-07 10:06:35 +13:00
Jeremy Stretch
5a59f2352c Merge pull request #7986 from netbox-community/develop
Release v3.1.0
2021-12-06 16:00:19 -05:00
jeremystretch
5164b78da1 Release v3.1.0 2021-12-06 15:01:36 -05:00
jeremystretch
5561b46a59 Finalize release notes 2021-12-06 14:58:49 -05:00
jeremystretch
26b2431cbf Bump django-taggit to 2.0.0 2021-12-06 14:38:13 -05:00
jeremystretch
029605f926 Clean up site view 2021-12-06 13:43:02 -05:00
jeremystretch
0cd173f9df Update django-taggit to 2.0 2021-12-06 13:25:09 -05:00
jeremystretch
414810bdf5 Update required dependencies 2021-12-06 13:15:17 -05:00
jeremystretch
f94c1e91ea Merge branch 'develop' into feature 2021-12-06 12:10:31 -05:00
Jeremy Stretch
b7129e1456 Merge pull request #7984 from netbox-community/develop
Release v3.0.12
2021-12-06 12:07:04 -05:00
jeremystretch
dc6decd404 Release v3.0.12 2021-12-06 11:54:50 -05:00
jeremystretch
40c6b172f7 Fixes #7981: Fix Markdown sanitization regex 2021-12-06 11:33:00 -05:00
thatmattlove
7cb9cedfe1 Fixes #7823: Properly handle return_url when Save & Continue button is present 2021-12-03 16:20:05 -07:00
jeremystretch
b43980d660 Fixes #7960: Prevent creation of regions/site groups/locations with duplicate names (see #7354) 2021-12-03 15:09:56 -05:00
jeremystretch
09b612546b Omit actions column from non-paginated child object tables 2021-12-03 11:07:16 -05:00
jeremystretch
a99d14c13f Closes #7924: Include child groups on contact group view 2021-12-03 11:00:00 -05:00
jeremystretch
68f322a03b Closes #7925: Linkify contact phone and email attributes 2021-12-03 10:51:24 -05:00
jeremystretch
97f0414ff3 Changelog for #7751, #7885, #7892 2021-12-03 09:51:05 -05:00
Jeremy Stretch
d5f308d9c9 Merge pull request #7928 from kkthxbye-code/fix-7751
Fix #7751: LDAP: Only get API user from ldap when FIND_GROUP_PERMS is on
2021-12-03 09:48:58 -05:00
Jonathan Senecal
1377eda0ba Add support for L22-30P power port type (#7915)
* Add support for L22-30P power port type

Fixes #7892

* Add support for L22-30R power outlet type
2021-12-03 09:43:42 -05:00
Jeremy Stretch
70259b0d04 Merge pull request #7970 from rhyser9/7885_linkify_vlan_name
Fixes #7885: Linkify VLAN name in VLAN tables
2021-12-03 09:41:28 -05:00
Rhys Barrie
f1466d6da3 netbox-community/netbox#7885: Linkify VLAN name in VLAN tables 2021-12-02 12:27:30 -05:00
Will Irvine
ca07a88674 fix spelling... 2021-12-02 10:47:19 +13:00
jeremystretch
83010e278c Add changelog for #7932, #7941 2021-12-01 09:18:31 -05:00
Will Irvine
dcfd332cbf Moved filtering logic to utils, adjusted show buttons 2021-12-01 19:24:44 +13:00
thatmattlove
dc3040550d Merge branch 'fast-filter' into develop 2021-11-30 10:10:38 -07:00
Daniel Sheppard
3b25db919a Update changelog for #7940 2021-11-30 09:43:14 -06:00
Daniel Sheppard
09f038f997 Merge pull request #7941 from bluikko/patch-9
Add multistandard ITA power outlet type
2021-11-30 09:37:53 -06:00
bluikko
bbdd3804c7 Add multistandard ITA power outlet type 2021-11-26 10:06:52 +07:00
kkthxbye
a0b9ac7bcc UI: Improve performance of the quick filter 2021-11-25 12:14:07 +01:00
kkthxbye
8bb0cba949 Fix #7751 - LDAP: Only get API user from ldap when FIND_GROUP_PERMS is enabled 2021-11-25 08:09:50 +01:00
jeremystretch
870aa3a265 Merge branch 'develop' into feature 2021-11-24 14:00:37 -05:00
jeremystretch
86ada33577 PRVB 2021-11-24 13:58:57 -05:00
Jeremy Stretch
869808b3f9 Merge pull request #7922 from netbox-community/develop
Release v3.0.11
2021-11-24 13:51:17 -05:00
jeremystretch
57ccbf44b8 Release v3.0.11 2021-11-24 13:25:57 -05:00
jeremystretch
416caa8f50 Hide code blocks when not needed 2021-11-24 13:17:59 -05:00
jeremystretch
1e42fecf66 Changelog for #7657 2021-11-24 09:15:30 -05:00
Jeremy Stretch
c9b00891ed Merge pull request #7861 from netbox-community/7657-threadsafe-changelog
Fixes #7657: Make request/webhook caching thread-safe
2021-11-24 09:06:48 -05:00
Jeremy Stretch
497eacbea3 Merge pull request #7898 from ypid/fix/7897
CEE 7/5 exists as power port and power outlet. It is only a power port.
2021-11-22 13:45:08 -05:00
jeremystretch
f90c591c78 Fixes #7890: Correct typo 2021-11-22 13:36:51 -05:00
Robin Schneider
175498940e Fixes #7897: CEE 7/5 is only a power outlet, no power port
Ref:

* https://en.wikipedia.org/wiki/CEE_7_standard_AC_plugs_and_sockets#CEE_7/5_socket_and_CEE_7/6_plug_(French;_Type_E)
* https://blog.packetsar.com/wp-content/uploads/Power_and_Cooling_Cheat_Sheet.pdf
2021-11-21 23:41:36 +01:00
Robin Schneider
eded00cbb3 chore: Always use "CEE 7" (with the space) consistently 2021-11-21 22:23:29 +01:00
Dave
038d7e0fa6 Add missing HTTP_X_FORWARDED_FOR
See discussion [here](https://github.com/netbox-community/netbox/discussions/7876) for background.

From the [doc](https://netbox.readthedocs.io/en/stable/customization/custom-scripts/) i should be able to access `META.HTTP_X_FORWARDED_FOR` but i was not able to since they were not being sent downstream
2021-11-19 15:20:00 -05:00
jeremystretch
b7c9ca720a Closes #7886: Introduce a base FilterForm class 2021-11-19 15:12:45 -05:00
jeremystretch
7072f207c0 Call out all models with cable_peer name changes 2021-11-19 11:42:34 -05:00
jeremystretch
5f59f458f4 Fixes #7880: Include assigned IP addresses in FHRP group object representation 2021-11-19 11:34:59 -05:00
jeremystretch
b6fe613329 Fix redirection after creating FHRP group assignment 2021-11-19 10:42:13 -05:00
jeremystretch
cd128e557c Closes #7884: Add FHRP groups column to interface tables 2021-11-19 10:27:56 -05:00
Jeremy Stretch
30a5c70260 Merge pull request #7878 from netbox-community/7877-bootstrapmixin-cleanup
Closes #7877: BootstrapMixin cleanup
2021-11-18 17:05:29 -05:00
jeremystretch
beca978af5 Clean up imports 2021-11-18 16:48:29 -05:00
jeremystretch
98a830a6a0 Apply BootstrapMixin to ComponentForm 2021-11-18 16:32:22 -05:00
jeremystretch
ed2231e34b Apply BootstrapMixin to CustomFieldModelFilterForm 2021-11-18 16:27:06 -05:00
jeremystretch
55049bb303 Apply BootstrapMixin to BulkEditForm 2021-11-18 16:23:26 -05:00
jeremystretch
c210c6937b Apply BootstrapMixin to CustomFieldModelForm 2021-11-18 16:19:25 -05:00
jeremystretch
d2767f39f0 Closes #7850: Add note about where to assign FHRP groups 2021-11-18 15:12:12 -05:00
jeremystretch
1c9d39d3e6 Fix REST API version reporting for beta releases 2021-11-18 11:19:00 -05:00
jeremystretch
f16c6d81cf Merge branch 'develop' into feature 2021-11-18 11:06:54 -05:00
jeremystretch
e8d6281007 Changelog for #7399 2021-11-18 10:02:23 -05:00
Jeremy Stretch
8299845615 Merge pull request #7676 from kkthxbye-code/develop
Fix #7399: LDAP excessive CPU usage when AUTH_LDAP_FIND_GROUP_PERMS is enabled
2021-11-18 09:58:34 -05:00
jeremystretch
9ae5865c2d Fixes #7865: REST API should support null values for console port speeds 2021-11-18 09:34:41 -05:00
jeremystretch
c2d0cfdfc0 Fixes #7864: power_port can be null when creating power outlets 2021-11-18 09:27:45 -05:00
Jeremy Stretch
5dd252731e Merge pull request #7863 from etcet/sudo-ln-s
Fixes #7862: Docs: Link housekeeping cron using sudo
2021-11-18 09:16:55 -05:00
Chris James
7b9436d2b9 Docs: Run ln with sudo 2021-11-17 20:33:42 -06:00
jeremystretch
6a369ac985 Closes #7531: Add Markdown support for strikethrough formatting 2021-11-17 16:50:23 -05:00
jeremystretch
23d90823a3 Fixes #7720: Fix initialization of custom script MultiObjectVar field with multiple values 2021-11-17 16:22:47 -05:00
jeremystretch
4bfb6b476c Fixes #7859: Fix styling of form widgets under cable connection views 2021-11-17 15:53:26 -05:00
jeremystretch
0d60099588 Move request object and webhook queue to TLS 2021-11-17 15:12:19 -05:00
jeremystretch
9a45547cda Closes #5143: Include a device's asset tag in its display value 2021-11-17 13:06:57 -05:00
jeremystretch
a000ded350 Remove "primary for" references to Device on IPAddress 2021-11-17 12:50:46 -05:00
jeremystretch
424ac29131 Closes #7812: Enable change logging for image attachments 2021-11-17 11:52:50 -05:00
jeremystretch
b7b5a5788f Fixes #7589: Correct 128GFC interface type identifier 2021-11-17 11:18:41 -05:00
jeremystretch
9de179cba8 Closes #7858: Standardize the representation of content types across import & export functions 2021-11-17 11:02:22 -05:00
jeremystretch
94069e76c9 Fixes #7857: Fix ordering IP addresses by assignment status 2021-11-17 08:51:17 -05:00
jeremystretch
df9d67b873 Fixes #7851: Add missing cluster name filter for virtual machines 2021-11-17 08:48:09 -05:00
jeremystretch
6f7fbf7686 Fixes #7849: Fix exception when creating an FHRPGroup with an invalid IP address 2021-11-16 16:50:20 -05:00
jeremystretch
f32e694499 Fixes #7739: Fix exception when tracing cable across circuit with no far end termination 2021-11-15 12:41:57 -05:00
jeremystretch
e5900a3fe3 Correct changelog for #7729 2021-11-15 09:04:18 -05:00
jeremystretch
6e151b044d Changelog for #7229, #7424, #7542 2021-11-15 08:56:03 -05:00
Jeremy Stretch
516bea6a0a Merge pull request #7829 from rhyser9/7542_prefix_vlan_group_column
Fix #7542: Add VLAN Group column to IP Prefix table
2021-11-15 08:54:30 -05:00
Jeremy Stretch
496cabcc53 Merge pull request #7828 from rhyser9/7229_bug_add_vlans_link
Fix #7229: Fix context of VLAN table in VLAN Group view
2021-11-15 08:52:36 -05:00
Jeremy Stretch
d051db5083 Merge pull request #7827 from rhyser9/7424_virtualchassis_id_filter
Fix #7424: Add virtual_chassis_id filter for device components
2021-11-15 08:43:45 -05:00
Rhys Barrie
660fc23e15 netbox-community/netbox#7542: Add VLAN Group column to IP Prefix table 2021-11-13 23:29:26 -05:00
Rhys Barrie
a5a480133f netbox-community/netbox#7229: Fix context of VLAN table in VLAN Group view 2021-11-13 23:08:46 -05:00
Rhys Barrie
68b544c676 netbox-community/netbox#7424: add filterset test for virtual_chassis_id 2021-11-13 22:16:18 -05:00
Rhys Barrie
a8c958ece2 netbox-community/netbox#7424: fix test failure from adding virtual chassis filter field 2021-11-13 22:01:15 -05:00
Rhys Barrie
f77f7ca0ec netbox-community/netbox#7424:make device component device field filter from selected virtual chassis 2021-11-13 21:35:13 -05:00
Rhys Barrie
6b21c8453f netbox-community/netbox#7424: Add virtual_chassis field to device component filter form 2021-11-13 21:33:52 -05:00
Rhys Barrie
fa8a8abc98 netbox-community/netbox#7424: Add virtual_chassis and virtual_chassis_id filter to device components 2021-11-13 21:30:38 -05:00
Will Irvine
80048bfa2b Make the same changes for aggregate views as these use the same adjusted functions 2021-11-13 16:42:38 +13:00
Will Irvine
641a9bc6c5 pep8 compliance 2021-11-13 15:26:07 +13:00
Will Irvine
0edf9b17f6 Closes #7665 add new boolen for filtering assigned prefixes, adjust current filter for avaliabile prefixes to only return avaliable 2021-11-13 13:27:49 +13:00
Jeremy Stretch
98cc36c458 Merge pull request #7824 from netbox-community/2101-q-filters
Closes #2101: Ensure all relevant models have a general purpose search filter
2021-11-12 15:48:19 -05:00
jeremystretch
f3beabba69 Changelog for #2101 2021-11-12 15:33:49 -05:00
jeremystretch
467fa5a847 Add q filters for Token and ObjectPermission filter sets 2021-11-12 15:30:16 -05:00
jeremystretch
50f283cf28 Add q filter for extras models 2021-11-12 15:26:58 -05:00
jeremystretch
f49d7008a0 Add q filters for connection lists 2021-11-12 15:05:33 -05:00
jeremystretch
1fed564c47 Clean up script & report lists 2021-11-12 14:44:14 -05:00
jeremystretch
bb99c3e6f9 Changelog for #7803, #7810 2021-11-12 13:46:06 -05:00
Jeremy Stretch
8820cac792 Merge pull request #7820 from kkthxbye-code/script-reload
Fix #7803: Clear sys.modules cache when reloading scripts
2021-11-12 13:44:42 -05:00
Jeremy Stretch
ada911c20b Merge pull request #7816 from byts-tech/FR7810
Fixes: #7810 Add IEEE 802.15.1 Interface Type
2021-11-12 13:40:41 -05:00
jeremystretch
17e01644f5 Fixes #7813: Fix handling of errors during export template rendering 2021-11-12 13:32:52 -05:00
kkthxbye
9458521f3e Merge branch 'netbox-community:develop' into script-reload 2021-11-12 17:07:11 +01:00
Flo
8aa73c5900 Add IEEE 802.15.1 Interface Type 2021-11-12 16:05:42 +01:00
jeremystretch
500f213c6b Fix erroneous merge resolution 2021-11-12 09:29:55 -05:00
jeremystretch
cede27b5fe Merge branch 'develop' into feature 2021-11-12 09:09:15 -05:00
jeremystretch
c0ca1eaf90 PRVB 2021-11-12 08:54:08 -05:00
Jeremy Stretch
b29a5511df Merge pull request #7815 from netbox-community/develop
Release v3.0.10
2021-11-12 08:50:43 -05:00
jeremystretch
49e77841e0 Release v3.0.10 2021-11-12 08:36:33 -05:00
jeremystretch
daf6c8e327 Fixes #7814: Fix restriction of user & group objects in GraphQL API queries 2021-11-12 08:23:58 -05:00
jeremystretch
9f8068e8d1 Fixes #7808: Fix reference values for content type under custom field import form 2021-11-11 16:21:27 -05:00
jeremystretch
0b705553a5 Fixes #7809: Add missing export template support for various models 2021-11-11 16:16:54 -05:00
jeremystretch
a799094227 Fixes #7788: Improve XSS mitigation in Markdown renderer 2021-11-11 15:38:34 -05:00
jeremystretch
d529c1b5b3 Housekeeping: Use RestrictedQuerySet for default manager on base models 2021-11-11 15:04:22 -05:00
jeremystretch
834f68e6e4 Fixes #7761: Extend cable tracing across bridged interfaces 2021-11-11 14:45:10 -05:00
jeremystretch
83b2102705 Closes #7769: Enable assignment of IP addresses to an existing FHRP group 2021-11-11 14:05:35 -05:00
jeremystretch
2f064cdfd1 Changelog for #7767 2021-11-11 12:30:28 -05:00
Jeremy Stretch
6c28182dd3 Merge pull request #7767 from CironAkono/FR6925
Fixes: #6925 Interfaces Table - bring back the visual aids from v2.9
2021-11-11 12:29:01 -05:00
jeremystretch
3cb8c5db28 Fixes #7654: Fix assignment of members to virtual chassis with initial position of zero 2021-11-11 12:10:47 -05:00
CironAkono
251abdb4dd Apply suggestions from code review
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-11-11 16:36:13 +00:00
jeremystretch
726e4df54b Changelog for #7791 2021-11-11 11:31:51 -05:00
Jeremy Stretch
bd32a6ac8e Merge pull request #7804 from kkthxbye-code/fix-7791
Fix #7791 - Allow devicebay table to be sorted by status
2021-11-11 10:46:15 -05:00
jeremystretch
27d7400c36 Fixes #7802: Differentiate ID and VID columns in VLANs table 2021-11-11 10:23:38 -05:00
kkthxbye-code
53e52aeaa8 Fix sorting devicebay table by status 2021-11-11 14:05:39 +01:00
kkthxbye-code
ae6ed97a80 Clear sys.modules cache when reloading scripts 2021-11-11 11:53:31 +01:00
jeremystretch
34f24de3e4 Fixes #7757: Fix 404 when assigning multiple contacts/FHRP groups in succession 2021-11-09 17:08:28 -05:00
jeremystretch
f93d6813a9 Merge branch 'develop' into feature 2021-11-09 16:52:36 -05:00
jeremystretch
3ad773beb3 Fixes #7741: Fix 404 when attaching multiple images in succession 2021-11-09 16:46:58 -05:00
jeremystretch
be91235858 Changelog for #7740 2021-11-09 16:08:11 -05:00
Jeremy Stretch
95fc0bbc94 Merge pull request #7774 from byts-tech/FR7740
Fixes: #7740 Add Mini-DIN 8 Console-Port-Type
2021-11-09 16:06:58 -05:00
jeremystretch
9dad7e4daf Fixes #7701: Fix conflation of assigned IP status & role in interface tables 2021-11-09 16:04:16 -05:00
jeremystretch
d08ed9fe5f Fixes #7780: Preserve mutli-line values during CSV file import 2021-11-09 15:24:21 -05:00
jeremystretch
82210cc116 Changelog for #7783 2021-11-09 15:15:34 -05:00
Jeremy Stretch
94d3e76517 Merge pull request #7785 from jasonyates/develop
Fixes #7783 - Site location visual changes
2021-11-09 15:12:47 -05:00
Jason Yates
3f72492a59 Fixed #7783 - Site location visual changes
Updating site location list to visually match the /dcim/locations list where child locations are "indtended" with mdi-circle-small.

Also removes the padding-left attribute on each row as it is no longer functional.
2021-11-09 15:18:46 +00:00
Jeremy Stretch
c0653da736 Merge pull request #7778 from netbox-community/7775-dynamic-config
7775 dynamic config
2021-11-08 15:54:25 -05:00
jeremystretch
f3d8f1b1fb Changelog for #7775 2021-11-08 15:38:55 -05:00
jeremystretch
d2391b9c63 Move GRAPHQL_ENABLED to dynamic configuration 2021-11-08 15:31:09 -05:00
jeremystretch
f8e44c09eb Move CUSTOM_VALIDATORS to dynamic configuration 2021-11-08 15:22:29 -05:00
jeremystretch
2a00519b93 Move CHANGELOG_RETENTION to dyanmic configuration 2021-11-08 15:07:58 -05:00
jeremystretch
3292a2aecc Closes #7619: Permit custom validation rules to be defined as plain data or dotted path to class 2021-11-08 14:52:56 -05:00
Flo
b7aa44837f Add Mini-DIN 8 Console-Port-Type 2021-11-08 17:50:13 +01:00
jeremystretch
17fd6e692e Fixes #7768: Validate IP address status when creating a new FHRP group 2021-11-08 08:40:24 -05:00
jeremystretch
2ce8ef5704 Fixes #7771: Group assignment should be optional when creating contacts via REST API 2021-11-08 08:34:10 -05:00
jeremystretch
7b7afd3e7b Changelog for #7765 2021-11-08 08:24:14 -05:00
Nico Domino
9c2514fce4 feat: add outer_width to RackTable (#7766)
* feat: add outer_width to RackTable

* fix: add outer_units to column display

* feat: add outer_depth to available columns
2021-11-08 08:15:26 -05:00
jeremystretch
e04402ed57 Allow bypassing the pre-commit script with NOVALIDATE=1 2021-11-05 13:40:38 -04:00
jeremystretch
3eda8d8482 Closes #7760: Add vid filter field to VLANs list 2021-11-05 13:31:36 -04:00
jeremystretch
79f2f03fb2 Issues policy tweaks 2021-11-05 13:26:18 -04:00
jeremystretch
f7d0db9cd2 Fixes #7756: Fix AttributeError exception when editing an IP address assigned to a FHRPGroup 2021-11-05 13:16:43 -04:00
jeremystretch
fab1d3651b Add new models to developer docs 2021-11-05 13:10:27 -04:00
jeremystretch
e5d7578663 Fixes #7750: Fix cable trace image link 2021-11-05 11:10:17 -04:00
jeremystretch
cf80c1a506 Release v3.1-beta1 2021-11-05 09:03:27 -04:00
jeremystretch
4649ab2d85 Merge branch 'develop' into feature 2021-11-05 08:49:25 -04:00
jeremystretch
773fd47ca6 Fixes #7752: Fix minimum version check under Python v3.10 2021-11-05 08:45:57 -04:00
jeremystretch
2fd526b359 Fix up contact template 2021-11-05 08:33:16 -04:00
kkthxbye-code
830cf4b31f Fix #7399 - LDAP using excessive CPU when AUTH_LDAP_FIND_GROUP_PERMS is enabled 2021-11-05 10:28:30 +01:00
jeremystretch
2826f27153 Split interface edit forms into subsections 2021-11-04 16:36:49 -04:00
jeremystretch
83ac869693 Fix ASNs column in SiteTable 2021-11-04 16:29:43 -04:00
jeremystretch
bc92f9221a Tweak site ASN filters & tests 2021-11-04 16:22:55 -04:00
jeremystretch
c2f85a2877 #6732: Show sites table under ASN view 2021-11-04 16:16:59 -04:00
jeremystretch
0bbd186635 Rearrange site view layout 2021-11-04 15:58:52 -04:00
jeremystretch
806dcd74ec Split circuits models into submodules 2021-11-04 15:58:17 -04:00
jeremystretch
93772e7265 Move remote authentication config parameters to a separate page 2021-11-04 15:41:46 -04:00
jeremystretch
9094f07290 Fix config revision form help texts 2021-11-04 15:35:17 -04:00
jeremystretch
0aae155c80 Refresh installation docs 2021-11-04 15:18:58 -04:00
jeremystretch
54233aba1b Remove extraneous slug field from contact import form 2021-11-04 14:23:24 -04:00
jeremystretch
bd3d2c60d9 FHRP groups cleanup 2021-11-04 14:19:10 -04:00
jeremystretch
2e75a111ed Fix return URLs for contact assignment edit/delete 2021-11-04 14:09:12 -04:00
jeremystretch
e4b0359b8e Include action buttons on contact assignments table 2021-11-04 14:01:07 -04:00
jeremystretch
803e0bfe72 #1344: Show object type & name when assigning a contact 2021-11-04 13:44:02 -04:00
jeremystretch
a5024a65a0 Add warning for Python 3.7 2021-11-04 13:32:52 -04:00
jeremystretch
734a00237a Clean up FHRP group filterset tests 2021-11-04 13:23:02 -04:00
jeremystretch
06f1d15283 Introduce create_test_virtualmachine() 2021-11-04 13:22:21 -04:00
jeremystretch
ff3edc9889 Add NestedContactAssignmentSerializer; add contact assignment API tests 2021-11-04 11:55:00 -04:00
jeremystretch
8f1acb700d Fix ID list creation in API tests 2021-11-04 11:31:39 -04:00
jeremystretch
519884d167 Invert default priority ordering for FHRPGroupAssignment 2021-11-04 11:17:10 -04:00
jeremystretch
3f0a98acbd Add nested FHRPGroupAssignment serializer; add missing API tests 2021-11-04 11:15:34 -04:00
jeremystretch
c023e5f518 Fix up FHRPGroupAssignmentTable 2021-11-04 10:05:47 -04:00
jeremystretch
67c73768c1 Add count_fhrp_groups to interface serializers 2021-11-04 09:58:33 -04:00
jeremystretch
bbb98083eb Clean up filtersets 2021-11-03 16:58:31 -04:00
jeremystretch
8bb9f4b8a2 #1344: Add missing object field to ContactAssignmentSerializer 2021-11-03 16:27:43 -04:00
jeremystretch
96cde7d4af Add wireless_lans to InterfaceSerializer; extend tests 2021-11-03 15:55:16 -04:00
jeremystretch
ea39c8a4c1 Optimize interface REST API endpoints 2021-11-03 15:38:17 -04:00
jeremystretch
7a55832a22 #6732: Add asns relationship to SiteSerializer and extend tests 2021-11-03 15:24:15 -04:00
jeremystretch
7a97d5d4eb Changelog for #6732; misc fixes 2021-11-03 14:40:14 -04:00
Jeremy Stretch
8305f6d1f5 Merge pull request #7662 from netbox-community/6732-asn-model
Closes: #6732 - Add new ASN model
2021-11-03 14:15:24 -04:00
jeremystretch
dcececf9c0 Improve documentation and testing for conditions 2021-11-03 14:02:43 -04:00
jeremystretch
839afe5ac0 Improve webhook tests 2021-11-03 14:01:59 -04:00
Daniel Sheppard
c72f25c693 #6732 - Add documentation 2021-11-03 12:22:44 -05:00
Daniel Sheppard
5fc373f5cc Merge feature -> develop 2021-11-03 12:05:11 -05:00
Daniel Sheppard
cf9eaf2eff Fix dcim/views.py merge error 2021-11-03 11:36:54 -05:00
jeremystretch
04d145d6d8 Add summary page to release notes 2021-11-03 11:47:11 -04:00
Daniel Sheppard
76d73abd81 Update ip.py 2021-11-03 10:04:26 -05:00
Daniel Sheppard
0ec0185d84 Fix Migration 2021-11-03 09:51:03 -05:00
jeremystretch
7b1335825b Closes #7687: Update CentOS installation docs 2021-11-03 10:47:17 -04:00
jeremystretch
2c2e37e9f0 Merge branch 'develop' into feature 2021-11-03 10:29:02 -04:00
Daniel Sheppard
25957bfae3 Fix migration issues 2021-11-03 08:56:04 -05:00
jeremystretch
11e2200acf PRVB 2021-11-03 09:51:28 -04:00
Jeremy Stretch
f5356b84f6 Merge pull request #7730 from netbox-community/develop
Release v3.0.9
2021-11-03 09:47:37 -04:00
Daniel Sheppard
db2d71ed9e Merge branch 'feature' into 6732-asn-model 2021-11-03 08:37:11 -05:00
jeremystretch
1bf100ba15 Release v3.0.9 2021-11-03 09:32:57 -04:00
jeremystretch
7614f423e5 #7612: Use escape() rather than strip_tags() 2021-11-03 08:56:30 -04:00
jeremystretch
318c8b85e9 Fixes #7721: Retain pagination preference when MAX_PAGE_SIZE is zero 2021-11-03 08:25:50 -04:00
jeremystretch
7085fe77da Changelog for #6529 2021-11-03 08:11:38 -04:00
Jeremy Stretch
2e20d7f02b Merge pull request #7677 from netbox-community/6529-command-line-run-scripts
#6529 - Add CLI to run scripts
2021-11-03 08:10:36 -04:00
Steven
831065b5a1 #7717 Missing tags column definition in IP range table (#7724) 2021-11-03 08:05:34 -04:00
Daniel Sheppard
b97167e841 Fix PEP8 error 2021-11-02 21:40:40 -05:00
Daniel Sheppard
19bacc9e23 #6529 - Adjusted the arguments. Fixed documentation 2021-11-02 21:37:11 -05:00
jeremystretch
61b61b1bc0 Fixes #7664: Preserve initial form data when bulk edit validation fails 2021-11-02 17:07:30 -04:00
Daniel Sheppard
7c3318df92 #6529 - Adjusted the arguments. Added documentation 2021-11-02 15:56:42 -05:00
jeremystretch
d0b85586b9 Changelog & cleanup for #6930 2021-11-02 16:24:28 -04:00
Rhys Barrie
cef0d168a5 Closes #6930: Add 'ID' column to object tables (#7673)
* netbox-community/netbox#6930: Add ID column to devices, device types, and components

* netbox-community/netbox#6930: Add ID column to sites, racks, and tenants

* netbox-community/netbox#6930: Add ID column to power, providers, TODO circuits

* netbox-community/netbox#6930: Add ID column to virtualization tables

* netbox-community/netbox#6930: Add ID column to IPAM tables

* netbox-community/netbox#6930: Add ID column to 'extras' tables

* netbox-community/netbox#6930: Move ID column to BaseTable class

* netbox-community/netbox#6930: Don't linkify ID in device component template tables

* netbox-community/netbox#6930: Don't show ID column in interface/console/power connections tables

* netbox-community/netbox#6930: Don't show ID column in device component template tables

* netbox-community/netbox#6930: Add ID column to ObjectJournal, DeviceImport, and Circuit tables

* Exclude ID column from selected tables

* netbox-community/netbox#6930:revert default columns on ObjectChangeTable, not configurable

* netbox-community/netbox#6930: Add object ID to tagged objects table in tag detail view

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-11-02 16:21:34 -04:00
jeremystretch
3a192223a3 Changelog & cleanup for #7668, #7717 2021-11-02 15:58:14 -04:00
Jeremy Stretch
288a1d23e5 Merge pull request #7693 from rhyser9/7668_location_detail_elevation
Closes #7668: Add 'View Elevations' button to location detail page
2021-11-02 15:53:09 -04:00
Jeremy Stretch
7c05db8e2f Merge pull request #7718 from cybarox/7717-fix-tags-missing-from-ip-ranges-table-fields
Closes #7717 Missing tags column in IP range table
2021-11-02 15:49:35 -04:00
Jeremy Stretch
18080a969e Merge pull request #7714 from netbox-community/6235-fhrp
Closes #6235: FHRP group modeling
2021-11-02 15:43:40 -04:00
jeremystretch
412430e1c3 Docs & changelog for #6235 2021-11-02 15:26:45 -04:00
jeremystretch
131e433880 Rename FHRPGroupAssignment object to interface 2021-11-02 15:10:02 -04:00
Daniel Sheppard
b7c0e8b71f #6529 - Streamline code and resolve some issues 2021-11-02 13:12:12 -05:00
jeremystretch
264652f2c3 REST API optimizations 2021-11-02 14:08:36 -04:00
jeremystretch
2cb53a0f7e Clean up FHRP group templates, forms 2021-11-02 13:32:41 -04:00
Daniel Sheppard
7625a2dd3c #6732 - Swap ASN M2M to Site model and update some templates/filters 2021-11-02 12:26:06 -05:00
jeremystretch
93da5a39be Make assignment priority a required field 2021-11-02 13:22:00 -04:00
jeremystretch
aeb4996ac2 Allow users to create new FHRP group directly from the interface view 2021-11-02 13:06:58 -04:00
Daniel Sheppard
330c498fe4 Merge feature 2021-11-02 11:16:01 -05:00
Daniel Sheppard
5d0a7cb307 #6732 - Remove migration 2021-11-02 11:10:50 -05:00
Daniel Sheppard
8c27ff3859 #6732 - Add ASN back to filtersets 2021-11-02 11:07:19 -05:00
jeremystretch
736d6cb675 Merge branch 'feature' into 6235-fhrp 2021-11-02 12:05:34 -04:00
Jeremy Stretch
200aca470b Merge pull request #7709 from netbox-community/7649-social-auth
Closes #7649: Add support for SSO
2021-11-02 12:04:58 -04:00
jeremystretch
b2dc6c5d3d Changelog & initial docs for #7649 2021-11-02 11:49:10 -04:00
cybarox
a5ec0ee277 Closes #7717 Missing tags column in IP range table 2021-11-02 15:14:08 +01:00
jeremystretch
f48d7aedce Enable filtering FHRP groups by related IP addresses 2021-11-02 09:56:52 -04:00
jeremystretch
bb4f3e1789 Initial work on #6235 2021-11-01 16:56:30 -04:00
jeremystretch
e0230ed104 Remove errant URL path 2021-11-01 13:32:02 -04:00
jeremystretch
704fdf9ccd Optimize wireless migrations 2021-11-01 11:23:58 -04:00
Rhys Barrie
d528614cbf netbox-community/netbox#7668: Relocate elevations button to location details table 2021-11-01 11:17:15 -04:00
bluikko
b5e8157700 Fix #7685: Doc image links (#7698)
* Fix image link in custom-script.md

* Fix image link in cable.md

* Fix image link in power.md
2021-11-01 09:13:18 -04:00
jeremystretch
339776c139 Initial work on SSO support (WIP) 2021-10-29 17:06:14 -04:00
Daniel Sheppard
87e07e731d #6732 - Removed ASN field hiding 2021-10-29 14:56:58 -05:00
Daniel Sheppard
3991115ae5 #6732 - Fix imports and other small items 2021-10-29 14:54:55 -05:00
Daniel Sheppard
a30e7bf34f #6732 - Add ASN field back to bulk edit 2021-10-29 14:28:13 -05:00
Daniel Sheppard
43b983054a #6732 - Corrected model field definitions 2021-10-29 14:26:19 -05:00
Daniel Sheppard
d3364ef4d1 #6732 - Restore resolve_field to the filterset 2021-10-29 14:15:37 -05:00
Rhys Barrie
24d6941cc4 netbox-community/netbox#7668: Add 'View Elevations' button to location detail page 2021-10-29 14:07:02 -04:00
jeremystretch
4099dd3a05 Closes #6615: Add filter lookups for custom fields 2021-10-29 11:23:56 -04:00
Jeremy Stretch
f420435b82 Merge pull request #7678 from netbox-community/6615-custom-field-filters
Closes #6615: Enable filter lookups for custom fields
2021-10-29 11:21:45 -04:00
jeremystretch
696fe7bc0d Add tests for custom field lookups 2021-10-29 09:45:48 -04:00
Daniel Sheppard
7c147db324 #6732 - Fix test exception in Site form 2021-10-28 16:08:32 -05:00
jeremystretch
32205045ba Use multi-value filters for custom fields 2021-10-28 16:40:51 -04:00
jeremystretch
1ce9192369 Move MACAddressField to utilities 2021-10-28 16:26:31 -04:00
Daniel Sheppard
0a62f75a40 #6529 - Add CLI to run scripts 2021-10-28 15:14:42 -05:00
jeremystretch
2e0f15b35f Automatically add additional lookup filters for custom fields 2021-10-28 16:09:36 -04:00
jeremystretch
7c60089692 Ditch CustomFieldFilter 2021-10-28 15:36:12 -04:00
Daniel Sheppard
0a8788eb97 #6732 - Fix Site form and ASN form 2021-10-28 13:57:36 -05:00
Daniel Sheppard
9565addcd4 #6732 - Fix test failure when sending data 2021-10-28 13:12:55 -05:00
jeremystretch
6377d475fc Refactor generation of additional lookup filters 2021-10-28 14:00:07 -04:00
Daniel Sheppard
fff124ebb1 #6732 - Update migration file 2021-10-28 12:06:41 -05:00
Daniel Sheppard
033db83068 Merge branch 'feature' of https://github.com/netbox-community/netbox into 6732-asn-model 2021-10-28 11:55:20 -05:00
Daniel Sheppard
de5c9ef4b2 #6732 - Add graphql support for new ASN model and fix ASN overflow on longs 2021-10-28 11:49:59 -05:00
Daniel Sheppard
3c261b05d9 #6732 - Fix ASN tests 2021-10-28 11:49:21 -05:00
Daniel Sheppard
ada81e31c9 #6732 - Fix CSV import form 2021-10-28 11:48:50 -05:00
Daniel Sheppard
0f68ecda78 #6732 - Fix hiding of ASN field in Site creation form 2021-10-28 11:47:54 -05:00
Daniel Sheppard
1902e112f6 #6732 - Fix tests for utilities 2021-10-28 11:46:55 -05:00
Daniel Sheppard
96565c31d9 #6732 - ASN should be unique 2021-10-28 10:04:12 -05:00
jeremystretch
aa9e68e121 Tweak preformatted block styling 2021-10-28 10:46:00 -04:00
jeremystretch
15e011ae52 Closes #7452: Add JSON custom field type 2021-10-28 10:29:14 -04:00
jeremystretch
a173083e5b Closes #7606: Model transmit power for interfaces 2021-10-28 09:31:45 -04:00
jeremystretch
33c0c8cf6a Extend dynamic config tests 2021-10-28 09:06:07 -04:00
Daniel Sheppard
9b5f45aee1 #6732 - Serializers 2021-10-27 23:07:04 -05:00
Daniel Sheppard
93de6c9f88 #6732 - Tests 2021-10-27 23:06:37 -05:00
Daniel Sheppard
0ad440fea5 #6732 - GraphQL support 2021-10-27 23:06:09 -05:00
Daniel Sheppard
8235b339ee #6732 - Revert some changes to legacy ASN field on site model
* Re-instates ASN field on Site model
* Re-instates ASN field on Site view
* Re-instates ASN field on edit form and API, except for where forms instances are new (add site) or instance does not have any existing AS data
* Does not re-instate asn field on SiteBulkEditForm
* Does not re-instate ASN field on SiteTable
* Does not re-instate filter for filterset, but does allow filtering by query (q=34342)
* Does not include tests for ASN field on Site model due to planned deprecation
2021-10-27 22:25:31 -05:00
Daniel Sheppard
3185cd0b1f #6732 - Correct incorrect field definition in field order 2021-10-27 21:31:59 -05:00
Jeremy Stretch
3a85edba3d Merge pull request #7648 from netbox-community/5883-dyanmic-config
Closes #5883: Enable dynamic configuration of some settings
2021-10-27 16:48:59 -04:00
jeremystretch
a573a35349 Use a key prefix for cache values when running tests 2021-10-27 16:33:59 -04:00
jeremystretch
d67d3f8d6d Add initial tests for dynamic config 2021-10-27 15:58:54 -04:00
jeremystretch
1e317f82f5 Move config parameter value population to ConfigRevisionForm init 2021-10-27 15:55:51 -04:00
jeremystretch
acdebea7f1 Improve visibility of modified values 2021-10-27 15:44:42 -04:00
thatmattlove
a090955918 Fixes #7599: Improve color mode handling 2021-10-27 11:34:21 -07:00
jeremystretch
70f71e0f57 Extend admin UI to allow restoring previous config revisions 2021-10-27 14:05:49 -04:00
jeremystretch
dfdeac4968 Fixes #7647: Require interface assignment when designating IP address as primary for device/VM during CSV import 2021-10-27 10:20:17 -04:00
jeremystretch
e84f2e3ad2 Fixes #7601: Correct devices count for locations within global search results 2021-10-27 10:10:14 -04:00
jeremystretch
98ca4f5b5a Fixes #7643: Fix circuit assignment when creating multiple terminations simultaneously 2021-10-27 10:02:36 -04:00
jeremystretch
87779b7b88 Fixes #7644: Prevent inadvertent deletion of prior change records when deleting objects (#7333 revisited) 2021-10-27 09:44:15 -04:00
jeremystretch
b56cae24c5 Fixes #7628: Fix load_yaml method for custom scripts 2021-10-27 09:04:18 -04:00
jeremystretch
d48a68317d Fixes #7612: Strip HTML from custom field descriptions 2021-10-27 08:41:28 -04:00
jeremystretch
77bd26d17f Work around unapplied migrations when bootstrapping config 2021-10-26 17:28:39 -04:00
jeremystretch
4cdc2601f5 Add descriptions to all config parameters 2021-10-26 16:54:12 -04:00
jeremystretch
ff5c274048 Ensure bootstrapping of config on start 2021-10-26 16:45:53 -04:00
jeremystretch
561e06e7f0 Indicate when dynamic parameters are defined statically 2021-10-26 15:50:33 -04:00
jeremystretch
626a446c3d Docs & changelog for #5883 2021-10-26 15:40:34 -04:00
jeremystretch
26d2da7b98 Initialize Config with empty dict 2021-10-26 14:18:18 -04:00
jeremystretch
66ed39b4b7 Clean up boolean fields 2021-10-26 14:08:03 -04:00
jeremystretch
fbf91dda7d Optimize config queries 2021-10-26 13:41:56 -04:00
jeremystretch
41ff1d0fc9 Add NAPALM config parameters 2021-10-26 11:53:46 -04:00
jeremystretch
64d8512fc3 Add PAGINATE_COUNT, MAX_PAGE_SIZE 2021-10-26 11:43:06 -04:00
jeremystretch
94804fecd8 Add MAINTENANCE_MODE, MAPS_URL 2021-10-26 10:57:33 -04:00
jeremystretch
559dc2f865 Add ALLOWED_URL_SCHEMES 2021-10-26 10:24:33 -04:00
jeremystretch
7c0f32e8ee Introduce ConfigItem; add rack elevation parameters 2021-10-26 10:04:56 -04:00
jeremystretch
82243732a1 Initial work on #5883 2021-10-25 16:10:50 -04:00
jeremystretch
61d2158f76 #6346: Add 'bridge' interface type 2021-10-25 11:11:58 -04:00
jeremystretch
68081fb9a2 Cleanup & API changelog for #3979 2021-10-25 11:07:15 -04:00
Jeremy Stretch
8276933dbb Merge pull request #7630 from netbox-community/6238-conditional-webhooks
Closes #6238: Implement conditional webhooks
2021-10-25 10:42:17 -04:00
jeremystretch
0d84338e28 Add regex condition op 2021-10-25 10:14:18 -04:00
jeremystretch
2423e0872f Documentation & changelog for #6238 2021-10-25 09:52:08 -04:00
jeremystretch
35c967e6f7 Implement condition negation 2021-10-25 09:09:51 -04:00
jeremystretch
b92de63245 Improve validation 2021-10-25 09:01:05 -04:00
Daniel Sheppard
8b529abfe1 Initial work on #6732 2021-10-24 23:47:31 -05:00
Daniel Sheppard
a01068949c Initial work on #6732 2021-10-24 23:42:47 -05:00
Miguel Teixeira
b07e88869a Fix interfaces row colors on device interfaces table 2021-10-24 03:31:29 +01:00
Miguel Teixeira
94bd27bcf5 Fix interface icons on the device interfaces table 2021-10-24 03:24:54 +01:00
jeremystretch
78ecc8673c Add conditions for webhooks 2021-10-22 17:15:08 -04:00
jeremystretch
7e26d92190 Introduce conditions & condition sets 2021-10-22 16:27:08 -04:00
Jeremy Stretch
dbe2f8a6f1 Merge pull request #7622 from netbox-community/6346-interface-bridge
Closes #6346: Bridge group support
2021-10-22 09:37:28 -04:00
jeremystretch
e96f5447f4 Changelog for #6346 2021-10-21 17:03:21 -04:00
jeremystretch
5193fa6483 Add tests for #6346 2021-10-21 16:57:01 -04:00
jeremystretch
e1e2c76ae1 Add bridge field to Interface, VMInterface models 2021-10-21 16:30:18 -04:00
jeremystretch
a3e7cab935 Split tenancy models into separate modules 2021-10-21 15:33:58 -04:00
jeremystretch
c06b3374ce #6497: Add missing tag fields to filter forms 2021-10-21 15:29:52 -04:00
jeremystretch
6f66138a18 Changelog for #3979 2021-10-21 15:15:01 -04:00
Jeremy Stretch
334c97035e Merge pull request #7611 from netbox-community/3979-wireless
Closes #3979: Wireless network modeling
2021-10-21 15:09:08 -04:00
jeremystretch
1c6a84659c #3979 cleanup 2021-10-21 14:20:47 -04:00
jeremystretch
3a3ed8bf64 Merge branch 'feature' into 3979-wireless 2021-10-21 13:19:52 -04:00
Jeremy Stretch
001ab1d067 Merge pull request #7610 from netbox-community/6497-organizational-model-tags
Closes #6297: Extend tag support to organizational models
2021-10-21 11:49:18 -04:00
jeremystretch
4932e4f8c6 Changelog for #6497 2021-10-21 11:28:25 -04:00
jeremystretch
6f05f17c62 Standardize & simplify tags panel inclusion 2021-10-21 11:23:31 -04:00
jeremystretch
cfb3897047 Add tags to organizational & nested group models 2021-10-21 10:51:02 -04:00
jeremystretch
8c058dcd45 Closes #7530: Move device type component lists to separate views 2021-10-20 15:04:40 -04:00
jeremystretch
7b70129974 Refactor device component views 2021-10-20 14:24:02 -04:00
jeremystretch
6a4becfb46 Add tests for wireless 2021-10-20 13:34:39 -04:00
jeremystretch
4a7159389e Add wireless documentation 2021-10-20 11:22:56 -04:00
jeremystretch
a66501250e Add wireless authentication attributes 2021-10-20 10:58:15 -04:00
jeremystretch
efb41b7433 Merge branch 'develop' into feature 2021-10-20 10:10:10 -04:00
jeremystretch
090df05193 PRVB 2021-10-20 09:59:33 -04:00
Jeremy Stretch
2c161c01c1 Merge pull request #7590 from netbox-community/develop
Release v3.0.8
2021-10-20 09:49:15 -04:00
jeremystretch
fc5a23cc88 Release v3.0.8 2021-10-20 09:31:12 -04:00
jeremystretch
73f2f9fc63 Closes #7551: Add UI field to filter interfaces by kind 2021-10-19 15:57:02 -04:00
jeremystretch
eb4b4a6c8d Closes #7561: Add a utilization column to the IP ranges table 2021-10-19 15:51:39 -04:00
jeremystretch
39430e01de Fixes #7550: Fix rendering of UTF8-encoded data in change records 2021-10-19 15:41:19 -04:00
jeremystretch
96015aa590 Fixes #7582: Fix rendering of CustomLink context data table 2021-10-19 15:31:07 -04:00
jeremystretch
c1720505f3 Fixes #7584: Fix alignment of object identifier under object view 2021-10-19 15:22:22 -04:00
Jeremy Stretch
5c338a90a1 Merge pull request #7566 from PieterL75/patch-1
Fix #7556 : NewVersion showing url
2021-10-19 15:20:58 -04:00
jeremystretch
f04dc55030 Reorganize panel inclusion templates 2021-10-19 14:21:31 -04:00
jeremystretch
38bc5de3e8 Changelog for #1344 2021-10-19 14:08:27 -04:00
jeremystretch
7c56b21095 Closes #7354: Relax uniqueness constraints on region, site group, and location names 2021-10-19 13:46:35 -04:00
jeremystretch
8d0ed99bcd Clean up UniqueTogetherValidator workarounds 2021-10-19 13:32:43 -04:00
jeremystretch
8375995680 Closes #1943: Relax uniqueness constraint on cluster names 2021-10-19 13:06:41 -04:00
jeremystretch
0afd3e6189 Closes #6715: Add tenant assignment for cables 2021-10-19 12:33:17 -04:00
PieterL75
79cee12b1e Updated release notes with #7556 2021-10-19 16:23:05 +02:00
Jeremy Stretch
ba7361bdc7 Merge pull request #7575 from netbox-community/1344-contacts
Closes #1344: Contact objects
2021-10-19 08:46:13 -04:00
jeremystretch
554b44b9f2 Fix string repr for ContactAssignment 2021-10-18 16:47:49 -04:00
jeremystretch
b44a5ea609 Prevent duplicate contact assignments 2021-10-18 16:33:31 -04:00
jeremystretch
487d67768b Cleanup and documentation for #1344 2021-10-18 16:20:31 -04:00
jeremystretch
f485a47b48 Tweak uniqueness constraints 2021-10-18 15:41:29 -04:00
jeremystretch
faf1e6a43d Add contact/role assignment tables 2021-10-18 15:30:28 -04:00
jeremystretch
f193f0d3f9 Add contact assignments to models 2021-10-18 15:09:57 -04:00
jeremystretch
2e78568d4d Initial work on contacts 2021-10-18 13:59:05 -04:00
PieterL75
aa5c42683a Fix #7556 : NewVersion showing url 2021-10-18 16:12:23 +02:00
jeremystretch
0c72c20d2a Add WirelessLANs column to interfaces table 2021-10-18 10:05:43 -04:00
thatmattlove
9c6938e7ae Minor Style Improvement: Fix interface table dropdowns being hidden when opened 2021-10-15 17:45:47 -07:00
thatmattlove
811c21ec7e Minor Style Improvement: Add vertical spacing to Device Type component navigation & fix inconsistent component active color 2021-10-15 17:21:36 -07:00
thatmattlove
84c14aadc7 Fixes #7300: Fix incorrect Device LLDP interface row coloring & improve related JS 2021-10-15 17:07:54 -07:00
thatmattlove
f1f0d9cd0d Fixes #7495: Fix sidenav overlapping elements 2021-10-15 15:02:50 -07:00
jeremystretch
717fd760df #3979: UI cleanup 2021-10-15 12:24:07 -04:00
jeremystretch
075f4907ef Store channel frequency & width as independent values 2021-10-15 11:39:53 -04:00
jeremystretch
b7317bfe29 Remove choices from rf_channel_width 2021-10-15 10:06:49 -04:00
jeremystretch
01d3c062f2 Move wireless field choices to wireless app 2021-10-15 10:00:03 -04:00
jeremystretch
6af5a884cd Merge branch 'feature' into 3979-wireless 2021-10-14 16:32:24 -04:00
Jeremy Stretch
6015c47587 Merge pull request #7547 from netbox-community/3839-device-airflow
Closes #3839: Add airflow fields to Device and DeviceType
2021-10-14 16:29:43 -04:00
jeremystretch
33ea8763d5 3839: Add airflow field to Device 2021-10-14 16:15:08 -04:00
jeremystretch
2c2c2e9060 3839: Add airflow field to DeviceType 2021-10-14 15:45:36 -04:00
jeremystretch
64dad7dbd2 Optimize migrations 2021-10-14 15:11:03 -04:00
jeremystretch
176bd2396b Closes #6711: Add longtext custom field type with Markdown support 2021-10-14 14:48:00 -04:00
jeremystretch
e16942dea5 Fixes #7529: Restore horizontal scrolling for tables in narrow viewports 2021-10-14 13:44:54 -04:00
Jeremy Stretch
12efcec3b0 Merge pull request #7546 from miaow2/7545-webhook-events-status
Fixes #7545: Incorrect display of Events status on webhook page
2021-10-14 13:43:00 -04:00
miaow2
a7b6c40596 Fixing display of webhook types 2021-10-14 20:35:21 +03:00
jeremystretch
b95773938d Fixes #7534: Avoid exception when utilizing "create and add another" twice in succession 2021-10-14 12:24:29 -04:00
jeremystretch
6898ae7106 Fixes #7544: Fix multi-value filtering of custom field objects 2021-10-14 11:36:13 -04:00
jeremystretch
909b83c537 Include interface RF attributes on wireless link view 2021-10-14 10:06:46 -04:00
jeremystretch
fb9da87abb Add devices to WirelessLinkForm 2021-10-14 10:02:05 -04:00
jeremystretch
bdf359470e Include WirelessLAN attached interfaces 2021-10-14 09:48:12 -04:00
jeremystretch
4c475c1b33 Extend wireless channel choices 2021-10-13 20:56:14 -04:00
jeremystretch
438b4b4758 Add rf_role to Interface 2021-10-13 20:16:36 -04:00
jeremystretch
01f791a44e Add WirelessLANGroup model 2021-10-13 16:40:12 -04:00
jeremystretch
43f2d4a331 Add SVG trace support for WirelessLinks 2021-10-13 15:00:35 -04:00
jeremystretch
95ed07a95e Add status field to WirelessLink 2021-10-13 14:31:30 -04:00
jeremystretch
ec0560a2c5 Fix trace_paths command for wireless links 2021-10-13 14:16:10 -04:00
jeremystretch
ac2cd552b9 Rename cable_peer fields to link_peer 2021-10-13 14:04:53 -04:00
jeremystretch
1c73bd5079 Resolve test errors 2021-10-13 13:39:14 -04:00
jeremystretch
138af27bf7 Record wireless links as part of cable path 2021-10-13 13:28:14 -04:00
jeremystretch
445e16f668 Reference WirelessLink on both attached Interfaces 2021-10-13 11:54:52 -04:00
jeremystretch
90e9f34494 Add WirelessLink model 2021-10-13 09:46:17 -04:00
jeremystretch
5271680483 Rename SSID model to WirelessLAN 2021-10-12 17:06:31 -04:00
jeremystretch
38f6d22d2d Enable attachment of wireless interfaces to SSIDs 2021-10-12 13:48:06 -04:00
jeremystretch
8b80b0c3df Introduce the wireless app and SSID model 2021-10-12 12:48:36 -04:00
jeremystretch
8e1535f7ec Add RF channel fields to Interface 2021-10-12 10:46:41 -04:00
jeremystretch
3e7922e41e Merge branch 'develop' into feature 2021-10-11 14:43:20 -04:00
jeremystretch
1a4f8c5422 PRVB 2021-10-11 14:42:29 -04:00
Jeremy Stretch
66c4d23119 Merge pull request #7510 from netbox-community/develop
Release v3.0.7
2021-10-08 14:04:34 -04:00
jeremystretch
d66fc8f661 Release v3.0.7 2021-10-08 13:49:15 -04:00
jeremystretch
031876964f #2102: Implement q search filter for device type components 2021-10-08 13:42:43 -04:00
jeremystretch
5a6190e321 Closes #6874: Add tenant assignment for locations 2021-10-07 15:46:21 -04:00
jeremystretch
18c3bb673f Closes #1337: Add WWN field to interfaces 2021-10-07 15:09:42 -04:00
jeremystretch
6463fd902c Merge branch 'develop' into feature 2021-10-07 14:20:42 -04:00
jeremystretch
c63766c4c6 Fix test for #7051 2021-10-07 14:19:29 -04:00
jeremystretch
af6237e12e Fixes #7479: Fix parent interface choices when bulk editing VM interfaces 2021-10-07 13:57:00 -04:00
jeremystretch
00328226ec Fixes #7051: Fix permissions evaluation and improve error handling for connected device REST API endpoint 2021-10-07 13:15:59 -04:00
jeremystretch
b31ba4e9d2 Changelog & UI tweaks for #6879 2021-10-07 12:41:24 -04:00
Jeremy Stretch
4be5d3f9e9 Merge pull request #6960 from candlerb/candlerb/6879-v3
Display device names in front of device front/rear images
2021-10-07 12:35:17 -04:00
jeremystretch
53154746fc Changelog for #7485 2021-10-07 10:40:51 -04:00
Jeremy Stretch
2f4c1b6e8f Merge pull request #7475 from HumanEquivalentUnit/patch-1
Mention data in custom fields, link Jinja2 docs.
2021-10-07 10:38:01 -04:00
Jeremy Stretch
045ec7d3a0 Merge pull request #7486 from alexanderhofstaetter/patch-1
Added "USB Micro AB" combo type to choices
2021-10-07 10:35:40 -04:00
jeremystretch
b73db750e5 Fixes #7471: Correct redirect URL when attaching images via "add another" button 2021-10-07 09:58:42 -04:00
jeremystretch
3f766ffea8 Fixes #7474: Fix AttributeError exception when rendering a report or custom script 2021-10-07 09:37:21 -04:00
Alexander Hofstätter
f28761202f Added "USB Micro AB" combo type to choices 2021-10-07 14:31:54 +02:00
HumanEquivalentUnit
6d1f07df05 Mention data in custom fields, link Jinja2 docs.
Resolves #7367
2021-10-07 00:51:07 +01:00
Brian Candler
eb9f2b36ab Display device names in front of device front/rear images
Fixes #6879
2021-10-06 18:07:28 +00:00
jeremystretch
ca59cd1eb8 Merge branch 'develop' into feature 2021-10-06 14:04:53 -04:00
jeremystretch
2bd29127dc PRVB 2021-10-06 14:04:24 -04:00
Jeremy Stretch
3eef6363fd Merge pull request #7465 from netbox-community/develop
Release v3.0.6
2021-10-06 14:02:44 -04:00
jeremystretch
d451f30bfc Release v3.0.6 2021-10-06 13:45:02 -04:00
jeremystretch
105956f8e6 Closes #7464: Improve documentation for executing housekeeping task as a cron job 2021-10-06 13:24:13 -04:00
jeremystretch
39256afb67 Closes #7394: Enable filtering cables by termination type & ID in REST API 2021-10-06 12:06:32 -04:00
jeremystretch
69aaf28b9c Closes #6955: Include type, ID, and slug on object view 2021-10-06 11:23:06 -04:00
jeremystretch
b806220074 Closes #6850: Default to current user when creating journal entries via REST API 2021-10-06 10:56:50 -04:00
jeremystretch
d2bdf4e822 Closes #7462: Include count of assigned virtual machines under platform view 2021-10-06 10:12:44 -04:00
jeremystretch
3ab5682e7a Fixes #7460: Fix filtering connections by site ID 2021-10-06 10:08:56 -04:00
jeremystretch
c0010ec100 Fixes #7459: Pre-populate location data when adding a device to a rack 2021-10-06 10:00:31 -04:00
jeremystretch
6897c5fadd Fixes #7455: Fix site/provider network validation for circuit termination API serializer 2021-10-06 09:11:42 -04:00
jeremystretch
745aa23ed6 Fixes #7458: Correct tenants count label under tenant group view 2021-10-06 08:44:59 -04:00
jeremystretch
9089f5cf67 #7450: Clean up object edit forms 2021-10-05 15:37:49 -04:00
jeremystretch
dd79aae137 #7450: Misc UI cleanup 2021-10-05 15:21:49 -04:00
jeremystretch
26e470f521 #7449: Use lighter color for top-level nav menu items 2021-10-05 14:57:35 -04:00
jeremystretch
a34c8b80e5 #7449: Use original primary color 2021-10-05 14:52:10 -04:00
jeremystretch
854a12982f #7449: Lighten dropdown widget caret color 2021-10-05 14:36:33 -04:00
jeremystretch
cf173d4f50 #7449: Remove color from table header links 2021-10-05 14:16:19 -04:00
jeremystretch
7041486b93 #7449: Remove color from panel headers on home view 2021-10-05 14:03:14 -04:00
jeremystretch
548a8c3be3 #7449: Fix login banner color 2021-10-05 14:01:24 -04:00
jeremystretch
087a018faf Fix changelog for v3.0.5 2021-10-05 12:08:07 -04:00
jeremystretch
e09024e86f Fixes #7446: Fix exception when viewing a large number of child IPs within a prefix 2021-10-05 12:07:03 -04:00
jeremystretch
1757102536 Fixes #7442: Fix missing actions column on user-configured tables 2021-10-05 09:34:30 -04:00
jeremystretch
9c8432cf13 Merge branch 'develop' into feature 2021-10-04 14:19:16 -04:00
jeremystretch
c262af550d PRVB 2021-10-04 14:18:42 -04:00
Jeremy Stretch
d9c6609b24 Merge pull request #7437 from netbox-community/develop
Release v3.0.5
2021-10-04 14:15:53 -04:00
jeremystretch
339bcb89bb Release v3.0.5 2021-10-04 13:46:34 -04:00
jeremystretch
b5884a5b54 Fixes #7215: Prevent rack elevations from overlapping when higher width is specified 2021-10-04 13:41:16 -04:00
thatmattlove
c818d63043 Fixes #7427: Don't select hidden rows when selecting all in a table 2021-10-04 09:19:18 -07:00
jeremystretch
c9c537a1b9 Fixes #6817: Custom field columns should be removed from tables upon their deletion 2021-10-01 20:22:54 -04:00
jeremystretch
1be748b479 Fixes #6433: Fix bulk editing of child prefixes under aggregate view 2021-10-01 16:21:16 -04:00
jeremystretch
376c776520 Fixes #7425: Housekeeping command should honor zero verbosity 2021-10-01 15:29:22 -04:00
jeremystretch
a1f271d7d9 Fixes #7417: Prevent exception when filtering objects list by invalid tag 2021-10-01 14:07:26 -04:00
jeremystretch
724997cb48 Closes #5925: Always show IP addresses tab under prefix view 2021-10-01 13:39:29 -04:00
jeremystretch
f3fe3f9a18 Closes #6708: Add image attachment support for circuits, power panels 2021-10-01 12:50:51 -04:00
jeremystretch
357a5d1e65 Refactor image attachments panel template 2021-10-01 12:45:41 -04:00
jeremystretch
460e3fd5d6 Introduce a common URL for the creation of image attachments 2021-10-01 12:34:30 -04:00
jeremystretch
257c0afdb5 Closes #6423: Cache rendered REST API specifications 2021-10-01 12:02:04 -04:00
jeremystretch
ed3bc7cdcc Changelog for #7387 2021-10-01 09:30:17 -04:00
Jeremy Stretch
bd181ac84f Merge pull request #7400 from maximumG/7387-order-scripts
Fixes #7387 : possibility to order scripts
2021-10-01 09:20:08 -04:00
jeremystretch
d1f5988db7 Closes #7319: Remove migrations check from upgrade.sh to avoid misleading error messages 2021-10-01 08:57:17 -04:00
jeremystretch
a5b99e7148 Fixes #7412: Fix exception in UI when adding child device to device bay 2021-09-30 12:29:08 -04:00
jeremystretch
114500e7f4 Fixes #7401: Pin jsonschema package to v3.2.0 to fix REST API docs rendering 2021-09-30 11:41:32 -04:00
jeremystretch
d9f178e315 Fixes #7411: Fix exception in UI when adding member devices to virtual chassis 2021-09-30 11:36:16 -04:00
maximumG
7337630704 chore: introduce the script_order notion in the documentation 2021-09-30 09:21:38 +02:00
maximumG
0fdd081869 feat: scripts within a module can now be ordered 2021-09-30 09:17:33 +02:00
jeremystretch
a9761e8dd2 Fixes #7397: Fix AttributeError exception when rendering export template for devices via REST API 2021-09-29 21:09:12 -04:00
jeremystretch
1f1a05dc67 Fixes #6895: Remove errant markup for null values in CSV export 2021-09-29 21:00:45 -04:00
thatmattlove
14b065cf5f Fixes #7373: Improve handling of mismatched server, client, and browser color-mode preferences 2021-09-29 17:44:28 -07:00
jeremystretch
47c3a20fda Correct version number referenced for installation video 2021-09-29 12:40:20 -04:00
jeremystretch
86aed4e073 Closes #7318: Raise minimum required PostgreSQL version from 9.6 to 10 2021-09-29 12:14:15 -04:00
jeremystretch
19c984bdab PRVB 2021-09-29 09:46:39 -04:00
Jeremy Stretch
84d83fbd14 Merge pull request #7393 from netbox-community/develop
Release v3.0.4
2021-09-29 09:41:11 -04:00
jeremystretch
965ba3aca1 Release v3.0.4 2021-09-29 09:18:57 -04:00
jeremystretch
38f34ddb28 Fixes #7392: Fix "help" links for custom fields, other models 2021-09-29 09:09:10 -04:00
jeremystretch
6b3e0d3229 Drop pycryptodome as a Python dependency 2021-09-28 17:07:15 -04:00
jeremystretch
854121b6ec Closes #7314: Add SMA 905/906 fiber port types 2021-09-28 16:42:54 -04:00
jeremystretch
047425dadd Closes #7389: Linkify tenant group in tenants list 2021-09-28 16:28:11 -04:00
jeremystretch
8dc0767cdf Changelog for #7365 2021-09-28 16:22:28 -04:00
Jeremy Stretch
a99753fb0f Merge pull request #7366 from shuichiro-makigaki/optimize-prefix-util
Fix #7365: Optimize calculation of prefix utilization
2021-09-28 16:09:27 -04:00
jeremystretch
ad65e06d0a Closes #7252: Validate IP range size does not exceed max supported value 2021-09-28 15:44:41 -04:00
jeremystretch
bfb37d6283 Closes #7022: Add ITA type C (CEE 7/16) power port type 2021-09-28 13:46:54 -04:00
jeremystretch
fd180e480a Changelog & docs cleanup for #6973 2021-09-28 13:40:24 -04:00
Jeremy Stretch
3e5452d9da Merge pull request #7369 from maximumG/6973-order-reports
Fixes #6973:  order reports
2021-09-28 13:34:23 -04:00
jeremystretch
3ec0fe5519 Closes #7372: Link to local docs for model from object add/edit views 2021-09-28 13:23:57 -04:00
jeremystretch
71449b3414 Fixes #7304: Require explicit values for all required choice fields during CSV import 2021-09-28 12:04:54 -04:00
Jeremy Stretch
16f5e233d0 Merge pull request #7382 from netbox-community/refactor-forms
Refactor forms
2021-09-28 11:40:34 -04:00
Daniel Sheppard
abb72868f2 Update changelog for #7374 2021-09-28 09:50:23 -05:00
jeremystretch
13e9d57d68 Merge branch 'develop' into refactor-forms 2021-09-28 10:49:14 -04:00
jeremystretch
833acc3618 Refactor extras forms 2021-09-28 10:44:53 -04:00
jeremystretch
db522f96be Refactor virtualization forms 2021-09-28 10:25:07 -04:00
Daniel Sheppard
df8b76127e Fixes #7374 - Adds query param on position for rack face 2021-09-28 09:06:35 -05:00
jeremystretch
8e849566d5 Refactored IPAM forms 2021-09-28 09:25:12 -04:00
jeremystretch
dba9602c75 Refactor tenancy forms 2021-09-27 17:19:05 -04:00
jeremystretch
9e2364b246 Refactor DCIM forms 2021-09-27 17:09:37 -04:00
jeremystretch
b5aecfeb91 Refactor circuits forms 2021-09-27 15:23:12 -04:00
jeremystretch
c7523ffc67 Fixes #7358: Add missing choices column to custom field CSV import form 2021-09-27 12:28:52 -04:00
jeremystretch
d87d860a57 Remove obsolete TS for a.formaction 2021-09-27 11:41:05 -04:00
jeremystretch
68b1234388 Fixes #7353: Fix bulk creation of device/VM components via list view 2021-09-27 10:36:01 -04:00
jeremystretch
8fda08a1b5 Fixes #7356: Fix display of model documentation when adding device components 2021-09-27 10:09:32 -04:00
jeremystretch
aaba4b534f Fixes #7360: Correct redirection URL after removing child device from device bay 2021-09-27 09:58:03 -04:00
Jeremy Stretch
6d32aa8a88 Merge pull request #7320 from royreznik/feature-6917
Feature-6917 make ip assigned checkmark link to interface
2021-09-27 09:18:24 -04:00
maximumG
0214c388ae add: document how to order reports 2021-09-27 11:02:37 +02:00
maximumG
e443d719d4 feat: reports within a module can now be ordered 2021-09-27 11:02:31 +02:00
Shuichiro MAKIGAKI
d514290688 Fix #7365: Optimize calculation of prefix utilization 2021-09-25 22:28:31 +09:00
royreznik
694bd231e3 Update changelog with #6917 2021-09-23 06:33:26 -07:00
royreznik
8523ad166e Feature-6917 make ip assigned checkmark link to interface 2021-09-23 06:33:26 -07:00
Daniel Sheppard
7ec6b4ebb7 Fixes #7341 - Corrects url in Circuit breadcrumb 2021-09-22 11:48:22 -05:00
jeremystretch
38172b793b Fixes #7294: Fix SVG rendering for cable traces ending at unoccupied front ports 2021-09-21 15:04:37 -04:00
jeremystretch
6bccb6d90b Fixes #7333: Prevent inadvertent deletion of prior change records when deleting objects 2021-09-21 14:24:23 -04:00
jeremystretch
3cf1d6baf4 Closes #7118: Render URL custom fields as hyperlinks in object tables 2021-09-21 14:04:47 -04:00
jeremystretch
2a1718bfc8 Closes #7323: Add serial filter field for racks & devices 2021-09-21 13:53:11 -04:00
jeremystretch
0db4092266 Fixes #7321: Don't overwrite multi-select custom fields during bulk edit 2021-09-21 13:41:33 -04:00
jeremystretch
41dfdc0aaa Fixes #7324: Fix TypeError exception in web UI when filtering objects using single-choice filters 2021-09-21 09:13:26 -04:00
jeremystretch
6bc72109c1 PRVB 2021-09-20 13:19:53 -04:00
Jeremy Stretch
55e9685d30 Merge pull request #7317 from netbox-community/develop
Release v3.0.3
2021-09-20 13:08:32 -04:00
jeremystretch
d2dcc51430 Changelog cleanup 2021-09-20 12:55:04 -04:00
jeremystretch
214c1d5a50 Release v3.0.3 2021-09-20 12:44:44 -04:00
jeremystretch
38be0b4976 Changelog for #7228 2021-09-20 10:23:29 -04:00
Jeremy Stretch
b86847c57e Merge pull request #7307 from royreznik/fix-7228
Fixes #7228: Round °F temperature to one decimal place
2021-09-20 10:21:43 -04:00
jeremystretch
8ba5d03280 Fixes #7301: Fix exception when deleting a large number of child prefixes 2021-09-20 10:02:03 -04:00
jeremystretch
879ffd648b Fix 'select all' widget display 2021-09-20 09:02:28 -04:00
royreznik
030c573037 Fixes #7228: Round °F temperature to one decimal place 2021-09-20 02:44:40 -07:00
jeremystretch
713e79c1a9 Fixes #7298: Restore missing object names from applied object list filters 2021-09-17 16:55:32 -04:00
Jeremy Stretch
383cdb5340 Merge pull request #7297 from netbox-community/7295-tables-cleanup
Closes #7295: General cleanup of table classes
2021-09-17 15:56:26 -04:00
jeremystretch
7b3f6f1c67 Clean up table classes 2021-09-17 15:37:19 -04:00
jeremystretch
9cb29f48a0 Use exclude() when instantiating tables to omit columns 2021-09-17 14:25:02 -04:00
jeremystretch
5e29679968 Merge 'detail' tables into primaries for each model 2021-09-17 13:55:32 -04:00
jeremystretch
84f3ab90df Changelog for #7273 2021-09-17 12:11:08 -04:00
Jeremy Stretch
34db2eb611 Merge pull request #7285 from netbox-community/7273-apiselect-sorting
Fixes #7273: Disable automatic sorting of select options fetched via API
2021-09-17 12:09:56 -04:00
jeremystretch
16d8981a3f Closes #7284: Include comments field in table/export for all appropriate models 2021-09-17 12:04:22 -04:00
jeremystretch
e67c965180 Closes #7087: Add local_context_data filter for virtual machines list 2021-09-17 10:30:31 -04:00
jeremystretch
b0abfee35b Fixes #7282: Fix KeyError exception when INSECURE_SKIP_TLS_VERIFY is true 2021-09-17 10:16:06 -04:00
jeremystretch
1e8ee5e59b Correct changelog for #7210; revert static asset change 2021-09-16 16:14:20 -04:00
jeremystretch
cc0830bf28 Closes #7087: Add search/filter forms for all organizational models 2021-09-16 16:04:46 -04:00
jeremystretch
e3e005e327 Fixes #7266: Tweak font color for form field placeholder text 2021-09-16 14:41:01 -04:00
jeremystretch
42afd80e82 Changelog for #5775 2021-09-16 14:28:17 -04:00
jeremystretch
0b2862be54 Changelog for #5775 2021-09-16 14:03:28 -04:00
Jeremy Stretch
8d703ffb36 Merge pull request #6730 from MaxRink/remote_groups
Remote groups via HTTP Headers
2021-09-16 14:02:22 -04:00
jeremystretch
6f24a938d9 Fixes #7273: Disable automatic sorting of select options fetched via API 2021-09-16 11:08:05 -04:00
jeremystretch
574b57eadb Treat compiled JS/CSS as binary when diffing 2021-09-16 11:03:55 -04:00
jeremystretch
aa05097fca Fixes #7279: Fix exception when tracing cable with no associated path 2021-09-16 08:56:26 -04:00
jeremystretch
de58f53f9f Closes #7208: Add navigation breadcrumbs for custom scripts & reports 2021-09-15 15:14:24 -04:00
jeremystretch
e738ff2fa7 Closes #6988: Order tenants alphabetically without regard to group assignment 2021-09-15 14:56:20 -04:00
jeremystretch
25f501fb12 Remove obsolete responsive_table.html template 2021-09-15 12:41:21 -04:00
jeremystretch
baf045aed6 Clean up documentation build warnings 2021-09-15 11:46:58 -04:00
jeremystretch
e813dda275 Remove default_app_config (deprecated in Django 3.2) 2021-09-15 11:18:47 -04:00
Jeremy Stretch
ca131f12db Merge pull request #7272 from cimnine/Fix7271
Remove secrets from the feature list
2021-09-15 07:56:28 -04:00
cimnine
ca72b07947 Remove secrets from the feature list 2021-09-15 11:00:51 +02:00
jeremystretch
13d8957cf1 Changelog for #7032 2021-09-14 17:05:07 -04:00
Jeremy Stretch
ca11b74c8e Merge pull request #7052 from tb-killa/#7032
Close #7032
2021-09-14 16:59:16 -04:00
jeremystretch
2ba6a6fc45 Closes #6387: Add xDSL interface type 2021-09-14 16:56:47 -04:00
jeremystretch
a6e79a1d61 Add virtualenv instructions to plugin development docs 2021-09-13 10:58:03 -04:00
jeremystretch
1f4263aa6d Fixes #7253: Remove obsolete reference to queryset cache invalidation 2021-09-13 09:36:01 -04:00
jeremystretch
147a4cbfb0 Closes #7239: Redirect global search to filtered object list when an object type is selected 2021-09-13 09:33:08 -04:00
jeremystretch
ab0a2abc54 Fixes #7248: Fix global search results section links 2021-09-13 09:21:57 -04:00
Jeremy Stretch
57abbf1058 Merge pull request #7245 from dvaccarosenna/issue/7195
Fixes #7195 update base template in plugin dev doc
2021-09-10 11:34:49 -04:00
Daniel Vaccaro-Senna
2a95e1bf71 Fixes #7195 update base template in plugin dev doc 2021-09-10 16:03:46 +01:00
jeremystretch
bd957612c6 Fixes #7167: Ensure consistent font size when using monospace formatting 2021-09-09 16:05:46 -04:00
jeremystretch
908e6a7a38 Update NetBox installation video 2021-09-09 14:46:31 -04:00
jeremystretch
4493c31216 Fixes #7227: Correct placeholder value for webhook CA file path 2021-09-09 09:10:02 -04:00
jeremystretch
7a813349f3 Correct example GraphQL queries 2021-09-09 09:07:28 -04:00
jeremystretch
ad7b8a9ac8 Fixes #7226: Exempt GraphQL API requests from CSRF inspection 2021-09-09 09:06:45 -04:00
jeremystretch
a226f06b1b PRVB 2021-09-08 16:47:04 -04:00
Jeremy Stretch
b55c85b2af Merge pull request #7220 from netbox-community/develop
Release v3.0.2
2021-09-08 16:45:05 -04:00
jeremystretch
0d1d14bcd6 Release v3.0.2 2021-09-08 16:32:37 -04:00
Jeremy Stretch
8c1a01d5ab Merge pull request #7218 from netbox-community/7162-base-path-bug2
Fixes #7162: Decouple base path rendering from API request logic
2021-09-08 16:19:49 -04:00
jeremystretch
cf8fdacfa3 Refactor connection toggle to use API URLs 2021-09-08 14:25:14 -04:00
jeremystretch
2c1745ce28 Refactor checkJobStatus() to use API URLs provided via context 2021-09-08 14:17:27 -04:00
jeremystretch
950ce94653 Refactor ApiRequest to take only full URLs; update TableConfigForm 2021-09-08 13:59:25 -04:00
thatmattlove
851f8a1585 Fixes #7191: Access SlimSelect's internal options when getting current options so selection state is maintained 2021-09-08 09:54:38 -07:00
jeremystretch
d40d1638af Fixes #7179: Prevent obscuring "connect" pop-up for interfaces under device view 2021-09-08 11:27:14 -04:00
Jeremy Stretch
26ceeb61ef Merge pull request #7206 from netbox-community/7205-applied-filters
Handle `null_option` in `applied_filters` template tag
2021-09-08 11:22:54 -04:00
Jeremy Stretch
a39a9c9b56 Merge branch 'develop' into 7205-applied-filters 2021-09-08 11:12:29 -04:00
jeremystretch
45988b9818 Minor cleanup for get_selected_values() 2021-09-08 11:11:52 -04:00
Jeremy Stretch
7234b3bbf8 Merge pull request #7204 from netbox-community/7202-verify-static-assets
Verify integrity of bundled assets in CI
2021-09-08 10:23:51 -04:00
Jeremy Stretch
513ecd7e26 Merge branch 'develop' into 7202-verify-static-assets 2021-09-08 10:13:07 -04:00
jeremystretch
e12314ba60 Fix test user permissions for API pagination tests 2021-09-08 09:57:53 -04:00
jeremystretch
9226302742 Fixes #7209: Allow unlimited API results when MAX_PAGE_SIZE is disabled 2021-09-08 09:38:23 -04:00
jeremystretch
0e8c6ee522 Changelog for #7189 2021-09-08 08:33:30 -04:00
thatmattlove
a9c1c8968e Return cleaned null_option value as None in dynamic multi-select field 2021-09-07 18:43:36 -07:00
thatmattlove
6a15c2ae86 Remove invalid (for Python <3.9) type annotation 2021-09-07 18:37:55 -07:00
thatmattlove
752de0d9c0 Fixes #7205: Handle null_option when getting selected form values in applied_filters template tag 2021-09-07 18:30:45 -07:00
thatmattlove
49617a595d #7205: Handle null_option in dynamic multi-select choices field 2021-09-07 18:28:49 -07:00
thatmattlove
2a293d5d02 Fixes #7188: Re-add missing support for null_option on API select 2021-09-07 18:19:32 -07:00
thatmattlove
9d99ede024 Fixes #7202: Verify integrity of bundled assets in CI 2021-09-07 16:20:36 -07:00
thatmattlove
4a13ee6f40 Fixes #7176: Reset query parameters on APISelect when deep copied 2021-09-07 14:13:53 -07:00
Jeremy Stretch
2ba840c72c Merge pull request #7200 from pierrechev/develop
Enable the alternate connection factory for Redis Sentinel
2021-09-07 16:58:11 -04:00
jeremystretch
46cd55151d Use shallow git clone for production installations 2021-09-07 16:35:48 -04:00
jeremystretch
4d9691c8e5 Extend feature request template to request more detail 2021-09-07 16:25:10 -04:00
jeremystretch
f1687ef53d Remove obsolete entries from .gitignore 2021-09-07 16:21:01 -04:00
Daniel Sheppard
2fb55374b9 Fixes #7193 - Fixes issue with viewing child prefixes when prefix (flat) column is selected and there are available prefixes. 2021-09-07 14:53:12 -05:00
Pierre Chevallereau
312246fec2 Enable the alternate connection factory (https://github.com/jazzband/django-redis#use-the-sentinel-connection-factory) 2021-09-07 16:07:25 +02:00
jeremystretch
27c0e6dd5e Fixes #7164: Fix styling of "decommissioned" label for circuits 2021-09-03 13:52:48 -04:00
jeremystretch
0d7986e082 Fixes #7169: Fix CSV import file upload 2021-09-03 13:46:38 -04:00
Jeremy Stretch
94300b221e Merge pull request #7160 from netbox-community/7149-secrets-changelog
Fixes #7149: Delete all changelog records referencing the old secrets app
2021-09-03 12:51:13 -04:00
jeremystretch
a1110b07de Fixes #7153: Allow clearing of assigned device type images 2021-09-02 16:48:54 -04:00
jeremystretch
a3069239e9 Fixes #7159: Remove NAPALM link 2021-09-02 15:55:41 -04:00
jeremystretch
69f083428d Fixes #7149: Delete all changelog records referencing the old secrets app 2021-09-02 15:27:05 -04:00
thatmattlove
113358f2de Fixes #7148: Handle array values when constructing API URLs 2021-09-02 08:59:26 -07:00
thatmattlove
caa2813d0d Fix regression from ddff193 causing invalid selections 2021-09-02 07:56:08 -07:00
Jeremy Stretch
481046c8b8 Merge pull request #7133 from slowy07/minor-changes
fix: typo spelling grammar
2021-09-02 09:48:58 -04:00
slowy07
83f70dc28c fix: typo spelling grammar
Signed-off-by: slowy07 <slowy.arfy@gmail.com>
2021-09-02 12:01:43 +07:00
thatmattlove
8ede7a9297 Update changelog for #7131 2021-09-01 17:05:50 -07:00
thatmattlove
ddff193786 #7123: Handle empty_option on API Select 2021-09-01 17:02:43 -07:00
thatmattlove
774dff07ee Fixes #7131: Only execute scope selector field visibility logic on specified views 2021-09-01 15:27:37 -07:00
thatmattlove
4b14b31853 Use url_name instead of request.path for view-based styles 2021-09-01 15:22:38 -07:00
jeremystretch
b0addfbe13 PRVB 2021-09-01 15:22:03 -04:00
Jeremy Stretch
593874b45f Merge pull request #7130 from netbox-community/develop
Release v3.0.1
2021-09-01 15:10:17 -04:00
jeremystretch
b207f28402 Release v3.0.1 2021-09-01 14:53:57 -04:00
thatmattlove
7bdde47473 Fixes #7124: Fix duplicate static query param values in API Select 2021-09-01 11:48:13 -07:00
thatmattlove
a2eb0d80d2 #7084: Fix issue where hidden VLAN form fields were incorrectly included in the form submission 2021-09-01 11:41:35 -07:00
jeremystretch
6f94198934 #7123: Remove "Global" placeholder for null VRF field 2021-09-01 13:52:32 -04:00
jeremystretch
707e51d855 #7084: Catch ValueErrors when initializing dynamic form fields 2021-09-01 13:33:41 -04:00
jeremystretch
528df76747 #7082: Handle stale content types 2021-09-01 12:55:25 -04:00
jeremystretch
662c896480 #7113: Add bulk actions under child prefixes view; general cleanup 2021-09-01 11:06:50 -04:00
Jeremy Stretch
29eb2383d6 Merge pull request #7115 from sdktr/7113-fix-prefix-iprange-bulkedit
Fixes #7113: iprange bulk options within Prefix view
2021-09-01 10:56:11 -04:00
Jeremy Stretch
9772c5705f Merge branch 'develop' into 7113-fix-prefix-iprange-bulkedit 2021-09-01 10:55:52 -04:00
jeremystretch
d2fe59ae8f Fixes #7109: Ensure human readability of exceptions raised during REST API requests 2021-09-01 10:43:12 -04:00
Max Rink
d5e5cdda23 Add Remote Group Support to the RemoteUserAuth Backend and Middleware
fix incorrect assumption about when to run the group sync

Add documentation for new Settings

format to autopep8 compliance

add first set of basic testcases

format test to comply with pep8

rename SEPERATOR to SEPARATOR

remove accidentally carried over parameter
2021-09-01 16:34:14 +02:00
jeremystretch
f63dcb1f08 #7091: Simplify access to BASE_PATH variable 2021-09-01 09:34:33 -04:00
Stefan de Kooter
6f66b27507 Changelog for #7113 2021-09-01 11:00:30 +02:00
Stefan de Kooter
909d127c27 Fixes #7113: Correct links to IPRanges bulk actions within Prefix view 2021-09-01 10:25:37 +02:00
Stefan de Kooter
20ef18f98f Fixes #7113: Add permissions to IPRanges bulk actions within Prefix view 2021-09-01 10:24:35 +02:00
thatmattlove
a33e47780b Remove legacy script tags from templates 2021-09-01 00:27:10 -07:00
thatmattlove
691c66d2f5 Fixes #7107: Fix missing search button and search results in IP Address assignment "Assign IP" tab 2021-09-01 00:11:48 -07:00
thatmattlove
14d87a3584 Fixes #7041: Properly format JSON config object returned from a NAPALM device 2021-09-01 00:03:53 -07:00
thatmattlove
d743dc160a Fixes #7080: Re-add missing image preview element 2021-08-31 17:05:02 -07:00
thatmattlove
2b263b054c Fixes #7106: Fix incorrect "Map It" button URL on a site's Physical Address field 2021-08-31 16:27:02 -07:00
thatmattlove
b95e8350d2 Fixes #7092: Fix missing object permissions on Prefix IP Addresses view 2021-08-31 16:03:22 -07:00
thatmattlove
5235866d05 Changelog for #7081, #7091 2021-08-31 15:23:12 -07:00
thatmattlove
093a86bc38 Fixes #7081: Properly handle pre-selected values even when they're outside of pagination limits 2021-08-31 15:13:53 -07:00
thatmattlove
5b87232f59 #7081: Fix APISelect loading of paginated data 2021-08-31 15:13:53 -07:00
thatmattlove
679bbd3e76 Fixes #7091: Ensure API requests from the UI are aware of BASE_PATH 2021-08-31 15:13:53 -07:00
Jeremy Stretch
515b6bf71a Merge pull request #7105 from sdktr/7090-fix-cablebulkedit-length-field
Fix #7090: cable bulk edit form - allow decimal input on length field
2021-08-31 16:12:04 -04:00
Stefan de Kooter
9c389d9dcb Changelog #7090 fix whitespace 2021-08-31 22:01:15 +02:00
Stefan de Kooter
f1e4273a23 Changelog for #7090 2021-08-31 21:24:07 +02:00
Stefan de Kooter
4618cc2b22 Merge branch 'develop' of github.com:netbox-community/netbox into 7090-fix-cablebulkedit-length-field 2021-08-31 21:18:35 +02:00
Stefan de Kooter
1909f0c733 Fix #7090: Cable Bulk Edit, length field should be decimal 2021-08-31 21:17:50 +02:00
Jeremy Stretch
840ea36f70 Merge pull request #7103 from candlerb/candlerb/7102
Redirect users on error to the GitHub discussion forum
2021-08-31 15:08:08 -04:00
jeremystretch
a8cdb3895b Fixes #7093: Multi-select custom field filters should employ exact match 2021-08-31 15:03:39 -04:00
Brian Candler
349733c6dd Redirect users on error to the GitHub discussion forum
Fixes #7102
2021-08-31 19:51:53 +01:00
jeremystretch
1c09ffdd1f Fixes #7101: Enforce MAX_PAGE_SIZE for table and REST API pagination 2021-08-31 13:52:04 -04:00
Daniel Sheppard
c4c6fa6042 Fix misplacement of method for #7089 2021-08-31 11:41:50 -05:00
Daniel Sheppard
86da6c6c14 Fixes #7089 - Adds Q filter to ContentTypeFilterSet 2021-08-31 11:31:40 -05:00
jeremystretch
7b7b01a26b Changelog for #7075 2021-08-31 11:44:51 -04:00
jeremystretch
415313ac2f Fixes #7082: Avoid exception when referencing invalid content type in table 2021-08-31 11:43:44 -04:00
jeremystretch
7db2b9d091 Fixes #7072: Fix table configuration under prefix child object views 2021-08-31 11:15:41 -04:00
jeremystretch
8036d1e5a5 Fixes #7078: Restore styling on server error page 2021-08-31 09:50:24 -04:00
jeremystretch
65c9339687 Fixes #7083: Correct labeling for VM memory attribute 2021-08-31 09:44:59 -04:00
jeremystretch
3090981335 Fixes #7084: Fix KeyError exception when editing access VLAN on an interface 2021-08-31 09:44:59 -04:00
jeremystretch
4f36885c5e Fixes #7096: Home links should honor BASE_PATH configuration 2021-08-31 09:44:59 -04:00
thatmattlove
db2993035d Fixes #7075: Wrap label selectors in quotes to ensure IDs with spaces are properly selected 2021-08-30 17:48:33 -07:00
jeremystretch
bf05bc2986 #7070: Fix filterset test 2021-08-30 17:22:48 -04:00
jeremystretch
88b230f0e4 Fixes #7071: Fix exception when removing a primary IP from a device/VM 2021-08-30 16:55:31 -04:00
jeremystretch
deb53d771d Fixes #7070: Fix exception when filtering by prefix max length in UI 2021-08-30 16:51:07 -04:00
Jeremy Stretch
fd16c47d2e Merge pull request #7069 from netbox-community/develop
Release v3.0.0
2021-08-30 14:43:47 -04:00
jeremystretch
b78451742f Release v3.0.0 2021-08-30 14:22:00 -04:00
jeremystretch
6f23ab5603 Better copy/paste support for installation docs 2021-08-30 14:15:21 -04:00
thatmattlove
5e67627e6b Fix file input font-size 2021-08-30 11:09:44 -07:00
thatmattlove
19e77ed456 Pin Bootstrap 5 to 5.0.2 2021-08-30 11:02:47 -07:00
thatmattlove
ed0f792f04 Fixes #7068: Disable sourcemaps on CSS files, use external sourcemaps 2021-08-30 10:56:02 -07:00
thatmattlove
deda1691e9 Fixes #7066: Migrate division statements in Sass from / to math.div 2021-08-30 09:54:58 -07:00
thatmattlove
94d2ad120c Fixes #7066: Resolve dependency issue between TypeScript/ESLint 2021-08-30 09:54:06 -07:00
jeremystretch
ab1a5f32ef Update references to NAPALM in docs 2021-08-30 11:51:18 -04:00
jeremystretch
2a1de5e28c Delete extraneous v2.11 release notes 2021-08-30 11:35:06 -04:00
thatmattlove
f78fdd6900 Fixes #7063: Update security dependencies, move esbuild to devDependencies, update clipboard 2021-08-30 08:14:24 -07:00
jeremystretch
6b43eafcb4 Update UI screenshots 2021-08-30 10:52:11 -04:00
jeremystretch
844cd154b9 Update dependencies & release notes 2021-08-30 10:30:48 -04:00
Jeremy Stretch
e05fa5c302 Merge pull request #7061 from netbox-community/feature
v3.0 release prep
2021-08-30 10:16:56 -04:00
jeremystretch
f5f74944dd Merge branch 'develop' into feature 2021-08-30 10:05:12 -04:00
jeremystretch
556efcc1d7 Fixes #7045: Fix navigation menu rendering under Chrome 2021-08-30 09:56:05 -04:00
Matt Love
25d1fe2c8d Improve APISelect query parameter handling (#7040)
* Fixes #7035: Refactor APISelect query_param logic

* Add filter_fields to extras.ObjectVar & fix default value handling

* Update ObjectVar docs to reflect new filter_fields attribute

* Revert changes from 89b7f3f

* Maintain current `query_params` API for form fields, transform data structure in widget

* Revert changes from d0208d4
2021-08-30 09:43:32 -04:00
Oliver
b44ec35ade Close #7032
Add URM connector to the list of available types for front and rear ports.

There are URM-P2, URM-P4 and URM-P8 connectors available.
2021-08-27 20:27:26 +02:00
Jeremy Stretch
1a478150d6 Merge pull request #7050 from netbox-community/7034-vlangroup-scope-selectors
Fixes #7034: Update VLAN Scope parent selectors and run change handler on load
2021-08-27 11:42:23 -04:00
jeremystretch
e5643fb1e2 JS & changelog updates for #7034 2021-08-27 11:36:29 -04:00
jeremystretch
13e633778a Closes #7042: Show count of journal entries in tab under object view 2021-08-27 10:36:06 -04:00
jeremystretch
bb57600f0f Fixes #7019: Enable searching VM interfaces by description 2021-08-27 10:14:12 -04:00
jeremystretch
9813f3b696 Clean up custom script templates 2021-08-26 15:04:24 -04:00
jeremystretch
3203db07b7 UI cleanup 2021-08-26 14:48:24 -04:00
jeremystretch
94b8d36065 Introduce ContentTypesColumn for custom field and webhook tables 2021-08-26 12:55:37 -04:00
thatmattlove
0d61dcb1bc Fixes #7034: Update VLAN Scope parent selectors and run change handler on load 2021-08-26 00:11:58 -07:00
jeremystretch
58203dbcfa List device/VM component names first in tables by default 2021-08-25 15:18:00 -04:00
jeremystretch
66619cdc2f Clean up object edit forms 2021-08-25 15:03:19 -04:00
jeremystretch
99cba25108 Misc UI cleanup ahead of v3.0 release 2021-08-25 13:50:59 -04:00
jeremystretch
2fb1d388e3 Omit node 15.x from CI builds 2021-08-24 21:32:28 -04:00
Jeremy Stretch
6a4ed099fc Merge pull request #7031 from netbox-community/object-filter-forms
Object filter forms
2021-08-24 21:31:25 -04:00
jeremystretch
d184ed4712 Enable filtering device components by location 2021-08-24 21:10:30 -04:00
jeremystretch
125a562189 Fix RegionFilterForm model 2021-08-24 20:44:00 -04:00
Matt
a02ba5f7bb Fix incorrect classes in device config & status templates 2021-08-24 14:53:36 -07:00
Matt
2e90f22529 Clean up TypeScript file structure, fix missing VLAN tag visibility logic 2021-08-24 14:53:36 -07:00
jeremystretch
bd681f5908 Clean up object filter forms 2021-08-24 17:29:16 -04:00
jeremystretch
85b61c0b7e Bump django-timezone-field to 4.2.1 2021-08-24 15:52:04 -04:00
jeremystretch
d11ea67bdd Update design of user profile section 2021-08-24 15:24:03 -04:00
jeremystretch
52603c087b Remove unnecessary component creation templates 2021-08-24 14:51:12 -04:00
jeremystretch
545474a1a3 Clean up object edit forms 2021-08-24 13:59:54 -04:00
Jeremy Stretch
b63c838c74 Merge pull request #7024 from netbox-community/feature-precommit-ui
Run UI Lint, Type, and Formatting Checks in Pre-Commit and CI
2021-08-24 12:48:20 -04:00
Matt
1c6fdea27f Improve docs styling 2021-08-24 07:30:52 -07:00
Matt
9d0e6f0c30 Exclude node_modules from CI build 2021-08-24 06:40:00 -07:00
Matt
1d0c72f5fa Add UI checks to pre-commit and CI 2021-08-24 00:41:10 -07:00
Matt
c221b9b4d4 Add UI development docs & update front-end scripts 2021-08-24 00:30:04 -07:00
Matt
a0ba8380c9 Fix eslint misconfiguration and corresponding errors 2021-08-24 00:27:45 -07:00
Matt
82a209bc5b Remove screenshots from docs 2021-08-23 18:24:39 -07:00
jeremystretch
2a338110f2 Remove unused aggregate list template 2021-08-23 16:53:06 -04:00
jeremystretch
e890944160 Use badge template tag for numeric values 2021-08-23 16:47:08 -04:00
jeremystretch
542e01775e Merge branch 'develop' into feature 2021-08-23 15:46:22 -04:00
Jeremy Stretch
9cc4992fad Merge pull request #7018 from netbox-community/develop
Release v2.11.12
2021-08-23 15:36:04 -04:00
jeremystretch
6518d87200 Release v2.11.12 2021-08-23 15:16:42 -04:00
jeremystretch
499005f84d Merge branch 'develop' into feature 2021-08-23 13:23:39 -04:00
jeremystretch
8497965cf7 Fixes #6326: Enable filtering assigned VLANs by group in interface edit form 2021-08-23 12:49:32 -04:00
jeremystretch
0b0ab9277c Fixes #6776: Fix erroneous webhook dispatch on failure to save objects 2021-08-23 12:06:43 -04:00
jeremystretch
75c62ff729 Print request index after webhook data dump 2021-08-23 11:32:47 -04:00
Jeremy Stretch
aef8c5fbb5 Merge pull request #6965 from bluikko/poweroutlet-hardwired
Add hardwired PowerOutlet
2021-08-23 10:04:28 -04:00
jeremystretch
cfa4f5677b Fixes #7012: Fix hidden "add components" dropdown on devices list 2021-08-23 09:41:43 -04:00
jeremystretch
8131feae8a Closes #7011: Add search field to VM interfaces filter form 2021-08-23 09:36:05 -04:00
Matt
a3d5e04946 Fixes #6990: Fix query param and query filter handling in API select 2021-08-20 16:25:31 -07:00
jeremystretch
1fc3c6d9d2 Fixes #6974: Show contextual label for IP address role 2021-08-20 16:12:09 -04:00
jeremystretch
53a5bc2221 Fixes #6929: Introduce LOGIN_PERSISTENCE configuration parameter to persist user sessions 2021-08-20 16:06:37 -04:00
Matt
12f3c2596f Fixes #6966: Migrate to stock fonts 2021-08-20 12:57:41 -07:00
jeremystretch
87dad41c37 Tweak logo size on mobile 2021-08-20 15:21:26 -04:00
jeremystretch
4dbb18d408 Update change log 2021-08-20 15:20:55 -04:00
Matt
a7cb75d73d Fixes #6999: Properly align controls on sm and md breakpoints 2021-08-20 12:15:07 -07:00
Matt
517c0e2fe6 Fixes #6996: Make search bar full width on small screens 2021-08-20 08:54:00 -07:00
Matt
84db2e90ab Fixes #6998: Properly handle merge and replace actions in API Select 2021-08-20 08:41:30 -07:00
Matt
9d469874c0 #6881: Improve device IP address styles 2021-08-20 08:06:41 -07:00
jeremystretch
d850aa0773 Changelog for #6790 2021-08-20 09:17:53 -04:00
Jeremy Stretch
9baebfa241 Merge pull request #6790 from WillIrvine/issue-6632
Fixes #6632  - Allow a /32 prefix to contain a /32 ipaddress
2021-08-20 09:16:05 -04:00
Matt
9e1d2da449 Fixes #7001: Focus the main content container when the page loads 2021-08-19 14:13:54 -07:00
Matt
a71604e79f Closes #6881: Wrap interface IP addresses in a badge that displays status and/or role 2021-08-19 12:35:30 -07:00
Matt
9a8d33e6bf Fixes #6979: Don't show 'Create & Add Another' button when editing/creating a circuit 2021-08-18 16:49:15 -07:00
Matt
09d745d987 Fixes #6976: Improve handling of printing layouts/styling 2021-08-18 16:17:50 -07:00
Matt
8199bb6b62 Fixes: #6982: Remove inherited background-color on disabled options 2021-08-18 14:57:42 -07:00
Matt
643939ea1e Rebundle scripts after rebase 2021-08-18 14:53:28 -07:00
Matt
9b3498d87a Add visibility toggle for object depth indicators 2021-08-18 14:51:49 -07:00
Matt
e4a162b054 Improve prefix hierarchy/depth styling 2021-08-18 14:51:36 -07:00
jeremystretch
bd47d0850e Changelog for #6856 2021-08-18 14:38:30 -04:00
jeremystretch
be3b4f0d3e #6856: Remove ?limit=0 from API queries 2021-08-18 14:35:12 -04:00
Matt
664b02d735 Fixes #6856: Properly handle existence of next property in API select responses 2021-08-17 16:50:29 -07:00
jeremystretch
6d1b981ecb Closes #6975: Reduce footer height 2021-08-17 12:02:30 -04:00
jeremystretch
ac6b1bf422 Fixes #6977: Truncate global search dropdown on small screens 2021-08-17 11:49:32 -04:00
jeremystretch
10847e2956 Optimize addition/removal of default custom field values 2021-08-16 14:48:56 -04:00
jeremystretch
9b0258fef4 Fixes #6686: Force assignment of null custom field values to objects 2021-08-16 14:38:06 -04:00
jeremystretch
5b89cdc868 Fixes #5968: Model forms should save empty custom field values as null 2021-08-16 13:45:46 -04:00
bluikko
5a8cedd63f Add hardwired PowerOutlet 2021-08-16 11:30:13 +07:00
jeremystretch
3feba2997f Closes #6872: Add table configuration button to child prefixes view 2021-08-13 15:56:14 -04:00
jeremystretch
fce419526d Closes #6748: Add site group filter to devices list 2021-08-13 15:26:06 -04:00
jeremystretch
e8fb86a283 Release v3.0-beta2 2021-08-13 14:19:43 -04:00
jeremystretch
90a820e0cf Add "clear all" option for applied filters 2021-08-13 13:50:11 -04:00
jeremystretch
9f59f99663 Set max width for object edit forms 2021-08-13 13:35:23 -04:00
jeremystretch
a6150f2578 Remove select widget hover effect 2021-08-13 11:31:51 -04:00
jeremystretch
b784705cd3 Tweak nav submenu heading color 2021-08-13 11:20:00 -04:00
jeremystretch
0609bcaaf0 Reduce base font size 2021-08-13 11:17:37 -04:00
jeremystretch
7727ec91f4 #6934: Correct prefix utilization and available IP reporting to account for child IP ranges 2021-08-13 10:43:25 -04:00
jeremystretch
5365c866ff #6934: Account for child IP ranges when calculating prefix utilization 2021-08-13 10:33:58 -04:00
jeremystretch
e1fbe89b41 Reduce form text size 2021-08-13 09:56:06 -04:00
jeremystretch
a72e23eddf Fix custom script layout 2021-08-13 09:43:23 -04:00
jeremystretch
dcd49fd97b Fixes #6953: Remove change log tab from non-applicable object views 2021-08-13 09:13:09 -04:00
Jeremy Stretch
1b074d2d53 Merge pull request #6933 from netbox-community/6912-static-resources
Fixes #6912: Fix static asset references when BASE_PATH is in use
2021-08-12 15:15:18 -04:00
jeremystretch
aed07a8ec5 Merge v2.11.11 2021-08-12 11:51:04 -04:00
jeremystretch
1b12185a39 PRVB 2021-08-12 11:47:59 -04:00
Jeremy Stretch
2e895c734e Merge pull request #6947 from netbox-community/develop
Release v2.11.11
2021-08-12 11:44:51 -04:00
Jeremy Stretch
11a9dc57fc Merge branch 'master' into develop 2021-08-12 11:31:29 -04:00
jeremystretch
badd92a50e Update GitHub issue templates 2021-08-12 11:28:55 -04:00
jeremystretch
b2faf8044d Release v2.11.11 2021-08-12 11:22:57 -04:00
jeremystretch
3105e9545a Fixes #6918: Fix return URL persistence when adding multiple objects sequentially 2021-08-12 10:12:42 -04:00
jeremystretch
42c71984f9 Fixes #6896: Fix validation of IP address assigned as device/VM primary via NAT relation 2021-08-11 21:15:45 -04:00
jeremystretch
736da4bcad Merge branch 'develop' into feature 2021-08-10 21:03:10 -04:00
jeremystretch
db359719a9 Closes #6921: Employ a sandbox when rendering Jinja2 code for increased security 2021-08-10 20:52:45 -04:00
jeremystretch
7bceeb714b Fixes #6935: Remove extraneous columns from inventory item and device bay tables 2021-08-10 20:35:39 -04:00
jeremystretch
35b8fc6e83 Fixes #6936: Add missing parent column to inventory item import form 2021-08-10 20:24:57 -04:00
jeremystretch
6d27e11043 #6934: Include child IP ranges under prefix view 2021-08-10 16:26:14 -04:00
jeremystretch
b8e387ce98 #6912: Remove absolute publicPath reference 2021-08-10 14:03:07 -04:00
jeremystretch
c7ebad0fbb Closes #6931: Include applied filters on object list view 2021-08-10 13:11:35 -04:00
jeremystretch
1bb596fc7e Fixes #6908: Allow assignment of scope to VLAN groups upon import 2021-08-09 09:54:27 -04:00
jeremystretch
7bcebd5b0f Fixes #6910: Fix exception on invalid CSV import column name 2021-08-09 09:20:22 -04:00
jeremystretch
a8b6902829 Fixes #6909: Remove extraneous site column from VLAN group import form 2021-08-09 09:17:08 -04:00
Jeremy Stretch
71e6dc8275 Merge pull request #6920 from candlerb/candlerb/6919
Change example ADMINS to show a tuple
2021-08-09 08:56:44 -04:00
Jeremy Stretch
564640213e Merge pull request #6915 from candlerb/candlerb/libpq-dev
Documentation consistency on installation of libpq-dev(el)
2021-08-09 08:51:54 -04:00
Brian Candler
b04f262642 Change example ADMINS to show a tuple
Fixes #6919
2021-08-09 07:37:46 +01:00
Brian Candler
b802127801 Documentation consistency on installation of libpq-dev(el) 2021-08-08 10:19:30 +01:00
Matt
6845fb0f00 Improve object view on small screens 2021-08-06 17:56:38 -07:00
Matt
a312311be9 Improve sidenav link styles 2021-08-06 17:46:49 -07:00
Jeremy Stretch
fe54acef51 v3.0 nav menu tweaks (#6906)
* Clean up nav menu spacing & link colors

* Shrink NetBox icon & collapsed sidebar

* Fix gap between scrollbar and righthand window border
2021-08-06 17:43:02 -04:00
jeremystretch
ef057b3e45 Fix footer fonts 2021-08-06 16:49:17 -04:00
jeremystretch
84ab233571 Fix wrapping of table controls on device interfaces view 2021-08-06 16:40:00 -04:00
jeremystretch
cf381d732d Use red border for confirmation dialog 2021-08-06 16:19:21 -04:00
jeremystretch
8653b0f3d0 Tabify object add/edit views 2021-08-06 16:16:19 -04:00
jeremystretch
65659fb676 Badges use secondary BG by default; add custom option 2021-08-06 15:41:26 -04:00
Jeremy Stretch
939bcfec4b Improve object list layout (#6907)
* Split object list and filters into tabs

* Use object_list template for connections, rack elevations

* Include custom field filters in grouped filter form

* Annotate number of applied filters on tab

* Rearrange table controls
2021-08-06 15:35:14 -04:00
jeremystretch
6ce8dd5ac3 Closes #6823: Improve table configuration form layout 2021-08-06 12:46:57 -04:00
jeremystretch
63f4d81bc0 Remove errant buttons block from cable view 2021-08-06 12:33:21 -04:00
jeremystretch
d0fbbbfb37 Merge branch 'develop' into feature 2021-08-06 10:06:52 -04:00
jeremystretch
f23dc2d405 Fixes #6902: Populate device field when cloning device components 2021-08-06 09:55:47 -04:00
jeremystretch
34aa231436 Closes #6899: Add filterset tests for Token 2021-08-06 09:41:49 -04:00
jeremystretch
51d1b6e0d6 Fixes #6901: Correct example REST API request 2021-08-06 08:39:57 -04:00
jeremystretch
7c8612aadd Update application architecture diagram 2021-08-05 15:51:24 -04:00
Joel McGuire
d347b97f20 Fixes #6887 Add Examples in the Lookup Expression Docs (#6898)
Fixes #6887 Add Examples in the Lookup Expression Docs

Co-authored-by: joel <joelmcguire@email.arizona.edu>
2021-08-05 13:28:32 -04:00
jeremystretch
42b961229f Fixes #6894: Fix available IP generation for prefix assigned to a VRF 2021-08-05 13:23:14 -04:00
Matt
79f726e6cd #6797: Fix various mobile layout issues 2021-08-05 09:59:13 -07:00
Matt
31cd6898d4 #6797: Fix search result layout on small screens when there are no results 2021-08-05 09:40:02 -07:00
Matt
7608ee8450 #6797: Fix initial sidenav handling on smaller screens 2021-08-05 09:35:36 -07:00
Matt
da67a35328 #6797: Automatically collapse inactive sections in the sidenav 2021-08-05 09:28:25 -07:00
jeremystretch
46d0af6cef Fixes #6892: Fix validation of unit ranges when creating a rack reservation 2021-08-05 11:12:08 -04:00
Matt
0ea9c65007 Add common Bootstrap components to window so they can be consumed by plugins 2021-08-04 23:46:34 -07:00
jeremystretch
57dc4c207f Fixes #6832: Support config context rendering under GraphQL API 2021-08-04 15:55:55 -04:00
Matt
582b69de74 #6797: Improve object edit form field layout 2021-08-04 10:57:01 -07:00
Matt
0cf9be2a8d Remove deprecated advanced search template 2021-08-04 10:41:43 -07:00
Matt
0bf39590e3 #6797: Fix object list layout when there is no filter form 2021-08-04 10:40:39 -07:00
Matt
2debeb7475 #6797: Fix empty filter panels 2021-08-04 10:37:59 -07:00
jeremystretch
ee8fd701ae Changelog for #6883 2021-08-04 13:26:53 -04:00
Jeremy Stretch
9379324b07 Merge pull request #6885 from bellwood/6883_add_power_outlet_port_c21_c22
Add power outlet/port choice for C21/C22
2021-08-04 12:59:21 -04:00
Brian Ellwood
55cdbd57cc Add power outlet/port choice for C21/C22
Resolves #6883
2021-08-04 12:06:39 -04:00
jeremystretch
11836cdfb1 Fixes #6871: Support dynamic tag types in GraphQL API 2021-08-03 16:29:34 -04:00
Jeremy Stretch
c411d2a9f1 Merge pull request #6873 from netbox-community/6829-graphql-reverse-relations
Closes #6829: GraphQL reverse generic relations
2021-08-03 16:22:45 -04:00
jeremystretch
1b612816cc Merge branch 'feature' into 6829-graphql-reverse-relations 2021-08-03 16:05:31 -04:00
Matt
051abc00c4 Fix bulk_import button class in test view after naming change in e8ba4b0 2021-08-03 12:43:28 -07:00
Matt
f7ee5e8d78 Fix button class in test view after naming change in e8ba4b0 2021-08-03 12:06:13 -07:00
jeremystretch
cc26bc4858 Changelog for #6829 2021-08-03 14:56:22 -04:00
jeremystretch
88d2441ab3 Add changelog GraphQL relation for changelogged models 2021-08-03 14:51:56 -04:00
Matt
6842879985 #6797: Improve object view styling & responsiveness 2021-08-03 11:41:46 -07:00
jeremystretch
1518a460d5 Rename base Graphene types to match base models 2021-08-03 14:37:39 -04:00
jeremystretch
ea86321da8 Add journal_entries to Graphene object types for all primary models 2021-08-03 13:58:08 -04:00
jeremystretch
c416fce400 Refactor base Graphene object types 2021-08-03 13:49:12 -04:00
Matt
ae28df8abd #6797: Place custom links below native controls 2021-08-03 10:25:27 -07:00
Matt
e8ba4b0564 #6797: Improve controls & custom link styling 2021-08-03 10:21:06 -07:00
Matt
53e21ceed4 #6797: Improve global search styles 2021-08-03 09:19:24 -07:00
jeremystretch
735286d3b0 Add vlan_groups to Region, SiteGroup, Site, Location, Rack, ClusterGroup, Cluster 2021-08-03 11:49:22 -04:00
jeremystretch
8ad958708f Add image_attachments to Device, Location, Rack, Site 2021-08-03 11:38:18 -04:00
Matt
58862e115c Closes #6863: Add search fields back to filter forms 2021-08-03 08:32:53 -07:00
jeremystretch
0df67dbc12 Add ip_addresses relation on InterfaceType, VMInterfaceType 2021-08-03 11:27:14 -04:00
thatmattlove
8bdfa34c7d Merge branch 'feature-object-filter' into feature 2021-08-03 06:57:54 -07:00
thatmattlove
06c730f4dc Merge branch 'feature' into feature-object-filter
# Conflicts:
#	netbox/project-static/dist/netbox-dark.css
#	netbox/project-static/dist/netbox-light.css
#	netbox/project-static/styles/netbox.scss
#	netbox/project-static/styles/select.scss
2021-08-03 06:57:22 -07:00
checktheroads
afc8d5bbbf Fix PEP8 formatting error 2021-08-02 02:31:30 -07:00
checktheroads
1de46f592c Various styling improvements 2021-08-02 02:18:31 -07:00
checktheroads
863048cda2 Deprecate collapsible advanced search and re-implement field-based filtering on object views 2021-08-01 21:24:22 -07:00
checktheroads
0b09365d0d #6797: Improve form error/django messages handling 2021-08-01 13:30:16 -07:00
checktheroads
8e3ab8d5c5 #6797: Improve global bg/color transition 2021-08-01 12:01:40 -07:00
checktheroads
9cf560ceec #6797: Improve table highlight, toast, and alert styling 2021-08-01 11:53:35 -07:00
checktheroads
c3a75d98d4 #6797: Improve sidenav state handling before load 2021-08-01 11:12:07 -07:00
checktheroads
261372289a #6797: Fix sidenav jumpy/glitchy behavior on page reload when pinned 2021-08-01 00:27:27 -07:00
checktheroads
b86edd4a20 #6797: Improve sidenav parent link color 2021-08-01 00:02:20 -07:00
checktheroads
374cf146e2 #6797: Fix login page layout issue 2021-07-31 23:56:56 -07:00
checktheroads
08ed545065 Closes #6855: Bundle and locally serve GraphiQL JS/CSS 2021-07-31 23:49:48 -07:00
checktheroads
80836c725c Fix navigation_menu typing & dataclass property defaults 2021-07-31 22:16:04 -07:00
Jeremy Stretch
9fa2acfe85 Merge pull request #6847 from netbox-community/6834-graphiql-ui
Closes #6834: Customize GraphiQL view
2021-07-30 15:23:59 -04:00
jeremystretch
3ba122afd4 Merge feature 2021-07-30 15:13:55 -04:00
jeremystretch
76df55dfc0 Fixes #6740: Add import button to VM interfaces list 2021-07-30 10:28:56 -04:00
Jeremy Stretch
49a949aa97 Merge pull request #6836 from Ursadon/patch-1
Escaping angle brackets in a device config file
2021-07-30 10:09:04 -04:00
checktheroads
5413263eff #6797: Properly update API select query parameters when values already exist on the element 2021-07-30 01:25:29 -07:00
checktheroads
772c76e0a4 #6797: Don't show depth indicator in API select placeholder 2021-07-30 01:03:26 -07:00
checktheroads
5463fa7390 Closes #6808: Determine option disabled status via disabled-indicator attribute 2021-07-30 00:56:54 -07:00
checktheroads
d18c83beb0 #6828: Fix various mobile UI issues 2021-07-30 00:35:38 -07:00
checktheroads
7aa89c2e73 #6797: Fix new sidenav styles 2021-07-29 18:11:48 -07:00
checktheroads
007d660ce1 Merge branch 'feature-sidebar' into feature
# Conflicts:
#	netbox/project-static/dist/netbox.js
#	netbox/project-static/dist/netbox.js.map
2021-07-29 17:39:07 -07:00
checktheroads
3752cb3e56 #6797: Implement new sidebar 2021-07-29 17:33:10 -07:00
jeremystretch
cdf8d91e1b #6797: Fit device type images to available space 2021-07-29 15:19:42 -04:00
jeremystretch
d082442851 Update REST API web UI title 2021-07-29 15:06:09 -04:00
jeremystretch
689f67b1a8 #6834: Add favicon to REST API web UI 2021-07-29 15:02:52 -04:00
jeremystretch
744f47cb98 Fixes #6846: Form-driven REST API calls should use brief mode 2021-07-29 14:50:30 -04:00
jeremystretch
81e1b7490e #6834: Add title, favicon to GraphiQL view 2021-07-29 13:48:06 -04:00
jeremystretch
22d160b1da Fix display of circuit termination provider network 2021-07-29 11:14:12 -04:00
jeremystretch
c323105696 Fixes #6827: Restore circuit termination connection dropdown 2021-07-29 11:08:15 -04:00
jeremystretch
f6746c7530 Clean up cable connection form 2021-07-29 10:48:12 -04:00
jeremystretch
52c4d54481 Clean up cable trace view 2021-07-29 10:08:43 -04:00
jeremystretch
4c3f584fa6 Fix trace component borders 2021-07-29 09:59:01 -04:00
jeremystretch
2e7d912bdd #6797: Add cable type, length to SVG trace 2021-07-29 09:49:31 -04:00
jeremystretch
288bf477ce Bump GitHub stale action to v4.0 2021-07-29 09:07:23 -04:00
Ursadon
27f3816fc6 Escaping angle brackets in a device config file
The configuration file may contain brackets (">" or "<"), which must be escaped
2021-07-29 15:45:32 +07:00
jeremystretch
33d40d4253 #6797: Improve utilization graph display for small values 2021-07-28 16:42:44 -04:00
jeremystretch
c7e0abc3fb Merge v2.11.10 2021-07-28 16:26:04 -04:00
jeremystretch
18a4232783 PRVB 2021-07-28 16:00:38 -04:00
Jeremy Stretch
15ed575207 Merge pull request #6830 from netbox-community/develop
Release v2.11.10
2021-07-28 15:56:23 -04:00
jeremystretch
eae4502708 Release v2.11.10 2021-07-28 15:17:45 -04:00
jeremystretch
78ebf04be0 Shrink NetBox logo on docs main page 2021-07-28 15:12:17 -04:00
jeremystretch
49a596073e Tweak GitHub repo icon & name in docs 2021-07-28 15:07:46 -04:00
jeremystretch
95783cc128 Closes #6644: Add 6P/4P pass-through port types 2021-07-28 11:54:25 -04:00
jeremystretch
8d9d3a9e7d Changelog and cleanup for #6560 2021-07-28 11:44:13 -04:00
Jeremy Stretch
ea0de4b01d Merge pull request #6561 from abigley/csv_feature
CSV file import
2021-07-28 10:48:30 -04:00
jeremystretch
72aaf76cf4 Closes #6702: Update reference nginx config to support IPv6 2021-07-28 10:31:59 -04:00
jeremystretch
78e282d406 Fixes #6771: Add count of inventory items to manufacturer view 2021-07-28 10:25:52 -04:00
jeremystretch
0c214932ba Fixes #6812: Limit reported prefix utilization to 100% 2021-07-28 09:55:40 -04:00
jeremystretch
a1eb4dc807 Fixes #5627: Fix filtering of interface connections list 2021-07-27 16:21:56 -04:00
jeremystretch
e92f13977c Changelog for #6785 2021-07-27 16:17:59 -04:00
Jeremy Stretch
5db283700f Merge pull request #6789 from bellwood/patch-1
Add AC Hardwire option to PowerPortTypeChoices
2021-07-27 16:14:01 -04:00
Jeremy Stretch
6e79e5608e Merge pull request #6810 from tamaszl/patch-1
Update 6-ldap.md - AUTH_LDAP_USER_DN_TEMPLATE to none for windows 2012+
2021-07-27 16:12:36 -04:00
jeremystretch
8355270a1a Fixes #6822: Use consistent maximum value for interface MTU 2021-07-27 16:04:51 -04:00
checktheroads
5a8835f41a Merge branch 'feature' into feature-sidebar 2021-07-26 14:47:31 -07:00
checktheroads
2d32aeb972 Migrate to collapsed sidebar layout 2021-07-26 14:46:05 -07:00
Brian Ellwood
1c38d63c50 Update choices.py 2021-07-26 15:03:43 -04:00
bluikko
4f6944424b Add dev server firewall configuration for EL distros (#6772)
* Add dev server firewall configuration for EL distros

* Fix typo in previous

* Indent the firewall block in install docs
2021-07-26 13:26:46 -04:00
jeremystretch
fc01bedd45 Fixes #6811: Fix exception when editing users 2021-07-26 09:37:58 -04:00
tamaszl
7ab916b527 Update 6-ldap.md - AUTH_LDAP_USER_DN_TEMPLATE to none for windows 2012+
changed     When using Windows Server 2012, `AUTH_LDAP_USER_DN_TEMPLATE` should be set to None.
to Windows Server 2012+
2021-07-25 18:44:21 -07:00
checktheroads
51c1f4b214 #6797: Make default border-radius less rounded 2021-07-24 18:13:08 -07:00
checktheroads
0b80d85c6c #6797: Fix API select styles 2021-07-24 18:11:01 -07:00
checktheroads
4489e130f2 #6797: Fix toast header style 2021-07-24 17:23:37 -07:00
checktheroads
e1cc00ad17 #6797: Fix <small/> element font-size 2021-07-24 17:19:47 -07:00
checktheroads
49191261a1 #6797: Fix incorrect color select label color 2021-07-24 17:13:02 -07:00
checktheroads
0479d5a02a #6797: Improve toast styles 2021-07-24 17:08:18 -07:00
checktheroads
189e733f81 #6797: Fix color flashing when server mode doesn't match select mode or client preference 2021-07-24 10:31:46 -07:00
checktheroads
bf2d535356 Fix incorrect rack elevation file name regression from 0572d03 2021-07-24 01:40:23 -07:00
checktheroads
05cfdd0b69 #6797: Fix search result layout 2021-07-24 01:21:14 -07:00
checktheroads
a60e8d3e12 #6797: Fix Safari anchor element styling issue 2021-07-24 01:07:53 -07:00
checktheroads
7b3d285884 #6797: Fix alert coloring in dark mode 2021-07-24 00:59:11 -07:00
checktheroads
5ba053a1c0 #6797: Fix duplicate ID on searchbar fields 2021-07-24 00:41:49 -07:00
checktheroads
7d5f647cd3 #6797: Improve home page shading 2021-07-24 00:38:28 -07:00
checktheroads
0572d03003 Migrate from ParcelJS to esbuild for UI bundling 2021-07-24 00:00:38 -07:00
jeremystretch
f25649955e Exclude NPM files from git (v3.0+) 2021-07-23 13:45:56 -04:00
jeremystretch
04d6a4a371 Introduce "adding models" section to development docs 2021-07-23 13:43:33 -04:00
jeremystretch
a8140d1f70 Closes #6781: Disable database query caching by default 2021-07-23 11:34:24 -04:00
jeremystretch
d1af15037c Fixes #6759: Fix assignment of parent interfaces for bulk import 2021-07-23 11:24:32 -04:00
jeremystretch
cca76550d6 Fixes #6794: Fix device name display on device status view 2021-07-23 11:18:50 -04:00
jeremystretch
2ff3d0d5a2 Fixes #6774: Fix A/Z assignment when swapping circuit terminations 2021-07-23 11:13:21 -04:00
jeremystretch
cb804eb3e1 Release v3.0-beta1 2021-07-23 08:13:07 -04:00
jeremystretch
878288fbec Merge branch 'develop' into feature 2021-07-23 08:02:21 -04:00
Jeremy Stretch
407f05629a Merge pull request #6786 from netbox-community/nav-menu-plugins
Refactor navigation menu to support plugin items
2021-07-23 08:00:13 -04:00
WillIrvine
ffae2c5f18 Fixes #6632 2021-07-23 11:08:41 +12:00
Brian Ellwood
e300fad340 Add AC Hardwire option to PowerPortTypeChoices
Resolves FR #6785
2021-07-22 19:04:34 -04:00
jeremystretch
8898d3b558 Update installation docs 2021-07-22 16:38:35 -04:00
jeremystretch
53c29b65bd Prep for v3.0-beta1 2021-07-22 15:07:45 -04:00
jeremystretch
8e7bcd95a4 Update release notes for v3.0 2021-07-22 14:25:30 -04:00
jeremystretch
84479925bf Shrink & center form section titles 2021-07-22 12:31:50 -04:00
jeremystretch
7bfc66e218 Fix help button height on object edit forms 2021-07-22 11:58:47 -04:00
jeremystretch
309247d487 Resize logo 2021-07-22 11:51:11 -04:00
jeremystretch
081054e08c Add missing plugin content injection tags 2021-07-22 11:40:55 -04:00
jeremystretch
adda8c4642 Tweak menu items order 2021-07-22 11:30:50 -04:00
jeremystretch
a0b17e145b Clean up nav menu template 2021-07-22 10:29:21 -04:00
jeremystretch
3f0b355717 Fix typo 2021-07-22 10:26:57 -04:00
jeremystretch
6b09c139e7 Refactor navigation menu 2021-07-22 10:21:39 -04:00
jeremystretch
03b20b00b4 Shade background of home view 2021-07-22 08:14:17 -04:00
Jeremy Stretch
108305a3e3 Merge pull request #6779 from netbox-community/jstretch-ui-work
Pending UI work for v3.0 beta
2021-07-22 08:10:44 -04:00
checktheroads
ae4f4b052e Minor theme improvements 2021-07-21 15:33:07 -07:00
jeremystretch
a038e8bba4 Fixes #6777: Fix default value validation for custom text fields 2021-07-21 16:02:32 -04:00
jeremystretch
33e825e91e Fixes #6780: Include rack location in navigation breadcrumbs 2021-07-21 15:49:01 -04:00
jeremystretch
c5e74635dd Fixes #6778: Rack reservation should display rack's location 2021-07-21 15:44:14 -04:00
jeremystretch
7be684835b Introduce an inclusion template for object comments 2021-07-21 14:20:14 -04:00
jeremystretch
a9930bd442 Optimize display of ConfigContext assigned objects 2021-07-21 14:11:42 -04:00
jeremystretch
19eafef41e General UI cleanup 2021-07-21 12:06:43 -04:00
jeremystretch
d42138384f Use shaded tabs 2021-07-21 10:13:30 -04:00
jeremystretch
ebe7779f40 Use button role names instead of color shades 2021-07-20 21:21:03 -04:00
jeremystretch
347ea4ca98 Tweak object list sizing, alignment 2021-07-20 21:16:36 -04:00
jeremystretch
f2f9c926bb Fix row header 2021-07-20 21:09:13 -04:00
checktheroads
5e1156abe2 Use display field for all API-backed select options 2021-07-20 14:17:12 -07:00
jeremystretch
803f9b6913 Merge branch 'develop' into feature 2021-07-20 17:06:18 -04:00
jeremystretch
61fe0e81cd Fixes #6773: Add missing display field to rack unit serializer 2021-07-20 17:00:13 -04:00
jeremystretch
4c31b611b1 Fix form layout for services 2021-07-20 16:51:21 -04:00
jeremystretch
b3909e62f0 Add help text for custom links 2021-07-20 16:51:21 -04:00
jeremystretch
74e0d0396a Fix breadcrumbs display for object changes 2021-07-20 16:51:21 -04:00
checktheroads
dd58ef1de5 Use 'brief=true' query parameter on API calls from API-backed select elements 2021-07-20 13:38:24 -07:00
jeremystretch
7eef726ee1 Fix filtering for platforms, tenant groups 2021-07-20 15:39:58 -04:00
jeremystretch
c0bf1576c2 Layout improvements 2021-07-20 15:30:49 -04:00
jeremystretch
e4c668c252 Split bulk edit content into tabs 2021-07-20 15:16:41 -04:00
jeremystretch
3f4e3f5f84 Fix device type buttons 2021-07-20 14:36:10 -04:00
jeremystretch
30f4eb8da0 Shrink circuit termination buttons; linkify far end termination 2021-07-20 14:01:42 -04:00
jeremystretch
328092f0ef Right-align form field labels 2021-07-20 13:55:15 -04:00
jeremystretch
a5dda0705e Standardize button colors 2021-07-20 13:46:59 -04:00
jeremystretch
ba3552b697 Tweak form widths 2021-07-20 13:21:09 -04:00
jeremystretch
b59c1c693d Restore missing created/updated times for object views 2021-07-20 13:07:18 -04:00
jeremystretch
856956afce Standardize object breadcrumbs 2021-07-20 12:14:01 -04:00
jeremystretch
d938b6621d Add missing nav menu link for rack reservations 2021-07-20 11:36:37 -04:00
jeremystretch
cc5ea61f5a Add top & bottom banners, maintenance notice 2021-07-20 11:05:19 -04:00
jeremystretch
fa617c78af Update sidebar footer links 2021-07-20 10:54:46 -04:00
checktheroads
f671b7e5e2 #6372: Improve form field styles 2021-07-20 01:26:45 -07:00
checktheroads
09066a4c6c #6372: Fix regression from 1661d1f causing API select query delays 2021-07-20 00:36:55 -07:00
checktheroads
07f34c2675 #6372: Migrate away from form-floating field styles 2021-07-20 00:16:13 -07:00
checktheroads
2b9326d75e #6372: Improve search filter dropdown styles 2021-07-19 22:11:41 -07:00
checktheroads
91246b0f81 Add icons to home stat cards 2021-07-19 22:01:05 -07:00
checktheroads
5ec0ad6913 #6372: Integrate changes from c14b546 to IP ranges form 2021-07-19 16:44:08 -07:00
checktheroads
64e6dcb23c #6372: Improve form styling 2021-07-19 16:39:16 -07:00
checktheroads
1661d1f4ca #6372: Fix query issues with & refactor API select 2021-07-19 16:39:16 -07:00
checktheroads
e3008babfe #6372: Fix static select class regression from 08f0a5d 2021-07-19 16:39:16 -07:00
checktheroads
cdc9753009 #6372: Fix bulk form action form handling 2021-07-19 16:39:16 -07:00
checktheroads
29e41e8e2b #6372: Fix sidenav active item shadow 2021-07-19 16:39:16 -07:00
checktheroads
a2158af385 #6372: Add front end error logs to gitignore 2021-07-19 16:39:16 -07:00
checktheroads
c14b546d5f #6372: Refactor Select2 naming 2021-07-19 16:39:16 -07:00
jeremystretch
29ee3e5ac0 Clean up home view stats 2021-07-19 16:57:35 -04:00
jeremystretch
011f35164a Replace changelog template code with table in home view 2021-07-19 16:46:12 -04:00
jeremystretch
47ef8b9cac Upgrade script now looks for Python path as env var 2021-07-19 15:13:30 -04:00
Jeremy Stretch
7058d6ca5a Closes #6328: Local docs build (#6769)
* Incorporate local documentation build in upgrade script

* Add docs build to CI

* Include docs build path in revision control

* Update footer dcos link

* Changelog for #6328

* Clean up errant links
2021-07-19 14:18:08 -04:00
jeremystretch
8592e0af54 Remove cache invalidation from upgrade script 2021-07-19 13:15:27 -04:00
jeremystretch
ae6b2be52c Call out dependency on v2.11+ for upgrades 2021-07-19 11:27:00 -04:00
jeremystretch
31e41f8f02 Closes #6767: Add support for Python 3.9 2021-07-19 10:43:52 -04:00
jeremystretch
717724c9f6 Update release notes 2021-07-19 10:03:42 -04:00
Jeremy Stretch
3cfb0bacf4 Merge pull request #6760 from netbox-community/834-ip-ranges
Closes #834: Add support for IP ranges
2021-07-19 09:47:19 -04:00
jeremystretch
0fe1a426c0 Add available IPs REST API endpoint for IP ranges 2021-07-19 09:32:04 -04:00
checktheroads
0503825f7b #6372: Improve sidebar footer links layout 2021-07-17 13:07:47 -07:00
checktheroads
858d12969a #6372: Migrate back to BS5 native colors, clean up rack/cable bundle process 2021-07-17 12:51:40 -07:00
jeremystretch
443172197b Fix SVG rendering with unspecified width 2021-07-16 17:09:52 -04:00
jeremystretch
05d16b0682 Add changelog for #6000 2021-07-16 17:07:42 -04:00
jeremystretch
8cf9f0d5bc Support specification of image width when rendering cable traces as SVG 2021-07-16 17:06:27 -04:00
Jeremy Stretch
2bfdaf08ee Merge pull request #6755 from netbox-community/6000-cable-trace-svg
Closes #6000: SVG rendering for cable tracing
2021-07-16 16:56:17 -04:00
jeremystretch
145be09cfd Merge branch 'feature' into 6000-cable-trace-svg 2021-07-16 16:46:32 -04:00
jeremystretch
747c065213 Move available IP/prefix endpoints to API view mixins 2021-07-16 14:48:42 -04:00
jeremystretch
8d8ac70070 Add IP range documentation 2021-07-16 13:48:57 -04:00
jeremystretch
11a14927c9 Initial work on IP ranges 2021-07-16 13:35:52 -04:00
jeremystretch
c5178fd90e Extend foreground_color() utility to support custom dark/light colors 2021-07-15 13:59:14 -04:00
jeremystretch
89662124e5 Clean up SVG image styling 2021-07-15 13:54:49 -04:00
checktheroads
337f95e269 #6372: Fix rack spacing 2021-07-15 00:56:26 -07:00
checktheroads
8614b1c74a #6372: Fix previous/next rack elevation buttons 2021-07-15 00:47:01 -07:00
checktheroads
e72982a7f8 #6372: Fix nav menu scrolling and styling 2021-07-15 00:32:28 -07:00
checktheroads
a16098d548 #6372: Fix additional bulk action button layouts 2021-07-15 00:31:12 -07:00
checktheroads
cc3bd8833a #6372: Fix missing new release alert 2021-07-14 17:55:01 -07:00
checktheroads
ab6523af3f #6372: Remove empty footer div 2021-07-14 17:19:39 -07:00
checktheroads
af92417131 #6372: Improve bulk action button layout/styling 2021-07-14 17:14:00 -07:00
checktheroads
ae5c2d49c6 #6372: Simplify & streamline table config & table filter elements 2021-07-14 16:25:59 -07:00
jeremystretch
8b571912cf Add SVG trace support for ProviderNetwork attachments 2021-07-14 15:55:18 -04:00
jeremystretch
9f615cde79 Replace CSS-based cable trace diagrams with SVG images 2021-07-14 15:29:04 -04:00
jeremystretch
ce7fa95546 Initial work on SVG support for cable tracing 2021-07-14 14:14:56 -04:00
jeremystretch
dd0489c1c5 Closes #6753: Add plugin removal instructions to the docs 2021-07-14 10:43:18 -04:00
jeremystretch
ab5a763d93 Updated issue staling timers 2021-07-14 10:23:31 -04:00
checktheroads
7449ea28a5 #6372: Remove extra search box from object change log 2021-07-13 09:23:34 -07:00
checktheroads
fa6661e4ae Merge branch 'feature' of github.com:netbox-community/netbox into feature 2021-07-13 09:17:58 -07:00
checktheroads
bfb1b6ac0a #6372: Implement table-flush styling, improve changelog layout 2021-07-13 09:14:57 -07:00
checktheroads
6b88ed0321 #6372: Clean up project-static directory structure 2021-07-12 15:21:20 -07:00
jeremystretch
faa993acfb Use non-card tables for all tabbed views 2021-07-12 15:36:51 -04:00
jeremystretch
fbcdae9a6b Fix "Select all" boxes for object lists 2021-07-12 15:19:07 -04:00
jeremystretch
12e1681d31 Fix active tab display for prefixes 2021-07-12 14:56:00 -04:00
jeremystretch
4225e28a4b Move changelog table out of card 2021-07-12 12:12:06 -04:00
jeremystretch
23be5694d0 Move device/VM component tables outside of cards 2021-07-12 12:06:11 -04:00
jeremystretch
dc8adfc546 Clean up object titles 2021-07-12 10:57:26 -04:00
jeremystretch
5d98c3337a Simplify home view stats 2021-07-12 10:32:13 -04:00
jeremystretch
5406acf329 Merge branch 'jstretch-ui-work' into feature 2021-07-12 09:56:33 -04:00
jeremystretch
fd7d8cbf56 Changelog for #5442 2021-07-12 09:31:19 -04:00
Jeremy Stretch
9ff505d11b Merge pull request #6580 from scanplus/fix-5442
Fixes #5442: Use LDAP groups to find permissions
2021-07-12 09:26:18 -04:00
Jeremy Stretch
7f121f7518 Merge pull request #6739 from netbox-community/6471-reset-migrations
Closes #6471: Squash database migrations up to v2.11.0
2021-07-12 09:04:54 -04:00
jeremystretch
1b132379be Clean up table sizing; remove cards 2021-07-11 21:24:36 -04:00
jeremystretch
0f99e5fcaa Clean up object list view 2021-07-10 22:06:28 -04:00
jeremystretch
726b148aa9 Clean up sidebar layout 2021-07-10 21:30:55 -04:00
jeremystretch
facf757997 Separate navigation menu structure from template tag 2021-07-10 20:44:33 -04:00
jeremystretch
fe1f221286 Log a warning when rqworker invoked without specified queues 2021-07-09 21:23:27 -04:00
jeremystretch
d3b4a72f4f Update change log 2021-07-09 21:10:51 -04:00
jeremystretch
fa47ad0095 Changelog for #6651 2021-07-09 15:37:21 -04:00
Jeremy Stretch
aa7d38a0a5 Merge pull request #6731 from maximumG/6651-plugins-rq-queues
Fixes #6651:  Add plugin's queueing system
2021-07-09 15:29:19 -04:00
jeremystretch
42b2e2717d Standardize squashed migration names 2021-07-09 13:23:43 -04:00
jeremystretch
3387282de4 Resolve migration dependencies 2021-07-09 11:51:42 -04:00
jeremystretch
c82470e4df Add re-initialized migrations for v2.11.0 2021-07-09 11:11:21 -04:00
jeremystretch
4383425060 Delete pre-2.11.0 migrations 2021-07-09 10:57:07 -04:00
Jeremy Stretch
3ed346be86 Merge pull request #6645 from hanserasmus/patch-2
Update installation
2021-07-09 08:51:53 -04:00
Jeremy Stretch
fd58eeae1d Merge branch 'feature' into 6651-plugins-rq-queues 2021-07-09 08:43:39 -04:00
Hans Erasmus
0ed82af99a Update 3-netbox.md 2021-07-09 11:43:50 +02:00
maximumG
a09e4bf82a chore: avoid the default RQ worker to listen to every queues by default and rather only listen to netbox core queues. 2021-07-09 10:03:51 +02:00
maximumG
dce3e0763f chore: documentation about netbox plugin queueing system 2021-07-09 09:42:03 +02:00
Tobias Genannt
b814123ede Only check REMOTE_AUTH_BACKEND in API token auth 2021-07-09 08:14:45 +02:00
Tobias Genannt
a3d40e3521 Load LDAP groups for API token authenticated users
When users are authenticated with an API token not all permissions where
assigned to the session because the LDAP group memberships where not
available.
Now the information is loaded from the directory if the user is found.
If not the local group memberships are used.
2021-07-09 08:14:45 +02:00
Tobias Genannt
4abfa6231c Fixed bug for users authenticated with API token
This prevents a crash when the current user has authenticated himself
with an API token. In this case the user will not have the permissions
given to his LDAP groups.
2021-07-09 08:14:45 +02:00
Tobias Genannt
5bf4234ad3 Fix error when running scripts
This fixes the error Can't pickle local object 'LDAPBackend.__new__.<locals>.NBLDAPBackend'
2021-07-09 08:14:45 +02:00
Tobias Genannt
7640740113 Use method from parent class
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-07-09 08:14:45 +02:00
Tobias Genannt
82300990ec Fixes #5442: Use LDAP groups to find permissions
When AUTH_LDAP_FIND_GROUP_PERMS is set to true the filter to find the
users permissions is extended to search for all permissions assigned to
groups in which the LDAP user is.
2021-07-09 08:14:45 +02:00
jeremystretch
bc812e4937 Closes #5223: Remove the console/power/interface connections REST API endpoints 2021-07-08 17:30:40 -04:00
jeremystretch
38d7b83ed0 Merge v2.11.9 2021-07-08 12:15:57 -04:00
jeremystretch
ec5ed17860 PRVB 2021-07-08 09:21:35 -04:00
Jeremy Stretch
8f6b71df46 Merge pull request #6723 from netbox-community/develop
Release v2.11.9
2021-07-08 09:18:11 -04:00
jeremystretch
e8e3e9b0be Release v2.11.9 2021-07-08 09:01:40 -04:00
jeremystretch
28ca815c88 Fixes #6456: API schema type should be boolean for _occupied on cable termination models 2021-07-08 08:41:59 -04:00
Jeremy Stretch
65aaab5f38 Merge pull request #6717 from netbox-community/6713-release-checking
Closes #6713: Move release checking to the housekeeping routine
2021-07-07 22:22:02 -04:00
jeremystretch
f426ba3526 Remove the check_releases queue 2021-07-07 22:10:10 -04:00
Jeremy Stretch
028c876bca Merge pull request #6716 from netbox-community/6639-drop-cacheops
Closes #6639: Replace django-cacheops with django-redis for caching
2021-07-07 22:08:01 -04:00
jeremystretch
29299b4644 Changelog for #6713 2021-07-07 21:58:54 -04:00
jeremystretch
7c6e5a68d9 Remove the RELEASE_CHECK_TIMEOUT parameter 2021-07-07 21:55:07 -04:00
jeremystretch
fa99263918 Remove release checkng background task 2021-07-07 21:53:02 -04:00
jeremystretch
e173c8b548 Add release check to the housekeeping task 2021-07-07 21:37:35 -04:00
jeremystretch
3e19038e06 Restore CACHING_REDIS_SKIP_TLS_VERIFY; add CACHE_TIMEOUT usage warning 2021-07-07 21:17:40 -04:00
jeremystretch
2c023ef7a0 Update release check to use django-redis 2021-07-07 20:57:47 -04:00
jeremystretch
d9e27b6a82 Replace django-cacheops with django-redis 2021-07-07 20:35:59 -04:00
jeremystretch
b6ec1d9aa7 Remove cacheops workarounds & queryset caching metrics 2021-07-07 17:15:42 -04:00
jeremystretch
f683f0786e Drop caching_config from plugin configuration 2021-07-07 17:04:21 -04:00
jeremystretch
54dfa6cb7f Fixes #6714: Fix rendering of device type component creation forms 2021-07-07 15:38:59 -04:00
jeremystretch
7c667f3485 Fixes #6710: Fix assignment of VM interface parent via REST API 2021-07-07 11:55:20 -04:00
maximumG
995aa65f16 feat: Netbox plugin can defined their own RQ queues 2021-07-07 15:26:33 +02:00
maximumG
8b76db2bca add: RQ queues for netbox core (high, default, low, check_release) 2021-07-07 15:25:53 +02:00
checktheroads
9c247d9a19 #5203: Persist Show/Hide Images state in rack view 2021-07-06 17:56:49 -07:00
checktheroads
d9a6f11c35 #6372: Implement basic state management with localStorage integration 2021-07-06 17:55:13 -07:00
checktheroads
00c4ac8d51 #6372: General cleanup 2021-07-06 17:54:24 -07:00
jeremystretch
88e382e7a1 Merge v2.11.8 changes 2021-07-06 12:10:29 -04:00
jeremystretch
c585175214 PRVB 2021-07-06 11:35:03 -04:00
Jeremy Stretch
a5b95728bf Merge pull request #6700 from netbox-community/develop
Release v2.11.8
2021-07-06 11:28:19 -04:00
Jeremy Stretch
c742501b80 Merge branch 'master' into develop 2021-07-06 11:13:29 -04:00
jeremystretch
9c1de27562 Release v2.11.8 2021-07-06 11:10:02 -04:00
jeremystretch
fc15ef6967 Changelog & cleanup for #5503 2021-07-06 10:43:08 -04:00
Jeremy Stretch
eaf0259c3d Merge pull request #5764 from ypid/feature/5503-ui-iso-date-with-tooltip
Closes #5503: ISO 8601 date in UI and alternative format as tooltip
2021-07-06 10:35:21 -04:00
jeremystretch
fe2ce03ac1 Closes #6200: Add rack reservations to global search 2021-07-06 10:17:16 -04:00
jeremystretch
70585ff32e Fixes #6695: Fix exception when importing device type with invalid front port definition 2021-07-05 09:30:52 -04:00
Robin Schneider
a479c867c4 Do not use annotated_date on custom date fields to avoid date parsing
@jeremystretch:

> It'd be better to have the custom field return a date object than to
> accommodate string values in the template filter. Let's just omit custom
> field dates for now to keep this from getting any more complex.
2021-07-02 22:30:11 +02:00
Robin Schneider
74f1b51b38 Use annotated_date also for updated datetimes
This changes the text from: Updated 5 months, 1 week ago
to: Updated 2021-01-24 00:33 (5 months, 1 week ago)

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-07-02 22:22:38 +02:00
Robin Schneider
0ad9b83623 Closes #5503: ISO 8601 date in UI and alternative format as tooltip
With this commit all dates in the UI are now consistently displayed.

I changed the long date format as suggested by @xkilian and confirmed by my own
research.

* DATETIME_FORMAT
 * Before July 20, 2020 4:52 p.m.
 * Now 20th July, 2020 16:52

"20th July, 2020" would be spoken as "the 20th of July, 2020" but the "the" and
"of" are never written.

The only exception is `object_list.html`. I tried it but there it does not
work so easily because the dates are passed to Jinja as SafeString.
2021-07-02 22:22:37 +02:00
jeremystretch
631d991d8d Closes #6368: Enable virtual chassis assignment during bulk import of devices 2021-07-01 15:49:05 -04:00
jeremystretch
1be4a57bd4 Closes #6345: Introduce PermissionsViolation exception for use in generic views 2021-07-01 15:33:39 -04:00
jeremystretch
76a6119584 Closes #6138: Add an 'empty' filter modifier for character fields 2021-07-01 15:17:46 -04:00
jeremystretch
add95292ce Fixes #6680: Allow setting custom field values for VM interfaces on intial creation 2021-07-01 10:48:24 -04:00
Jeremy Stretch
57fc6efd4c Merge pull request #6678 from netbox-community/2007-graphql
Closes #2007: Implement GraphQL API
2021-06-30 10:42:49 -04:00
jeremystretch
2fe734e6f9 Omit _path from CableTermination models 2021-06-30 10:20:20 -04:00
jeremystretch
e6091ee0c9 Consolidate GraphQLTestCase into APIViewTestCase 2021-06-30 10:07:33 -04:00
jeremystretch
728b3bac67 Use _list appendix for GraphQL list queries 2021-06-30 09:57:33 -04:00
jeremystretch
0d7309cb19 Add documentation for GraphQL API 2021-06-30 09:35:50 -04:00
jeremystretch
18a9e39be6 Closes #6667: Display VM memory as GB/TB as appropriate 2021-06-29 14:00:16 -04:00
jeremystretch
18934bcc69 Closes #6666: Show management-only status under interface detail view 2021-06-29 13:47:44 -04:00
jeremystretch
98ff00bc62 Fixes #6676: Fix device/VM counts per cluster under cluster type/group views 2021-06-29 13:44:46 -04:00
jeremystretch
8d2f79cf24 Add configuration parameter to toggle GraphQL API 2021-06-29 13:30:38 -04:00
jeremystretch
05ba54b6d3 Add GraphQL for users and groups 2021-06-29 13:15:10 -04:00
jeremystretch
ef3cb9544a Clean up GraphQL object types & tests 2021-06-29 12:55:17 -04:00
jeremystretch
79614ed2cf Add GraphQL type for ContentType 2021-06-29 11:36:18 -04:00
jeremystretch
7deabfe9cd Extended GraphQL tests to include all fields 2021-06-29 11:20:54 -04:00
jeremystretch
bd1e019a42 Clean up token-based authentication for GraphQL 2021-06-28 16:19:02 -04:00
jeremystretch
14e27363e0 Add GraphQL for DCIM 2021-06-25 16:17:36 -04:00
jeremystretch
605b7c5b3e Add GraphQL for virtualization 2021-06-25 15:31:43 -04:00
jeremystretch
881b18f6d0 Add GraphQL for tenancy 2021-06-25 14:19:20 -04:00
jeremystretch
7256c7050a Add GraphQL for extras 2021-06-25 14:12:09 -04:00
jeremystretch
7a2a25c13a Use v3.0 enum naming 2021-06-25 14:11:41 -04:00
jeremystretch
3e0bcd58d4 Add GraphQL for IPAM 2021-06-25 10:14:35 -04:00
jeremystretch
4c209ed74c Clean up GraphQL tests 2021-06-25 10:14:06 -04:00
jeremystretch
d5675a5d4a Add support for DRF token authentication 2021-06-25 09:13:08 -04:00
jeremystretch
91d39cc0c0 Added initial GraphQL tests 2021-06-24 09:08:45 -04:00
jeremystretch
930ca8d9a1 Add support for custom field data 2021-06-24 09:08:45 -04:00
jeremystretch
6a07f66cfc Initial work on GraphQL 2021-06-24 09:08:45 -04:00
Jeremy Stretch
442b3fcc48 Merge pull request #6659 from netbox-community/6466-replace-django-admin
Closes #6646: Move extras out of Django admin UI
2021-06-24 09:04:08 -04:00
jeremystretch
6cc4f27ee3 Tables cleanup 2021-06-24 08:51:29 -04:00
jeremystretch
036a068b83 Update extras documentation 2021-06-24 08:37:06 -04:00
jeremystretch
4e0b795a3c Add UI views for webhooks 2021-06-23 21:30:23 -04:00
jeremystretch
10cbbee947 Add UI views for export templates 2021-06-23 20:56:50 -04:00
jeremystretch
276ded0119 Add UI views for custom links 2021-06-23 17:10:04 -04:00
jeremystretch
b017927c69 Add UI views for custom fields 2021-06-23 17:10:04 -04:00
checktheroads
e59d88bbe9 #6372: Fix nav-pill styling 2021-06-23 11:46:43 -07:00
checktheroads
e1391cae20 #6372: Improve sidebar styling 2021-06-23 11:39:32 -07:00
checktheroads
0b819053cf #6372: Add opacity utility classes 2021-06-23 11:39:04 -07:00
checktheroads
25b6f02091 #6372: Fix sidebar tooltip rendering 2021-06-23 11:30:58 -07:00
checktheroads
32b6bc6a74 #6372: Upgrade bootstrap to 5.0.2 2021-06-23 11:22:25 -07:00
checktheroads
18f1b93ae4 #6372: Responsive layout improvements 2021-06-23 10:57:09 -07:00
jeremystretch
c7afc9eb28 Rename custom field model forms 2021-06-23 11:53:58 -04:00
jeremystretch
3f63a02145 Rename and refactor CustomFieldForm 2021-06-23 11:53:58 -04:00
checktheroads
eb0d5c996e #6372: Implement layout improvements 2021-06-22 17:20:17 -07:00
jeremystretch
a8a9e061a1 Merge branch 'develop' into feature 2021-06-22 14:30:47 -04:00
jeremystretch
4292d88a92 Closes #6620: Show assigned VMs count under device role view 2021-06-22 14:21:41 -04:00
jeremystretch
a8af24d7ca Fixes #6637: Fix group assignment in 'available VLANs' link under VLAN group view 2021-06-22 14:16:16 -04:00
jeremystretch
efa0fc2b09 Fixes #6640: Disallow numeric values in custom text fields 2021-06-22 14:00:54 -04:00
jeremystretch
ebb2918a88 Fixes #6652: Fix exception when adding components in bulk to multiple devices 2021-06-22 13:54:03 -04:00
Hans Erasmus
4fb3a2e0a0 Update installation
Just separated it so the user can easily click the copy button, and only be presented with the command.
2021-06-22 09:59:01 +02:00
jeremystretch
607039f043 Cleanup for #5139 2021-06-21 08:46:20 -04:00
jeremystretch
fb379b63ec Fixes #6626: Fix site field on VM search form; add site group 2021-06-21 08:38:46 -04:00
jeremystretch
4a6278f598 Merge v2.11.7 2021-06-16 16:27:37 -04:00
jeremystretch
697161beb1 PRVB 2021-06-16 16:21:19 -04:00
Jeremy Stretch
742804ecb8 Merge pull request #6616 from netbox-community/develop
Release v2.11.7
2021-06-16 16:18:52 -04:00
jeremystretch
2bf20fa501 Release NetBox v2.11.7 2021-06-16 15:59:46 -04:00
jeremystretch
685e0ce00d Closes #6588: Add support for webp files as front/rear device type images 2021-06-16 14:01:30 -04:00
jeremystretch
6a6b0236a9 Closes #6589: Standardize breadcrumb navigation for power panels and feeds 2021-06-16 13:50:35 -04:00
jeremystretch
857c70ece9 Closes #6564: Add N connector type for pass-through ports 2021-06-16 13:43:38 -04:00
jeremystretch
e68be6f041 Add Equinix Metal as a sponsor 2021-06-15 15:22:20 -04:00
Jeremy Stretch
52edeb42b5 Merge pull request #6604 from bluikko/patch-2
custom fields documentation missing word "more"
2021-06-15 10:57:58 -04:00
bluikko
c8a8bfd84d custom fields documentation missing word "more"
The "one or object types" looks like it is missing the word "more".
2021-06-15 15:05:37 +07:00
jeremystretch
9f2c4919eb Update NetDev Slack links 2021-06-14 16:41:10 -04:00
jeremystretch
f56a470cc7 Fixes #6602: Fix deletion of devices with cables attached 2021-06-14 16:38:19 -04:00
Alyssa Bigley
1e7b76005c cleaned up validation error method 2021-06-14 15:23:42 -04:00
jeremystretch
54ccc705d0 Adopt IRM terminology 2021-06-14 14:08:55 -04:00
Alyssa Bigley
0a661596b3 moved duplicated code in CSV Fields into functions in forms/utils.py 2021-06-14 14:07:37 -04:00
jeremystretch
14f696e824 Merge branch 'develop' into feature 2021-06-14 09:23:01 -04:00
jeremystretch
7e481960f9 Optimize MPTTColumn rendering 2021-06-14 09:19:05 -04:00
Jeremy Stretch
7c779f4f09 Merge pull request #6592 from netbox-community/5264-tokens-api-endpoint
Closes #5264: REST API endpoint for tokens
2021-06-14 09:01:20 -04:00
jeremystretch
4c4fe80697 Fix schema generation for tokens endpoint 2021-06-14 08:52:22 -04:00
jeremystretch
fdd8e33b58 Revert tweak to TokenPermissions.has_permission() 2021-06-14 08:38:10 -04:00
jeremystretch
c36b190d5d Omit REST API schema view from permissions enforcement 2021-06-11 16:24:02 -04:00
jeremystretch
37c9340499 Docs and release notes for #5264 2021-06-11 16:12:25 -04:00
jeremystretch
b038b1f613 Add a REST API endpoint to provision new tokens using username & password 2021-06-11 15:54:31 -04:00
jeremystretch
48b4bf1683 Initial work on REST API endpoint for tokens 2021-06-11 15:14:19 -04:00
Alyssa Bigley
934543b595 Caught and handled ValidationError 2021-06-11 13:42:26 -04:00
jeremystretch
d87ec82fe3 Closes #6590: Introduce a nightly housekeeping command to clear expired sessions and change records 2021-06-11 10:44:17 -04:00
Alyssa Bigley
55b7cf21cc changed name of csv_file variable and started work on ValidationError 2021-06-10 14:41:33 -04:00
jeremystretch
809d9e4697 Fixes #6584: Fix ordering of nested inventory items 2021-06-10 14:27:42 -04:00
jeremystretch
a1ba3b567c Introduce ColorField for consistent represention of color choice fields in forms 2021-06-09 17:17:39 -04:00
jeremystretch
b3ed545d6a Closes #3682: Add color field to front and rear ports 2021-06-09 16:51:51 -04:00
jeremystretch
8a7473765e Remove obsolete reference to csv_headers 2021-06-09 16:10:41 -04:00
Jeremy Stretch
eda1c6b2c6 Merge pull request #6579 from netbox-community/6068-csv-export
Closes #6068: Clean up CSV export
2021-06-09 16:09:12 -04:00
jeremystretch
7e55b44610 Changelog for #6068 2021-06-09 15:55:38 -04:00
jeremystretch
7e18b0dd3a Remove csv_headers model attributes 2021-06-09 15:52:49 -04:00
jeremystretch
578885225f Replace 'default format' export with 'all data' 2021-06-09 15:26:02 -04:00
jeremystretch
3ec6194a47 Remove obsolete to_csv() methods 2021-06-09 15:08:49 -04:00
jeremystretch
9d3cac43b7 Modify default CSV export to render from tables 2021-06-09 15:02:31 -04:00
jeremystretch
569041a4c4 Changelog for #5963 2021-06-09 13:27:26 -04:00
Jeremy Stretch
9839885198 Merge pull request #6576 from netbox-community/5963-custom-validation
Closes #5963: Custom model validation
2021-06-09 13:21:38 -04:00
jeremystretch
18472188b9 Renumber docs from v2.12 to v3.0 2021-06-09 13:20:46 -04:00
jeremystretch
44c0dec68b Extend CustomValidator to support required, prohibited fields 2021-06-09 13:10:35 -04:00
jeremystretch
f81b3d4ed6 Rename fail() kwarg from attr to field 2021-06-09 12:11:47 -04:00
jeremystretch
c69ef95c6a Document the custom validation feature 2021-06-09 12:09:30 -04:00
jeremystretch
dfd42c9896 Document the new post_clean signal 2021-06-09 12:08:50 -04:00
jeremystretch
3bfa1cbf41 Initial work on custom model validation 2021-06-09 11:36:29 -04:00
jeremystretch
79c06442db Changelog for #6455, 6493 2021-06-08 15:39:39 -04:00
Jeremy Stretch
6195fc0d11 Merge pull request #6552 from drmsoffall/6493-diff-legacy-changes
Show change log diff for non-atomic changes
2021-06-08 15:24:22 -04:00
Jeremy Stretch
6523334a48 Merge pull request #6545 from crafty-ua/Add_ipv4_32_and_ipv6_128_prefix_support_#6455
Add ipv4 /32 and ipv6 /128 prefix support #6455
2021-06-08 15:12:25 -04:00
jeremystretch
b3cde51590 Fixes #6562: Disable ordering of secrets by assigned object 2021-06-08 14:18:24 -04:00
jeremystretch
6ec296f2a7 Fixes #6563: Fix filtering by location for cable connection forms 2021-06-08 14:15:06 -04:00
jeremystretch
cb4392628f Fixes #6553: ProviderNetwork search should match on name 2021-06-08 14:06:17 -04:00
Alyssa Bigley
3549fc07f6 removed unnecessary use of seek() 2021-06-07 14:29:38 -04:00
Alyssa Bigley
ecd84d7c43 edited docstring for CSVFileField 2021-06-07 14:06:32 -04:00
Alyssa Bigley
c2b2b059e6 CSV import implemented using CSVFileField 2021-06-07 14:06:32 -04:00
Alyssa Bigley
6ff5a1db42 cleaned up csv parsing 2021-06-07 14:06:31 -04:00
Alyssa Bigley
2bc68707b5 csv parse using python csv library 2021-06-07 14:06:31 -04:00
Alyssa Bigley
0c9376039c working csv upload first draft 2021-06-07 14:06:31 -04:00
Alyssa Bigley
e1fe3ca14a CSV Upload as second field in existing form 2021-06-07 14:06:31 -04:00
drmsoffall
a224e5d470 Closes #6493: show ObjectChange diff for non-atomic changes 2021-06-05 19:15:25 +00:00
jeremystretch
7444110c79 PRVB 2021-06-04 11:15:12 -04:00
Jeremy Stretch
fc0c8a160b Merge pull request #6548 from netbox-community/develop
Release v2.11.6
2021-06-04 11:13:26 -04:00
Jeremy Stretch
481cc52686 Merge branch 'master' into develop 2021-06-04 11:01:33 -04:00
jeremystretch
4273b6e4fb Release v2.11.6 2021-06-04 10:59:36 -04:00
jeremystretch
5e08b2be37 Fixes #6544: Fix migration error when upgrading with VRF(s) defined 2021-06-04 10:53:13 -04:00
Your Name
a665b79f85 #6455 - initial 2021-06-04 16:46:02 +02:00
jeremystretch
0e23038e28 Merge v2.11.5 2021-06-04 09:47:14 -04:00
Jeremy Stretch
fe4de7f929 Merge pull request #6542 from netbox-community/develop
Release v2.11.5
2021-06-04 09:29:32 -04:00
jeremystretch
0783d57459 Release v2.11.5 2021-06-04 09:09:56 -04:00
jeremystretch
4e1e5bd8c4 Fix "select all" box (again) 2021-06-04 09:01:58 -04:00
jeremystretch
b3a14e9a7b Improve performance when fetching objects for bulk edit 2021-06-03 21:11:45 -04:00
jeremystretch
b725a9bcea Closes #6495: Replace 'help' link in footer with 'community' 2021-06-03 20:35:53 -04:00
jeremystretch
5c263fac8d Closes #6540: Add a 'flat' column to the prefix table 2021-06-03 20:31:09 -04:00
jeremystretch
04c1619eb4 Remove unused function 2021-06-03 20:27:24 -04:00
jeremystretch
d74dbb722a Changelog for #6527 2021-06-03 17:20:24 -04:00
Jeremy Stretch
95969c4979 Merge pull request #6537 from maximumG/6527-report-description-makdown
feat: markdown support in report's description
2021-06-03 17:18:22 -04:00
maximumG
10c9954ebc fix: remove call-outs regarding markdown support 2021-06-03 20:36:52 +02:00
maxime-gerges-external
e61b2b1fc5 feat: markdown support in report's description
* markdown support in report list and report result pages
* Add notes in the documentation regarding markdown
2021-06-03 14:48:18 +02:00
Daniel Sheppard
46ecb0ac03 Fixes: #6432 - Properly mark nat_outside as read-only and not-required. 2021-06-02 22:45:17 -05:00
jeremystretch
2d44bade4b Merge branch 'develop' into feature 2021-06-02 20:35:38 -04:00
jeremystretch
0a0b852f2c Fixes #6492: Correct tag population in post-change data resulting from REST API changes 2021-06-02 17:02:44 -04:00
jeremystretch
1658d7ae86 Fixes #6217: Disallow passing of string values for integer custom fields 2021-06-02 16:12:11 -04:00
jeremystretch
ca44cda112 Suppress migration output during testing 2021-06-02 16:02:38 -04:00
jeremystretch
1935f8b27f Fixes #6517: Fix assignment of user when creating rack reservations via REST API 2021-06-02 16:02:22 -04:00
jeremystretch
d32dba43b4 Fixes #6525: Paginate related IPs table under IP address view 2021-06-02 15:48:15 -04:00
jeremystretch
8d0a3c8e69 Closes #6519: Avoid querying applicable webhooks for every object 2021-06-01 13:55:17 -04:00
Jeremy Stretch
f561b2d955 Merge pull request #6516 from netbox-community/6284-m2m-webhooks
Closes #6284: Fix redundant webhooks
2021-06-01 13:09:21 -04:00
jeremystretch
8afb7d654d Changelog for #6284 2021-06-01 12:57:31 -04:00
jeremystretch
32cbc20108 Restore webhooks worker test 2021-06-01 12:52:25 -04:00
jeremystretch
be3cd2a434 Add bulk operation tests for webhooks 2021-06-01 09:50:38 -04:00
jeremystretch
ba3ca6b00d Update post-change snapshot for M2M changes 2021-06-01 09:30:54 -04:00
jeremystretch
c88dcef900 Extend webhook create/update/delete tests 2021-06-01 09:04:01 -04:00
jeremystretch
3d1e4fde81 Initial work on #6284 2021-05-28 16:07:27 -04:00
jeremystretch
1e02bb5999 Fixes #6064: Fix object permission assignments for user and group models 2021-05-28 13:27:05 -04:00
jeremystretch
bd7bcf8a0b Fixes #6496: Fix upgrade script when Python installed in nonstandard path 2021-05-28 13:18:50 -04:00
jeremystretch
1c0f3e1b81 Fixes #6502: Correct permissions evaluation for running a report via the REST API 2021-05-28 13:16:25 -04:00
jeremystretch
b2b3f388b1 Correct Prefix REST API test case 2021-05-28 11:15:45 -04:00
jeremystretch
110a6d11a5 Closes #6487: Add location filter to cable connection form 2021-05-28 09:09:59 -04:00
jeremystretch
75faf7d30e Closes #6501: Expose prefix depth and children on REST API serializer 2021-05-28 08:56:55 -04:00
Jeremy Stretch
e95a9731be Merge pull request #6488 from netbox-community/6087-prefix-depth-children
Closes #6087: Cache prefix depth & children count
2021-05-28 08:37:45 -04:00
jeremystretch
5cb5f9a963 Linkify prefix children count 2021-05-27 15:40:55 -04:00
jeremystretch
88aa3a4e19 Specify batch size for bulk_update() 2021-05-27 15:25:40 -04:00
jeremystretch
d34b9ee00e Add max depth selector 2021-05-27 13:24:31 -04:00
jeremystretch
103730a642 Extend depth & children filters 2021-05-27 12:54:41 -04:00
jeremystretch
84017776ec Fix handling of duplicate prefixes 2021-05-27 10:03:00 -04:00
jeremystretch
34e673f7d6 Introduce rebuild_prefixes management command 2021-05-27 09:24:29 -04:00
jeremystretch
5ac6a307bf Rearrange contact links 2021-05-26 21:45:18 -04:00
jeremystretch
8c1b681391 Add GitHub discussions link; replace Google Group with netdev.chat 2021-05-26 21:43:32 -04:00
checktheroads
e12fef7828 #6372: Shrink small buttons when inside a table 2021-05-26 16:37:43 -07:00
checktheroads
dc79f80366 #6372: Remove errant console.log statement 2021-05-26 16:33:33 -07:00
checktheroads
e004f872f9 Closes #4247: Add option to show/hide enabled/disabled interfaces on device 2021-05-26 16:32:09 -07:00
jeremystretch
da558de769 Initial work on #6087 2021-05-26 16:06:03 -04:00
checktheroads
587335e3ba #6372: Fix legacy BS5 classes 2021-05-26 09:07:45 -07:00
checktheroads
7219e3760c #6372: Center-align body footer 2021-05-26 08:57:03 -07:00
checktheroads
d2267ecd71 #6372: NetBox logo should be centered 2021-05-26 08:55:22 -07:00
checktheroads
b159def9b2 #6372: Template cleanup & fix form width 2021-05-26 08:53:05 -07:00
checktheroads
e1eefd1165 #6372: Improve sidebar styles 2021-05-25 17:57:37 -07:00
jeremystretch
da1fb4f969 Replace references to v2.12 with v3.0 2021-05-25 15:05:02 -04:00
jeremystretch
5b4dacf0f5 Merge branch 'develop' into feature 2021-05-25 13:19:17 -04:00
jeremystretch
9046f59b9f PRVB 2021-05-25 12:12:08 -04:00
Jeremy Stretch
6c1f9dba52 Merge pull request #6480 from netbox-community/develop
Release v2.11.4
2021-05-25 12:08:16 -04:00
jeremystretch
ea1df2b5c3 Merge branch 'master' into develop 2021-05-25 11:49:03 -04:00
checktheroads
1daee79095 #6372: Fix multi-select colors in dark mode 2021-05-25 08:44:06 -07:00
jeremystretch
b3423e1722 Release v2.11.4 2021-05-25 11:38:43 -04:00
checktheroads
5b68a11f01 #6372: Clone/edit/delete buttons are not top-aligned 2021-05-25 08:35:53 -07:00
checktheroads
0c8195e4f1 #6372: Objects table should be full-width 2021-05-25 08:28:58 -07:00
checktheroads
8fe795102f #6372: Fix native select styling 2021-05-25 08:26:36 -07:00
jeremystretch
bfb91fcf10 Closes #6422: Enable filtering users by group under admin UI 2021-05-25 11:26:18 -04:00
checktheroads
27a02f64b2 #6372: Device type import: JSON data field not big enough 2021-05-25 08:23:36 -07:00
jeremystretch
44c62f8f44 Release notes for #6358 2021-05-25 11:16:06 -04:00
checktheroads
7bb7747c67 #6372: Device import: Racked/child device tabs are not tabs 2021-05-25 08:02:27 -07:00
checktheroads
8bb47a88f8 #6372: Page should be full-width at 1280px 2021-05-25 07:59:08 -07:00
Jeremy Stretch
c8c47961db Merge pull request #6473 from rodvand/develop
Closes #6358: Add search to VLAN group overview.
2021-05-25 10:33:37 -04:00
checktheroads
e8c91ea3a1 #6372: Don't autopopulate collapsible API select data, improve advanced search 2021-05-23 19:01:05 -07:00
checktheroads
429d995270 #6372: Fix object delete confirmation styles 2021-05-23 14:55:32 -07:00
checktheroads
c4bd47eb84 #6372: Form should be centered on page 2021-05-23 13:21:52 -07:00
checktheroads
1811118f28 #6372: Fix nav-pill styles on active nav-links 2021-05-23 13:08:44 -07:00
checktheroads
69ba925ee8 #6372: Object checkboxes are too small 2021-05-23 12:36:18 -07:00
checktheroads
7219c3449f #6372: Fix invalid filter form fields 2021-05-23 11:39:08 -07:00
checktheroads
a5d84c88bf Merge branch 'feature' of github.com:netbox-community/netbox into feature 2021-05-23 00:32:25 -07:00
checktheroads
da0aa38614 #6372: Move object list search panel into collapsed view & remove search field 2021-05-23 00:31:48 -07:00
checktheroads
6b1397d257 #6372: Add "add" and "import" buttons to each item as appropriate 2021-05-23 00:30:28 -07:00
checktheroads
7d640e2aab #6732: Add "add" and "import" buttons to each item as appropriate 2021-05-22 18:11:56 -07:00
checktheroads
0a01629b15 #6372: Fix toast colors in dark mode 2021-05-22 17:17:31 -07:00
checktheroads
ee2de33643 #6372: Fix footer placement 2021-05-22 16:59:55 -07:00
Martin Rødvand
78b0e50742 Closes #6358: Add search to VLAN group overview. 2021-05-22 14:27:18 +02:00
jeremystretch
a7371c048b Changelog for #5121 2021-05-21 17:25:37 -04:00
Jeremy Stretch
f3dfa81811 Merge pull request #6470 from netbox-community/5121-filter-tags-content-type
Closes #5121: Add object type filters for Tags
2021-05-21 17:22:30 -04:00
jeremystretch
5b4793a2d5 Closes #5121: Add content_type filters for tags 2021-05-21 17:05:32 -04:00
jeremystretch
b6660c72e1 Add tags as a feature query 2021-05-21 16:54:33 -04:00
jeremystretch
a6eeed4061 Fixes #6467: Fix access to metrics on custom BASE_PATH when login is required 2021-05-21 15:56:22 -04:00
jeremystretch
239fddcac2 Fixes #6468: Disable ordering VLAN groups list by scope object 2021-05-21 15:43:18 -04:00
jeremystretch
b27f9bf74c Changelog for #6465 2021-05-21 11:17:58 -04:00
Jeremy Stretch
09b856bf0b Merge pull request #6449 from 991jo/device_type_import_fix
Fixed #6438 Device Type Import does not import/export description/label fields for many components
2021-05-21 11:16:32 -04:00
Jeremy Stretch
9954c6a571 Merge pull request #6419 from tehtbl-oss/develop
Update netbox/extras/plugins/views.py#L45 by fixing a typo in method _get_plugin_data
2021-05-21 11:08:11 -04:00
jeremystretch
44b24de5d0 Add DigitalOcean as sponsor 2021-05-20 12:41:23 -04:00
jeremystretch
22927bfc76 Closes #6441: Improve UI paginator to optimize page object count 2021-05-20 12:00:31 -04:00
jeremystretch
a39522a25e Closes #6434: Add deprecation warning for stock secrets functionality 2021-05-20 10:51:41 -04:00
Johannes Erwerle
ea6c8a1a65 Fixed #6438 Device Type Import does not import/export description/label fields for many components 2021-05-20 06:30:44 +00:00
jeremystretch
546bbe5418 Fixes #6426: Allow assigning virtual chassis member interfaces to LAG on VC master 2021-05-18 16:42:21 -04:00
jeremystretch
93534db79e Clean up object.html header 2021-05-17 20:23:14 -04:00
Jeremy Stretch
805892f623 Template cleanup (#6421)
* Clean up & comment base templates

* Clean up login template & form

* Use SVG file for NetBox logo

* Simplify breadcrumbs

* Merge changelog.html into home.html

* Rename title_container block to header

* Move breadcrumbs block to object.html

* Attach names to endblock template tags

* Reorganize root-level templates into base/ and inc/

* Remove obsolete reference to Bootstrap 3.4.1
2021-05-17 16:27:27 -04:00
Daniel Sheppard
744792452f Closes: #5278 - Remove Secrets (#6397)
* Remove Secrets

* #5278: Remove secrets javascript from netbox core

* Remove userkey references

* Fix PEP8

* Remove a few more instances of secrets.  Rebundle

* Remove Secrets

Co-authored-by: checktheroads <matt@allroads.io>
2021-05-17 16:26:02 -04:00
jeremystretch
5ca7f375d3 Clean up stray quote 2021-05-17 13:18:02 -04:00
jeremystretch
568148a349 Warn against relying on demo instance for bug reports 2021-05-17 13:10:49 -04:00
Jeremy Stretch
fedf745d25 Merge pull request #6428 from shinsterneck/patch-1
Typo fix in Documentation section "Invalidating Cached Data"
2021-05-17 08:41:16 -04:00
Shin Sterneck
8823aeb9d7 Typo fix
Fix a small typo
2021-05-17 09:27:44 +02:00
jeremystretch
dc5c765c2a Changelog for #2434 2021-05-14 14:55:38 -04:00
Jeremy Stretch
fed0322ebf Merge pull request #6323 from netbox-community/feature-2434
Closes #2434: Show 'Create & Assign IP Address' Button when Creating …
2021-05-14 14:53:59 -04:00
checktheroads
e429ba6fa2 #2434: Fix database transaction context scoping 2021-05-14 11:21:42 -07:00
Thomas
dc57332988 Update views.py
Fixing typo in 'version'
2021-05-14 18:22:01 +02:00
jeremystretch
138231059b Closes #6400: Add cyan color choice for plugin buttons 2021-05-14 09:13:36 -04:00
jeremystretch
834b233c30 Fixes #6398: Avoid exception when deleting device connected to self via circuit 2021-05-14 09:06:00 -04:00
checktheroads
234475effe Merge branch 'feature' into feature-2434 2021-05-14 00:12:19 -07:00
checktheroads
7d7d06651c Merge branch 'feature' of github.com:netbox-community/netbox into feature 2021-05-14 00:10:06 -07:00
jeremystretch
72d41eac85 Fixes #6376: Fix assignment of VLAN groups to clusters, cluster groups via REST API 2021-05-12 13:47:42 -04:00
jeremystretch
0fec03ad3f Closes #6393: Add description filter for IP addresses 2021-05-12 13:38:52 -04:00
jeremystretch
43a823d0ac Closes #3665: Enable rendering export templates via REST API 2021-05-11 15:51:36 -04:00
Jeremy Stretch
96ffae3372 Merge pull request #6392 from netbox-community/4609-prefix-mark-utilized
Closes #4609: Mark prefixes as fully utilized
2021-05-11 15:12:56 -04:00
jeremystretch
ecf51406c5 Permit disabling utilization graph warning/danger thresholds 2021-05-11 14:52:27 -04:00
jeremystretch
bf56145a09 Closes #4609: Allow marking prefixes as fully utilized 2021-05-11 14:08:18 -04:00
checktheroads
8056290423 #2434: Apply conditional logic from b9a413d to overridden InterfaceCreateView.post method 2021-05-10 13:58:10 -07:00
checktheroads
892d1214b0 Merge branch 'feature' into feature-2434 2021-05-10 13:57:32 -07:00
jeremystretch
f6823b5704 Closes #6338: Decimal fields are no longer coerced to strings in REST API 2021-05-10 14:22:01 -04:00
jeremystretch
f3abf84e17 Closes #6154: Allow decimal values for cable lengths 2021-05-10 14:14:54 -04:00
jeremystretch
a6d937b366 Closes #5806: Add kilometer and mile as choices for cable length unit 2021-05-10 11:23:21 -04:00
Jeremy Stretch
7dc71f92d0 Merge pull request #6378 from bluikko/patch-1
Typo in powerfeed.md
2021-05-10 09:16:46 -04:00
bluikko
f74b47ca16 Typo in powerfeed.md
pot -> port
2021-05-09 12:33:09 +07:00
checktheroads
b9a413d19e #2434: Fix redirection logic in generic form validation method 2021-05-08 12:32:13 -07:00
checktheroads
3436780117 #6372: Show standard form validation errors 2021-05-08 12:07:20 -07:00
checktheroads
2d2719cfb2 #2434: Refactor ComponentCreateView to use generic form validation method
New validate_form method on ComponentCreateView handles validation generically, which any post() method on ComponentCreateView can use to validate the form but handle the response differently as needed.
2021-05-08 12:01:25 -07:00
checktheroads
515aed7022 Merge branch 'feature' into feature-2434 2021-05-08 11:08:06 -07:00
checktheroads
22e484edd4 #6732: Change “Update” button to “Save” 2021-05-07 17:02:22 -07:00
checktheroads
616a598940 #6372: Utilization graph columns should have a minimum width 2021-05-07 16:57:38 -07:00
checktheroads
1a843f95b7 #6372: Fix badge & progress-bar foreground color in dark mode 2021-05-07 16:50:50 -07:00
checktheroads
32e1d7e879 #6372: Updating “per page” count does not refresh list 2021-05-07 16:30:13 -07:00
checktheroads
8c67c7efb3 #6372: Fix search filtering when selecting 'All Objects' 2021-05-07 16:21:31 -07:00
checktheroads
252bdcbbe0 #6372: Restructure theme files & build process to avoid SCSS collisions 2021-05-07 16:12:27 -07:00
checktheroads
4dbe047512 #6372: Fix select placeholder font-size 2021-05-07 14:39:57 -07:00
checktheroads
1da7c705e3 #6372: Object list text is too small 2021-05-07 14:32:41 -07:00
checktheroads
fabd751f20 #6372: Reduce padding of top-level menu items & improve home page stat badge coloring 2021-05-07 14:27:32 -07:00
checktheroads
308820b8a1 #6372: Move hostname & current time to end of page body 2021-05-07 13:45:03 -07:00
checktheroads
4fd7eaf8e0 #6372: Fix too-dark body color 2021-05-07 13:25:01 -07:00
checktheroads
789f0bc8ff #6732: Add color mode toggle to login button when not authenticated 2021-05-07 12:11:45 -07:00
checktheroads
042c65a48c #6732: Fix <title/> rendering on home page template 2021-05-07 12:05:56 -07:00
checktheroads
03a1014714 #6732: Fix rendering of stats on home page when not authenticated 2021-05-07 11:55:46 -07:00
checktheroads
6e9c81eddf #6732: Errant righthand margin on "Login" button (if not authenticated) 2021-05-07 11:43:13 -07:00
checktheroads
d7c103d77f #6732: Add color mode toggle to login screen & fix login screen layout issues 2021-05-07 11:40:20 -07:00
checktheroads
63435f2ec1 #6732: Fix search filtering
This was broken after implementing mobile screen size support in #6327
2021-05-07 11:07:06 -07:00
checktheroads
445adbd078 #6372: Border should be consistent for all elements of the search bar 2021-05-07 11:04:57 -07:00
checktheroads
0e088f11ba #6372: FIx Status badge location in attr table 2021-05-07 09:18:40 -07:00
checktheroads
e47f25ac3e #6372: code text should not be pink 2021-05-07 09:16:05 -07:00
checktheroads
df02123b1e #6372: Fix anchor tag underline style in dark mode 2021-05-07 09:09:21 -07:00
checktheroads
6a685df823 #6372: Remove duplicate babel plugin already included in @babel/preset-env 2021-05-07 09:03:45 -07:00
checktheroads
a4add7de67 #6372: Remove focus ring effect from navigation menu headers 2021-05-07 09:02:53 -07:00
checktheroads
8473820f0c #6372: Remove underline style from hyperlinks 2021-05-07 08:56:17 -07:00
jeremystretch
c777daf6e6 Merge branch 'develop' into feature 2021-05-07 10:27:23 -04:00
jeremystretch
4dff20cc8c PRVB 2021-05-07 10:22:30 -04:00
Jeremy Stretch
c855570b55 Merge pull request #6371 from netbox-community/develop
Release v2.11.3
2021-05-07 10:19:48 -04:00
jeremystretch
395add8114 Merge branch 'master' of https://github.com/netbox-community/netbox into develop 2021-05-07 10:06:37 -04:00
jeremystretch
019a5563c4 Release v2.11.3 2021-05-07 10:01:17 -04:00
jeremystretch
e9b21aaf86 Fixes #6312: Interface device filter should return all virtual chassis interfaces only if device is master 2021-05-07 09:47:32 -04:00
jeremystretch
d6a0cbb1a0 Add sponsors 2021-05-06 16:37:47 -04:00
jeremystretch
3900b97136 Extend release checklist to include bumping version in GitHub issue templates 2021-05-06 14:41:16 -04:00
jeremystretch
2d4ae38a09 Fixes #6369: Fix interface assignment for VLANs in non-scoped groups 2021-05-06 14:36:23 -04:00
jeremystretch
7f2f98885b Fixes #6350: Include first & last IP addresses when allocating available IPv6 addresses via the REST API 2021-05-06 13:59:10 -04:00
jeremystretch
a4955b420a Fixes #6355: Fix caching error when swapping A/Z circuit terminations 2021-05-06 13:29:52 -04:00
jeremystretch
fe78f60b1f Fixes #6357: Fix ProviderNetwork nested API serializer 2021-05-06 13:06:10 -04:00
jeremystretch
21d14a782e Closes #6359: Enable custom links for organizational and nested group models 2021-05-06 13:01:20 -04:00
jeremystretch
c0f1243879 Fixes #6363: Correct pre-population of cluster group when creating a cluster 2021-05-06 12:47:58 -04:00
jeremystretch
67945f2f33 Closes #6351: Add aggregates count to tenant view 2021-05-05 09:53:06 -04:00
jeremystretch
30ffa4c3f2 Relax stale issue timers to 60/30 days 2021-05-05 09:46:54 -04:00
Jeremy Stretch
43c17b9950 Merge pull request #6352 from netbox-community/5991-remove-display_name
Closes #5991: Remove display_name
2021-05-05 08:45:46 -04:00
jeremystretch
ea5d02b1e6 Remove deprecated display_name() methods from models 2021-05-04 16:05:17 -04:00
jeremystretch
5856275347 Closes #5991: Remove display_name attribute from serializers 2021-05-04 15:56:36 -04:00
jeremystretch
534b0e4cf6 Merge branch 'develop' into feature 2021-05-04 14:25:53 -04:00
jeremystretch
97d5873e3d Fixes #6240: Fix display of available VLAN ranges under VLAN group view 2021-05-04 09:36:01 -04:00
jeremystretch
fb1173bc30 Fixes #6339: Improve ordering of interfaces when viewing virtual chassis master 2021-05-04 09:12:26 -04:00
Jeremy Stretch
f0acaa16c4 Merge pull request #6334 from netbox-community/6320-filterset-testing
Closes #6320: Add tests for created & last_updated fields
2021-05-03 15:45:02 -04:00
jeremystretch
3bd99e1910 Closes #6320: Introduce ChangeLoggedFilterSetTests 2021-05-03 15:25:16 -04:00
jeremystretch
ad19b09ae3 Fixes #6333: Fix filtering of circuit terminations by primary key 2021-05-03 14:38:26 -04:00
jeremystretch
ffa4cd134b Introduce BaseFilterSetTests to standardize testing of PK filters 2021-05-03 14:36:44 -04:00
jeremystretch
fbffef1cc4 Rename FilterSet test modules 2021-05-03 13:07:19 -04:00
jeremystretch
2a402b632d Raise operations limit for stalebot 2021-05-03 11:18:04 -04:00
Jeremy Stretch
6899a3258a Merge pull request #6327 from netbox-community/feature-ui
Add Basic Support for Smaller Screens in New UI
2021-05-03 09:07:29 -04:00
checktheroads
04cc43b2f0 ensure 'Create & Assign IP Address' button is only shown when the component_type is 'interface' 2021-04-30 17:17:56 -07:00
checktheroads
460a203c29 Add basic support for smaller screens 2021-04-30 15:55:37 -07:00
Jeremy Stretch
79184347f9 Merge pull request #6325 from netbox-community/feature-6321
Integrate changes from #6322 (to fix #6321) into feature
2021-04-30 16:13:44 -04:00
Jeremy Stretch
be48bf06df Merge pull request #6324 from netbox-community/feature-ui
Merge various UI fixes to feature
2021-04-30 16:13:07 -04:00
jeremystretch
3bba1089ed Clean up YAML string formatting 2021-04-30 16:08:50 -04:00
jeremystretch
c9c8108a53 Reference demo instance for testing bug reports 2021-04-30 15:54:43 -04:00
jeremystretch
067fdaeb8f Changelog for #6321 2021-04-30 15:47:06 -04:00
Jeremy Stretch
b6e862bd10 Merge pull request #6322 from checktheroads/develop-6321
Closes #6321: Re-add missing 'Add an IP Address' button in prefix view
2021-04-30 15:36:22 -04:00
checktheroads
9ad8065f75 Integrate changes from #6322 (to fix #6321) into feature 2021-04-30 12:13:43 -07:00
checktheroads
f1cdd72575 move 'Add an IP Address' button to ip_addresses template 2021-04-30 12:07:56 -07:00
checktheroads
58e1a1f1d8 fix api select pagination 2021-04-30 11:29:45 -07:00
checktheroads
aee09d9119 general style improvements 2021-04-30 11:27:51 -07:00
checktheroads
de56e2b405 Closes #2434: Show 'Create & Assign IP Address' Button when Creating Interfaces 2021-04-30 11:13:38 -07:00
checktheroads
c59c4290f9 Closes #6321: Re-add missing 'Add an IP Address' button in prefix view 2021-04-30 09:50:14 -07:00
jeremystretch
fd9d9d9d35 Closes #6318: Add OM5 MMF cable type 2021-04-30 10:10:03 -04:00
jeremystretch
2a5b497d8a Fixes #6313: Fix device type instance count under manufacturer view 2021-04-30 10:08:15 -04:00
Jeremy Stretch
b93570eeb0 Merge pull request #6315 from netbox-community/6314-filterset-cleanup
Closes #6314: FilterSet cleanup
2021-04-29 19:42:52 -04:00
jeremystretch
3ef6284a0d Move base FilterSet classes under netbox core 2021-04-29 16:53:48 -04:00
jeremystretch
1024782b9e Rename FilterSet modules 2021-04-29 16:48:24 -04:00
jeremystretch
d35ac1347c Move TagFilter to extras 2021-04-29 16:23:55 -04:00
jeremystretch
c4e88fd11a Consolidate FilterSet classes 2021-04-29 15:59:11 -04:00
jeremystretch
0de50e0afe Split Filter and FilterSet classes 2021-04-29 15:13:44 -04:00
jeremystretch
763b02975c Reference the demo instance in the README 2021-04-29 13:45:44 -04:00
jeremystretch
cc57d1edf7 Fixes #6309: Restrict parent VM interface assignment to the parent VM 2021-04-29 08:50:19 -04:00
jeremystretch
bb988701fe Fixes #6308: Fix linking of available VLANs in VLAN group view 2021-04-29 08:43:46 -04:00
jeremystretch
75fdff4d41 Changelog & docs for #6197 2021-04-29 08:10:11 -04:00
Jeremy Stretch
8fc49f37a7 Merge pull request #6307 from mpalmer/patch-1
Expose Django SESSION_COOKIE_NAME setting
2021-04-29 08:04:59 -04:00
Matt Love
abd9ffd31d Merge pull request #6298 from checktheroads/feature
Fix #6297: update screenshot links & remove old screenshots
2021-04-27 16:55:33 -07:00
checktheroads
0b07909386 Merge branch 'feature' of https://github.com/netbox-community/netbox into feature 2021-04-27 16:33:34 -07:00
checktheroads
82b770c1aa Fix #6297: update screenshot links & remove old screenshots 2021-04-27 16:32:00 -07:00
jeremystretch
456ffb79ff Merge v2.11.2 2021-04-27 14:05:38 -04:00
jeremystretch
368c2aac24 Fix path to manage.py 2021-04-27 13:47:29 -04:00
jeremystretch
b6f70ed92a Run collecstatic when preparing test environment 2021-04-27 13:42:57 -04:00
jeremystretch
98c2914eeb Get preferences only if user is authenticated 2021-04-27 13:26:50 -04:00
jeremystretch
5b09e4ac0c Add migration for CustomLink button_class default 2021-04-27 13:25:57 -04:00
Jeremy Stretch
5d8cf22897 Merge pull request #6253 from checktheroads/feature
#5893: Upgrade Bootstrap, Remove jQuery, Improve Layout
2021-04-27 11:37:05 -04:00
jeremystretch
51f6d2f45e PRVB 2021-04-27 10:47:48 -04:00
Jeremy Stretch
1abaa5e60c Merge pull request #6292 from netbox-community/develop
Release v2.11.2
2021-04-27 10:45:12 -04:00
Jeremy Stretch
f4792eea04 Merge branch 'master' into develop 2021-04-27 10:24:13 -04:00
jeremystretch
1fe1e1ce7e Release v2.11.2 2021-04-27 10:20:36 -04:00
jeremystretch
58659cf3b6 Fixes #6262: Support filtering by created/updated time for all relevant objects 2021-04-27 10:04:28 -04:00
jeremystretch
9a588231c5 Fixes #6289: Fix assignment of VC member interfaces to LAG interfaces 2021-04-27 09:36:48 -04:00
jeremystretch
f408ad16e4 Closes #6287: Add option to clear assigned max length filter on prefixes list 2021-04-27 08:34:21 -04:00
jeremystretch
fecca5ad83 Fixes #6267: Fix cable tracing API endpoint for circuit terminations 2021-04-26 16:49:52 -04:00
jeremystretch
9e5d41c48a Remove myself from funding 2021-04-26 15:55:53 -04:00
jeremystretch
87b4cfff1a Closes #6278: Note device locations on cable traces 2021-04-26 15:31:53 -04:00
jeremystretch
19a2b9042f Closes #6275: Linkify rack, device counts on locations list 2021-04-26 15:28:35 -04:00
checktheroads
eea26d7ece add dark mode, screenshots, and social icons to docs 2021-04-26 01:16:23 -07:00
checktheroads
06182bfce4 update docs & readme with screenshots 2021-04-26 01:15:37 -07:00
checktheroads
77bb9eaa73 fix select styles 2021-04-26 00:56:50 -07:00
checktheroads
10d1378277 don't run pycodestyle on node_modules directory 2021-04-26 00:34:25 -07:00
checktheroads
8b2f4780ed fix type error 2021-04-26 00:32:26 -07:00
checktheroads
aef513f038 improve styles and documentation 2021-04-26 00:31:51 -07:00
checktheroads
bb55df34d7 update bootstrap version 2021-04-26 00:31:03 -07:00
checktheroads
2b159fc40f implement dark mode 2021-04-25 20:11:46 -07:00
checktheroads
d7d004b48e undo home template path change 2021-04-25 20:10:41 -07:00
checktheroads
013fbf79e9 add dict.get template tag helper 2021-04-25 20:09:32 -07:00
jeremystretch
2618dde1e2 Fixes #6236: Journal entry title should account for configured timezone 2021-04-23 15:27:58 -04:00
checktheroads
8a2d4ab68c update readme screenshots 2021-04-23 11:52:42 -07:00
checktheroads
5e4878843e fix custom link rendering 2021-04-23 09:31:16 -07:00
checktheroads
be484d20a2 fix pep8 formatting 2021-04-23 07:57:33 -07:00
jeremystretch
1dd9f8c1d4 Fixes #6248: Fix table column reconfiguration under Chrome 2021-04-23 10:27:58 -04:00
jeremystretch
4939b6b641 Fixes #6252: Fix assignment of console port speed values above 19.2kbps 2021-04-23 10:07:11 -04:00
jeremystretch
52747e364a Fixes #6254: Disable ordering of space column in racks table 2021-04-23 09:44:29 -04:00
jeremystretch
1901e93b1e Fixes #6258: Fix parent assignment for SiteGroup API serializer 2021-04-23 09:37:22 -04:00
checktheroads
eb55761c38 Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/project-static/js/forms.js
#	netbox/templates/dcim/location.html
#	netbox/templates/generic/object_list.html
2021-04-22 19:19:03 -07:00
checktheroads
16b57193f1 fix bulk edit styles 2021-04-22 18:58:36 -07:00
checktheroads
5bb7bf8947 properly handle select all confirmation on tables 2021-04-22 18:58:23 -07:00
checktheroads
2c9aa86bf0 fix checkbox styles 2021-04-22 18:57:43 -07:00
checktheroads
d2b915f6c2 add typed wrapper around document.getElementById 2021-04-22 18:56:37 -07:00
checktheroads
7920eff672 get non-field form errors as toast messages 2021-04-22 15:59:16 -07:00
checktheroads
30415e6220 fix template styles 2021-04-22 15:58:57 -07:00
checktheroads
21db209f47 fix issue where select fields with a pre-populated value were reset when forms were submitted, due to having the disabled attribute set. 2021-04-22 15:58:46 -07:00
jeremystretch
648b9dd7d8 Closes #6239: Fix sudo invokations of echo 2021-04-22 14:11:58 -04:00
jeremystretch
396c91f8f7 Fixes #6246: Permit full-length descriptions when creating device components and VM interfaces 2021-04-22 14:05:07 -04:00
checktheroads
c3c79d3715 fix rack elevation show/hide image toggle 2021-04-21 13:20:31 -07:00
checktheroads
8c3229ec38 fix device template styles 2021-04-21 13:20:09 -07:00
checktheroads
8c92cfb814 fix required label styles after migration to material design icons 2021-04-21 13:19:46 -07:00
checktheroads
3eb866f5d2 fix image attachment styles 2021-04-21 13:19:30 -07:00
checktheroads
3471c737b9 fix confirmation form styles 2021-04-21 13:19:08 -07:00
checktheroads
d164ccb6c7 fix image upload field style 2021-04-21 13:18:48 -07:00
checktheroads
ce98957be0 remove old files 2021-04-21 11:31:39 -07:00
checktheroads
fe4a9bff2d remove all bootstrap icons in favor of material design icons 2021-04-21 11:31:28 -07:00
checktheroads
024f3962b2 use getNetboxData utility function in job handling 2021-04-21 10:40:37 -07:00
checktheroads
a55316aef9 fix scripts/reports template layout 2021-04-21 10:39:56 -07:00
checktheroads
08b955f8b6 migrate napalm device status to typescript 2021-04-21 10:19:13 -07:00
jeremystretch
83f520f7a8 PRVB 2021-04-21 10:37:51 -04:00
jeremystretch
9476fda987 Closes #5994: Drop support for display_field argument on ObjectVar 2021-04-21 10:29:25 -04:00
jeremystretch
b509d96f18 Closes #5532: Drop support for Python 3.6 2021-04-21 10:20:09 -04:00
Jeremy Stretch
d8ae65a762 Merge pull request #6230 from netbox-community/develop
Release v2.11.1
2021-04-21 10:05:35 -04:00
Jeremy Stretch
efea511211 Merge branch 'master' into develop 2021-04-21 09:53:23 -04:00
jeremystretch
2564818c3e Release v2.11.1 2021-04-21 09:47:30 -04:00
jeremystretch
e6930d9601 Closes #6161: Enable ordering of device component tables 2021-04-20 20:21:52 -04:00
checktheroads
4827cd24d8 improve styles 2021-04-20 12:45:39 -07:00
checktheroads
acca69a8a9 implement table filtering on generic object list 2021-04-20 12:45:30 -07:00
jeremystretch
4e405ce530 Closes #6210: Include child locations on location view 2021-04-20 14:15:12 -04:00
checktheroads
d171e781d2 fix connection toggle button style 2021-04-20 09:38:13 -07:00
checktheroads
99f0e31810 clean up typescript initialization 2021-04-20 09:34:12 -07:00
jeremystretch
88ffc9b145 Update GitHub issue templates 2021-04-20 11:37:03 -04:00
jeremystretch
9ed76400de Closes #6179: Enable natural ordering for virtual machines 2021-04-20 09:37:43 -04:00
checktheroads
0aa8fc2fc2 migrate napalm/device config to typescript 2021-04-20 01:43:36 -07:00
checktheroads
98829b209a fix device template style 2021-04-20 01:18:34 -07:00
checktheroads
f3eb0df081 migrate napalm/lldp to typescript 2021-04-20 01:18:24 -07:00
checktheroads
f83fb57d38 migrate vlan group scope selector to typescript 2021-04-19 21:30:50 -07:00
checktheroads
7d07631f12 migrate connection toggle to typescript 2021-04-19 20:48:03 -07:00
checktheroads
8737e9824f migrate url handling of tab display to typescript 2021-04-19 20:47:36 -07:00
checktheroads
ea472c844e Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/templates/generic/object_list.html
2021-04-19 19:40:15 -07:00
checktheroads
a29e2582ed dist updates 2021-04-19 17:10:27 -07:00
checktheroads
98477ef6c6 update device/interfaces template with correct interface filtering elements 2021-04-19 17:09:42 -07:00
checktheroads
86be6aebff fix issue with option re-ordering 2021-04-19 17:09:15 -07:00
checktheroads
f9754bddf1 migrate move up/down buttons to typescript 2021-04-19 17:00:18 -07:00
checktheroads
03390815af migrate table config to typescript & update templates 2021-04-19 17:00:09 -07:00
checktheroads
82ef6f8ac5 implement generic api request function 2021-04-19 16:59:26 -07:00
jeremystretch
497e50c559 Closes #6190: Allow filtering devices with no location assigned 2021-04-19 16:55:57 -04:00
jeremystretch
7cf9e202a3 Fixes #6215: Restore tenancy section in virtual machine form 2021-04-19 16:50:56 -04:00
jeremystretch
620d222f98 Closes #6189: Add ability to search for locations by name or description 2021-04-19 15:56:39 -04:00
jeremystretch
a2d16143e3 Fixes #6188: Support custom field filtering for regions, site groups, and locations 2021-04-19 11:05:40 -04:00
jeremystretch
97c087ef5f Fixes #6196: Fix object list display for users with read-only permissions 2021-04-19 10:46:23 -04:00
Matt Palmer
07f39b31da Expose Django SESSION_COOKIE_NAME setting
There are situations in which it is convenient to be able to modify the name of the cookie that the application uses for storing the session token (conflicts with other cookies on the same domain, for example).
2021-04-19 12:00:27 +10:00
checktheroads
f7c1bc71d9 migrate templates to bootstrap 5 2021-04-18 16:42:28 -07:00
checktheroads
4b0d5815c0 migrate script job checking to typescript & update templates for bootstrap 5 2021-04-18 14:17:13 -07:00
checktheroads
5c07a968fe update styles 2021-04-18 11:36:41 -07:00
checktheroads
f4ac87af3a add bootstrap mixin subclass to bulk rename form so classes are properly assigned 2021-04-18 11:36:12 -07:00
checktheroads
125965b559 migrate templates to bootstrap 5 2021-04-18 11:35:42 -07:00
checktheroads
43703b6f40 add bootstrap classes to VC membership form 2021-04-18 11:35:21 -07:00
checktheroads
7cdae0f689 add provider networks to navigation 2021-04-18 00:23:06 -07:00
checktheroads
61ce2c95b3 migrate templates to bootstrap 5 2021-04-18 00:22:52 -07:00
checktheroads
08128748a7 migrate generic modal to bootstrap 5 2021-04-17 18:35:20 -07:00
checktheroads
c9fe7f6db6 migrate cluster templates to bootstrap 5 2021-04-17 18:35:09 -07:00
checktheroads
a8cad28da7 migrate interface filtering to typescript 2021-04-17 18:16:13 -07:00
checktheroads
c035af5409 migrate virtual machine & vm interface to bootstrap 5 2021-04-17 18:15:53 -07:00
checktheroads
eb951fdaf1 migrate secrets to bootstrap 5 and deprecate jquery functions 2021-04-17 17:18:13 -07:00
checktheroads
726ab7fc05 fix user key styles 2021-04-16 17:04:08 -07:00
checktheroads
fb25c79b9c migrate yaml nav item definitions to dataclasses 2021-04-16 15:55:06 -07:00
checktheroads
3c0f4278c7 update extras templates 2021-04-16 14:58:44 -07:00
jeremystretch
6bd4b3c167 Fixes #6184: Fix parent object table column in prefix IP addresses list 2021-04-16 13:07:41 -04:00
jeremystretch
89350a80ad PRVB 2021-04-16 10:32:21 -04:00
Jeremy Stretch
f26227ecec Merge pull request #6180 from netbox-community/develop
Release v2.11.0
2021-04-16 09:52:45 -04:00
Jeremy Stretch
c002501c2e Merge branch 'master' into develop 2021-04-16 09:40:29 -04:00
jeremystretch
8af78c6d84 Release v2.11.0 2021-04-16 09:36:05 -04:00
jeremystretch
7e8ffd8390 Fix markdown list indentation 2021-04-16 09:32:37 -04:00
jeremystretch
5bd30060e7 Fixes #6177: Prevent VM interface from being assigned as its own parent 2021-04-16 09:18:58 -04:00
jeremystretch
c24cac9a44 Fixes #6176: Correct position of MAC address field when creating VM interfaces 2021-04-16 09:16:43 -04:00
jeremystretch
2bc9730b1d Merge release notes from v2.11-beta1 2021-04-16 09:16:01 -04:00
Jeremy Stretch
428858dc75 Merge pull request #6175 from netbox-community/feature
Prep for v2.11 release
2021-04-16 08:45:23 -04:00
jeremystretch
8a425a93ae Fixes #6173: Fix assigned device/VM count when bulk editing/deleting device roles 2021-04-15 19:53:46 -04:00
checktheroads
59256cf8b3 update cable trace styles 2021-04-15 16:53:04 -07:00
checktheroads
844186d520 fix object title style 2021-04-15 16:52:46 -07:00
checktheroads
93b6d785f3 fix circuit termination styles 2021-04-15 15:26:59 -07:00
jeremystretch
0bb2a051b6 Fixes #6171: Fix display of horizontally-scrolling object lists 2021-04-15 15:52:11 -04:00
jeremystretch
ef78a7d41b Merge branch 'develop' into feature 2021-04-15 15:46:48 -04:00
Jeremy Stretch
6c1c695616 Merge pull request #6172 from netbox-community/develop
Release v2.10.10
2021-04-15 15:34:24 -04:00
Jeremy Stretch
8bdab347b6 Merge branch 'master' into develop 2021-04-15 15:24:36 -04:00
jeremystretch
ae349d4424 Release v2.10.10 2021-04-15 15:20:30 -04:00
jeremystretch
3e49745257 Changelog for #6168 2021-04-15 13:30:42 -04:00
Jeremy Stretch
c2b7226205 Merge pull request #6169 from promasu/develop
Fixes #6168: Add SFP56 interface type
2021-04-15 13:29:44 -04:00
jeremystretch
f67369a9a9 Fixes #5643: Fix VLAN assignment when editing VM interfaces in bulk 2021-04-15 13:26:19 -04:00
Adrian Nöthlich
14d2a49942 Fixes #6168: Add SFP56 interface type
Signed-off-by: Adrian Nöthlich <git@promasu.tech>
2021-04-15 18:37:45 +02:00
jeremystretch
92df40a6a0 Fixes #5652: Update object data when renaming a custom field 2021-04-15 12:04:34 -04:00
checktheroads
0e6e9c5238 fix table config modal styles 2021-04-14 17:05:10 -07:00
checktheroads
de65ffb99d fix napalm tab layout from merge conflict 2021-04-14 16:11:25 -07:00
checktheroads
2d5472cf2a fix object list layout 2021-04-14 16:05:08 -07:00
jeremystretch
a2203da1c6 Fixes #6162: Fix choice field filters (multiple models) 2021-04-14 16:17:19 -04:00
jeremystretch
0fb8291b8b Documentation cleanup 2021-04-14 15:21:30 -04:00
jeremystretch
b393ec2856 Enable webhooks for JournalEntry 2021-04-14 14:55:01 -04:00
checktheroads
c3d908126f Merge branch 'feature' of https://github.com/netbox-community/netbox into feature 2021-04-14 11:33:33 -07:00
checktheroads
4c3b0abe7b Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/dcim/tables/template_code.py
#	netbox/netbox/views/__init__.py
#	netbox/project-static/css/base.css
#	netbox/templates/base.html
#	netbox/templates/circuits/circuit.html
#	netbox/templates/circuits/circuittermination_edit.html
#	netbox/templates/circuits/inc/circuit_termination.html
#	netbox/templates/circuits/provider.html
#	netbox/templates/dcim/device.html
#	netbox/templates/dcim/device/base.html
#	netbox/templates/dcim/device_component.html
#	netbox/templates/dcim/devicetype.html
#	netbox/templates/dcim/inc/device_napalm_tabs.html
#	netbox/templates/dcim/rack.html
#	netbox/templates/dcim/site.html
#	netbox/templates/dcim/virtualchassis.html
#	netbox/templates/extras/configcontext.html
#	netbox/templates/extras/object_journal.html
#	netbox/templates/extras/tag.html
#	netbox/templates/generic/object.html
#	netbox/templates/generic/object_list.html
#	netbox/templates/home.html
#	netbox/templates/inc/nav_menu.html
#	netbox/templates/ipam/aggregate.html
#	netbox/templates/ipam/ipaddress.html
#	netbox/templates/ipam/prefix.html
#	netbox/templates/ipam/vlan.html
#	netbox/templates/ipam/vlangroup_edit.html
#	netbox/templates/ipam/vlangroup_vlans.html
#	netbox/templates/secrets/secret.html
#	netbox/templates/tenancy/tenant.html
#	netbox/templates/users/api_tokens.html
#	netbox/templates/virtualization/cluster.html
#	netbox/templates/virtualization/vminterface_edit.html
#	netbox/utilities/forms/fields.py
#	netbox/utilities/templates/buttons/export.html
2021-04-14 11:30:15 -07:00
jeremystretch
664ba55460 Reorganize base TestCase classes 2021-04-14 14:22:58 -04:00
jeremystretch
3d0882856f Closes #5796: Add DC terminal power port, outlet types 2021-04-14 10:44:15 -04:00
jeremystretch
e849d28276 Closes #5980: Add Saf-D-Grid power port, outlet types 2021-04-14 10:40:31 -04:00
jeremystretch
18a691482d Closes #6160: Add F connector port type 2021-04-14 10:38:54 -04:00
jeremystretch
7c48e3632d Closes #6157: Support Markdown rendering for report logs 2021-04-14 10:21:07 -04:00
jeremystretch
8701b20899 Fixes #6155: Fix admin links for plugins, background tasks 2021-04-14 09:46:05 -04:00
checktheroads
8ca2884c1c dist updates 2021-04-13 21:51:30 -07:00
checktheroads
d1d2ad6a5c bootstrap 5 class updates 2021-04-13 21:51:12 -07:00
jeremystretch
e3f5062583 Merge branch 'develop' into feature 2021-04-13 16:41:46 -04:00
jeremystretch
d427e0522e Closes #5757: Add unique identifier to every object view 2021-04-13 16:14:12 -04:00
jeremystretch
46e144f647 Clean up object header 2021-04-13 16:03:07 -04:00
jeremystretch
6ad20c53d9 Delete unused template 2021-04-13 15:58:21 -04:00
jeremystretch
cc433388f5 Fixes #6056: Optimize change log cleanup 2021-04-13 13:48:22 -04:00
jeremystretch
1fba4b7e32 Fixes #5419: Update parent device/VM when deleting a primary IP 2021-04-13 13:23:25 -04:00
jeremystretch
c249cd4ffd Fixes #6152: Fix custom field filtering for cables, virtual chassis 2021-04-13 12:05:44 -04:00
jeremystretch
d54bf5f75e Fixes #6144: Fix MAC address field display in VM interfaces search form 2021-04-13 11:52:32 -04:00
jeremystretch
9cbe3ff551 Enable close-stale-issue action 2021-04-13 11:46:14 -04:00
jeremystretch
b1d20d3228 Closes #6149: Support image attachments for locations 2021-04-13 11:39:04 -04:00
jeremystretch
e5602abee0 Closes #5848: Filter custom fields by content type in format <app_label>.<model> 2021-04-13 11:30:45 -04:00
jeremystretch
a296a9e109 Closes #6150: Enable change logging for journal entries 2021-04-13 10:53:55 -04:00
jeremystretch
e5bbf47ab9 Fixes #5583: Eliminate redundant change records when adding/removing tags 2021-04-13 10:14:25 -04:00
jeremystretch
9bda2a44ae Fix permissions for cable trace view tests 2021-04-12 16:25:52 -04:00
jeremystretch
a1d32c3a21 Add view tests for CircuitTermination 2021-04-12 16:07:52 -04:00
jeremystretch
b4b68c0b00 Move create_test_device() to testing utils 2021-04-12 16:07:03 -04:00
jeremystretch
608bf30bda Add cable trace view tests 2021-04-12 15:52:24 -04:00
jeremystretch
d0be5f09a5 Merge branch 'develop' into feature 2021-04-12 15:35:12 -04:00
jeremystretch
3d8a3a2204 Fix link 2021-04-12 15:17:50 -04:00
jeremystretch
b19734004a Removed the "Additional information" blocks from issue templates (no longer needed) 2021-04-12 15:06:40 -04:00
jeremystretch
f503c72782 Closes #6146: Add bulk disconnect support for power feeds 2021-04-12 15:02:29 -04:00
jeremystretch
f8903a8183 Merge branch 'develop' into feature 2021-04-12 14:19:30 -04:00
jeremystretch
d43d5a6cb6 Change stale issues management to GitHub Actions 2021-04-12 13:53:38 -04:00
jeremystretch
99f4b2cf95 PRVB 2021-04-12 13:29:37 -04:00
Jeremy Stretch
b493d739bd Merge pull request #6143 from netbox-community/develop
Release v2.10.9
2021-04-12 13:28:28 -04:00
jeremystretch
92fb43a455 Merge branch 'master' into develop 2021-04-12 13:18:24 -04:00
jeremystretch
7c29fb449e Release v2.10.9 2021-04-12 13:10:33 -04:00
jeremystretch
7ddcec3a0d Fixes #6082: Support colons in webhook header values 2021-04-12 12:09:37 -04:00
jeremystretch
18f206747c Closes #6088: Improved table configuration form 2021-04-12 10:46:32 -04:00
jeremystretch
0bce1da4e3 Clean up stray references to old RackGroup model 2021-04-11 13:43:06 -04:00
jeremystretch
65ed047084 Fixes #6124: Location parent filter should return all child locations (not just those directly assigned) 2021-04-11 13:42:24 -04:00
jeremystretch
b0573f88e6 Merge branch 'develop' into feature 2021-04-11 13:16:00 -04:00
jeremystretch
348fca7e28 Fixes #6117: Handle exception when attempting to assign an MPTT-enabled model as its own parent 2021-04-11 12:57:53 -04:00
jeremystretch
cc9b750eff Changelog & docs for #6083 2021-04-09 14:58:40 -04:00
Marcus Weiner
701ad8a4a9 Allow skipping TLS cert verification on Redis connection (#6084)
* Allow skipping redis tls cert verification

* Add config example
2021-04-09 14:51:58 -04:00
jeremystretch
2cc088c633 Fixes #6131: Correct handling of boolean fields when cloning objects 2021-04-09 14:42:07 -04:00
tcaiazza
4dfba3a2ad Update export-templates.md (#6091)
* Update export-templates.md

* Update export-templates.md

Co-authored-by: Jeremy Stretch <jeremy@netverity.dev>
2021-04-09 14:14:08 -04:00
jeremystretch
a3721a94ce Closes #6121: Extend parent interface assignment to VM interfaces 2021-04-09 10:53:05 -04:00
jeremystretch
7439faad34 Fixes #6123: Prevent device from being assigned to mismatched site and location 2021-04-09 09:56:36 -04:00
jeremystretch
6efe54aa88 Closes #6125: Add locations count to home page 2021-04-09 09:47:34 -04:00
jeremystretch
9e62d1ad8f Fixes #6130: Improve display of assigned models in custom fields list 2021-04-09 09:43:35 -04:00
jeremystretch
e69251b21a Fixes #6070: Add missing 'count_ipaddresses' attribute to VMInterface serializer 2021-04-08 14:22:45 -04:00
jeremystretch
f096c4a5d0 #6081: Tweak queryset filtering 2021-04-08 14:18:07 -04:00
jeremystretch
03b3f5937f Fixes #6108: Do not infer tenant assignment from parent objects for prefixes, IP addresses 2021-04-08 13:50:06 -04:00
jeremystretch
696b5c80a7 Closes #6097: Redirect old slug-based object views 2021-04-08 13:25:29 -04:00
jeremystretch
d6fcd22752 Fixes #6110: Fix handling of TemplateColumn values for table export 2021-04-08 10:30:13 -04:00
jeremystretch
54d9ca8ed8 Add racks count to location view 2021-04-08 10:10:46 -04:00
jeremystretch
05d8a06cd5 Closes #6109: Add device counts to locations table 2021-04-08 10:08:50 -04:00
jeremystretch
4f7626828a Fixes #6107: Fix rack selection field on device form 2021-04-07 16:58:40 -04:00
jeremystretch
81193eb550 Fixes #6106: Allow assigning a virtual interface as the parent of an existing interface 2021-04-07 16:36:09 -04:00
jeremystretch
38b09dc610 Fixes #6105: Hide checkboxes for VMs under cluster VMs view 2021-04-07 16:26:16 -04:00
jeremystretch
ae3527df16 Fixes #6081: Fix interface connections REST API endpoint 2021-04-07 16:04:32 -04:00
jeremystretch
85d0270af0 Fixes #6099: Correct example permission description 2021-04-07 15:50:24 -04:00
jeremystretch
59e185b781 Fixes #6104: Fix location column on racks table 2021-04-07 15:40:03 -04:00
jeremystretch
b5ad29e3f2 Fixes #6100: Fix VM interfaces table "add interfaces" link 2021-04-07 15:17:02 -04:00
jeremystretch
f1e2b99456 Release v2.11-beta1 2021-04-06 11:45:32 -04:00
jeremystretch
0635e7ae1e Update dependencies for v2.11-beta1 2021-04-06 11:36:30 -04:00
jeremystretch
8f674aede9 Bump Django to 3.2 2021-04-06 09:45:59 -04:00
jeremystretch
838200219f Include child regions, site groups 2021-04-06 09:42:36 -04:00
jeremystretch
e543b305c3 Docs cleanup 2021-04-05 21:46:48 -04:00
jeremystretch
d42b0691b2 Fix 'select all' widget 2021-04-05 17:13:32 -04:00
jeremystretch
71022d58d3 Site is required when creating devices 2021-04-05 16:35:01 -04:00
jeremystretch
a313b675a6 Simplify CircuitTermination display in circuits table 2021-04-05 15:24:57 -04:00
jeremystretch
ae18693715 Add 'add export template' link to dropdown 2021-04-05 15:13:35 -04:00
jeremystretch
3ad7622bf0 Catch AttributeError when generating ContentType labels 2021-04-05 15:11:29 -04:00
jeremystretch
19cb575b90 Permit the assignment of virtual interfaces as parents 2021-04-05 14:48:11 -04:00
jeremystretch
3cfab25f8a Tweak JournalEntry form layout 2021-04-05 14:35:09 -04:00
jeremystretch
85359bb10f Fix ContentType assignment 2021-04-05 14:05:28 -04:00
jeremystretch
aa2beb1d78 Add tagged items count to tag view 2021-04-05 13:53:25 -04:00
jeremystretch
2e07ac5a47 Rearrange provider, provider network templates 2021-04-05 13:18:19 -04:00
jeremystretch
d844ee2c79 Empty time_zone should be null 2021-04-05 13:05:07 -04:00
jeremystretch
266482649f Update VLAN documentation 2021-04-05 12:55:57 -04:00
jeremystretch
83496c66d1 Move breadcrumb generation to template 2021-04-05 12:06:59 -04:00
jeremystretch
374cb74978 Filter parent location by ID 2021-04-05 11:53:40 -04:00
jeremystretch
f0018dcba9 LinkedCountColumn should always invoke filter by ID 2021-04-05 11:47:25 -04:00
jeremystretch
7949a5e1fd Migrate VLANGroup site assignments 2021-04-05 11:40:46 -04:00
jeremystretch
0a1531ce8a TenantColumn should export null if no tenant is assigned 2021-04-05 11:18:30 -04:00
jeremystretch
7b8bd2d4ce Location model cleanup 2021-04-05 11:09:33 -04:00
jeremystretch
4883bc3dd4 Empty MAC address should be null 2021-04-02 17:53:00 -04:00
jeremystretch
72a115b434 Add child interfaces table to interface view 2021-04-02 17:33:34 -04:00
jeremystretch
f28edd0864 Use CommentField for JournalEntry comments 2021-04-02 17:14:15 -04:00
jeremystretch
d69ec7f8e4 Add manufacturer column to DeviceTable 2021-04-02 17:02:12 -04:00
jeremystretch
779837389b Convert all LinkColumns to Column(linkify=True) 2021-04-02 16:59:53 -04:00
jeremystretch
ea9e9d7273 Add the models index 2021-04-02 16:29:01 -04:00
jeremystretch
237dfce8a0 Fix tab headers 2021-04-02 15:44:15 -04:00
jeremystretch
2b0ccf3acd Provide absolute URL for object search form 2021-04-02 15:27:00 -04:00
jeremystretch
e4f3b3447e Remove redundant prechange_data assignments 2021-04-02 15:21:11 -04:00
Jeremy Stretch
eb8e4f64fc Restore 'brief' parameter (regression from a292ff5cc0) 2021-04-02 11:37:09 -04:00
Jeremy Stretch
6287f75e67 Toggle VLANGroup scope selector fields 2021-04-02 11:31:46 -04:00
Jeremy Stretch
d82f2e289a Use ContentTypeChoiceField for all ContentType fields 2021-04-02 10:55:16 -04:00
Jeremy Stretch
73e9842877 Introduce ContentTypeChoiceField 2021-04-02 10:54:13 -04:00
Jeremy Stretch
a86178f19b Simplify VLANGroup scope assignment (WIP) 2021-04-02 09:36:14 -04:00
Jeremy Stretch
b77c228853 Rebuild CablePaths when a CircuitTermination is modified 2021-04-02 09:17:11 -04:00
Jeremy Stretch
5e4432b9ad Show the last node in a CablePath with no destination 2021-04-01 21:29:46 -04:00
Jeremy Stretch
e7f10fdaea Include termination side in CircuitTermination string repr 2021-04-01 21:03:00 -04:00
Jeremy Stretch
8713ed5d73 Add test for trace through multiple circuits 2021-04-01 20:38:36 -04:00
Jeremy Stretch
cd64fcac8d Linkify connected object 2021-04-01 17:21:04 -04:00
Jeremy Stretch
96759af86f Closes #6071: Cable traces now traverse circuits 2021-04-01 14:31:10 -04:00
Jeremy Stretch
d57222328b Rename Cloud to ProviderNetwork 2021-04-01 10:21:41 -04:00
Jeremy Stretch
83c4577f6d Merge branch 'develop' into feature 2021-03-31 17:11:54 -04:00
Jeremy Stretch
7bd853e87b Fixes #5805: Fix missing custom field filters for cables, rack reservations 2021-03-31 17:02:21 -04:00
Jeremy Stretch
861a52d27c Closes #5965: Mention cf property on CustomFieldModel in docs 2021-03-31 16:35:28 -04:00
Jeremy Stretch
9df2130e11 Closes #5840: Add column to cable termination objects to display cable color 2021-03-31 15:49:29 -04:00
Jeremy Stretch
6242e195be Closes #5756: Omit child devices from non-racked devices list under rack view 2021-03-31 15:33:06 -04:00
Jeremy Stretch
f2f0ea8d04 Closes #5526: Add MAC address search field to VM interfaces list 2021-03-31 15:27:38 -04:00
Jeremy Stretch
b7309d5c69 Closes #6054: Display NAPALM-enabled device tabs only when relevant 2021-03-31 15:21:07 -04:00
Jeremy Stretch
613e0d10b3 Add link to v2.11 release notes 2021-03-31 14:24:43 -04:00
Jeremy Stretch
04fc3a5a9e Closes #6001: Paginate component tables under device views 2021-03-31 14:24:05 -04:00
Jeremy Stretch
6ec8ac7597 Fixes #6073: Permit users to manage their own REST API tokens without needing explicit permission 2021-03-31 13:25:06 -04:00
Jeremy Stretch
9a5f54bdaf Add tests for filtering VLANs by device/VM 2021-03-31 10:59:15 -04:00
Jeremy Stretch
ad5e167ad7 Remove obsolete grouping logic 2021-03-31 10:04:44 -04:00
Jeremy Stretch
d33d9522cc Fix VM VLAN filtering 2021-03-30 21:46:56 -04:00
Jeremy Stretch
a292ff5cc0 Remove brief_mode parameter from DynamicModelChoiceMixin 2021-03-30 21:34:50 -04:00
Jeremy Stretch
b91e5763e2 Add 'available_on' VLAN filters for devices & VMs 2021-03-30 21:32:48 -04:00
Jeremy Stretch
e1e840eb69 Fix VLANGroup 'add VLAN' button 2021-03-30 21:23:57 -04:00
Jeremy Stretch
0eb9f41470 Changelog & docs for #5380 2021-03-30 18:59:47 -04:00
Jeremy Stretch
34457ea1b4 Merge pull request #6072 from rodvand/origin/feature
#5830: Expand ExportTemplate model with attachment choice
2021-03-30 18:53:38 -04:00
Martin Rødvand
878154c305 Closes #5830: Add as_attachment field to API serializers and admin view. 2021-03-30 23:26:55 +02:00
Martin Rødvand
9ede726eea Add boolean as_attachment to Export template 2021-03-30 22:27:26 +02:00
Jeremy Stretch
bfa95c16e3 Add missing tests for SiteGroup 2021-03-30 11:06:59 -04:00
Jeremy Stretch
7885ec5511 Clean up custom field column implementation 2021-03-29 17:51:45 -04:00
Tom Grozev
be3d33eebd Add support for custom fields in tables (#5460)
* Add support for custom fields in tables

* Fix empty list displays as none

Co-authored-by: TomGrozev <TomGrozev@users.noreply.github.com>
Co-authored-by: Jeremy Stretch <jeremy@netverity.dev>
2021-03-29 17:15:21 -04:00
Jeremy Stretch
c7040fd418 Closes #6038: Include tagged objects list on tag view 2021-03-29 16:53:41 -04:00
Jeremy Stretch
eac53a779b Migrate prefix, VLAN templates to new structure 2021-03-29 16:43:29 -04:00
Jeremy Stretch
0986fd1081 Rearrange locations link in navigation menu 2021-03-29 16:27:37 -04:00
Jeremy Stretch
1e3c7e1a87 Fix form errors 2021-03-29 16:23:26 -04:00
Jeremy Stretch
3869028d53 Clean up organizational object URLs 2021-03-29 16:17:25 -04:00
Jeremy Stretch
12945704e9 Fix ConfigContext application for SiteGroups 2021-03-29 15:57:44 -04:00
Jeremy Stretch
cd629fc737 Closes #4833: Allow assigning config contexts by device type 2021-03-29 15:40:09 -04:00
Jeremy Stretch
b070be1c41 Closes #5425: Create separate tabs for VMs and devices under the cluster view 2021-03-29 14:55:17 -04:00
Jeremy Stretch
8fa37d3ec8 Device component lists should link to component-specific device view 2021-03-29 14:49:22 -04:00
Jeremy Stretch
3135dc42c3 Update changelog 2021-03-29 11:56:07 -04:00
Jeremy Stretch
08ef5c9a02 Update docs to indicate location assignment ability 2021-03-29 11:55:34 -04:00
Jeremy Stretch
b1935ddcab Fix initial tab display 2021-03-29 11:41:30 -04:00
Jeremy Stretch
93353e94a2 Note that 'table' is a reserved name for ExportTemplates 2021-03-29 11:25:57 -04:00
Jeremy Stretch
30e4504ee5 Enable bulk editing of device location assignment 2021-03-29 11:01:17 -04:00
Jeremy Stretch
a9716af0fa Tweak table display for components marked as connected 2021-03-29 10:53:02 -04:00
Jeremy Stretch
042f3590c8 Update interfaces documentation 2021-03-29 10:35:07 -04:00
Jeremy Stretch
2c9b791b85 Improve Interface validation 2021-03-29 10:34:31 -04:00
Jeremy Stretch
7396975500 Update documentation for journal entries 2021-03-29 09:59:44 -04:00
Jeremy Stretch
fe4bf62793 Truncate comments in JournalEntryTable 2021-03-29 09:54:06 -04:00
Jeremy Stretch
8a8342b106 Strip microseconds from JournalEntry creation time 2021-03-29 09:48:45 -04:00
Jeremy Stretch
e52702f6c2 Fix journal entry table ordering 2021-03-29 09:44:04 -04:00
Jeremy Stretch
0fae7504b3 Add Markdown support for JournalEntry comments 2021-03-29 09:43:21 -04:00
Jeremy Stretch
ab612c1ca6 Update changelog 2021-03-26 20:25:55 -04:00
Jeremy Stretch
0364d8cd43 Closes #6014: Move virtual machine interfaces list to a separate view 2021-03-26 20:19:19 -04:00
Jeremy Stretch
1544823d73 Closes #5926: Strip leading/trailing whitespace from TemplateColumns rendered for export 2021-03-26 16:20:01 -04:00
Jeremy Stretch
b793ee3aff Merge pull request #6062 from netbox-community/5971-org-object-views
Closes #5971: Dedicated views for organizational models
2021-03-26 16:06:45 -04:00
Jeremy Stretch
36c903da04 Add dedicated view for tags 2021-03-26 15:25:18 -04:00
Jeremy Stretch
981e7017bb Enable get view tests for organizational objects 2021-03-26 15:15:59 -04:00
Jeremy Stretch
2820d26a0f Add dedicated views for nested group models 2021-03-26 15:07:29 -04:00
Jeremy Stretch
b7e44a744d Add dedicated views for organizational models 2021-03-26 14:44:43 -04:00
Jeremy Stretch
bb00f2ff46 Introduce paginate_table() utility to simplify table pagination 2021-03-26 13:02:55 -04:00
Jeremy Stretch
65d90aa8a3 Merge branch 'develop' into feature 2021-03-26 10:53:21 -04:00
Jeremy Stretch
3d286fbdc3 Merge pull request #6061 from netbox-community/develop
Release v2.10.8
2021-03-26 10:22:42 -04:00
Jeremy Stretch
c8eae3a5c3 PRVB 2021-03-26 10:11:57 -04:00
Jeremy Stretch
afc58e6bff Merge branch 'master' into develop 2021-03-26 10:11:04 -04:00
Jeremy Stretch
f59b5119e5 Release v2.10.8 2021-03-26 10:04:00 -04:00
Jeremy Stretch
8eca7377a5 Fixes #6060: Fix exception on cable trace in UI 2021-03-26 09:40:51 -04:00
Jeremy Stretch
c828806b67 Merge branch 'develop' into feature 2021-03-25 16:09:28 -04:00
Jeremy Stretch
e639de9861 PRVB 2021-03-25 15:36:32 -04:00
Jeremy Stretch
9a4d885a9c Merge pull request #6055 from netbox-community/develop
Release v2.10.7
2021-03-25 15:34:45 -04:00
Jeremy Stretch
d28cc4fdb5 Merge branch 'master' into develop 2021-03-25 15:23:43 -04:00
Jeremy Stretch
54a979c936 Release v2.10.7 2021-03-25 15:15:36 -04:00
Jeremy Stretch
d18652f726 Fixes #6012: Pre-populate attributes when creating an available child prefix via the UI 2021-03-25 15:04:56 -04:00
Jeremy Stretch
ac1083f65d Replace checkboxes in documentation issue template with dropdown 2021-03-25 12:03:00 -04:00
Jeremy Stretch
bcfc2e5f74 Changelog & tweaks for #5650 2021-03-25 11:51:02 -04:00
Jeremy Stretch
a135396d7b Merge pull request #5672 from cpmills1975/5650-render-incomplete-lengths
Indicate when cable length is not definitive
2021-03-25 11:44:00 -04:00
Jeremy Stretch
ef987bd008 Closes #5723: Allow customization of the geographic mapping service via MAPS_URL config parameter 2021-03-25 11:34:24 -04:00
Jeremy Stretch
a2fef1df83 Closes #5748: Extend example pg_dump commands 2021-03-25 11:23:55 -04:00
Jeremy Stretch
016c7d4e6f Changelog for #5736 2021-03-25 11:11:11 -04:00
Jeremy Stretch
0a60bcdb8d Merge pull request #6028 from rodvand/develop
Closes #5736: Add Site as editable field in bulk editing of Device
2021-03-25 11:08:00 -04:00
Jeremy Stretch
5374e6c881 Closes #6040: Add UI search fields for asset tag for devices and racks 2021-03-24 15:05:19 -04:00
Jeremy Stretch
ab65ab860f Closes #5641: Allow filtering device components by label 2021-03-24 14:48:38 -04:00
Jeremy Stretch
ad2742dbb2 Fixes #6023: Fix display of bottom banner with uBlock Origin enabled 2021-03-24 14:25:09 -04:00
Jeremy Stretch
997077fc5d Merge pull request #6029 from maximumG/origin/6010-vc-duplicated
Closes #6010: Avoid duplicate entries when searching for VC
2021-03-24 14:16:23 -04:00
maxime-gerges-external
c8042ad511 Closes #6010: Avoid duplicate entries when searching for VC 2021-03-22 11:15:58 +01:00
Martin Rødvand
b51d66ea72 Closes #5736: Add Site as editable field in bulk editing of Device 2021-03-22 11:15:17 +01:00
checktheroads
21d31b5747 fix prefix table styles 2021-03-19 09:38:26 -07:00
checktheroads
1ea208ba00 fix handling of filtered-by properties 2021-03-19 09:26:39 -07:00
checktheroads
5fdf2d3416 replace rack elevation logic 2021-03-19 09:25:27 -07:00
Jeremy Stretch
0321ae0a7f Merge pull request #6005 from Daimler/use-relative-links
Closes #5523: Use relative links that work locally and in production
2021-03-19 10:38:23 -04:00
Jeremy Stretch
e4ecd2dae9 Fixes #6006: Fix VLAN group/site association for bulk prefix import 2021-03-19 10:22:30 -04:00
Jeremy Stretch
b9176adca4 Merge pull request #6011 from netbox-community/5986-cloud-model
Closes #5896: Introduce the cloud model
2021-03-18 15:22:48 -04:00
Jeremy Stretch
b6f6293b76 Prevent the attachment of a Cable to a CircuitTermination on a Cloud 2021-03-18 15:07:22 -04:00
Jeremy Stretch
d45edcd216 Linkify circuit terminations in table 2021-03-18 14:49:06 -04:00
Jeremy Stretch
89c487de65 Documentation and changelog for #5986 2021-03-18 14:43:07 -04:00
Jeremy Stretch
d45a17247d Add circuit cloud filters & tests 2021-03-18 14:32:28 -04:00
Jeremy Stretch
2e97bf48c5 Include circuits list on cloud view 2021-03-18 14:05:32 -04:00
Jeremy Stretch
872e936924 Add termination FKs on Circuit model 2021-03-18 13:54:05 -04:00
Jeremy Stretch
574a43fff7 Enable attaching circuit terminations to clouds 2021-03-18 13:53:48 -04:00
Jeremy Stretch
6ff8a267e9 Introduce the Cloud model 2021-03-18 11:20:09 -04:00
Marcus Crane
335cfcde57 Use relative links that work locally and in production
At present, a mix of link types are used in the Netbox
documentation from markdown file links to relative and
absolute anchor links.

Of the three types, linking to markdown files is the
most ideal because it allows navigation locally on disk,
as well as being translated into working links at render
time.

While not obvious, mkdocs handles converting markdown
links to valid URLs.

Signed-Off-by: Marcus Crane <marcu.crane@daimler.com>
2021-03-18 19:39:03 +13:00
checktheroads
5f5df97e59 dist updates 2021-03-17 23:35:05 -07:00
checktheroads
cbd4d2f99a fix journal layout 2021-03-17 23:32:08 -07:00
checktheroads
a1ac1876ad handle selection resets 2021-03-17 23:32:01 -07:00
checktheroads
58841e85db update css classes for bootstrap 5 colors 2021-03-17 23:31:15 -07:00
checktheroads
46cd22ea7e style textareas supporting markdown with monospace font 2021-03-17 23:30:39 -07:00
checktheroads
cf8dad5763 fix object journal styles 2021-03-17 22:37:13 -07:00
checktheroads
8ea2949d84 Update sidenav menu data with Locations and SiteGroups 2021-03-17 22:25:51 -07:00
checktheroads
e4af9ebc6f fix import/export styles 2021-03-17 22:25:20 -07:00
checktheroads
7a3af8de83 Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/dcim/tables/template_code.py
#	netbox/netbox/forms.py
#	netbox/templates/dcim/cable_connect.html
#	netbox/templates/dcim/consoleport.html
#	netbox/templates/dcim/consoleserverport.html
#	netbox/templates/dcim/device.html
#	netbox/templates/dcim/device/base.html
#	netbox/templates/dcim/device_edit.html
#	netbox/templates/dcim/interface.html
#	netbox/templates/dcim/rack.html
#	netbox/templates/dcim/rack_edit.html
#	netbox/templates/dcim/site.html
#	netbox/templates/extras/configcontext.html
#	netbox/templates/extras/objectchange.html
#	netbox/templates/generic/object.html
#	netbox/templates/inc/nav_menu.html
#	netbox/templates/ipam/ipaddress_edit.html
#	netbox/templates/ipam/vrf.html
#	netbox/utilities/templates/buttons/export.html
2021-03-17 22:02:43 -07:00
Jeremy Stretch
433c48a1a3 Fix IP address interface validation 2021-03-17 16:44:34 -04:00
Jeremy Stretch
889316085c Closes #5998: Introduce ContentTypeColumn 2021-03-17 16:29:43 -04:00
checktheroads
05c0a9256d dist updates 2021-03-17 13:00:29 -07:00
checktheroads
c10b8cf55b bootstrap 5 template updates 2021-03-17 13:00:20 -07:00
Jeremy Stretch
91fe80f73c Changelog for #5977 2021-03-17 15:41:27 -04:00
checktheroads
4e837c2770 update select to handle display property 2021-03-17 12:39:35 -07:00
Jeremy Stretch
7e437455c1 Merge pull request #5978 from jathanism/jathanism-fix-invalid-release_check_url
Fix use of `URLValidator` to correctly validate `RELEASE_CHECK_URL`
2021-03-17 15:29:50 -04:00
Jeremy Stretch
9a68a61ad3 Merge pull request #5999 from netbox-community/151-journaling
Closes #151: Add object journaling
2021-03-17 13:14:50 -04:00
Jeremy Stretch
7e65a3d3b4 Add JournalEntry filter for kind 2021-03-17 13:02:40 -04:00
Jeremy Stretch
82fbd975f1 Add kind field to JournalEntry 2021-03-17 12:51:39 -04:00
Jeremy Stretch
bd95d2b852 Changelog and documentation for #151 2021-03-17 10:58:40 -04:00
Jeremy Stretch
956e2728c2 Add bulk edit, delete views for journal entries 2021-03-17 10:41:06 -04:00
Jeremy Stretch
7f1d9aeaf8 Skip secondary check if get_absolute_url() not defined for model 2021-03-16 16:48:08 -04:00
Jeremy Stretch
f2c079de87 Add JournalEntry tests 2021-03-16 16:47:35 -04:00
Jeremy Stretch
8be4fbbce3 Add JournalEntry list view w/filtering 2021-03-16 15:57:23 -04:00
Jeremy Stretch
64d11d32c8 Fix conditional display journal & change log tabs 2021-03-16 15:33:41 -04:00
Jeremy Stretch
1f1a62da67 Initial work on #151: Object journaling 2021-03-16 15:00:08 -04:00
Jeremy Stretch
e97adcb614 Move ConfigContext classes out of models.py 2021-03-16 13:08:07 -04:00
Jeremy Stretch
2bb4a81e23 Closes #5975: Allow partial vCPU allocations for virtual machines 2021-03-16 11:52:59 -04:00
Jeremy Stretch
46a024441c Closes #5995: Dropped backward compatibility for queryset parameter on ObjectVar and MultiObjectVar 2021-03-16 11:28:50 -04:00
Jeremy Stretch
a694dbb020 Closes #5990: Deprecated display_field parameter for custom script ObjectVar and MultiObjectVar fields 2021-03-16 11:08:34 -04:00
Jeremy Stretch
f74c88027e Merge pull request #5992 from netbox-community/5891-api-serializer-display
Closes #5981: Add display field to all REST API serializers
2021-03-16 10:53:59 -04:00
Jeremy Stretch
c64f96d65b Drop usage of display_field on DynamicModelChoiceFields 2021-03-16 10:29:15 -04:00
Jeremy Stretch
fb48c1f6dd Add 'display' field to all REST API serializers 2021-03-16 10:06:25 -04:00
Jeremy Stretch
ee7f7c877a Merge pull request #5985 from netbox-community/5284-vlangroup-scope
Closes #5284: Allow VLANGroup assignment beyond sites
2021-03-15 21:11:49 -04:00
Jeremy Stretch
f64f205e81 Omit prefetch_related() for VLANGroup 2021-03-15 20:58:23 -04:00
Jeremy Stretch
10778f8479 Merge branch 'feature' into 5284-vlangroup-scope 2021-03-15 20:48:55 -04:00
Jeremy Stretch
bb6360cad4 Fix up VLANGroup tests 2021-03-15 20:35:18 -04:00
Jeremy Stretch
c0c4eed3a8 Extend VLANGroup to support cluster/cluster group assignment 2021-03-15 16:32:07 -04:00
Jeremy Stretch
f9f1a4439f Update Slack links 2021-03-15 14:45:53 -04:00
checktheroads
9c66e1f01b dist updates 2021-03-15 08:54:09 -07:00
checktheroads
683f75fad1 bootstrap 5 template updates 2021-03-15 08:54:01 -07:00
checktheroads
a303a0dfb7 fix form error rendering 2021-03-15 08:53:48 -07:00
checktheroads
b0d634a89e add startswith helper 2021-03-15 08:53:28 -07:00
checktheroads
f62e49c02b remove console.log 2021-03-15 08:34:35 -07:00
checktheroads
61f137866e customize file upload field 2021-03-15 07:49:59 -07:00
checktheroads
3f1714f076 fix select loading display 2021-03-15 07:49:39 -07:00
checktheroads
afce8e2516 dist updates 2021-03-14 17:32:07 -07:00
checktheroads
4e30ed9693 style fixes 2021-03-14 17:31:55 -07:00
checktheroads
7f02b9436b fix styling when element is not in a form-floating div 2021-03-14 17:31:42 -07:00
checktheroads
a237725d0d improve handling of loading data 2021-03-14 17:31:06 -07:00
checktheroads
91561e9ca5 fix search panel styling 2021-03-14 17:27:03 -07:00
checktheroads
4ab5d15ee6 update templates to bootstrap 5 classes 2021-03-14 17:26:56 -07:00
checktheroads
187f4fa4aa fix device & device component templates 2021-03-14 17:26:33 -07:00
checktheroads
3bb2b9e8f6 dist updates 2021-03-14 01:07:01 -07:00
checktheroads
59d8c0b321 handle server-side form errors 2021-03-14 01:06:51 -07:00
checktheroads
d0cb7d843d fix select data handling 2021-03-14 01:06:35 -07:00
checktheroads
991f71bf28 update templates to bootstrap 5 classes 2021-03-14 01:06:18 -07:00
checktheroads
362392d1de Merge branch 'feature' of github.com:checktheroads/netbox into feature 2021-03-13 14:26:47 -07:00
checktheroads
9e51ddd8d8 fix prefix layout 2021-03-13 14:26:12 -07:00
checktheroads
f65f924011 update templates to bootstrap 5 classes 2021-03-13 14:26:06 -07:00
checktheroads
bc4f19c967 update templates to bootstrap 5 classes 2021-03-13 14:15:23 -07:00
checktheroads
b482c30866 add dist to git 2021-03-13 13:56:40 -07:00
checktheroads
676d93e829 add UI readme 2021-03-13 13:51:55 -07:00
checktheroads
cb93953b2c clean up ui src files 2021-03-13 13:51:51 -07:00
jathanism
68082a88a7 Fix use of URLValidator to correctly validate RELEASE_CHECK_URL 2021-03-13 11:39:21 -08:00
checktheroads
4c60a602b9 bootstrap 5 template updates 2021-03-13 11:16:29 -07:00
checktheroads
912cd220cc add javascript 2021-03-13 02:31:57 -07:00
checktheroads
3b120c0372 add styles 2021-03-13 02:31:46 -07:00
checktheroads
2799d71e93 add ui dependencies 2021-03-13 02:31:28 -07:00
checktheroads
fcd7b42941 remove legacy libraries 2021-03-13 02:29:56 -07:00
checktheroads
6fe2f83435 scaffold new ui directory 2021-03-13 02:28:21 -07:00
checktheroads
94c25b0ff4 update templates & rendering for bootstrap 5 2021-03-13 02:27:32 -07:00
checktheroads
ec38ec8004 restructure home stats for new layout 2021-03-13 02:25:28 -07:00
checktheroads
1d9e55ca6e implement layout changes 2021-03-13 02:20:50 -07:00
checktheroads
9b89afd6dc begin bootstrap 5 migration, update templates 2021-03-13 02:19:42 -07:00
Jeremy Stretch
1aa22d1ba8 Add missing SiteGroup filter test case 2021-03-12 16:15:19 -05:00
Jeremy Stretch
61d23df83a Closes #5972: Bulk edit support for organizational models (#5974)
* Enable bulk editing of organizational models

* Enable bulk editing of nested group models

* Changelog for #5972
2021-03-12 16:14:42 -05:00
Jeremy Stretch
fca5accba8 Clean up base serializers 2021-03-12 13:31:28 -05:00
Jeremy Stretch
947da63d56 Move Location from racks.py to sites.py 2021-03-12 11:20:16 -05:00
Jeremy Stretch
a94e5c7403 Changelog for #5953 and #5966 2021-03-12 10:59:23 -05:00
Jeremy Stretch
c061f7021e Merge pull request #5964 from rodvand/develop
Closes #5953: Adds Markdown rendering of Custom Scripts' descriptions
2021-03-12 10:56:33 -05:00
Jeremy Stretch
ad43373f5b Merge pull request #5967 from abrahamvegh/tabindex
Skip the cheatsheet link when tabbing
2021-03-12 10:54:03 -05:00
Abraham Vegh
720b88048d Skip the cheatsheet link when tabbing 2021-03-11 22:40:03 -05:00
Martin Rødvand
d58291d119 Closes #5953: Adds Markdown rendering of Custom Scripts' descriptions 2021-03-11 22:27:43 +01:00
Jeremy Stretch
132b1ff479 Fixes #5962: Ensure consistent display of change log action labels 2021-03-11 13:42:26 -05:00
Jeremy Stretch
0115a61ab7 Add changelog for #5284 2021-03-11 11:13:41 -05:00
Jeremy Stretch
fadf15dbc0 Fix VLAN group assignment for VLANs 2021-03-11 11:07:27 -05:00
Jeremy Stretch
cb9478e0ea Closes #5950: Use TimeZoneSerializerField from django-timezone-field 2021-03-10 17:08:11 -05:00
Jeremy Stretch
04964cc52b Fixes #5595: Restore ability to delete an uploaded device type image 2021-03-10 17:00:35 -05:00
Jeremy Stretch
6ab1c06036 Extend VLAN group assignment form 2021-03-10 16:50:04 -05:00
Jeremy Stretch
d3fee54644 Fix VLAN.clean() 2021-03-10 16:26:27 -05:00
Jeremy Stretch
f4e49495e2 Merge branch 'feature' into 5284-vlangroup-scope 2021-03-10 14:51:11 -05:00
Jeremy Stretch
c072ba088f Add webhook support for additional models 2021-03-10 14:49:02 -05:00
Jeremy Stretch
4397d3da02 Remove redundant TreeManager from TenantGroup 2021-03-10 14:35:44 -05:00
Jeremy Stretch
fc5bb966f0 Declare TaggableManager on PrimaryModel base class 2021-03-10 14:32:50 -05:00
Jeremy Stretch
20f60cd99d Fix feature assignments for device component templates 2021-03-10 14:03:50 -05:00
Jeremy Stretch
ac0c54cce4 #5401: Add custom field support for VMInterface 2021-03-10 13:49:10 -05:00
Jeremy Stretch
19b78e63ce Introduce ChangeLoggedModel as a standard model 2021-03-10 13:37:13 -05:00
Jeremy Stretch
653af17755 Merge branch 'feature' into 5284-vlangroup-scope 2021-03-09 20:17:47 -05:00
Jeremy Stretch
bac2387f50 Merge branch 'develop' into feature 2021-03-09 20:04:20 -05:00
Jeremy Stretch
9990fd25d4 PRVB 2021-03-09 17:16:22 -05:00
Jeremy Stretch
e9930854c4 Merge pull request #5949 from netbox-community/develop
Release v2.10.6
2021-03-09 17:13:23 -05:00
Jeremy Stretch
11ac4cd2c2 Merge branch 'master' into develop 2021-03-09 17:03:54 -05:00
Jeremy Stretch
5b07c77708 Release v2.10.6 2021-03-09 16:57:03 -05:00
Jeremy Stretch
c3ad2d0a80 Fixes #5948: Invalidate cached queries when running renaturalize 2021-03-09 16:39:55 -05:00
Jeremy Stretch
4dae781be0 Change VLANGroup site to scope (GFK) 2021-03-09 16:18:59 -05:00
Jeremy Stretch
1cc82f2ab7 Create FUNDING.yml 2021-03-09 15:20:06 -05:00
Jeremy Stretch
c6641ec1de Closes #3451: Add pre-/post-change snapshots to webhooks 2021-03-09 13:03:44 -05:00
Jeremy Stretch
c083b862a7 Improve JSON output formatting of webhook receiver 2021-03-09 12:03:56 -05:00
Jeremy Stretch
6ffadb501b Closes #5610: Add REST API endpoint for webhooks 2021-03-09 09:22:58 -05:00
Jeremy Stretch
38ded66c4e Closes #5608: Add REST API endpoint for custom links 2021-03-08 20:57:44 -05:00
Jeremy Stretch
358d7ac562 Closes #5942: Add button to add a new IP address on interface view 2021-03-08 17:16:07 -05:00
Jeremy Stretch
cae784ff52 Merge pull request #5928 from wobcom/feature/ip-actions-in-interface-view
Add IP action buttons to interface view
2021-03-08 16:58:53 -05:00
Jeremy Stretch
835e11d10f Fixes #5920: Revert #5760 (do not force database encoding) 2021-03-08 16:54:28 -05:00
Jeremy Stretch
e7157973e7 Fixes #5922: Fix options for filtering object permissions in admin UI 2021-03-08 16:51:11 -05:00
Jeremy Stretch
5b5110acbf Closes #5923: Include depdency upgrades as part of standard release process 2021-03-08 16:46:11 -05:00
Jeremy Stretch
61e5eff666 Fixes #5935: Fix filtering prefixes list by multiple prefix values 2021-03-08 16:27:12 -05:00
Jeremy Stretch
16a3d1339a Closes #5592: Add IP addresses count to VRF view 2021-03-08 15:57:17 -05:00
Jeremy Stretch
759190d8ba Retain issue body to allow file attachments 2021-03-08 15:16:56 -05:00
Jeremy Stretch
f8e2cb06d1 Retain issue body to allow file attachments 2021-03-08 15:15:37 -05:00
Jeremy Stretch
37aa10c5a5 Fix indentations 2021-03-08 14:59:21 -05:00
Jeremy Stretch
ad9ed13b9a Convert housekeeping and documentation templates to forms 2021-03-08 14:57:42 -05:00
Jeremy Stretch
d9f8d809c8 Add introductory text for FRs and bug reports 2021-03-08 14:49:26 -05:00
Jeremy Stretch
03054b88aa Fix 'steps to reproduce' placeholder and required fields 2021-03-08 14:40:09 -05:00
Jeremy Stretch
a72911b527 Fix indentations 2021-03-08 14:37:11 -05:00
Jeremy Stretch
8e4da3faf4 Convert bug report template to issue form 2021-03-08 14:35:37 -05:00
Jeremy Stretch
46945aa98d Fix FR form 2021-03-08 14:25:20 -05:00
Jeremy Stretch
939224d0af Convert feature request template to issue form 2021-03-08 14:22:04 -05:00
Jeremy Stretch
14bc3a3cf8 Closes #5938: Deprecate support for Python 3.6 2021-03-08 13:36:56 -05:00
Jeremy Stretch
79b19821f6 Closes #5892: Introduce SiteGroup model (#5937)
* Initial work on #5892

* Add site group selection to object edit forms

* Add documentation for site groups

* Changelog for #5892

* Finish application of site groups to config context
2021-03-08 13:28:53 -05:00
Jeremy Stretch
8d15f79f1e Merge pull request #5931 from candlerb/candlerb/doc-django-rq
Doc fix: navigation to "Django RQ"
2021-03-08 09:21:50 -05:00
Brian Candler
b079cc12f4 Doc: give correct navigation to the "Django RQ" section 2021-03-07 17:25:49 +00:00
Jeremy Stretch
1c66733b8a Merge pull request #5930 from netbox-community/1519-interface-parent
Closes #1519: Enable parent assignment for interfaces
2021-03-05 16:51:39 -05:00
Jeremy Stretch
2ef85ea195 Changelog for #1519 2021-03-05 16:25:39 -05:00
Jeremy Stretch
69a3d14b53 Add filter tests for interface parent and LAG 2021-03-05 16:20:46 -05:00
Jeremy Stretch
d74c07e1a2 Clean up parent/LAG interface form validation 2021-03-05 14:13:03 -05:00
Jeremy Stretch
e1a86139dc Add parent field to Interface 2021-03-05 13:49:41 -05:00
Jeremy Stretch
8e1fe6339e Rename parent attribute on CableTerminations to parent_object 2021-03-05 13:06:21 -05:00
Jeremy Stretch
7a5cf80412 Clean up extraneous imports 2021-03-05 12:48:53 -05:00
Jeremy Stretch
5406e8e2e7 Optimize background site/location updates 2021-03-05 09:56:47 -05:00
Jeremy Stretch
d3974c9f44 Merge pull request #5929 from netbox-community/4999-table-export
Closes #4999: Support for dynamic table-based exports
2021-03-05 09:30:06 -05:00
Jeremy Stretch
0015c8dfa2 Changelog for #4999 2021-03-05 09:15:27 -05:00
Julian Jacobi
ad1da22257 Add IP action buttons to interface view 2021-03-05 10:45:58 +01:00
Jeremy Stretch
e703d9ff78 Introduce UtilizationColumn to render utilization graphs consistently 2021-03-04 20:58:43 -05:00
Jeremy Stretch
32501c96e5 Introduce MPTTColumn to represent MPTT models 2021-03-04 20:47:24 -05:00
Jeremy Stretch
6149ba6e36 Export only visible columns 2021-03-04 17:31:37 -05:00
Jeremy Stretch
0d44a320a0 Add tablib as a required package 2021-03-04 17:15:07 -05:00
Jeremy Stretch
a8a272b068 Enable table-based export 2021-03-04 16:58:56 -05:00
Jeremy Stretch
20a85c1ef2 Introduce TenantColumn to simplify representation 2021-03-04 16:07:55 -05:00
Jeremy Stretch
23b58ccbe8 Override value() on custom table columns 2021-03-04 15:56:12 -05:00
Jeremy Stretch
9c967ee3ea Fixes #5913: Improve change logging (#5924)
* Initial work on #5913
* Provide per-line diff highlighting
* BulkDeteView should delete objects individually to secure a pre-change snapshot
* Add changelog tests for bulk operations
2021-03-04 13:06:04 -05:00
Jeremy Stretch
f495addb1e Update documentation 2021-03-03 14:50:05 -05:00
Jeremy Stretch
d750b690e7 Closes #4971: Allow assigning devices to locations without a rack 2021-03-03 14:28:07 -05:00
Jeremy Stretch
fdb3e3f9a4 Closes #5895: Rename RackGroup to Location 2021-03-03 13:30:33 -05:00
Jeremy Stretch
a17018a875 #3648: Add missing mark_connected form fields 2021-03-03 10:20:35 -05:00
Jeremy Stretch
8de20fcd1f Closes #5375: Add 'speed' attribute to console port models 2021-03-03 10:20:08 -05:00
Jeremy Stretch
51120ccf31 Introduce generic object template 2021-03-02 15:58:33 -05:00
Jeremy Stretch
8dd7123923 Closes #3648: Mark cable termination models as connected without attaching a cable 2021-03-01 21:34:42 -05:00
Jeremy Stretch
6ed2e7b636 Closes #5894: Use primary keys when filtering object lists by related objects in the UI 2021-03-01 17:24:30 -05:00
Jeremy Stretch
fa8e70fe26 Update changelog 2021-03-01 16:07:44 -05:00
Jeremy Stretch
a87f34ebb3 Merge pull request #5820 from stuntguy3000/develop
Fix Primary IP Sorting Issues for Devices and VMs
2021-03-01 16:04:43 -05:00
Jeremy Stretch
75d875615b Merge pull request #5897 from wobcom/feature/device_components_custom_links
Activate custom links on device components
2021-03-01 16:01:35 -05:00
Jeremy Stretch
07e6abdac4 Closes #5901: Add 'created' and 'last_updated' fields to device component models 2021-03-01 15:42:39 -05:00
Jeremy Stretch
1ddc1a6781 Closes #5451: Add support for multiple-selection custom fields 2021-03-01 14:52:57 -05:00
Jeremy Stretch
3f216fa4a3 Remove unused CustomFieldModel class 2021-03-01 14:33:52 -05:00
Jeremy Stretch
4fb79e6e2a Changelog for #5401 2021-03-01 14:17:25 -05:00
Jeremy Stretch
fdda30704b Add custom fields section to interface edit template 2021-03-01 14:12:09 -05:00
Jeremy Stretch
5418520252 Add custom field support to component bulk edit forms 2021-03-01 13:57:57 -05:00
Jeremy Stretch
9d526b0907 Add custom field support to component creation forms 2021-03-01 13:42:31 -05:00
Jeremy Stretch
9db492eb07 Add custom field support to ComponentCreateForm 2021-03-01 13:37:53 -05:00
Jeremy Stretch
d6ee4d58ba Add custom field support for device component models 2021-03-01 13:07:25 -05:00
Daniel Sheppard
f63cf6a7a4 Update changelog 2021-03-01 09:21:57 -06:00
niels
18ab1144bb Fixes: #5703 - Populate VRF and Tenant fields when adding IP address 2021-03-01 09:19:50 -06:00
Jeremy Stretch
a9b216d212 Update Slack links; start phasing out mailing list 2021-03-01 09:54:30 -05:00
Daniel Sheppard
6b19a1ece9 Update changelog 2021-03-01 08:52:13 -06:00
Last Wednesday
0dd6d552a8 Fixes: #5630 - Add QSFP+ (64GFC) FibreChannel Interface option
* Added option for 64GFC QSFP+ Interface for FibreChannel in netbox/dcim/choices.py
2021-03-01 08:48:40 -06:00
Julian Jacobi
cfddf570b9 add custom links to device components 2021-03-01 09:30:43 +01:00
Jeremy Stretch
6a9b50f95d Closes #5873: Use numeric IDs in all object URLs 2021-02-26 17:23:23 -05:00
Jeremy Stretch
1dcd857ca6 Closes #5370: Extend custom field support to organizational models 2021-02-26 16:25:37 -05:00
Jeremy Stretch
7e6cb9d186 Closes #1638: Migrate all primary keys to 64-bit integers 2021-02-26 16:12:52 -05:00
Jeremy Stretch
cf78307577 Update organizational models to use custom field forms 2021-02-26 11:25:23 -05:00
Jeremy Stretch
12fbd34962 Introduce NestedGroupModelSerializer 2021-02-25 17:15:42 -05:00
Jeremy Stretch
ed059d80d6 Introduce OrganizationalModelSerializer 2021-02-25 16:44:16 -05:00
Jeremy Stretch
664a39911c Add custom field support for organizational models to API serializers 2021-02-25 15:58:13 -05:00
Jeremy Stretch
d6cf385a3c Update CircuitTermination fields to use SelectSpeedWidget 2021-02-25 14:12:34 -05:00
Jeremy Stretch
cef8204f40 Merge tags fields with primary object fields in form display 2021-02-25 14:03:14 -05:00
Jeremy Stretch
42e82f0ead Update object edit template to use fieldsets where possible 2021-02-25 13:51:48 -05:00
Jeremy Stretch
2a517cde9f Add support for form fieldsets 2021-02-25 13:08:02 -05:00
Jeremy Stretch
992657cbe0 Introduce SelectSpeedWidget 2021-02-25 11:47:26 -05:00
Luke Anderson
d2c8aae59c Fix #5819 and #5872 - Fix Primary IP Sorting Issues for Devices and VMs 2021-02-25 22:32:51 +10:30
Jeremy Stretch
3208c8317d Switch docs to mkdocs-material 2021-02-24 21:21:17 -05:00
Jeremy Stretch
bec7ea7072 Standardize model types based on function 2021-02-24 21:01:16 -05:00
Jeremy Stretch
0a6ebdee48 Upgrade Django to 3.2b1 2021-02-24 19:00:14 -05:00
Jeremy Stretch
b1cd634ab4 PRVB 2021-02-24 15:38:36 -05:00
Jeremy Stretch
47abd62c55 Merge pull request #5865 from netbox-community/develop
Release v2.10.5
2021-02-24 15:36:29 -05:00
Jeremy Stretch
db781437fc Release v2.10.5 2021-02-24 15:15:33 -05:00
Jeremy Stretch
a40f52ee62 Changelog for #5753 2021-02-24 15:02:13 -05:00
Jeremy Stretch
89e6fd68e5 Merge pull request #5753 from nerzhul/patch-1
fix: add missing password when using redis in sentinel mode
2021-02-24 15:01:03 -05:00
Jeremy Stretch
ecf0f15c17 Merge pull request #5763 from candlerb/candlerb/5760
Update docs to to create database explicitly with UTF8 encoding.
2021-02-24 14:57:50 -05:00
Jeremy Stretch
04a6e2de9d Changelog and test for #5786 2021-02-24 14:39:09 -05:00
Jeremy Stretch
0cd29daea2 Merge pull request #5787 from pgnuta/patch-1
Update /netbox/tenancy/api/serializers.py to allow nullable group
2021-02-24 14:29:11 -05:00
Jeremy Stretch
b392502b9b Fixes #5841: Disallow the creation of available prefixes/IP addresses in violation of assigned permission constraints 2021-02-24 14:21:42 -05:00
Jeremy Stretch
a301c974e4 Merge pull request #5851 from cpmills1975/5847-pagination-font-error
Fixes: #5847 - Provide custom CSS for pagination chevrons
2021-02-23 11:37:35 -05:00
Chris Mills
4c7c2edf9a Fixes: #5847 - Provide custom CSS for pagination chevrons 2021-02-22 23:28:30 +00:00
Daniel Sheppard
3d3748d6f5 Fixes: #5315 - Make "null_option" on DynamicModelChoiceField also null the value on the model. (#5704)
Fixes: #5315 - Fix site unassignment from VLAN when using "None" option
2021-02-12 10:53:40 -06:00
pgnuta
fa3199d41c Update serializers.py
Group should be nullable via API to match frontend functionality and Swagger documentation.
2021-02-11 11:49:57 +13:00
Jeremy Stretch
efbda6d5af Apply stale rules to PRs 2021-02-09 15:15:49 -05:00
Jeremy Stretch
8640f500d1 Closes #5776: Upgrade pip when running upgrade.sh 2021-02-09 13:32:29 -05:00
Jeremy Stretch
3d90e3aee9 Fixes #5626: Fix REST API representation for circuit terminations connected to non-interface endpoints 2021-02-08 16:44:04 -05:00
Jeremy Stretch
6c676d21c3 Changelog for #5735 2021-02-08 15:09:20 -05:00
Jeremy Stretch
7e6af88966 Merge pull request #5761 from candlerb/candlerb/5735
Fixes #5735: enforcement of duplicate IP address detection with roles
2021-02-08 15:07:53 -05:00
Brian Candler
3b53cf5e84 Update docs to to create database explicitly with UTF8 encoding.
Fixes #5760
2021-02-07 19:46:30 +00:00
root
713f02ca3f Fixes #5735: enforcement of duplicate IP address detection with roles 2021-02-07 10:31:56 +00:00
Jeremy Stretch
19844e81d1 Merge pull request #5754 from ypid/fix/branding
NetBox should always be referred to as NetBox
2021-02-04 16:01:58 -05:00
Robin Schneider
5fbe766a0a NetBox should always be referred to as NetBox
Fix all instances of "Netbox" except the one that is used as an example
how not to write it.

Ref: docs/development/style-guide.md
2021-02-04 21:39:55 +01:00
Jeremy Stretch
1430c0a6e6 Fixes #5738: Fix redirect to device components view after disconnecting a cable 2021-02-04 13:19:42 -05:00
Jeremy Stretch
e3e928f1c4 Fixes #5718: Fix bulk editing of services when no port(s) are defined 2021-02-04 13:01:55 -05:00
Jeremy Stretch
e155acbbd4 Merge pull request #5732 from candlerb/candlerb/sample-report-connection-status
Fix sample report in documentation
2021-02-04 11:47:18 -05:00
Loïc Blot
be1b6b6aa3 fix: add missing password when using redis in sentinel mode 2021-02-04 16:50:07 +01:00
Jeremy Stretch
b4ba5cbb7a Fixes #5716: Fix filtering rack reservations by custom field 2021-02-02 11:49:38 -05:00
Brian Candler
f28474d86e Fix sample report in documentation
Raised in #5729
2021-02-02 08:16:35 +00:00
Jeremy Stretch
1964073072 PRVB 2021-01-26 16:02:14 -05:00
Jeremy Stretch
856d2e3176 Merge pull request #5694 from netbox-community/develop
Release v2.10.4
2021-01-26 16:01:00 -05:00
Daniel Sheppard
3409a1bfba Merge remote-tracking branch 'origin/develop' into develop 2021-01-26 14:04:22 -06:00
Daniel Sheppard
fc8f02c180 Corrects error with ListSerializer as request_body 2021-01-26 14:03:46 -06:00
Jeremy Stretch
03e48161a1 Release v2.10.4 2021-01-26 13:06:29 -05:00
Jeremy Stretch
def63329f0 Merge pull request #5693 from aaroneg/patch-1
update python package name
2021-01-26 13:03:11 -05:00
Aaron
0680b01a96 update python package name
At least on ubuntu 20.04, the python3 package is now 3.8, but the package 'python3' points to the current best version of python available without needing to specialize a minor version and should require fewer changes to the document.
2021-01-26 11:47:33 -06:00
Daniel Sheppard
592e788a7d Merge branch 'develop' of https://github.com/netbox-community/netbox into develop 2021-01-26 10:42:45 -06:00
Daniel Sheppard
aabc1a8265 Fixes: #5232 - Corrects swagger definition 2021-01-26 10:42:01 -06:00
Daniel Sheppard
a23ff4e519 Fixes: #5232 - Corrects swagger definition 2021-01-26 10:34:07 -06:00
Jeremy Stretch
edc015d9bf Emphasize use of GitHub discussions in README 2021-01-26 11:20:06 -05:00
Jeremy Stretch
d5a0e12283 Certain component types are optional 2021-01-26 10:35:03 -05:00
Jeremy Stretch
90e8f26cd4 Closes #5678: Show available type choices for all device component import forms 2021-01-26 10:17:58 -05:00
Jeremy Stretch
d4e83ca1c0 Fixes #5683: Correct rack elevation displayed when viewing a reservation 2021-01-26 09:57:33 -05:00
Jeremy Stretch
137aa9da2c Fixes #5648: Include VC member interfaces on interfaces tab count when viewing VC master 2021-01-25 14:29:03 -05:00
Jeremy Stretch
87c600aa7c Fixes #5665: Validate rack group is assigned to same site when creating a rack 2021-01-25 14:19:32 -05:00
Jeremy Stretch
08dfe64301 Merge pull request #5677 from Alef-Burzmali/develop
Fix how SECRET_KEY is generated
2021-01-25 13:55:45 -05:00
Jeremy Stretch
0e48ee5f9e Merge pull request #5675 from rileyL6122428/patch-1
Fixes small typos in Configuration > Required Settings and Configuration > Optional Settings
2021-01-24 18:07:41 -05:00
Thomas Fargeix
b6e532f01d Fix how SECRET_KEY is generated
Use secrets.choice instead of random.sample to generate the secret key.
2021-01-24 21:20:55 +01:00
Riley Littlefield
60baa5e59e Fixes small typo in optional settings 2021-01-23 14:06:48 -05:00
Riley Littlefield
9eb64dc6a4 Fixes another typo 2021-01-23 13:54:44 -05:00
Riley Littlefield
3de04094fb Fixes typo 2021-01-23 13:41:48 -05:00
Chris Mills
02e8979178 Changes to template, view and CablePath class to
indicate to users whether the cable length is
accurate or not.
2021-01-22 16:45:08 +00:00
Jeremy Stretch
5e962719ca Closes #5542: Show cable trace lengths in both meters and feet 2021-01-20 21:29:23 -05:00
Jeremy Stretch
fefc623343 Changelog for #5603 2021-01-20 20:48:24 -05:00
Jeremy Stretch
5c40081d84 Merge pull request #5662 from cpmills1975/5603-white-cable-fix
Fix white cables
2021-01-20 20:47:28 -05:00
Chris Mills
e739d6aa05 Fix white cables 2021-01-20 23:52:54 +00:00
Jeremy Stretch
0994719b91 Add NetBox installation video to docs 2021-01-20 15:36:04 -05:00
Jeremy Stretch
f469920759 Fixes #5640: Fix permissions assessment when adding VM interfaces in bulk 2021-01-20 15:18:13 -05:00
Jeremy Stretch
3c9be8cd08 Fixes #5639: Fix filtering connection lists by device name 2021-01-19 11:24:34 -05:00
Jeremy Stretch
a0e82e1817 Fixes #5574: Restrict the creation of device bay templates on non-parent device types 2021-01-19 10:49:56 -05:00
Jeremy Stretch
69bf451b20 Changelog for #5586 and #5612 2021-01-19 09:41:49 -05:00
Jeremy Stretch
58699a220b Merge pull request #5596 from FragmentedPacket/5586-vc-filtering
Closes 5586: Adds name, master, and master_id filtering
2021-01-19 09:31:24 -05:00
Jeremy Stretch
3f70f685bb Merge pull request #5634 from phoerious/5612-gg45-tera-connector
Add choices for GG45 and TERA connectors and Cat7a/Cat8 cables
2021-01-19 09:28:33 -05:00
Janek Bevendorff
d838a76461 Add choices for GG45 and TERA connectors and Cat7a/Cat8 cables
Fixes #5612
2021-01-18 14:13:07 +01:00
Jeremy Stretch
e13d96a6f2 Don't pin Ubuntu installations to Python 3.6 2021-01-17 14:08:59 -05:00
Jeremy Stretch
1e1e2d5f54 Fixes #5597: Fix ordering devices by primary IP address 2021-01-11 11:28:03 -05:00
Mikhail Yohman
c51d2a56ac Closes 5586: Adds name, master, and master_id filtering 2021-01-08 20:18:48 -07:00
Jeremy Stretch
e9d888bf63 Closes #5570: Add "management only" filter widget for interfaces list 2021-01-07 11:29:59 -05:00
Jeremy Stretch
47b7ec8d00 Fixes #5584: Restore power utilization panel under device view 2021-01-07 11:19:11 -05:00
Jeremy Stretch
c8f09f28b1 PRVB 2021-01-05 21:10:58 -05:00
Jeremy Stretch
5a32b9599a Merge pull request #5581 from netbox-community/develop
Release v2.10.3
2021-01-05 21:09:50 -05:00
Jeremy Stretch
a6cb7965dc Merge branch 'master' into develop 2021-01-05 20:36:14 -05:00
Jeremy Stretch
601cbd2306 Release v2.10.3 2021-01-05 20:33:46 -05:00
Jeremy Stretch
a77658a6bf Merge pull request #5580 from nemith/apidocfix
Fixes #5579: mark `ie` and `nie` filter exprs as insensitive
2021-01-05 20:31:49 -05:00
Brandon Bennett
4a2d2882c6 Fixes #5579: mark ie and nie filter exprs as insensitive
In the documentation the `ie` and `nie` filter expressions are
incorrectly marked as senstive matches when they are in fact
insensitive.
2021-01-05 15:51:03 -07:00
Jeremy Stretch
0accaedad0 Fixes #5569: Ensure consistent labeling of interface mgmt_only field 2021-01-05 15:15:36 -05:00
Jeremy Stretch
aa10430c7b Changelog for #5573 2021-01-05 15:06:15 -05:00
Jeremy Stretch
98983e7e1a Merge pull request #5578 from candlerb/candlerb-5573
Report inconsistent values when migrating custom field data
2021-01-05 15:00:20 -05:00
Daniel Sheppard
3441216aca Fixes: #5564 - Raise validation error if a PowerPortTemplate's draw exceeds maximum 2021-01-05 09:52:11 -06:00
Daniel Sheppard
d16a7e108c Fixes: #5563 - Fix power feed cable trace 2021-01-05 09:22:10 -06:00
Brian Candler
359ae5d116 Raise exceptions for other inconsistencies when migrating custom field data
Fixes #5573
2021-01-05 15:05:17 +00:00
Daniel Sheppard
a9a2509d39 Fixes: #5049 - Account for chassis neighbors in lldp_neighbors template 2021-01-05 08:48:55 -06:00
Jeremy Stretch
e73c225965 Fixes #5551: Restore missing import button on services list 2020-12-31 10:38:47 -05:00
Jeremy Stretch
39e6872288 Fixes #5557: Fix VRF route target assignment via REST API 2020-12-31 10:32:40 -05:00
Jeremy Stretch
af3c4905ea Fixes #5558: Fix regex validation support for custom URL fields 2020-12-31 10:21:01 -05:00
Jeremy Stretch
7873952e7a Avoid wrapping text in hierarchical table columns 2020-12-30 15:30:31 -05:00
Jeremy Stretch
d989ce2b70 Fixes #5547: Add custom field bulk import support for cables, power panels, rack reservations, and virtual chassis 2020-12-29 12:43:52 -05:00
Jeremy Stretch
249948e174 Fixes #5546: Add custom field bulk edit support for cables, power panels, rack reservations, and virtual chassis 2020-12-29 11:55:31 -05:00
Jeremy Stretch
8ae3331d04 Closes #5549: Eliminate extraneous database queries when using brief API calls 2020-12-29 11:41:44 -05:00
Jeremy Stretch
b2e05aafc1 Closes #5531: Ensure consistent calls to parent clean() methods for models, forms 2020-12-28 12:54:42 -05:00
Jeremy Stretch
cc1a43e5d9 Fixes #5533: Fix bulk editing of objects with required custom fields 2020-12-28 11:10:27 -05:00
Jeremy Stretch
6f39e6599d Fixes #5540: Fix exception when viewing a provider with one or more tags assigned 2020-12-28 10:48:50 -05:00
Jeremy Stretch
1fe5857411 Fixes #5543: Fix rendering of config contexts with cluster assignment for devices 2020-12-28 10:45:23 -05:00
Jeremy Stretch
fce61295c9 Fixes #5301: Fix misleading error when racking a device with invalid parameters 2020-12-23 16:21:26 -05:00
Jeremy Stretch
396b0dace8 Changelog for #5311 2020-12-23 14:26:43 -05:00
Jeremy Stretch
fe2e33a9e1 Merge pull request #5522 from netbox-community/5311-site-rack-validation
Employ signals to update child objects when RackGroup/Rack site assignment changes
2020-12-23 14:24:56 -05:00
Jeremy Stretch
8d9d4cec05 Extend handle_rackgroup_site_change() receiver to update power panels 2020-12-23 14:02:05 -05:00
Jeremy Stretch
ddd10ba8af Clean up hierarchical table columns 2020-12-22 16:14:16 -05:00
Jeremy Stretch
e4f22bc494 Employ signals to update child objects when RackGroup/Rack site assignment changes 2020-12-22 15:22:53 -05:00
Jeremy Stretch
09633ee11b Move rack group field directly beneath site 2020-12-22 13:51:58 -05:00
Jeremy Stretch
dc6dbdf3c4 Update documentation to reference the feature branch 2020-12-22 13:12:38 -05:00
Jeremy Stretch
8f4197c020 Fixes #5518: Fix persistent vertical scrollbar 2020-12-22 10:28:09 -05:00
Jeremy Stretch
5fe5fd71b5 PRVB 2020-12-21 16:19:40 -05:00
Jeremy Stretch
77e2b0e4ba Merge pull request #5512 from netbox-community/develop
Release v2.10.2
2020-12-21 16:17:49 -05:00
Jeremy Stretch
e196d82e76 Release v2.10.2 2020-12-21 16:03:43 -05:00
Jeremy Stretch
23f334e5df Fixes #5488: Fix caching error when viewing cable trace after toggling cable status 2020-12-21 15:30:34 -05:00
Robin Schneider
c5a265e828 Use HTTPS URL schema everywhere (#5505)
* Use HTTPS everywhere (mechanical edit using util from https-everywhere)

```Shell
node ~/src/EFForg/https-everywhere/utils/rewriter/rewriter.js .
git checkout netbox/project-static/
```

A few additional changes where reset manually before the commit.

* Use HTTPS everywhere (mechanical edit using util from opening_hours.js)

```Shell
make -f ~/src/opening-hours/opening_hours.js/Makefile qa-https-everywhere
git checkout netbox/project-static/
git checkout netbox/*/tests
```
2020-12-21 12:02:30 -05:00
Jeremy Stretch
278c881059 as_range: Catch TypeErrors 2020-12-21 11:54:35 -05:00
Jeremy Stretch
b09112941a Fixes #5510: Fix filtering by boolean custom fields 2020-12-21 11:47:11 -05:00
Jeremy Stretch
158ed5765b Fixes #5507: Fix custom field data assignment via UI for IP addresses, secrets 2020-12-21 09:43:15 -05:00
Jeremy Stretch
1e5778e6db Clean up prefix hierarchy annotation 2020-12-18 15:43:15 -05:00
Jeremy Stretch
442dee72b5 Fixes #5499: Fix filtering of displayed device/VM interfaces by regex 2020-12-18 15:02:52 -05:00
Daniel Sheppard
f2d028ba29 Update version-2.10.md 2020-12-18 11:33:28 -06:00
Jeremy Stretch
b1402f3bae Fixes #5498: Fix filtering rack reservations by username 2020-12-18 12:18:59 -05:00
Jeremy Stretch
6ca9e2a777 Closes #5496: Add form field to filter rack reservation by user 2020-12-18 12:09:41 -05:00
Daniel Sheppard
dac93b9840 Fixes #5254 - Require plugin authors to set zip_safe=False 2020-12-17 16:18:10 -06:00
Jeremy Stretch
34a0e2e72d Closes #5489: Add filters for type and width to racks list 2020-12-17 15:55:22 -05:00
Jeremy Stretch
af2777c580 Fixes #5487: Support filtering rack type/width with multiple values 2020-12-17 15:50:47 -05:00
Jeremy Stretch
4a066a1913 Rename get_subquery() to count_related() 2020-12-17 14:47:49 -05:00
Jeremy Stretch
91083fd6c5 Call Coalesce() inside get_queryset() 2020-12-17 14:45:50 -05:00
Jeremy Stretch
202e7d0ebf Fixes #5486: Optimize retrieval of config context data for device/VM REST API views 2020-12-17 14:03:10 -05:00
Jeremy Stretch
7449f36f22 Merge pull request #5485 from glennmatthews/gfm-doc-fix
Docs fix: Django templating language is no longer supported for export templates
2020-12-17 10:06:03 -05:00
Glenn Matthews
dc6e7cd56c Django templating language is no longer supported for export templates 2020-12-17 09:48:22 -05:00
Jeremy Stretch
26426c1431 Fixes #5484: Fix "tagged" indication in VLAN members list 2020-12-17 09:46:50 -05:00
Jeremy Stretch
2fba20acda Merge pull request #5481 from cloos/5123-cf-select-changelog
Fixes #5123: Add tests for custom field select changelog
2020-12-16 14:29:27 -05:00
Jeremy Stretch
3c887b0dd9 Fixes #5468: Fix unlocking secrets from device/VM view 2020-12-16 13:48:44 -05:00
Jeremy Stretch
52c9e3ecef Run CI for pull requests 2020-12-16 13:23:45 -05:00
Christian Loos
2ffdc46f81 Fixes #5123: Add tests for custom field select changelog 2020-12-16 18:50:55 +01:00
Jeremy Stretch
577c86fb80 Fixes #5478: Fix display of route target description 2020-12-16 10:38:09 -05:00
Jeremy Stretch
4ce7dfa55e Fixes #5473: Fix alignment of rack names in elevations list 2020-12-16 09:26:22 -05:00
Jeremy Stretch
bd144c996a PRVB 2020-12-15 22:16:26 -05:00
Jeremy Stretch
2c1a60b965 Merge pull request #5472 from netbox-community/develop
Release v2.10.1
2020-12-15 22:14:19 -05:00
Jeremy Stretch
2dad44c93f Release v2.10.1 2020-12-15 22:03:54 -05:00
Jeremy Stretch
c835ec5102 Fixes #5470: Fix exception when making OPTIONS request for a REST API list endpoint 2020-12-15 21:04:47 -05:00
Jeremy Stretch
e2d17b1999 #5444: Also fix the enabled field' 2020-12-15 16:52:58 -05:00
Jeremy Stretch
3c2ddf1f69 Fixes #5444: Don't force overwriting of mgmt_only when bulk editing interfaces 2020-12-15 16:17:52 -05:00
Jeremy Stretch
d64fc261e2 Tweak validation for custom date fields 2020-12-15 16:00:18 -05:00
Jeremy Stretch
34643f536e Fixes #5466: Fix validation for required custom fields 2020-12-15 15:56:42 -05:00
Jeremy Stretch
6a3dab0142 Fixes #5465: Correct return URL when disconnecting a cable from a device 2020-12-15 13:52:35 -05:00
Daniel Sheppard
3c2b2f26b9 Fixes: #5450 - Added Coalesce to viewsets for the _count functions 2020-12-15 12:50:28 -06:00
Jeremy Stretch
67f9e16905 Fixes #5453: Correct change log representation when creating a cable 2020-12-15 13:37:02 -05:00
Daniel Sheppard
14a46f82ee Fixes: #5463 - Add check for ip_addresses attribute on circuittermination connected_endpoint 2020-12-15 12:30:42 -06:00
Jeremy Stretch
974500c281 Add test for #5461 2020-12-15 12:01:53 -05:00
Daniel Sheppard
1f4954bf0e Fixes: #5461 - Assign object=rack in netbox/templates/dcim/rack_elevation_list.html 2020-12-15 08:39:27 -06:00
Daniel Sheppard
9615dc0638 Fixes: #5458 - Fix devicetype_component_table.html 2020-12-14 16:30:10 -06:00
Jeremy Stretch
c1e56a3717 Post-release version bump 2020-12-14 14:41:01 -05:00
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
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
c85a45e520 Further work on custom fields 2020-08-24 14:11: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
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
2265 changed files with 98806 additions and 201936 deletions

8
.gitattributes vendored
View File

@@ -1,5 +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
# Treat compiled JS/CSS files as binary, as they're not meant to be human-readable
netbox/project-static/dist/*.css binary
netbox/project-static/dist/*.js binary
netbox/project-static/dist/*.js.map binary

View File

@@ -1,42 +0,0 @@
---
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 reproducible bugs. If you need assistance with
NetBox installation, or if you have a general question, DO NOT open an
issue. Instead, post to our mailing list:
https://groups.google.com/forum/#!forum/netbox-discuss
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

60
.github/ISSUE_TEMPLATE/bug_report.yaml vendored Normal file
View File

@@ -0,0 +1,60 @@
---
name: 🐛 Bug Report
description: Report a reproducible bug in the current release of NetBox
labels: ["type: bug"]
body:
- type: markdown
attributes:
value: >
**NOTE:** This form is only for reporting _reproducible bugs_ in a current NetBox
installation. If you're having trouble with installation or just looking for
assistance with using NetBox, please visit our
[discussion forum](https://github.com/netbox-community/netbox/discussions) instead.
- type: input
attributes:
label: NetBox version
description: What version of NetBox are you currently running?
placeholder: v3.2.7
validations:
required: true
- type: dropdown
attributes:
label: Python version
description: What version of Python are you currently running?
options:
- "3.8"
- "3.9"
- "3.10"
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: >
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. Additionally, **do not rely on the demo instance** for reproducing
suspected bugs, as its data is prone to modification or deletion at any time.
placeholder: |
1. Click on "create widget"
2. Set foo to 12 and bar to G
3. Click the "create" button
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: What did you expect to happen?
placeholder: A new widget should have been created with the specified attributes
validations:
required: true
- type: textarea
attributes:
label: Observed Behavior
description: What happened instead?
placeholder: A TypeError exception was raised
validations:
required: true

View File

@@ -3,7 +3,10 @@ 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/forum/#!forum/netbox-discuss
about: Join our discussion group for assistance with installation issues and other problems
about: "Please read through our contributing policy before opening an issue or pull request"
- name: Discussion
url: https://github.com/netbox-community/netbox/discussions
about: "If you're just looking for help, try starting a discussion instead"
- name: 💬 Community Slack
url: https://netdev.chat/
about: "Join #netbox on the NetDev Community Slack for assistance with installation issues and other problems"

View File

@@ -1,28 +0,0 @@
---
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,35 @@
---
name: 📖 Documentation Change
description: Suggest an addition or modification to the NetBox documentation
labels: ["type: documentation"]
body:
- type: dropdown
attributes:
label: Change Type
description: What type of change are you proposing?
options:
- Addition
- Correction
- Removal
- Cleanup (formatting, typos, etc.)
validations:
required: true
- type: dropdown
attributes:
label: Area
description: To what section of the documentation does this change primarily pertain?
options:
- Installation instructions
- Configuration parameters
- Functionality/features
- REST API
- Administration/development
- Other
validations:
required: true
- type: textarea
attributes:
label: Proposed Changes
description: Describe the proposed changes and why they are necessary.
validations:
required: true

View File

@@ -1,56 +0,0 @@
---
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 post to our mailing list
instead of opening an issue:
https://groups.google.com/forum/#!forum/netbox-discuss
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: <!-- Example: 3.6.9 -->
* NetBox version: <!-- Example: 2.7.3 -->
<!--
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

View File

@@ -0,0 +1,59 @@
---
name: ✨ Feature Request
description: Propose a new NetBox feature or enhancement
labels: ["type: feature"]
body:
- type: markdown
attributes:
value: >
**NOTE:** This form is only for submitting well-formed proposals to extend or modify
NetBox in some way. If you're trying to solve a problem but can't figure out how, or if
you still need time to work on the details of a proposed new feature, please start a
[discussion](https://github.com/netbox-community/netbox/discussions) instead.
- type: input
attributes:
label: NetBox version
description: What version of NetBox are you currently running?
placeholder: v3.2.7
validations:
required: true
- type: dropdown
attributes:
label: Feature type
options:
- Data model extension
- New functionality
- Change to existing functionality
validations:
required: true
- type: textarea
attributes:
label: Proposed functionality
description: >
Describe in detail the new feature or behavior you are proposing. Include any specific changes
to work flows, data models, and/or the user interface. The more detail you provide here, the
greater chance your proposal has of being discussed. Feature requests which don't include an
actionable implementation plan will be rejected.
validations:
required: true
- type: textarea
attributes:
label: Use case
description: >
Explain how adding this functionality would benefit NetBox users. What need does it address?
validations:
required: true
- type: textarea
attributes:
label: Database changes
description: >
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.)
- type: textarea
attributes:
label: External dependencies
description: >
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.)

View File

@@ -1,16 +0,0 @@
---
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

@@ -0,0 +1,24 @@
---
name: 🏡 Housekeeping
description: A change pertaining to the codebase itself (developers only)
labels: ["type: housekeeping"]
body:
- type: markdown
attributes:
value: >
**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.
- type: textarea
attributes:
label: Proposed Changes
description: >
Describe in detail the new feature or behavior you'd like to propose.
Include any specific changes to work flows, data models, or the user interface.
validations:
required: true
- type: textarea
attributes:
label: Justification
description: Please provide justification for the proposed change(s).
validations:
required: true

23
.github/lock.yml vendored
View File

@@ -1,23 +0,0 @@
# Configuration for Lock (https://github.com/apps/lock)
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 90
# Skip issues and pull requests created before a given timestamp. Timestamp must
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
skipCreatedBefore: false
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
exemptLabels: []
# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false
# Comment to post before locking. Set to `false` to disable
lockComment: false
# Assign `resolved` as the reason for locking. Set to `false` to disable
setLockReason: true
# Limit to only `issues` or `pulls`
# only: issues

33
.github/stale.yml vendored
View File

@@ -1,33 +0,0 @@
# 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.

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

@@ -0,0 +1,82 @@
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
env:
NETBOX_CONFIGURATION: netbox.configuration_testing
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
node-version: ['14.x']
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: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install Yarn Package Manager
run: npm install -g yarn
- name: Setup Node.js with Yarn Caching
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: yarn
cache-dependency-path: netbox/project-static/yarn.lock
- name: Install Frontend Dependencies
run: yarn --cwd netbox/project-static
- name: Install dependencies & set up configuration
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pycodestyle coverage tblib
- name: Build documentation
run: mkdocs build
- name: Collect static files
run: python netbox/manage.py collectstatic --no-input
- name: Check PEP8 compliance
run: pycodestyle --ignore=W504,E501 --exclude=node_modules netbox/
- name: Check UI ESLint, TypeScript, and Prettier Compliance
run: yarn --cwd netbox/project-static validate
- name: Validate Static Asset Integrity
run: scripts/verify-bundles.sh
- name: Run tests
run: coverage run --source="netbox/" netbox/manage.py test netbox/ --parallel
- 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'

38
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
# close-stale-issues (https://github.com/marketplace/actions/close-stale-issues)
name: 'Close stale issues/PRs'
on:
schedule:
- cron: '0 4 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
with:
close-issue-message: >
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.
close-pr-message: >
This PR has been automatically closed due to lack of activity.
days-before-stale: 60
days-before-close: 30
exempt-issue-labels: 'status: accepted,status: blocked,status: needs milestone'
operations-per-run: 100
remove-stale-when-updated: false
stale-issue-label: 'pending closure'
stale-issue-message: >
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. **Do not** attempt to circumvent this
process by "bumping" the issue; doing so will result in its immediate closure
and you may be barred from participating in any future discussions. Please see
our [contributing guide](https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md).
stale-pr-label: 'pending closure'
stale-pr-message: >
This PR has been automatically marked as stale because it has not had
recent activity. It will be closed automatically if no further action is
taken.

7
.gitignore vendored
View File

@@ -1,7 +1,14 @@
*.pyc
*.swp
npm-debug.log*
yarn-debug.log*
yarn-error.log*
/netbox/project-static/node_modules
/netbox/project-static/docs/*
!/netbox/project-static/docs/.info
/netbox/netbox/configuration.py
/netbox/netbox/ldap_config.py
/netbox/local/*
/netbox/reports/*
!/netbox/reports/__init__.py
/netbox/scripts/*

10
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,10 @@
version: 2
build:
os: ubuntu-20.04
tools:
python: "3.9"
mkdocs:
configuration: mkdocs.yml
python:
install:
- requirements: requirements.txt

View File

@@ -1,19 +0,0 @@
sudo: required
services:
- postgresql
- redis-server
addons:
postgresql: "9.6"
language: python
python:
- "3.6"
- "3.7"
install:
- pip install -r requirements.txt
- pip install pycodestyle
- pip install coverage
before_script:
- psql --version
- psql -U postgres -c 'SELECT version();'
script:
- ./scripts/cibuild.sh

View File

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

View File

@@ -4,15 +4,24 @@ 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.
### Mailing List
### GitHub Discussions
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).
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
### Slack
For real-time discussion, you can join the #netbox Slack channel on [NetworkToCode](https://slack.networktocode.com/).
For real-time chat, you can join the **#netbox** Slack channel on [NetDev Community](https://netdev.chat/).
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
@@ -60,14 +69,10 @@ 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 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
proposed feature before filing a formal issue.
* Before filing a new feature request, consider raising your idea in a
[GitHub discussion](https://github.com/netbox-community/netbox/discussions)
first. Feedback you receive there will help validate and shape the proposed
feature before filing a formal issue.
* Good feature requests are very narrowly defined. Be sure to thoroughly
describe the functionality and data model(s) being proposed. The more effort
@@ -93,6 +98,10 @@ appropriate labels will be applied for categorization.
## Submitting Pull Requests
* If you're interested in contributing to NetBox, be sure to check out our
[getting started](https://docs.netbox.dev/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
@@ -103,14 +112,18 @@ any work that's already in progress.
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.
* Any pull request which does _not_ relate to an **accepted** issue will be closed.
* All major new functionality must include relevant tests where applicable.
* 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 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):
@@ -136,17 +149,20 @@ 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.
* Issues will be marked as stale after 60 days of no activity.
* If the stable label is not removed in the following 30 days, the issue will
be closed automatically.
* 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.
It is natural that some new issues get more attention than others. The stale
bot helps bring renewed attention to potentially valuable issues that may have
been overlooked. **Do not** comment on a stale issue merely to "bump" it in an
effort to circumvent the bot: This will result in the immediate closure of the
issue, and you may be barred from participating in future discussions.
## Maintainer Guidance
@@ -155,17 +171,11 @@ overlooked.
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/).
development must be in accordance with our [development guidance](https://docs.netbox.dev/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
* The [netbox-discuss](https://groups.google.com/forum/#!forum/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.

6
NOTICE
View File

@@ -1 +1,7 @@
Copyrighted and licensed under Apache License 2.0 by DigitalOcean, LLC.
This project contains code developed expressly for NetBox, and its reuse in
other projects may introduce issues affecting performance, data integrity,
and security.
For more information, please see https://github.com/netbox-community/netbox.

116
README.md
View File

@@ -1,54 +1,106 @@
![NetBox](docs/netbox_logo.svg "NetBox logo")
<div align="center">
<img src="https://raw.githubusercontent.com/netbox-community/netbox/develop/docs/netbox_logo.svg" width="400" alt="NetBox logo" />
</div>
NetBox is an IP address management (IPAM) and data center infrastructure
management (DCIM) tool. Initially conceived by the network engineering team at
![Master branch build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=master)
NetBox is an infrastructure resource modeling (IRM) tool designed to empower
network automation, used by thousands of organizations around the world.
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.
Myriad infrastructure components can be modeled in NetBox, including:
* Hierarchical regions, site groups, sites, and locations
* Racks, devices, and device components
* Cables and wireless connections
* Power distribution
* Data circuits and providers
* Virtual machines and clusters
* IP prefixes, ranges, and addresses
* VRFs and route targets
* FHRP groups (VRRP, HSRP, etc.)
* AS numbers
* VLANs and scoped VLAN groups
* Organizational tenants and contacts
In addition to its extensive built-in models and functionality, NetBox can be
customized and extended through the use of:
* Custom fields
* Custom links
* Configuration contexts
* Custom model validation rules
* Reports
* Custom scripts
* Export templates
* Conditional webhooks
* Plugins
* Single sign-on (SSO) authentication
* NAPALM integration
* Detailed change logging
NetBox also features a complete REST API as well as a GraphQL API for easily
integrating with other tools and systems.
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
Python framework with a [PostgreSQL](https://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/).
The complete documentation for NetBox can be found at [docs.netbox.dev](https://docs.netbox.dev/). A public demo instance is available at https://demo.netbox.dev.
Questions? Comments? Please subscribe to [the netbox-discuss mailing list](https://groups.google.com/forum/#!forum/netbox-discuss),
or join us in the #netbox Slack channel on [NetworkToCode](https://networktocode.slack.com/)!
<div align="center">
<h4>Thank you to our sponsors!</h4>
### Build Status
[![DigitalOcean](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/digitalocean.png)](https://try.digitalocean.com/developer-cloud)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[![Equinix Metal](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/equinix.png)](https://metal.equinix.com/)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[![NS1](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/ns1.png)](https://ns1.com/)
<br />
[![Sentry](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/sentry.png)](https://sentry.io/)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[![Stellar Technologies](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/stellar.png)](https://stellar.tech/)
| | status |
|-------------|------------|
| **master** | [![Build Status](https://travis-ci.org/netbox-community/netbox.svg?branch=master)](https://travis-ci.com/netbox-community/netbox/) |
| **develop** | [![Build Status](https://travis-ci.org/netbox-community/netbox.svg?branch=develop)](https://travis-ci.com/netbox-community/netbox/) |
</div>
### Screenshots
### Discussion
![Screenshot of main page](docs/media/screenshot1.png "Main page")
* [GitHub Discussions](https://github.com/netbox-community/netbox/discussions) - Discussion forum hosted by GitHub; ideal for Q&A and other structured discussions
* [Slack](https://netdev.chat/) - Real-time chat hosted by the NetDev Community; best for unstructured discussion or just hanging out
---
### Installation
![Screenshot of rack elevation](docs/media/screenshot2.png "Rack elevation")
Please see [the documentation](https://docs.netbox.dev/) for
instructions on installing NetBox. To upgrade NetBox, please download the
[latest release](https://github.com/netbox-community/netbox/releases) and
run `upgrade.sh`.
---
### Providing Feedback
![Screenshot of prefix hierarchy](docs/media/screenshot3.png "Prefix hierarchy")
## 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/netbox-community/netbox/releases)
and run `upgrade.sh`.
## Providing Feedback
Feature requests and bug reports must be submitted as GiHub issues. (Please be
sure to use the [appropriate template](https://github.com/netbox-community/netbox/issues/new/choose).)
For general discussion, please consider joining our [mailing list](https://groups.google.com/forum/#!forum/netbox-discuss).
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
### Screenshots
Please see [our wiki](https://github.com/netbox-community/netbox/wiki/Community-Contributions) for a list of relevant community projects.
![Screenshot of main page (light mode)](docs/media/screenshots/home-light.png "Main page (light mode)")
![Screenshot of main page (dark mode)](docs/media/screenshots/home-dark.png "Main page (dark mode)")
![Screenshot of rack elevation](docs/media/screenshots/rack.png "Rack elevation")
![Screenshot of prefixes hierarchy](docs/media/screenshots/prefixes-list.png "Prefixes hierarchy")
![Screenshot of cable trace](docs/media/screenshots/cable-trace.png "Cable tracing")
### Related projects
Please see [our wiki](https://github.com/netbox-community/netbox/wiki/Community-Contributions)
for a list of relevant community projects.

31
SECURITY.md Normal file
View File

@@ -0,0 +1,31 @@
# Security Policy
## No Warranty
Per the terms of the Apache 2 license, NetBox is offered "as is" and without any guarantee or warranty pertaining to its operation. While every reasonable effort is made by its maintainers to ensure the product remains free of security vulnerabilities, users are ultimately responsible for conducting their own evaluations of each software release.
## Recommendations
Administrators are encouraged to adhere to industry best practices concerning the secure operation of software, such as:
* Do not expose your NetBox installation to the public Internet
* Do not permit multiple users to share an account
* Enforce minimum password complexity requirements for local accounts
* Prohibit access to your database from clients other than the NetBox application
* Keep your deployment updated to the most recent stable release
## Reporting a Suspected Vulnerability
If you believe you've uncovered a security vulnerability and wish to report it confidentially, you may do so via email. Please note that any reported vulnerabilities **MUST** meet all the following conditions:
* Affects the most recent stable release of NetBox, or a current beta release
* Affects a NetBox instance installed and configured per the official documentation
* Is reproducible following a prescribed set of instructions
Please note that we **DO NOT** accept reports generated by automated tooling which merely suggest that a file or file(s) _may_ be vulnerable under certain conditions, as these are most often innocuous.
If you believe that you've found a vulnerability which meets all of these conditions, please email a brief description of the suspected bug and instructions for reproduction to **security@netbox.dev**. For any security concerns regarding NetBox deployed via Docker, please see the [netbox-docker](https://github.com/netbox-community/netbox-docker) project.
### Bug Bounties
As NetBox is provided as free open source software, we do not offer any monetary compensation for vulnerability or bug reports, however your contributions are greatly appreciated.

View File

@@ -1,11 +1,11 @@
# HTML sanitizer
# https://github.com/mozilla/bleach
bleach
# 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
@@ -18,6 +18,10 @@ django-debug-toolbar
# https://github.com/carltongibson/django-filter
django-filter
# Django debug toolbar extension with support for GraphiQL
# https://github.com/flavors/django-graphiql-debug-toolbar/
django-graphiql-debug-toolbar
# Modified Preorder Tree Traversal (recursive nesting of objects)
# https://github.com/django-mptt/django-mptt
django-mptt
@@ -30,6 +34,10 @@ django-pglocks
# https://github.com/korfuri/django-prometheus
django-prometheus
# Django chaching backend using Redis
# https://github.com/jazzband/django-redis
django-redis
# Django integration for RQ (Reqis queuing)
# https://github.com/rq/django-rq
django-rq
@@ -40,7 +48,8 @@ django-tables2
# User-defined tags for objects
# https://github.com/alex/django-taggit
django-taggit
# Will evaluate v3.0 during NetBox v3.3 beta
django-taggit>=2.1.0,<3.0
# A Django field for representing time zones
# https://github.com/mfogel/django-timezone-field/
@@ -54,6 +63,10 @@ djangorestframework
# https://github.com/axnsan12/drf-yasg
drf-yasg[validation]
# Django wrapper for Graphene (GraphQL support)
# https://github.com/graphql-python/graphene-django
graphene_django
# WSGI HTTP server
# https://gunicorn.org/
gunicorn
@@ -66,8 +79,20 @@ Jinja2
# https://github.com/Python-Markdown/markdown
Markdown
# File inclusion plugin for Python-Markdown
# https://github.com/cmacmackin/markdown-include
markdown-include
# MkDocs Material theme (for documentation build)
# https://github.com/squidfunk/mkdocs-material
mkdocs-material
# Introspection for embedded code
# https://github.com/mkdocstrings/mkdocstrings
mkdocstrings[python-legacy]
# Library for manipulating IP prefixes and addresses
# https://github.com/drkjam/netaddr
# https://github.com/netaddr/netaddr
netaddr
# Fork of PIL (Python Imaging Library) for image processing
@@ -78,18 +103,30 @@ Pillow
# 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
# Sentry SDK
# https://github.com/getsentry/sentry-python
sentry-sdk
# Social authentication framework
# https://github.com/python-social-auth/social-core
social-auth-core
# Django app for social-auth-core
# https://github.com/python-social-auth/social-app-django
social-auth-app-django
# SVG image rendering (used for rack elevations)
# https://github.com/mozman/svgwrite
svgwrite
# Tabular dataset library (for table-based exports)
# https://github.com/jazzband/tablib
tablib
# Timezone data (required by django-timezone-field on Python 3.9+)
# https://github.com/python/tzdata
tzdata

9
contrib/netbox-housekeeping.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
# This shell script invokes NetBox's housekeeping management command, which
# intended to be run nightly. This script can be copied into your system's
# daily cron directory (e.g. /etc/cron.daily), or referenced directly from
# within the cron configuration file.
#
# If NetBox has been installed into a nonstandard location, update the paths
# below.
/opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py housekeeping

View File

@@ -1,6 +1,6 @@
[Unit]
Description=NetBox Request Queue Worker
Documentation=https://netbox.readthedocs.io/en/stable/
Documentation=https://docs.netbox.dev/
After=network-online.target
Wants=network-online.target
@@ -11,7 +11,7 @@ User=netbox
Group=netbox
WorkingDirectory=/opt/netbox
ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker
ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker high default low
Restart=on-failure
RestartSec=30

View File

@@ -1,6 +1,6 @@
[Unit]
Description=NetBox WSGI Service
Documentation=https://netbox.readthedocs.io/en/stable/
Documentation=https://docs.netbox.dev/
After=network-online.target
Wants=network-online.target

View File

@@ -1,5 +1,5 @@
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=off;
# CHANGE THIS TO YOUR SERVER'S NAME
server_name netbox.example.com;
@@ -23,7 +23,7 @@ server {
server {
# Redirect HTTP traffic to HTTPS
listen 80;
listen [::]:80 ipv6only=off;
server_name _;
return 301 https://$host$request_uri;
}

View File

@@ -1,25 +0,0 @@
# 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

@@ -1,6 +1,6 @@
# 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.
Every time an object in NetBox is created, updated, or deleted, a serialized copy of that object taken both before and after the change 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.

View File

@@ -1,26 +0,0 @@
# 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.

View File

@@ -1,42 +0,0 @@
# 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.
## 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

@@ -1,57 +0,0 @@
# 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

@@ -1,30 +0,0 @@
# Graphs
!!! warning
Native support for embedded graphs is due to be removed in NetBox v2.10. It will likely be superseded by a plugin providing similar functionality.
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, device, 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`.
Graph names and links can be rendered using Jinja2 or [Django's template language](https://docs.djangoproject.com/en/stable/ref/templates/language/).
## 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
```

View File

@@ -0,0 +1,5 @@
# Journaling
All primary objects in NetBox support journaling. A journal is a collection of human-generated notes and comments about an object maintained for historical context. It supplements NetBox's change log to provide additional information about why changes have been made or to convey events which occur outside NetBox. Unlike the change log, in which records typically expire after a configurable period of time, journal entries persist for the life of their associated object.
Each journal entry has a selectable kind (info, success, warning, or danger) and a user-populated `comments` field. Each entry automatically records the date, time, and associated user upon being created.

View File

@@ -1,6 +1,13 @@
# 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.
NetBox supports integration with the [NAPALM automation](https://github.com/napalm-automation/napalm) 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.
The NetBox UI will display tabs for status, LLDP neighbors, and configuration under the device view if the following conditions are met:
* Device status is "Active"
* A primary IP has been assigned to the device
* A platform with a NAPALM driver has been assigned
* The authenticated user has the `dcim.napalm_read_device` permission
!!! note
To enable this integration, the NAPALM library must be installed. See [installation steps](../../installation/3-netbox/#napalm) for more information.
@@ -22,7 +29,7 @@ GET /api/dcim/devices/1/napalm/?method=get_environment
## 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.
By default, the [`NAPALM_USERNAME`](../configuration/dynamic-settings.md#napalm_username) and [`NAPALM_PASSWORD`](../configuration/dynamic-settings.md#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" \

View File

@@ -26,4 +26,4 @@ For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on you
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).
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 environment 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

@@ -1,74 +1,25 @@
# Webhooks
{!models/extras/webhook.md!}
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.
## Conditional Webhooks
## Configuration
A webhook may include a set of conditional logic expressed in JSON used to control whether a webhook triggers for a specific object. For example, you may wish to trigger a webhook for devices only when the `status` field of an object is "active":
* **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
```json
{
"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,
...
"and": [
{
"attr": "status.value",
"value": "active"
}
]
}
```
For more detail, see the reference documentation for NetBox's [conditional logic](../reference/conditions.md).
## 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.
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 System > Background Tasks.
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.

View File

@@ -0,0 +1,88 @@
# Microsoft Azure AD
This guide explains how to configure single sign-on (SSO) support for NetBox using [Microsoft Azure Active Directory (AD)](https://azure.microsoft.com/en-us/services/active-directory/) as an authentication backend.
## Azure AD Configuration
### 1. Create a test user (optional)
Create a new user in AD to be used for testing. You can skip this step if you already have a suitable account created.
### 2. Create an app registration
Under the Azure Active Directory dashboard, navigate to **Add > App registration**.
![Add an app registration](../../media/authentication/azure_ad_add_app_registration.png)
Enter a name for the registration (e.g. "NetBox") and ensure that the "single tenant" option is selected.
Under "Redirect URI", select "Web" for the platform and enter the path to your NetBox installation, ending with `/oauth/complete/azuread-oauth2/`. Note that this URI **must** begin with `https://` unless you are referencing localhost (for development purposes).
![App registration parameters](../../media/authentication/azure_ad_app_registration.png)
Once finished, make note of the application (client) ID; this will be used when configuring NetBox.
![Completed app registration](../../media/authentication/azure_ad_app_registration_created.png)
!!! tip "Multitenant authentication"
NetBox also supports multitenant authentication via Azure AD, however it requires a different backend and an additional configuration parameter. Please see the [`python-social-auth` documentation](https://python-social-auth.readthedocs.io/en/latest/backends/azuread.html#tenant-support) for details concerning multitenant authentication.
### 3. Create a secret
When viewing the newly-created app registration, click the "Add a certificate or secret" link under "Client credentials". Under the "Client secrets" tab, click the "New client secret" button.
![Add a client secret](../../media/authentication/azure_ad_add_client_secret.png)
You can optionally specify a description and select a lifetime for the secret.
![Client secret parameters](../../media/authentication/azure_ad_client_secret.png)
Once finished, make note of the secret value (not the secret ID); this will be used when configuring NetBox.
![Client secret parameters](../../media/authentication/azure_ad_client_secret_created.png)
## NetBox Configuration
### 1. Enter configuration parameters
Enter the following configuration parameters in `configuration.py`, substituting your own values:
```python
REMOTE_AUTH_BACKEND = 'social_core.backends.azuread.AzureADOAuth2'
SOCIAL_AUTH_AZUREAD_OAUTH2_KEY = '{APPLICATION_ID}'
SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET = '{SECRET_VALUE}'
```
### 2. Restart NetBox
Restart the NetBox services so that the new configuration takes effect. This is typically done with the command below:
```no-highlight
sudo systemctl restart netbox
```
## Testing
Log out of NetBox if already authenticated, and click the "Log In" button at top right. You should see the normal login form as well as an option to authenticate using Azure AD. Click that link.
![NetBox Azure AD login form](../../media/authentication/netbox_azure_ad_login.png)
You should be redirected to Microsoft's authentication portal. Enter the username/email and password of your test account to continue. You may also be prompted to grant this application access to your account.
![NetBox Azure AD login form](../../media/authentication/azure_ad_login_portal.png)
If successful, you will be redirected back to the NetBox UI, and will be logged in as the AD user. You can verify this by navigating to your profile (using the button at top right).
This user account has been replicated locally to NetBox, and can now be assigned groups and permissions within the NetBox admin UI.
## Troubleshooting
### Redirect URI does not Match
Azure requires that the authenticating client request a redirect URI that matches what you've configured for the app in step two. This URI **must** begin with `https://` (unless using `localhost` for the domain).
If Azure complains that the requested URI starts with `http://` (not HTTPS), it's likely that your HTTP server is misconfigured or sitting behind a load balancer, so NetBox is not aware that HTTPS is being use. To force the use of an HTTPS redirect URI, set `SOCIAL_AUTH_REDIRECT_IS_HTTPS = True` in `configuration.py` per the [python-social-auth docs](https://python-social-auth.readthedocs.io/en/latest/configuration/settings.html#processing-redirects-and-urlopen).
### Not Logged in After Authenticating
If you are redirected to the NetBox UI after authenticating successfully, but are _not_ logged in, double-check the configured backend and app registration. The instructions in this guide pertain only to the `azuread.AzureADOAuth2` backend using a single-tenant app registration.

View File

@@ -0,0 +1,70 @@
# Okta
This guide explains how to configure single sign-on (SSO) support for NetBox using [Okta](https://www.okta.com/) as an authentication backend.
## Okta Configuration
!!! tip "Okta developer account"
Okta offers free developer accounts at <https://developer.okta.com/>.
### 1. Create a test user (optional)
Create a new user in the Okta admin portal to be used for testing. You can skip this step if you already have a suitable account created.
### 2. Create an app registration
Within the Okta administration dashboard, navigate to **Applications > Applications**, and click the "Create App Integration" button. Select "OIDC" as the sign-in method, and "Web application" for the application type.
![Create an app registration](../../media/authentication/okta_create_app_registration.png)
On the next page, give the app integration a name (e.g. "NetBox") and specify the sign-in and sign-out URIs. These URIs should follow the formats below:
* Sign-in URI: `https://{netbox}/oauth/complete/okta-openidconnect/`
* Sign-out URI: `https://{netbox}/oauth/disconnect/okta-openidconnect/`
![Web app integration](../../media/authentication/okta_web_app_integration.png)
Under "Assignments," select the controlled access setting most appropriate for your organization. Click "Save" to complete the creation.
Once finished, note the following parameters. These will be used to configured NetBox.
* Client ID
* Client secret
* Okta domain
![Okta integration parameters](../../media/authentication/okta_integration_parameters.png)
## NetBox Configuration
### 1. Enter configuration parameters
Enter the following configuration parameters in `configuration.py`, substituting your own values:
```python
REMOTE_AUTH_BACKEND = 'social_core.backends.okta_openidconnect.OktaOpenIdConnect'
SOCIAL_AUTH_OKTA_OPENIDCONNECT_KEY = '{Client ID}'
SOCIAL_AUTH_OKTA_OPENIDCONNECT_SECRET = '{Client secret}'
SOCIAL_AUTH_OKTA_OPENIDCONNECT_API_URL = 'https://{Okta domain}/oauth2/'
```
### 2. Restart NetBox
Restart the NetBox services so that the new configuration takes effect. This is typically done with the command below:
```no-highlight
sudo systemctl restart netbox
```
## Testing
Log out of NetBox if already authenticated, and click the "Log In" button at top right. You should see the normal login form as well as an option to authenticate using Okta. Click that link.
![NetBox Okta login form](../../media/authentication/netbox_okta_login.png)
You should be redirected to Okta's authentication portal. Enter the username/email and password of your test account to continue. You may also be prompted to grant this application access to your account.
![Okta login portal](../../media/authentication/okta_login_portal.png)
If successful, you will be redirected back to the NetBox UI, and will be logged in as the Okta user. You can verify this by navigating to your profile (using the button at top right).
This user account has been replicated locally to NetBox, and can now be assigned groups and permissions within the NetBox admin UI.

View File

@@ -0,0 +1,37 @@
# Authentication
## Local Authentication
Local user accounts and groups can be created in NetBox under the "Authentication and Authorization" section of the administrative user interface. This interface is available only to users with the "staff" permission enabled.
At a minimum, each user account must have a username and password set. User accounts may also denote a first name, last name, and email address. [Permissions](../permissions.md) may also be assigned to users and/or groups within the admin UI.
## Remote Authentication
NetBox may be configured to provide user authenticate via a remote backend in addition to local authentication. This is done by setting the `REMOTE_AUTH_BACKEND` configuration parameter to a suitable backend class. NetBox provides several options for remote authentication.
### LDAP Authentication
```python
REMOTE_AUTH_BACKEND = 'netbox.authentication.LDAPBackend'
```
NetBox includes an authentication backend which supports LDAP. See the [LDAP installation docs](../../installation/6-ldap.md) for more detail about this backend.
### HTTP Header Authentication
```python
REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend'
```
Another option for remote authentication in NetBox is to enable HTTP header-based user assignment. The front end HTTP server (e.g. nginx or Apache) performs client authentication as a process external to NetBox, and passes information about the authenticated user via HTTP headers. By default, the user is assigned via the `REMOTE_USER` header, but this can be customized via the `REMOTE_AUTH_HEADER` configuration parameter.
### Single Sign-On (SSO)
```python
REMOTE_AUTH_BACKEND = 'social_core.backends.google.GoogleOAuth2'
```
NetBox supports single sign-on authentication via the [python-social-auth](https://github.com/python-social-auth) library. To enable SSO, specify the path to the desired authentication backend within the `social_core` Python package. Please see the complete list of [supported authentication backends](https://github.com/python-social-auth/social-core/tree/master/social_core/backends) for the available options.
Most remote authentication backends require some additional configuration through settings prefixed with `SOCIAL_AUTH_`. These will be automatically imported from NetBox's `configuration.py` file. Additionally, the [authentication pipeline](https://python-social-auth.readthedocs.io/en/latest/pipeline.html) can be customized via the `SOCIAL_AUTH_PIPELINE` parameter. (NetBox's default pipeline is defined in `netbox/settings.py` for your reference.)

View File

@@ -0,0 +1,46 @@
# Error Reporting
## Sentry
### Enabling Error Reporting
NetBox v3.2.3 and later support native integration with [Sentry](https://sentry.io/) for automatic error reporting. To enable this functionality, simply set `SENTRY_ENABLED` to True in `configuration.py`. Errors will be sent to a Sentry ingestor maintained by the NetBox team for analysis.
```python
SENTRY_ENABLED = True
```
### Using a Custom DSN
If you prefer instead to use your own Sentry ingestor, you'll need to first create a new project under your Sentry account to represent your NetBox deployment and obtain its corresponding data source name (DSN). This looks like a URL similar to the example below:
```
https://examplePublicKey@o0.ingest.sentry.io/0
```
Once you have obtained a DSN, configure Sentry in NetBox's `configuration.py` file with the following parameters:
```python
SENTRY_ENABLED = True
SENTRY_DSN = "https://examplePublicKey@o0.ingest.sentry.io/0"
```
### Assigning Tags
You can optionally attach one or more arbitrary tags to the outgoing error reports if desired by setting the `SENTRY_TAGS` parameter:
```python
SENTRY_TAGS = {
"custom.foo": "123",
"custom.bar": "abc",
}
```
!!! warning "Reserved tag prefixes"
Avoid using any tag names which begin with `netbox.`, as this prefix is reserved by the NetBox application.
### Testing
Once the configuration has been saved, restart the NetBox service.
To test Sentry operation, try generating a 404 (page not found) error by navigating to an invalid URL, such as `https://netbox/404-error-testing`. (Be sure that debug mode has been disabled.) After receiving a 404 response from the NetBox server, you should see the issue appear shortly in Sentry.

View File

@@ -0,0 +1,18 @@
# Housekeeping
NetBox includes a `housekeeping` management command that should be run nightly. This command handles:
* Clearing expired authentication sessions from the database
* Deleting changelog records older than the configured [retention time](../configuration/dynamic-settings.md#changelog_retention)
* Deleting job result records older than the configured [retention time](../configuration/dynamic-settings.md#jobresult_retention)
This command can be invoked directly, or by using the shell script provided at `/opt/netbox/contrib/netbox-housekeeping.sh`. This script can be linked from your cron scheduler's daily jobs directory (e.g. `/etc/cron.daily`) or referenced directly within the cron configuration file.
```shell
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
```
!!! note
On Debian-based systems, be sure to omit the `.sh` file extension when linking to the script from within a cron directory. Otherwise, the task may not run.
The `housekeeping` command can also be run manually at any time: Running the command outside scheduled execution times will not interfere with its operation.

View File

@@ -11,7 +11,7 @@ This will launch a lightly customized version of [the built-in Django shell](htt
```
$ ./manage.py nbshell
### NetBox interactive shell (localhost)
### Python 3.6.9 | Django 2.2.11 | NetBox 2.7.10
### Python 3.7.10 | Django 3.2.5 | NetBox 3.0
### lsmodels() will show available models. Use help(<model>) for more info.
```
@@ -185,7 +185,7 @@ To delete an object, simply call `delete()` on its instance. This will return a
>>> vlan
<VLAN: 123 (BetterName)>
>>> vlan.delete()
(1, {'extras.CustomFieldValue': 0, 'ipam.VLAN': 1})
(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.
@@ -194,9 +194,9 @@ To delete multiple objects at once, call `delete()` on a filtered queryset. It's
>>> Device.objects.filter(name__icontains='test').count()
27
>>> Device.objects.filter(name__icontains='test').delete()
(35, {'extras.CustomFieldValue': 0, 'dcim.DeviceBay': 0, 'secrets.Secret': 0,
'dcim.InterfaceConnection': 4, 'extras.ImageAttachment': 0, 'dcim.Device': 27,
'dcim.Interface': 4, 'dcim.ConsolePort': 0, 'dcim.PowerPort': 0})
(35, {'dcim.DeviceBay': 0, 'dcim.InterfaceConnection': 4,
'extras.ImageAttachment': 0, 'dcim.Device': 27, 'dcim.Interface': 4,
'dcim.ConsolePort': 0, 'dcim.PowerPort': 0})
```
!!! warning

View File

@@ -1,8 +1,8 @@
# 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.
NetBox v2.9 introduced a new object-based permissions framework, which replaces 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!}
{!models/users/objectpermission.md!}
### Example Constraint Definitions
@@ -10,7 +10,7 @@ NetBox v2.9 introduced a new object-based permissions framework, which replace's
| ----------- | ----------- |
| `{"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 |
| `{"status": "active", "role": "testing"}` | Status is active **AND** 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 |

View File

@@ -12,13 +12,16 @@ NetBox employs a [PostgreSQL](https://www.postgresql.org/) database, so general
Use the `pg_dump` utility to export the entire database to a file:
```no-highlight
pg_dump netbox > netbox.sql
pg_dump --username netbox --password --host localhost netbox > netbox.sql
```
!!! note
You may need to change the username, host, and/or database in the command above to match your installation.
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
pg_dump ... --exclude-table-data=extras_objectchange netbox > netbox.sql
```
### Load an Exported Database
@@ -41,7 +44,7 @@ Keep in mind that PostgreSQL user accounts and permissions are not included with
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
pg_dump --username netbox --password --host localhost -s netbox > netbox_schema.sql
```
---
@@ -68,13 +71,3 @@ To extract the saved archive into a new installation, run the following from the
```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 by performing this command:
```no-highlight
python3 manage.py invalidate all
```

View File

@@ -0,0 +1,232 @@
# Dynamic Configuration Settings
These configuration parameters are primarily controlled via NetBox's admin interface (under Admin > Extras > Configuration Revisions). These setting may also be overridden in `configuration.py`; this will prevent them from being modified via the UI.
---
## 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 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
```
---
## BANNER_LOGIN
This defines custom content to be displayed on the login page above the login form. HTML is allowed.
---
## 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.
---
## CUSTOM_VALIDATORS
This is a mapping of models to [custom validators](../customization/custom-validation.md) that have been defined locally to enforce custom validation logic. An example is provided below:
```python
CUSTOM_VALIDATORS = {
"dcim.site": [
{
"name": {
"min_length": 5,
"max_length": 30
}
},
"my_plugin.validators.Validator1"
],
"dim.device": [
"my_plugin.validators.Validator1"
]
}
```
---
## DEFAULT_USER_PREFERENCES
This is a dictionary defining the default preferences to be set for newly-created user accounts. For example, to set the default page size for all users to 100, define the following:
```python
DEFAULT_USER_PREFERENCES = {
"pagination": {
"per_page": 100
}
}
```
For a complete list of available preferences, log into NetBox and navigate to `/user/preferences/`. A period in a preference name indicates a level of nesting in the JSON data. The example above maps to `pagination.per_page`.
---
## ENFORCE_GLOBAL_UNIQUE
Default: False
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.
---
## GRAPHQL_ENABLED
Default: True
Setting this to False will disable the GraphQL API.
---
## JOBRESULT_RETENTION
Default: 90
The number of days to retain job results (scripts and reports). Set this to `0` to retain
job results in the database indefinitely.
!!! warning
If enabling indefinite job results retention, it is recommended to periodically delete old entries. Otherwise, the database may eventually exceed capacity.
---
## MAINTENANCE_MODE
Default: False
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.
---
## MAPS_URL
Default: `https://maps.google.com/?q=` (Google Maps)
This specifies the URL to use when presenting a map of a physical location by street address or GPS coordinates. The URL must accept either a free-form street address or a comma-separated pair of numeric coordinates appended to it.
---
## MAX_PAGE_SIZE
Default: 1000
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`.
---
## NAPALM_USERNAME
## NAPALM_PASSWORD
NetBox will use these credentials when authenticating to remote devices via the supported [NAPALM integration](../additional-features/napalm.md), if installed. Both parameters are optional.
!!! 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.
---
## NAPALM_ARGS
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](https://napalm.readthedocs.io/en/latest/support/#optional-arguments). An example:
```python
NAPALM_ARGS = {
'api_key': '472071a93b60a1bd1fafb401d9f8ef41',
'port': 2222,
}
```
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 = {
'secret': NAPALM_PASSWORD,
# Include any additional args here
}
```
---
## NAPALM_TIMEOUT
Default: 30 seconds
The amount of time (in seconds) to wait for NAPALM to connect to a device.
---
## PAGINATE_COUNT
Default: 50
The default maximum number of objects to display per page within each list of objects.
---
## POWERFEED_DEFAULT_AMPERAGE
Default: 15
The default value for the `amperage` field when creating new power feeds.
---
## POWERFEED_DEFAULT_MAX_UTILIZATION
Default: 80
The default value (percentage) for the `max_utilization` field when creating new power feeds.
---
## POWERFEED_DEFAULT_VOLTAGE
Default: 120
The default value for the `voltage` field when creating new power feeds.
---
## PREFER_IPV4
Default: False
When determining the primary IP address for a device, IPv6 is preferred over IPv4 by default. Set this to True to prefer IPv4 instead.
---
## 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.

View File

@@ -0,0 +1,54 @@
# Error Reporting Settings
## SENTRY_DSN
Default: None
Defines a Sentry data source name (DSN) for automated error reporting. `SENTRY_ENABLED` must be True for this parameter to take effect. For example:
```
SENTRY_DSN = "https://examplePublicKey@o0.ingest.sentry.io/0"
```
---
## SENTRY_ENABLED
Default: False
Set to True to enable automatic error reporting via [Sentry](https://sentry.io/).
---
## SENTRY_SAMPLE_RATE
Default: 1.0 (all)
The sampling rate for errors. Must be a value between 0 (disabled) and 1.0 (report on all errors).
---
## SENTRY_TAGS
An optional dictionary of tag names and values to apply to Sentry error reports.For example:
```
SENTRY_TAGS = {
"custom.foo": "123",
"custom.bar": "abc",
}
```
!!! warning "Reserved tag prefixes"
Avoid using any tag names which begin with `netbox.`, as this prefix is reserved by the NetBox application.
---
## SENTRY_TRACES_SAMPLE_RATE
Default: 0 (disabled)
The sampling rate for transactions. Must be a value between 0 (disabled) and 1.0 (report on all transactions).
!!! warning "Consider performance implications"
A high sampling rate for transactions can induce significant performance penalties. If transaction reporting is desired, it is recommended to use a relatively low sample rate of 10% to 20% (0.1 to 0.2).

View File

@@ -1,18 +1,27 @@
# 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.
NetBox's local configuration is stored in `$INSTALL_ROOT/netbox/netbox/configuration.py` by default. 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: these are defined under "required settings" below.
While NetBox has many configuration settings, only a few of them must be defined at the time of installation.
!!! info "Customizing the Configuration Module"
A custom configuration module may be specified by setting the `NETBOX_CONFIGURATION` environment variable. This must be a dotted path to the desired Python module. For example, a file named `my_config.py` in the same directory as `settings.py` would be referenced as `netbox.my_config`.
For the sake of brevity, the NetBox documentation refers to the configuration file simply as `configuration.py`.
Some configuration parameters may alternatively be defined either in `configuration.py` or within the administrative section of the user interface. Settings which are "hard-coded" in the configuration file take precedence over those defined via the UI.
## Configuration Parameters
* [Required settings](required-settings.md)
* [Optional settings](optional-settings.md)
* [Dynamic settings](dynamic-settings.md)
* [Remote authentication settings](remote-authentication.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:
The configuration file may be modified 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
```
Configuration parameters which are set via the admin UI (those listed under "dynamic settings") take effect immediately.

View File

@@ -13,38 +13,28 @@ ADMINS = [
---
## ALLOWED_URL_SCHEMES
## AUTH_PASSWORD_VALIDATORS
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 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:
This parameter acts as a pass-through for configuring Django's built-in password validators for local user accounts. If configured, these will be applied whenever a user's password is updated to ensure that it meets minimum criteria such as length or complexity. An example is provided below. For more detail on the available options, please see [the Django documentation](https://docs.djangoproject.com/en/stable/topics/auth/passwords/#password-validation).
```python
BANNER_TOP = 'Your banner text'
BANNER_BOTTOM = BANNER_TOP
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'OPTIONS': {
'min_length': 10,
}
},
]
```
---
## BANNER_LOGIN
This defines custom content to be displayed on the login page above the login form. HTML is allowed.
---
## BASE_PATH
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:
The base URL path to use when accessing NetBox. Do not include the scheme or domain name. For example, if installed at https://example.com/netbox/, set:
```python
BASE_PATH = 'netbox/'
@@ -52,26 +42,6 @@ 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
@@ -96,6 +66,29 @@ CORS_ORIGIN_WHITELIST = [
---
## CSRF_COOKIE_NAME
Default: `csrftoken`
The name of the cookie to use for the cross-site request forgery (CSRF) authentication token. See the [Django documentation](https://docs.djangoproject.com/en/stable/ref/settings/#csrf-cookie-name) for more detail.
---
## CSRF_TRUSTED_ORIGINS
Default: `[]`
Defines a list of trusted origins for unsafe (e.g. `POST`) requests. This is a pass-through to Django's [`CSRF_TRUSTED_ORIGINS`](https://docs.djangoproject.com/en/4.0/ref/settings/#std:setting-CSRF_TRUSTED_ORIGINS) setting. Note that each host listed must specify a scheme (e.g. `http://` or `https://).
```python
CSRF_TRUSTED_ORIGINS = (
'http://netbox.local',
'https://netbox.local',
)
```
---
## DEBUG
Default: False
@@ -144,7 +137,7 @@ In order to send email, NetBox needs an email server configured. The following i
!!! 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:
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) function accessible within the NetBox shell:
```no-highlight
# python ./manage.py nbshell
@@ -160,14 +153,6 @@ Email is sent from NetBox only for critical events or if configured for [logging
---
## ENFORCE_GLOBAL_UNIQUE
Default: False
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
@@ -195,6 +180,66 @@ EXEMPT_VIEW_PERMISSIONS = ['*']
---
## FIELD_CHOICES
Some static choice fields on models can be configured with custom values. This is done by defining `FIELD_CHOICES` as a dictionary mapping model fields to their choices. Each choice in the list must have a database value and a human-friendly label, and may optionally specify a color. (A list of available colors is provided below.)
The choices provided can either replace the stock choices provided by NetBox, or append to them. To _replace_ the available choices, specify the app, model, and field name separated by dots. For example, the site model would be referenced as `dcim.Site.status`. To _extend_ the available choices, append a plus sign to the end of this string (e.g. `dcim.Site.status+`).
For example, the following configuration would replace the default site status choices with the options Foo, Bar, and Baz:
```python
FIELD_CHOICES = {
'dcim.Site.status': (
('foo', 'Foo', 'red'),
('bar', 'Bar', 'green'),
('baz', 'Baz', 'blue'),
)
}
```
Appending a plus sign to the field identifier would instead _add_ these choices to the ones already offered:
```python
FIELD_CHOICES = {
'dcim.Site.status+': (
...
)
}
```
The following model fields support configurable choices:
* `circuits.Circuit.status`
* `dcim.Device.status`
* `dcim.PowerFeed.status`
* `dcim.Rack.status`
* `dcim.Site.status`
* `extras.JournalEntry.kind`
* `ipam.IPAddress.status`
* `ipam.IPRange.status`
* `ipam.Prefix.status`
* `ipam.VLAN.status`
* `virtualization.VirtualMachine.status`
The following colors are supported:
* `blue`
* `indigo`
* `purple`
* `pink`
* `red`
* `orange`
* `yellow`
* `green`
* `teal`
* `cyan`
* `gray`
* `black`
* `white`
---
## HTTP_PROXIES
Default: None
@@ -210,6 +255,23 @@ HTTP_PROXIES = {
---
## JINJA2_FILTERS
Default: `{}`
A dictionary of custom jinja2 filters with the key being the filter name and the value being a callable. For more information see the [Jinja2 documentation](https://jinja.palletsprojects.com/en/3.1.x/api/#custom-filters). For example:
```python
def uppercase(x):
return str(x).upper()
JINJA2_FILTERS = {
'uppercase': uppercase,
}
```
---
## INTERNAL_IPS
Default: `('127.0.0.1', '::1')`
@@ -257,11 +319,21 @@ LOGGING = {
---
## LOGIN_PERSISTENCE
Default: False
If true, the lifetime of a user's authentication session will be automatically reset upon each valid request. For example, if [`LOGIN_TIMEOUT`](#login_timeout) is configured to 14 days (the default), and a user whose session is due to expire in five days makes a NetBox request (with a valid session cookie), the session's lifetime will be reset to 14 days.
Note that enabling this setting causes NetBox to update a user's session in the database (or file, as configured per [`SESSION_FILE_PATH`](#session_file_path)) with each request, which may introduce significant overhead in very active environments. It also permits an active user to remain authenticated to NetBox indefinitely.
---
## LOGIN_REQUIRED
Default: False
Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox (excluding secrets) but not make any changes.
Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox but not make any changes.
---
@@ -273,22 +345,6 @@ The lifetime (in seconds) of the authentication cookie issued to a NetBox user u
---
## MAINTENANCE_MODE
Default: False
Setting this to True will display a "maintenance mode" banner at the top of every page.
---
## MAX_PAGE_SIZE
Default: 1000
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: $INSTALL_ROOT/netbox/media/
@@ -301,58 +357,7 @@ The file path to the location where media files (such as image attachments) are
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 on the remote device(s) for the system account under which NetBox runs, these parameters are not needed.
---
## NAPALM_ARGS
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,
}
```
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 = {
'secret': NAPALM_PASSWORD,
# Include any additional args here
}
```
---
## NAPALM_TIMEOUT
Default: 30 seconds
The amount of time (in seconds) to wait for NAPALM to connect to a device.
---
## PAGINATE_COUNT
Default: 50
The default maximum number of objects to display per page within each list of objects.
Toggle the availability Prometheus-compatible metrics at `/metrics`. See the [Prometheus Metrics](../additional-features/prometheus-metrics.md) documentation for more details.
---
@@ -389,94 +394,11 @@ Note that a plugin must be listed in `PLUGINS` for its configuration to take eff
---
## PREFER_IPV4
Default: False
When determining the primary IP address for a device, IPv6 is preferred over IPv4 by default. Set this to True to prefer IPv4 instead.
---
## 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. (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.
This parameter defines the URL of the repository that will be checked 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).
@@ -487,7 +409,15 @@ This parameter defines the URL of the repository that will be checked periodical
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.
The file path to the location where [custom reports](../customization/reports.md) 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.
---
@@ -495,7 +425,15 @@ The file path to the location where custom reports will be kept. By default, thi
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.
The file path to the location where [custom scripts](../customization/custom-scripts.md) will be kept. By default, this is the `netbox/scripts/` directory within the base NetBox installation path.
---
## SESSION_COOKIE_NAME
Default: `sessionid`
The name used for the session cookie. See the [Django documentation](https://docs.djangoproject.com/en/stable/ref/settings/#session-cookie-name) for more detail.
---

View File

@@ -0,0 +1,110 @@
# Remote Authentication Settings
The configuration parameters listed here control remote authentication for NetBox. Note that `REMOTE_AUTH_ENABLED` must be true in order for these settings to take effect.
---
## 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` as True and `REMOTE_AUTH_GROUP_SYNC_ENABLED` as False.)
---
## 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_DEFAULT_GROUPS` will not function if `REMOTE_AUTH_ENABLED` is disabled)
---
## REMOTE_AUTH_GROUP_SYNC_ENABLED
Default: `False`
NetBox can be configured to sync remote user groups 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.) (Requires `REMOTE_AUTH_ENABLED`.)
---
## 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`.)
---
## REMOTE_AUTH_GROUP_HEADER
Default: `'HTTP_REMOTE_USER_GROUP'`
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-Groups` it needs to be set to `HTTP_X_REMOTE_USER_GROUPS`. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_SUPERUSER_GROUPS
Default: `[]` (Empty list)
The list of groups that promote an remote User to Superuser on Login. If group isn't present on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_SUPERUSERS
Default: `[]` (Empty list)
The list of users that get promoted to Superuser on Login. If user isn't present in list on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_STAFF_GROUPS
Default: `[]` (Empty list)
The list of groups that promote an remote User to Staff on Login. If group isn't present on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_STAFF_USERS
Default: `[]` (Empty list)
The list of users that get promoted to Staff on Login. If user isn't present in list on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_GROUP_SEPARATOR
Default: `|` (Pipe)
The Seperator upon which `REMOTE_AUTH_GROUP_HEADER` gets split into individual Groups. This needs to be coordinated with your authentication Proxy. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )

View File

@@ -5,7 +5,7 @@
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.
This parameter must always be defined as a list or tuple, even if only a single 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)).
@@ -25,7 +25,7 @@ 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:
NetBox requires access to a PostgreSQL 10 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
@@ -65,8 +65,8 @@ Redis is configured using a configuration setting similar to `DATABASE` and thes
* `PORT` - TCP port of the Redis service; leave blank for default port (6379)
* `PASSWORD` - Redis password (if set)
* `DATABASE` - Numeric database ID
* `DEFAULT_TIMEOUT` - Connection timeout in seconds
* `SSL` - Use SSL connection to Redis
* `INSECURE_SKIP_TLS_VERIFY` - Set to `True` to **disable** TLS certificate verification (not recommended)
An example configuration is provided below:
@@ -77,7 +77,6 @@ REDIS = {
'PORT': 1234,
'PASSWORD': 'foobar',
'DATABASE': 0,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
},
'caching': {
@@ -85,7 +84,6 @@ REDIS = {
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
}
@@ -104,11 +102,12 @@ REDIS = {
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.
above and the addition of three 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:
@@ -117,9 +116,9 @@ REDIS = {
'tasks': {
'SENTINELS': [('mysentinel.redis.example.com', 6379)],
'SENTINEL_SERVICE': 'netbox',
'SENTINEL_TIMEOUT': 10,
'PASSWORD': '',
'DATABASE': 0,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
},
'caching': {
@@ -130,7 +129,6 @@ REDIS = {
'SENTINEL_SERVICE': 'netbox',
'PASSWORD': '',
'DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
}

View File

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

View File

@@ -0,0 +1,5 @@
# Contacts
{!models/tenancy/contact.md!}
{!models/tenancy/contactgroup.md!}
{!models/tenancy/contactrole.md!}

View File

@@ -1,7 +1,7 @@
# Device Types
{!docs/models/dcim/devicetype.md!}
{!docs/models/dcim/manufacturer.md!}
{!models/dcim/devicetype.md!}
{!models/dcim/manufacturer.md!}
---
@@ -30,11 +30,12 @@ Once component templates have been created, every new device that you create as
!!! 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!}
{!models/dcim/consoleporttemplate.md!}
{!models/dcim/consoleserverporttemplate.md!}
{!models/dcim/powerporttemplate.md!}
{!models/dcim/poweroutlettemplate.md!}
{!models/dcim/interfacetemplate.md!}
{!models/dcim/frontporttemplate.md!}
{!models/dcim/rearporttemplate.md!}
{!models/dcim/modulebaytemplate.md!}
{!models/dcim/devicebaytemplate.md!}

View File

@@ -1,27 +1,40 @@
# Devices and Cabling
{!docs/models/dcim/device.md!}
{!docs/models/dcim/devicerole.md!}
{!docs/models/dcim/platform.md!}
{!models/dcim/device.md!}
{!models/dcim/devicerole.md!}
{!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!}
Device components represent discrete objects within a device which are used to terminate cables, house child devices, or track resources.
{!models/dcim/consoleport.md!}
{!models/dcim/consoleserverport.md!}
{!models/dcim/powerport.md!}
{!models/dcim/poweroutlet.md!}
{!models/dcim/interface.md!}
{!models/dcim/frontport.md!}
{!models/dcim/rearport.md!}
{!models/dcim/modulebay.md!}
{!models/dcim/devicebay.md!}
{!models/dcim/inventoryitem.md!}
---
{!docs/models/dcim/virtualchassis.md!}
{!models/dcim/virtualchassis.md!}
---
{!docs/models/dcim/cable.md!}
{!models/dcim/cable.md!}
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

View File

@@ -1,17 +1,28 @@
# IP Address Management
{!docs/models/ipam/aggregate.md!}
{!docs/models/ipam/rir.md!}
{!models/ipam/aggregate.md!}
{!models/ipam/rir.md!}
---
{!docs/models/ipam/prefix.md!}
{!docs/models/ipam/role.md!}
{!models/ipam/prefix.md!}
{!models/ipam/role.md!}
---
{!docs/models/ipam/ipaddress.md!}
{!models/ipam/iprange.md!}
{!models/ipam/ipaddress.md!}
---
{!docs/models/ipam/vrf.md!}
{!models/ipam/vrf.md!}
{!models/ipam/routetarget.md!}
---
{!models/ipam/fhrpgroup.md!}
{!models/ipam/fhrpgroupassignment.md!}
---
{!models/ipam/asn.md!}

View File

@@ -0,0 +1,4 @@
# Modules
{!models/dcim/moduletype.md!}
{!models/dcim/module.md!}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,8 @@
# Wireless Networks
{!models/wireless/wirelesslan.md!}
{!models/wireless/wirelesslangroup.md!}
---
{!models/wireless/wirelesslink.md!}

View File

@@ -0,0 +1,36 @@
{!models/extras/customfield.md!}
## Custom Fields in Templates
Several features within NetBox, such as export templates and webhooks, utilize Jinja2 templating. For convenience, objects which support custom field assignment expose custom field data through the `cf` property. This is a bit cleaner than accessing custom field data through the actual field (`custom_field_data`).
For example, a custom field named `foo123` on the Site model is accessible on an instance as `{{ site.cf.foo123 }}`.
## 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

@@ -45,6 +45,20 @@ Defining script variables is optional: You may create a script with only a `run(
Any output generated by the script during its execution will be displayed under the "output" tab in the UI.
By default, scripts within a module are ordered alphabetically in the scripts list page. To return scripts in a specific order, you can define the `script_order` variable at the end of your module. The `script_order` variable is a tuple which contains each Script class in the desired order. Any scripts that are omitted from this list will be listed last.
```python
from extras.scripts import Script
class MyCustomScript(Script):
...
class AnotherCustomScript(Script):
...
script_order = (MyCustomScript, AnotherCustomScript)
```
## Module Attributes
### `name`
@@ -63,6 +77,10 @@ This is the human-friendly names of your script. If omitted, the class name will
A human-friendly description of what your script does.
### `field_order`
By default, script variables will be ordered in the form as they are defined in the script. `field_order` may be defined as an iterable of field names to determine the order in which variables are rendered. Any fields not included in this iterable be listed last.
### `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.
@@ -71,6 +89,12 @@ The checkbox to commit database changes when executing a script is checked by de
commit_default = False
```
### `job_timeout`
Set the maximum allowed runtime for the script. If not set, `RQ_DEFAULT_TIMEOUT` will be used.
!!! info "This feature was introduced in v3.2.1"
## 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:
@@ -170,19 +194,9 @@ Similar to `ChoiceVar`, but allows for the selection of multiple choices.
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
@@ -231,6 +245,46 @@ An IPv4 or IPv6 network with a mask. Returns a `netaddr.IPNetwork` object. Two a
* `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}'
```
### Via the CLI
Scripts can be run on the CLI by invoking the management command:
```
python3 manage.py runscript [--commit] [--loglevel {debug,info,warning,error,critical}] [--data "<data>"] <module>.<script>
```
The required ``<module>.<script>`` argument is the script to run where ``<module>`` is the name of the python file in the ``scripts`` directory without the ``.py`` extension and ``<script>`` is the name of the script class in the ``<module>`` to run.
The optional ``--data "<data>"`` argument is the data to send to the script
The optional ``--loglevel`` argument is the desired logging level to output to the console.
The optional ``--commit`` argument will commit any changes in the script to the database.
## Example
Below is an example script that creates new objects for a planned site. The user is prompted for three variables:
@@ -269,7 +323,6 @@ class NewBranchScript(Script):
switch_model = ObjectVar(
description="Access switch model",
model=DeviceType,
display_field='model',
query_params={
'manufacturer_id': '$manufacturer'
}

View File

@@ -0,0 +1,118 @@
# Custom Validation
NetBox validates every object prior to it being written to the database to ensure data integrity. This validation includes things like checking for proper formatting and that references to related objects are valid. However, you may wish to supplement this validation with some rules of your own. For example, perhaps you require that every site's name conforms to a specific pattern. This can be done using custom validation rules.
## Custom Validation Rules
Custom validation rules are expressed as a mapping of model attributes to a set of rules to which that attribute must conform. For example:
```json
{
"name": {
"min_length": 5,
"max_length": 30
}
}
```
This defines a custom validator which checks that the length of the `name` attribute for an object is at least five characters long, and no longer than 30 characters. This validation is executed _after_ NetBox has performed its own internal validation.
The `CustomValidator` class supports several validation types:
* `min`: Minimum value
* `max`: Maximum value
* `min_length`: Minimum string length
* `max_length`: Maximum string length
* `regex`: Application of a [regular expression](https://en.wikipedia.org/wiki/Regular_expression)
* `required`: A value must be specified
* `prohibited`: A value must _not_ be specified
The `min` and `max` types should be defined for numeric values, whereas `min_length`, `max_length`, and `regex` are suitable for character strings (text values). The `required` and `prohibited` validators may be used for any field, and should be passed a value of `True`.
!!! warning
Bear in mind that these validators merely supplement NetBox's own validation: They will not override it. For example, if a certain model field is required by NetBox, setting a validator for it with `{'prohibited': True}` will not work.
### Custom Validation Logic
There may be instances where the provided validation types are insufficient. NetBox provides a `CustomValidator` class which can be extended to enforce arbitrary validation logic by overriding its `validate()` method, and calling `fail()` when an unsatisfactory condition is detected.
```python
from extras.validators import CustomValidator
class MyValidator(CustomValidator):
def validate(self, instance):
if instance.status == 'active' and not instance.description:
self.fail("Active sites must have a description set!", field='status')
```
The `fail()` method may optionally specify a field with which to associate the supplied error message. If specified, the error message will appear to the user as associated with this field. If omitted, the error message will not be associated with any field.
## Assigning Custom Validators
Custom validators are associated with specific NetBox models under the [CUSTOM_VALIDATORS](../configuration/dynamic-settings.md#custom_validators) configuration parameter. There are three manners by which custom validation rules can be defined:
1. Plain JSON mapping (no custom logic)
2. Dotted path to a custom validator class
3. Direct reference to a custom validator class
### Plain Data
For cases where custom logic is not needed, it is sufficient to pass validation rules as plain JSON-compatible objects. This approach typically affords the most portability for your configuration. For instance:
```python
CUSTOM_VALIDATORS = {
"dcim.site": [
{
"name": {
"min_length": 5,
"max_length": 30,
}
}
],
"dcim.device": [
{
"platform": {
"required": True,
}
}
]
}
```
### Dotted Path
In instances where a custom validator class is needed, it can be referenced by its Python path (relative to NetBox's working directory):
```python
CUSTOM_VALIDATORS = {
'dcim.site': (
'my_validators.Validator1',
'my_validators.Validator2',
),
'dcim.device': (
'my_validators.Validator3',
)
}
```
### Direct Class Reference
This approach requires each class being instantiated to be imported directly within the Python configuration file.
```python
from my_validators import Validator1, Validator2, Validator3
CUSTOM_VALIDATORS = {
'dcim.site': (
Validator1(),
Validator2(),
),
'dcim.device': (
Validator3(),
)
}
```
!!! note
Even if defining only a single validator, it must be passed as an iterable.

View File

@@ -0,0 +1,44 @@
{!models/extras/exporttemplate.md!}
## REST API Integration
When it is necessary to provide authentication credentials (such as when [`LOGIN_REQUIRED`](../configuration/optional-settings.md#login_required) has been enabled), it is recommended to render export templates via the REST API. This allows the client to specify an authentication token. To render an export template via the REST API, make a `GET` request to the model's list endpoint and append the `export` parameter specifying the export template name. For example:
```
GET /api/dcim/sites/?export=MyTemplateName
```
Note that the body of the response will contain only the rendered export template content, as opposed to a JSON object or list.
## 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

@@ -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.md#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.
@@ -66,7 +66,7 @@ class DeviceConnectionsReport(Report):
for power_port in PowerPort.objects.filter(device=device):
if power_port.connected_endpoint is not None:
connected_ports += 1
if not power_port.connection_status:
if not power_port.path.is_active:
self.log_warning(
device,
"Power connection for {} marked as planned".format(power_port.name)
@@ -80,11 +80,25 @@ class DeviceConnectionsReport(Report):
self.log_success(device)
```
As you can see, reports are completely customizable. Validation logic can be as simple or as complex as needed.
As you can see, reports are completely customizable. Validation logic can be as simple or as complex as needed. Also note that the `description` attribute support markdown syntax. It will be rendered in the report list page.
!!! warning
Reports should never alter data: If you find yourself using the `create()`, `save()`, `update()`, or `delete()` methods on objects within reports, stop and re-evaluate what you're trying to accomplish. Note that there are no safeguards against the accidental alteration or destruction of data.
## Report Attributes
### `description`
A human-friendly description of what your report does.
### `job_timeout`
Set the maximum allowed runtime for the report. If not set, `RQ_DEFAULT_TIMEOUT` will be used.
!!! info "This feature was introduced in v3.2.1"
## Logging
The following methods are available to log results within a report:
* log(message)
@@ -93,19 +107,36 @@ The following methods are available to log results within a report:
* log_warning(object, message)
* log_failure(object, message)
The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status.
The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status. Log messages also support using markdown syntax and will be rendered on the report result page.
To perform additional tasks, such as sending an email or calling a webhook, after a report has been run, extend the `post_run()` method. The status of the report is available as `self.failed` and the results object is `self.result`.
To perform additional tasks, such as sending an email or calling a webhook, before or after a report is run, extend the `pre_run()` and/or `post_run()` methods, respectively. The status of a completed report is available as `self.failed` and the results object is `self.result`.
By default, reports within a module are ordered alphabetically in the reports list page. To return reports in a specific order, you can define the `report_order` variable at the end of your module. The `report_order` variable is a tuple which contains each Report class in the desired order. Any reports that are omitted from this list will be listed last.
```
from extras.reports import Report
class DeviceConnectionsReport(Report)
pass
class DeviceIPsReport(Report)
pass
report_order = (DeviceIPsReport, DeviceConnectionsReport)
```
Once you have created a report, it will appear in the reports list. Initially, reports will have no results associated with them. To generate results, run the report.
## 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

View File

@@ -0,0 +1,92 @@
# Adding Models
## 1. Define the model class
Models within each app are stored in either `models.py` or within a submodule under the `models/` directory. When creating a model, be sure to subclass the [appropriate base model](models.md) from `netbox.models`. This will typically be NetBoxModel or OrganizationalModel. Remember to add the model class to the `__all__` listing for the module.
Each model should define, at a minimum:
* A `Meta` class specifying a deterministic ordering (if ordered by fields other than the primary ID)
* A `__str__()` method returning a user-friendly string representation of the instance
* A `get_absolute_url()` method returning an instance's direct URL (using `reverse()`)
## 2. Define field choices
If the model has one or more fields with static choices, define those choices in `choices.py` by subclassing `utilities.choices.ChoiceSet`.
## 3. Generate database migrations
Once your model definition is complete, generate database migrations by running `manage.py makemigrations -n $NAME --no-header`. Always specify a short unique name when generating migrations.
!!! info "Configuration Required"
Set `DEVELOPER = True` in your NetBox configuration to enable the creation of new migrations.
## 4. Add all standard views
Most models will need view classes created in `views.py` to serve the following operations:
* List view
* Detail view
* Edit view
* Delete view
* Bulk import
* Bulk edit
* Bulk delete
## 5. Add URL paths
Add the relevant URL path for each view created in the previous step to `urls.py`.
## 6. Add relevant forms
Depending on the type of model being added, you may need to define several types of form classes. These include:
* A base model form (for creating/editing individual objects)
* A bulk edit form
* A bulk import form (for CSV-based import)
* A filterset form (for filtering the object list view)
## 7. Create the FilterSet
Each model should have a corresponding FilterSet class defined. This is used to filter UI and API queries. Subclass the appropriate class from `netbox.filtersets` that matches the model's parent class.
## 8. Create the table class
Create a table class for the model in `tables.py` by subclassing `utilities.tables.BaseTable`. Under the table's `Meta` class, be sure to list both the fields and default columns.
## 9. Create the object template
Create the HTML template for the object view. (The other views each typically employ a generic template.) This template should extend `generic/object.html`.
## 10. Add the model to the navigation menu
Add the relevant navigation menu items in `netbox/netbox/navigation_menu.py`.
## 11. REST API components
Create the following for each model:
* Detailed (full) model serializer in `api/serializers.py`
* Nested serializer in `api/nested_serializers.py`
* API view in `api/views.py`
* Endpoint route in `api/urls.py`
## 12. GraphQL API components
Create a Graphene object type for the model in `graphql/types.py` by subclassing the appropriate class from `netbox.graphql.types`.
Also extend the schema class defined in `graphql/schema.py` with the individual object and object list fields per the established convention.
## 13. Add tests
Add tests for the following:
* UI views
* API views
* Filter sets
## 14. Documentation
Create a new documentation page for the model in `docs/models/<app_label>/<model_name>.md`. Include this file under the "features" documentation where appropriate.
Also add your model to the index in `docs/development/models.md`.

View File

@@ -1,8 +1,10 @@
# Application Registry
The registry is an in-memory data structure which houses various miscellaneous application-wide parameters, such as installed plugins. It is not exposed to the user and is not intended to be modified by any code outside of NetBox core.
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, me modified; e.g. by appending a value to a list. Store values generally do not change once the application has been initialized.
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

View File

@@ -1,71 +1,66 @@
# Extending Models
Below is a list of items to consider when adding a new field to a model:
Below is a list of tasks to consider when adding a new field to a core model.
## 1. Generate and run database migration
## 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.
[Django migrations](https://docs.djangoproject.com/en/stable/topics/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.
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 a single migration. You can merge a newly generated 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.
!!! warning "Do not alter existing migrations"
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 agter your custom validation as appropriate:
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(DeviceCSVForm, self).clean()
super().clean()
# Custom validation goes here
if self.bar is None:
raise ValidationError()
```
## 3. Add CSV helpers
## 3. Update relevant querysets
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.
If you're adding a relational field (e.g. `ForeignKey`) and intend to include the data when retrieving 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.
## 4. Update relevant querysets
## 4. Update API serializer
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 excessive database lookups.
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 representation of the model.
## 5. Update API serializer
## 5. Add fields to forms
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:
Extend any forms to include the new field(s) as appropriate. These are found under the `forms/` directory within each app. Common forms include:
* **Credit/edit** - Manipulating a single object
* **Bulk edit** - Performing a change on mnay objects at once
* **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
## 6. 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.
If the new field should be filterable, add it to the `FilterSet` for the model. If the field should be searchable, remember to query it in the FilterSet's `search()` method.
## 8. Add column to object table
## 7. 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 explicitly declaring a new column.
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. Also add the field name to `default_columns` if the column should be present in the table by default.
## 9. Update the UI templates
## 8. 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
## 9. 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:
@@ -76,3 +71,7 @@ Create or extend the relevant test cases to verify that the new field and any ac
* View tests
Be diligent to ensure all of the relevant test suites are adapted or extended as necessary to test any new functionality.
## 10. 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,178 @@
# 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.md)
* A Redis server, which can also be [installed locally](../installation/2-redis.md)
* 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.) Click the "fork" button at top right (be sure that you've logged into GitHub first).
![GitHub fork button](../media/development/github_fork_button.png)
Copy the URL provided in the dialog box.
![GitHub fork dialog](../media/development/github_fork_dialog.png)
You can then clone your GitHub fork locally for development:
```no-highlight
$ git clone https://github.com/$username/netbox.git
Cloning into 'netbox'...
remote: Enumerating objects: 85949, done.
remote: Counting objects: 100% (4672/4672), done.
remote: Compressing objects: 100% (1224/1224), done.
remote: Total 85949 (delta 3538), reused 4332 (delta 3438), pack-reused 81277
Receiving objects: 100% (85949/85949), 55.16 MiB | 44.90 MiB/s, done.
Resolving deltas: 100% (68008/68008), 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 persistent git branches to track work:
* `master` - Serves as a snapshot of the current stable release
* `develop` - All development on the upcoming stable release occurs here
* `feature` - Tracks work on an upcoming major release
Typically, you'll base pull requests off of the `develop` branch, or off of `feature` if you're working on a new major release. **Never** merge pull requests into the `master` branch: This branch only ever merges pull requests from the `develop` branch, to effect a new release.
For example, assume that the current NetBox release is v3.1.1. Work applied to the `develop` branch will appear in v3.1.2, and work done under the `feature` branch will be included in the next minor release (v3.2.0).
### 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) (or "venv" for short) is like a container for a set of Python packages. These 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 "Where to Create Your Virtual Environments"
Keeping virtual environments in `~/.venv/` is a common convention but entirely optional: Virtual environments can be created almost wherever you please. Also consider using [`virtualenvwrapper`](https://virtualenvwrapper.readthedocs.io/en/stable/) to simplify the management of multiple venvs.
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. It is started with the `runserver` management command:
```no-highlight
$ ./manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
February 18, 2022 - 20:29:57
Django version 4.0.2, 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.
!!! info "IDE Integration"
Some IDEs, such as PyCharm, will integrate with Django's development server and allow you to run it directly within the IDE. This is strongly encouraged as it makes for a much more convenient development environment.
## Populating Demo Data
Once you have your development environment up and running, it might be helpful to populate some "dummy" data to make interacting with the UI and APIs more convenient. Check out the [netbox-demo-data](https://github.com/netbox-community/netbox-demo-data) repo on GitHub, which houses a collection of sample data that can be easily imported to any new NetBox deployment. (This sample data is used to populate the public demo instance at <https://demo.netbox.dev>.)
The demo data is provided in JSON format and loaded into an empty database using Django's `loaddata` management command. Consult the demo data repo's `README` file for complete instructions on populating the data.
## Running Tests
Prior to committing any substantial changes to the code base, be sure to run NetBox's test suite to catch any potential errors. Tests are run using the `test` management command, which employs Python's [`unittest`](https://docs.python.org/3/library/unittest.html#module-unittest) library. Remember to ensure the Python virtual environment is active before running this command. Also keep in mind that these commands are executed in the `netbox/` directory, not the root directory of the repository.
To avoid potential issues with your local configuration file, set the `NETBOX_CONFIGURATION` to point to the packaged test configuration at `netbox/configuration_testing.py`. This will handle things like ensuring that the dummy plugin is enabled for comprehensive testing.
```no-highlight
$ export NETBOX_CONFIGURATION=netbox.configuration_testing
$ cd netbox/
$ python manage.py test
```
In cases where you haven't made any changes to the database schema (which is typical), 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 manage.py test --keepdb
```
You can also reduce testing time by enabling parallel test execution with the `--parallel` flag. (By default, this will run as many parallel tests as you have processors. To avoid sluggishness, it's a good idea to specify a lower number of parallel tests.) This flag can be combined with `--keepdb`, although if you encounter any strange errors, try running the test suite again with parallelization disabled.
```no-highlight
$ python manage.py test --parallel <n>
```
Finally, it's possible to limit the run to a specific set of tests, specified by their Python path. For example, to run only IPAM and DCIM view tests:
```no-highlight
$ python manage.py test dcim.tests.test_views ipam.tests.test_views
```
This is handy for instances where just a few tests are failing and you want to re-run them individually.
## 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 prefix your commit message with the word "Fixes" or "Closes" and the issue number (with a hash mark). This tells GitHub to automatically close the referenced issue once the commit has been merged.
```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 to Open an Issue First"
Remember, pull requests are permitted 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. (The one exception to this is trivial changes to the documentation or other non-critical resources.)

View File

@@ -1,30 +1,33 @@
# 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.
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. Each pull request must be preceded by an **approved** issue. Please see the `CONTRIBUTING` guide for more direction on contributing to NetBox.
## Communication
Communication among developers should always occur via public channels:
There are several official forums for communication among the developers and community members:
* [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.
* [The mailing list](https://groups.google.com/forum/#!forum/netbox-discuss) - The preferred forum for general discussion and support issues. Ideal for shaping a feature request prior to submitting an issue.
* [#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.
* [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 a GitHub 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.
* [#netbox on NetDev Community Slack](https://netdev.chat/) - 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).
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.
## 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.
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. Only pull requests representing new releases should be merged into `master`.
NetBox components are arranged into functional subsections called _apps_ (a carryover from Django verancular). Each app holds the models, views, and templates relevant to a particular function:
NetBox components are arranged into Django apps. Each app holds the models, views, and other resources 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
* `wireless`: Wireless links and LANs
All core functionality is stored within the `netbox/` subdirectory. HTML templates are stored in a common `templates/` directory, with model- and view-specific templates arranged by app. Documentation is kept in the `docs/` root directory.

105
docs/development/models.md Normal file
View File

@@ -0,0 +1,105 @@
# NetBox Models
## Model Types
A NetBox model represents a discrete object type such as a device or IP address. Each model is defined as a Python class and has its own SQL table. All NetBox data models can be categorized by type.
The Django [content types](https://docs.djangoproject.com/en/stable/ref/contrib/contenttypes/) framework can be used to reference models within the database. A ContentType instance references a model by its `app_label` and `name`: For example, the Site model is referred to as `dcim.site`. The content type combined with an object's primary key form a globally unique identifier for the object (e.g. `dcim.site:123`).
### Features Matrix
* [Change logging](../additional-features/change-logging.md) - Changes to these objects are automatically recorded in the change log
* [Webhooks](../additional-features/webhooks.md) - NetBox is capable of generating outgoing webhooks for these objects
* [Custom fields](../customization/custom-fields.md) - These models support the addition of user-defined fields
* [Export templates](../customization/export-templates.md) - Users can create custom export templates for these models
* [Tagging](../models/extras/tag.md) - The models can be tagged with user-defined tags
* [Journaling](../additional-features/journaling.md) - These models support persistent historical commentary
* Nesting - These models can be nested recursively to create a hierarchy
| Type | Change Logging | Webhooks | Custom Fields | Export Templates | Tags | Journaling | Nesting |
| ------------------ | ---------------- | ---------------- |------------------| ---------------- | ---------------- | ---------------- | ---------------- |
| Primary | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | |
| Organizational | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | |
| Nested Group | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | :material-check: |
| Component | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | |
| Component Template | :material-check: | :material-check: | | | | | |
## Models Index
### Primary Models
* [circuits.Circuit](../models/circuits/circuit.md)
* [circuits.Provider](../models/circuits/provider.md)
* [circuits.ProviderNetwork](../models/circuits/providernetwork.md)
* [dcim.Cable](../models/dcim/cable.md)
* [dcim.Device](../models/dcim/device.md)
* [dcim.DeviceType](../models/dcim/devicetype.md)
* [dcim.PowerFeed](../models/dcim/powerfeed.md)
* [dcim.PowerPanel](../models/dcim/powerpanel.md)
* [dcim.Rack](../models/dcim/rack.md)
* [dcim.RackReservation](../models/dcim/rackreservation.md)
* [dcim.Site](../models/dcim/site.md)
* [dcim.VirtualChassis](../models/dcim/virtualchassis.md)
* [ipam.Aggregate](../models/ipam/aggregate.md)
* [ipam.ASN](../models/ipam/asn.md)
* [ipam.FHRPGroup](../models/ipam/fhrpgroup.md)
* [ipam.IPAddress](../models/ipam/ipaddress.md)
* [ipam.IPRange](../models/ipam/iprange.md)
* [ipam.Prefix](../models/ipam/prefix.md)
* [ipam.RouteTarget](../models/ipam/routetarget.md)
* [ipam.Service](../models/ipam/service.md)
* [ipam.VLAN](../models/ipam/vlan.md)
* [ipam.VRF](../models/ipam/vrf.md)
* [tenancy.Contact](../models/tenancy/contact.md)
* [tenancy.Tenant](../models/tenancy/tenant.md)
* [virtualization.Cluster](../models/virtualization/cluster.md)
* [virtualization.VirtualMachine](../models/virtualization/virtualmachine.md)
* [wireless.WirelessLAN](../models/wireless/wirelesslan.md)
* [wireless.WirelessLink](../models/wireless/wirelesslink.md)
### Organizational Models
* [circuits.CircuitType](../models/circuits/circuittype.md)
* [dcim.DeviceRole](../models/dcim/devicerole.md)
* [dcim.Manufacturer](../models/dcim/manufacturer.md)
* [dcim.Platform](../models/dcim/platform.md)
* [dcim.RackRole](../models/dcim/rackrole.md)
* [ipam.RIR](../models/ipam/rir.md)
* [ipam.Role](../models/ipam/role.md)
* [ipam.VLANGroup](../models/ipam/vlangroup.md)
* [tenancy.ContactRole](../models/tenancy/contactrole.md)
* [virtualization.ClusterGroup](../models/virtualization/clustergroup.md)
* [virtualization.ClusterType](../models/virtualization/clustertype.md)
### Nested Group Models
* [dcim.Location](../models/dcim/location.md) (formerly RackGroup)
* [dcim.Region](../models/dcim/region.md)
* [dcim.SiteGroup](../models/dcim/sitegroup.md)
* [tenancy.ContactGroup](../models/tenancy/contactgroup.md)
* [tenancy.TenantGroup](../models/tenancy/tenantgroup.md)
* [wireless.WirelessLANGroup](../models/wireless/wirelesslangroup.md)
### Component Models
* [dcim.ConsolePort](../models/dcim/consoleport.md)
* [dcim.ConsoleServerPort](../models/dcim/consoleserverport.md)
* [dcim.DeviceBay](../models/dcim/devicebay.md)
* [dcim.FrontPort](../models/dcim/frontport.md)
* [dcim.Interface](../models/dcim/interface.md)
* [dcim.InventoryItem](../models/dcim/inventoryitem.md)
* [dcim.PowerOutlet](../models/dcim/poweroutlet.md)
* [dcim.PowerPort](../models/dcim/powerport.md)
* [dcim.RearPort](../models/dcim/rearport.md)
* [virtualization.VMInterface](../models/virtualization/vminterface.md)
### Component Template Models
* [dcim.ConsolePortTemplate](../models/dcim/consoleporttemplate.md)
* [dcim.ConsoleServerPortTemplate](../models/dcim/consoleserverporttemplate.md)
* [dcim.DeviceBayTemplate](../models/dcim/devicebaytemplate.md)
* [dcim.FrontPortTemplate](../models/dcim/frontporttemplate.md)
* [dcim.InterfaceTemplate](../models/dcim/interfacetemplate.md)
* [dcim.PowerOutletTemplate](../models/dcim/poweroutlettemplate.md)
* [dcim.PowerPortTemplate](../models/dcim/powerporttemplate.md)
* [dcim.RearPortTemplate](../models/dcim/rearporttemplate.md)

View File

@@ -2,42 +2,13 @@
## Minor Version Bumps
### Update Requirements
### Address Pinned Dependencies
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:
Check `base_requirements.txt` for any dependencies pinned to a specific version, and upgrade them to their most stable release (where possible).
```
# https://github.com/encode/django-rest-framework/issues/6053
djangorestframework==3.8.1
```
### Link to the Release Notes Page
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 via pip:
```
pip install -U -r base_requirements.txt
```
3. Run all tests and check that the UI and API function as expected.
4. 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
* Font Awesome 4
* Select2
* jQuery
* jQuery UI
### Create a new Release Notes Page
Create a file at `/docs/release-notes/X.Y.md` to establish the release notes for the new release. Add the file to the table of contents within `mkdocs.yml`, and point `index.md` to the new file.
Add the release notes (`/docs/release-notes/X.Y.md`) to the table of contents within `mkdocs.yml`, and add a summary of the major changes to `index.md`.
### Manually Perform a New Install
@@ -52,23 +23,52 @@ Follow these instructions to perform a new installation of NetBox. This process
### Close the Release Milestone
Close the release milestone on GitHub. Ensure that there are no remaining open issues associated with it.
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 `feature` branch into the `develop` branch in preparation for its release.
---
## All Releases
### 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 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.
In cases where upgrading a dependency to its most recent release is breaking, it should be pinned to its current minor version in `base_requirements.txt` (with an explanatory comment) and revisited for the next major NetBox release.
### 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.
* Update the `VERSION` constant in `settings.py` to the new release version.
* Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`.
* Replace the "FUTURE" placeholder in the release notes with the current date.
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`. Include a brief change log listing the features, improvements, and/or bugs addressed in the release.
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.
@@ -76,20 +76,16 @@ Once CI has completed on the PR, merge it.
Draft a [new release](https://github.com/netbox-community/netbox/releases/new) with the following parameters.
* **Tag:** Current version (e.g. `v2.3.4`)
* **Tag:** Current version (e.g. `v2.9.9`)
* **Target:** `master`
* **Title:** Version and date (e.g. `v2.3.4 - 2018-08-02`)
* **Title:** Version and date (e.g. `v2.9.9 - 2020-11-09`)
Copy the description from the pull request into the release notes.
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.3.4, set:
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.3.5-dev'
VERSION = 'v2.9.10-dev'
```
### Announce the Release
Announce the release on the [mailing list](https://groups.google.com/forum/#!forum/netbox-discuss). Include a link to the release and the (HTML-formatted) release notes.

View File

@@ -0,0 +1,11 @@
# Signals
In addition to [Django's built-in signals](https://docs.djangoproject.com/en/stable/topics/signals/), NetBox defines some of its own, listed below.
## post_clean
This signal is sent by models which inherit from `CustomValidationMixin` at the end of their `clean()` method.
### Receivers
* `extras.signals.run_custom_validators()`

View File

@@ -1,12 +1,12 @@
# 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`.
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` for details.
## 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 (`constants.py`)
* The library being imported explicitly defines `__all__` (e.g. `<app>.api.nested_serializers`)
* 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).
@@ -30,7 +30,7 @@ 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.
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 supply chain attacks.
If there's a strong case for introducing a new dependency, it must meet the following criteria:
@@ -43,9 +43,9 @@ When adding a new dependency, a short description of the package and the URL of
## 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.
* 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 submit a separate bug report 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 gives us 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.
* 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.

View File

@@ -4,8 +4,11 @@ The `users.UserConfig` model holds individual preferences for each user in the f
## 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 |
| Name | Description |
|--------------------------|---------------------------------------------------------------|
| data_format | Preferred format when rendering raw data (JSON or YAML) |
| pagination.per_page | The number of items to display per page of a paginated table |
| pagination.placement | Where to display the paginator controls relative to the table |
| tables.${table}.columns | The ordered list of columns to display when viewing the table |
| tables.${table}.ordering | A list of column names by which the table should be ordered |
| ui.colormode | Light or dark mode in the user interface |

View File

@@ -1,57 +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
### ObjectView
Retrieve and display a single object.
### 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.

View File

@@ -0,0 +1,99 @@
# Web UI Development
## Front End Technologies
The NetBox UI is built on languages and frameworks:
### Styling & HTML Elements
#### [Bootstrap](https://getbootstrap.com/) 5
The majority of the NetBox UI is made up of stock Bootstrap components, with some styling modifications and custom components added on an as-needed basis. Bootstrap uses [Sass](https://sass-lang.com/), and NetBox extends Bootstrap's core Sass files for theming and customization.
### Client-side Scripting
#### [TypeScript](https://www.typescriptlang.org/)
All client-side scripting is transpiled from TypeScript to JavaScript and served by Django. In development, TypeScript is an _extremely_ effective tool for accurately describing and checking the code, which leads to significantly fewer bugs, a better development experience, and more predictable/readable code.
As part of the [bundling](#bundling) process, Bootstrap's JavaScript plugins are imported and bundled alongside NetBox's front-end code.
!!! danger "NetBox is jQuery-free"
Following the Bootstrap team's deprecation of jQuery in Bootstrap 5, NetBox also no longer uses jQuery in front-end code.
## Guidance
NetBox generally follows the following guidelines for front-end code:
- Bootstrap utility classes may be used to solve one-off issues or to implement singular components, as long as the class list does not exceed 4-5 classes. If an element needs more than 5 utility classes, a custom SCSS class should be added that contains the required style properties.
- Custom classes must be commented, explaining the general purpose of the class and where it is used.
- Reuse SCSS variables whenever possible. CSS values should (almost) never be hard-coded.
- All TypeScript functions must have, at a minimum, a basic [JSDoc](https://jsdoc.app/) description of what the function is for and where it is used. If possible, document all function arguments via [`@param` JSDoc block tags](https://jsdoc.app/tags-param.html).
- Expanding on NetBox's [dependency policy](style-guide.md#introducing-new-dependencies), new front-end dependencies should be avoided unless absolutely necessary. Every new front-end dependency adds to the CSS/JavaScript file size that must be loaded by the client and this should be minimized as much as possible. If adding a new dependency is unavoidable, use a tool like [Bundlephobia](https://bundlephobia.com/) to ensure the smallest possible library is used.
- All UI elements must be usable on all common screen sizes, including mobile devices. Be sure to test newly implemented solutions (JavaScript included) on as many screen sizes and device types as possible.
- NetBox aligns with Bootstrap's [supported Browsers and Devices](https://getbootstrap.com/docs/5.1/getting-started/browsers-devices/) list.
## UI Development
To contribute to the NetBox UI, you'll need to review the main [Getting Started guide](getting-started.md) in order to set up your base environment.
### Tools
Once you have a working NetBox development environment, you'll need to install a few more tools to work with the NetBox UI:
- [NodeJS](https://nodejs.org/en/download/) (the LTS release should suffice)
- [Yarn](https://yarnpkg.com/getting-started/install) (version 1)
After Node and Yarn are installed on your system, you'll need to install all the NetBox UI dependencies:
```console
$ cd netbox/project-static
$ yarn
```
!!! warning "Check Your Working Directory"
You need to be in the `netbox/project-static` directory to run the below `yarn` commands.
### Bundling
In order for the TypeScript and Sass (SCSS) source files to be usable by a browser, they must first be transpiled (TypeScript → JavaScript, Sass → CSS), bundled, and minified. After making changes to TypeScript or Sass source files, run `yarn bundle`.
`yarn bundle` is a wrapper around the following subcommands, any of which can be run individually:
| Command | Action |
| :-------------------- | :---------------------------------------------- |
| `yarn bundle` | Bundle TypeScript and Sass (SCSS) source files. |
| `yarn bundle:styles` | Bundle Sass (SCSS) source files only. |
| `yarn bundle:scripts` | Bundle TypeScript source files only. |
All output files will be written to `netbox/project-static/dist`, where Django will pick them up when `manage.py collectstatic` is run.
!!! info "Remember to re-run `manage.py collectstatic`"
If you're running the development web server — `manage.py runserver` — you'll need to run `manage.py collectstatic` to see your changes.
### Linting, Formatting & Type Checking
Before committing any changes to TypeScript files, and periodically throughout the development process, you should run `yarn validate` to catch formatting, code quality, or type errors.
!!! tip "IDE Integrations"
If you're using an IDE, it is strongly recommended to install [ESLint](https://eslint.org/docs/user-guide/integrations), [TypeScript](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Editor-Support), and [Prettier](https://prettier.io/docs/en/editors.html) integrations, if available. Most of them will automatically check and/or correct issues in the code as you develop, which can significantly increase your productivity as a contributor.
`yarn validate` is a wrapper around the following subcommands, any of which can be run individually:
| Command | Action |
| :--------------------------------- | :--------------------------------------------------------------- |
| `yarn validate` | Run all validation. |
| `yarn validate:lint` | Validate TypeScript code via [ESLint](https://eslint.org/) only. |
| `yarn validate:types` | Validate TypeScript code compilation only. |
| `yarn validate:formatting` | Validate code formatting of JavaScript & Sass/SCSS files. |
| `yarn validate:formatting:styles` | Validate code formatting Sass/SCSS only. |
| `yarn validate:formatting:scripts` | Validate code formatting TypeScript only. |
You can also run the following commands to automatically fix formatting issues:
| Command | Action |
| :-------------------- | :---------------------------------------------- |
| `yarn format` | Format TypeScript and Sass (SCSS) source files. |
| `yarn format:styles` | Format Sass (SCSS) source files only. |
| `yarn format:scripts` | Format TypeScript source files only. |

View File

@@ -11,9 +11,19 @@ table {
width: 100%;
}
th {
background-color: #f0f0f0;
padding: 6px;
font-weight: bold;
}
td {
padding: 6px;
}
/* Remove table header coloring. */
.md-typeset table:not([class]) th {
color: unset !important;
background-color: unset !important;
}
thead tr {
/* Colorize table headers. */
background-color: var(--md-code-bg-color);
color: var(--md-code-fg-color);
}

View File

@@ -0,0 +1,70 @@
# GraphQL API Overview
NetBox provides a read-only [GraphQL](https://graphql.org/) API to complement its REST API. This API is powered by the [Graphene](https://graphene-python.org/) library and [Graphene-Django](https://docs.graphene-python.org/projects/django/en/latest/).
## Queries
GraphQL enables the client to specify an arbitrary nested list of fields to include in the response. All queries are made to the root `/graphql` API endpoint. For example, to return the circuit ID and provider name of each circuit with an active status, you can issue a request such as the following:
```
curl -H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
http://netbox/graphql/ \
--data '{"query": "query {circuit_list(status:\"active\") {cid provider {name}}}"}'
```
The response will include the requested data formatted as JSON:
```json
{
"data": {
"circuits": [
{
"cid": "1002840283",
"provider": {
"name": "CenturyLink"
}
},
{
"cid": "1002840457",
"provider": {
"name": "CenturyLink"
}
}
]
}
}
```
!!! note
It's recommended to pass the return data through a JSON parser such as `jq` for better readability.
NetBox provides both a singular and plural query field for each object type:
* `$OBJECT`: Returns a single object. Must specify the object's unique ID as `(id: 123)`.
* `$OBJECT_list`: Returns a list of objects, optionally filtered by given parameters.
For example, query `device(id:123)` to fetch a specific device (identified by its unique ID), and query `device_list` (with an optional set of filters) to fetch all devices.
For more detail on constructing GraphQL queries, see the [Graphene documentation](https://docs.graphene-python.org/en/latest/).
## Filtering
The GraphQL API employs the same filtering logic as the UI and REST API. Filters can be specified as key-value pairs within parentheses immediately following the query name. For example, the following will return only sites within the North Carolina region with a status of active:
```
{"query": "query {site_list(region:\"north-carolina\", status:\"active\") {name}}"}
```
## Authentication
NetBox's GraphQL API uses the same API authentication tokens as its REST API. Authentication tokens are included with requests by attaching an `Authorization` HTTP header in the following form:
```
Authorization: Token $TOKEN
```
## Disabling the GraphQL API
If not needed, the GraphQL API can be disabled by setting the [`GRAPHQL_ENABLED`](../configuration/dynamic-settings.md#graphql_enabled) configuration parameter to False and restarting NetBox.

View File

@@ -1,8 +1,8 @@
![NetBox](netbox_logo.svg "NetBox logo")
![NetBox](netbox_logo.svg "NetBox logo"){style="height: 100px; margin-bottom: 3em"}
# 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:
NetBox is an infrastructure resource modeling (IRM) application designed to empower network automation. 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 made available as open source under the Apache 2 license. It encompasses the following aspects of network management:
* **IP address management (IPAM)** - IP networks and addresses, VRFs, and VLANs
* **Equipment racks** - Organized by group and site
@@ -10,7 +10,6 @@ NetBox is an open source web application designed to help manage and document co
* **Connections** - Network, console, and power connections among devices
* **Virtualization** - Virtual machines and clusters
* **Data circuits** - Long-haul communications circuits and providers
* **Secrets** - Encrypted storage of sensitive credentials
## What NetBox Is Not
@@ -49,14 +48,16 @@ NetBox is built on the [Django](https://djangoproject.com/) Python framework and
| HTTP service | nginx or Apache |
| WSGI service | gunicorn or uWSGI |
| Application | Django/Python |
| Database | PostgreSQL 9.6+ |
| Database | PostgreSQL 10+ |
| Task queuing | Redis/django-rq |
| Live device access | NAPALM |
| Live device access | NAPALM (optional) |
## Supported Python Versions
NetBox supports Python 3.6 and 3.7 environments currently. (Support for Python 3.5 was removed in NetBox v2.8.)
NetBox supports Python 3.8, 3.9, and 3.10 environments.
## Getting Started
See the [installation guide](installation/index.md) for help getting NetBox up and running quickly.
Minor NetBox releases (e.g. v3.1) are published three times a year; in April, August, and December. These typically introduce major new features and may contain breaking API changes. Patch releases are published roughly every one to two weeks to resolve bugs and fulfill minor feature requests. These are backward-compatible with previous releases unless otherwise noted. The NetBox maintainers strongly recommend running the latest stable release whenever possible.
Please see the [official installation guide](installation/index.md) for detailed instructions on obtaining and installing NetBox.

View File

@@ -2,79 +2,81 @@
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.
The installation instructions provided here have been tested to work on Ubuntu 18.04 and CentOS 7.5. 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 "PostgreSQL 10 or later required"
NetBox requires PostgreSQL 10 or later. Please note that MySQL and other relational databases are **not** supported.
## Installation
#### Ubuntu
=== "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
sudo apt update
sudo apt install -y postgresql
```
=== "CentOS"
```no-highlight
sudo yum install -y postgresql-server
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
```
Once PostgreSQL has been installed, start the service and enable it to run at boot:
```no-highlight
# apt-get update
# apt-get install -y postgresql libpq-dev
sudo systemctl start postgresql
sudo systemctl enable postgresql
```
#### CentOS
CentOS 7 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, however you may opt to install a more recent version.
Before continuing, verify that you have installed PostgreSQL 10 or later:
```no-highlight
# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# yum install -y 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
psql -V
```
## 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.
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. Start by invoking the PostgreSQL shell as the system Postgres user.
```no-highlight
# sudo -u postgres psql
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.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
sudo -u postgres psql
```
Within the shell, enter the following commands to create the database and user (role), substituting your own value for the password:
```postgresql
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
```
!!! danger "Use a strong password"
**Do not use the password from the example.** Choose a strong, random password to ensure secure database authentication for your NetBox installation.
Once complete, enter `\q` to exit the PostgreSQL shell.
## 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.)
You can verify that authentication works by executing the `psql` command and passing the configured username and password. (Replace `localhost` with your database server if using a remote database.)
```no-highlight
# psql --username netbox --password --host localhost netbox
$ psql --username netbox --password --host localhost netbox
Password for user netbox:
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
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 `\q` to exit.
If successful, you will enter a `netbox` prompt. Type `\conninfo` to confirm your connection, or type `\q` to exit.

View File

@@ -4,22 +4,27 @@
[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
!!! warning "Redis v4.0 or later required"
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
=== "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
```
Before continuing, verify that your installed version of Redis is at least v4.0:
```no-highlight
# apt-get install -y redis-server
```
### CentOS
```no-highlight
# yum install -y epel-release
# yum install -y redis
# systemctl start redis
# systemctl enable redis
redis-server -v
```
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.
@@ -29,6 +34,7 @@ You may wish to modify the Redis configuration at `/etc/redis.conf` or `/etc/red
Use the `redis-cli` utility to ensure the Redis service is functional:
```no-highlight
$ redis-cli ping
PONG
redis-cli ping
```
If successful, you should receive a `PONG` response from the server.

View File

@@ -6,115 +6,120 @@ This section of the documentation discusses installing and configuring the NetBo
Begin by installing all system packages required by NetBox and its dependencies.
!!! note
NetBox v2.8.0 and later require Python 3.6 or 3.7. This documentation assumes Python 3.6.
!!! warning "Python 3.8 or later required"
NetBox v3.2 requires Python 3.8, 3.9, or 3.10.
### Ubuntu
=== "Ubuntu"
```no-highlight
sudo apt install -y python3 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 libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config
```
Before continuing, check that your installed Python version is at least 3.8:
```no-highlight
# apt-get 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
# yum install -y gcc python36 python36-devel python36-setuptools libxml2-devel libxslt-devel libffi-devel openssl-devel redhat-rpm-config
# easy_install-3.6 pip
```
Before continuing with either platform, update pip (Python's package management tool) to its latest release:
```no-highlight
# pip install --upgrade pip
python3 -V
```
## 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 decompressing the archive for every future update, whereas installation via git (option B) allows for seamless upgrades by re-pulling the `master` branch.
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
# wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# 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
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
```
!!! 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.
It is recommended to install NetBox in a directory named for its version number. For example, NetBox v3.0.0 would be installed into `/opt/netbox-3.0.0`, and a symlink from `/opt/netbox/` would point to this location. (You can verify this configuration with the command `ls -l /opt | grep netbox`.) 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
# mkdir -p /opt/netbox/ && cd /opt/netbox/
sudo mkdir -p /opt/netbox/
cd /opt/netbox/
```
If `git` is not already installed, install it:
#### Ubuntu
=== "Ubuntu"
```no-highlight
# apt-get install -y git
```
```no-highlight
sudo apt install -y git
```
#### CentOS
=== "CentOS"
```no-highlight
# yum install -y git
```
```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
# 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.
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
```
!!! 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.
The `git clone` command above utilizes a "shallow clone" to retrieve only the most recent commit. If you need to download the entire history, omit the `--depth 1` argument.
The `git clone` command should generate output similar to the following:
```
Cloning into '.'...
remote: Enumerating objects: 996, done.
remote: Counting objects: 100% (996/996), done.
remote: Compressing objects: 100% (935/935), done.
remote: Total 996 (delta 148), reused 386 (delta 34), pack-reused 0
Receiving objects: 100% (996/996), 4.26 MiB | 9.81 MiB/s, done.
Resolving deltas: 100% (148/148), done.
```
!!! note
Installation via git also allows you to easily try out different versions of NetBox. To check out a [specific NetBox release](https://github.com/netbox-community/netbox/releases), use the `git checkout` command with the desired release tag. For example, `git checkout v3.0.8`.
## 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
=== "Ubuntu"
```
# adduser --system --group netbox
# chown --recursive netbox /opt/netbox/netbox/media/
```
```
sudo adduser --system --group netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
```
#### CentOS
=== "CentOS"
```
# groupadd --system netbox
# adduser --system -g netbox netbox
# chown --recursive netbox /opt/netbox/netbox/media/
```
```
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.
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/
# cp configuration.example.py configuration.py
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:
Open `configuration.py` with your preferred editor to begin configuring NetBox. NetBox offers [many configuration parameters](../configuration/index.md), but only the following four are required for new installations:
* `ALLOWED_HOSTS`
* `DATABASE`
@@ -137,7 +142,7 @@ 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.
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.md#database) for more detail on individual parameters.
```python
DATABASE = {
@@ -152,9 +157,9 @@ DATABASE = {
### 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.
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.md#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 database ID.
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 = {
@@ -163,7 +168,6 @@ REDIS = {
'PORT': 6379, # Redis port
'PASSWORD': '', # Redis password (optional)
'DATABASE': 0, # Database ID
'DEFAULT_TIMEOUT': 300, # Timeout (seconds)
'SSL': False, # Use SSL (optional)
},
'caching': {
@@ -171,7 +175,6 @@ REDIS = {
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1, # Unique ID for second database
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
}
@@ -184,10 +187,10 @@ This parameter must be assigned a randomly-generated key employed as a salt for
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
python3 ../generate_secret_key.py
```
!!! warning
!!! warning "SECRET_KEY values must match"
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.
@@ -198,18 +201,18 @@ All Python packages required by NetBox are listed in `requirements.txt` and will
### 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.
Integration with the [NAPALM automation](../additional-features/napalm.md) 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
# echo napalm >> /opt/netbox/local_requirements.txt
sudo sh -c "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`.
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.md#storage_backend) in `configuration.py`.
```no-highlight
# echo django-storages >> /opt/netbox/local_requirements.txt
sudo sh -c "echo 'django-storages' >> /opt/netbox/local_requirements.txt"
```
## Run the Upgrade Script
@@ -217,12 +220,19 @@ By default, NetBox will use the local filesystem to store uploaded files. To use
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
* Installs all required Python packages
* Run database schema migrations
* Builds the documentation locally (for offline use)
* Aggregate static resource files on disk
```no-highlight
# /opt/netbox/upgrade.sh
sudo /opt/netbox/upgrade.sh
```
Note that **Python 3.8 or later is required** for NetBox v3.2 and later releases. If the default Python installation on your server is set to a lesser version, pass the path to the supported installation as an environment variable named `PYTHON`. (Note that the environment variable must be passed _after_ the `sudo` command.)
```no-highlight
sudo PYTHON=/usr/bin/python3.8 /opt/netbox/upgrade.sh
```
!!! note
@@ -233,7 +243,7 @@ Once NetBox has been configured, we're ready to proceed with the actual installa
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
source /opt/netbox/venv/bin/activate
```
Once the virtual environment has been activated, you should notice the string `(venv)` prepended to your console prompt.
@@ -241,39 +251,56 @@ Once the virtual environment has been activated, you should notice the string `(
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.
cd /opt/netbox/netbox
python3 manage.py createsuperuser
```
## Schedule the Housekeeping Task
NetBox includes a `housekeeping` management command that handles some recurring cleanup tasks, such as clearing out old sessions and expired change records. Although this command may be run manually, it is recommended to configure a scheduled job using the system's `cron` daemon or a similar utility.
A shell script which invokes this command is included at `contrib/netbox-housekeeping.sh`. It can be copied to or linked from your system's daily cron task directory, or included within the crontab directly. (If installing NetBox into a nonstandard path, be sure to update the system paths within this script first.)
```shell
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
```
See the [housekeeping documentation](../administration/housekeeping.md) for further details.
## Test the Application
At this point, we should be able to run NetBox. We can check by starting a development instance:
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
python3 manage.py runserver 0.0.0.0:8000 --insecure
```
If successful, you should see output similar to the following:
```no-highlight
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 28, 2018 - 09:33:45
Django version 2.0.9, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
August 30, 2021 - 18:02:23
Django version 3.2.6, using settings 'netbox.settings'
Starting development server at http://127.0.0.1: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. Note that this built-in web service is for development and testing purposes only. **It is not suited for production use.**
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. Try logging in using the username and password specified when creating a superuser.
!!! note
By default RHEL based distros will likely block your testing attempts with firewalld. The development server port can be opened with `firewall-cmd` (add `--permanent` if you want the rule to survive server restarts):
```no-highlight
firewall-cmd --zone=public --add-port=8000/tcp
```
!!! danger "Not for production use"
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 UI 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 as the super user 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

@@ -1,49 +1,57 @@
# 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/) for this role, however other WSGIs are available and should work similarly well.
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 changes to it do not get overwritten by a future upgrade.)
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
# cd /opt/netbox
# cp contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
```
While this default 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.
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:
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 daemon:
```no-highlight
# cp contrib/*.service /etc/systemd/system/
# systemctl daemon-reload
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
# systemctl start netbox netbox-rq
# systemctl enable netbox netbox-rq
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
systemctl status netbox.service
```
You should see output similar to the following:
```no-highlight
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-12-12 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 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12015 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12016 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-08-30 04:02:36 UTC; 14h ago
Docs: https://docs.netbox.dev/
Main PID: 1140492 (gunicorn)
Tasks: 19 (limit: 4683)
Memory: 666.2M
CGroup: /system.slice/netbox.service
├─1140492 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
├─1140513 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
├─1140514 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
...
```
!!! 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

@@ -1,9 +1,9 @@
# HTTP Server Setup
This documentation provides example configurations for both [nginx](https://www.nginx.com/resources/wiki/) and [Apache](http://httpd.apache.org/docs/2.4), though any HTTP server which supports WSGI should be compatible.
This documentation provides example configurations for both [nginx](https://www.nginx.com/resources/wiki/) and [Apache](https://httpd.apache.org/docs/current/), though any HTTP server which supports WSGI should be compatible.
!!! info
For the sake of brevity, only Ubuntu 18.04 instructions are provided here, these tasks not unique to NetBox and should carry over to other distributions with mininal changes. Please consult your distribution's documentation for assistance if needed.
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
@@ -12,7 +12,7 @@ To enable HTTPS access to NetBox, you'll need a valid SSL certificate. You can p
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
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/netbox.key \
-out /etc/ssl/certs/netbox.crt
```
@@ -26,27 +26,26 @@ The above command will prompt you for additional details of the certificate; all
Begin by installing nginx:
```no-highlight
# apt-get install -y nginx
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
# cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netbox
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
# cd /etc/nginx/sites-enabled/
# rm default
# ln -s /etc/nginx/sites-available/netbox
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
# service nginx restart
sudo systemctl restart nginx
```
### Option B: Apache
@@ -54,26 +53,26 @@ Finally, restart the `nginx` service to use the new configuration.
Begin by installing Apache:
```no-highlight
# apt-get install -y apache2
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
# cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
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
# a2enmod ssl proxy proxy_http headers
# a2ensite netbox
# service apache2 restart
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 HTTP service at the server name or IP address you provided.
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.
@@ -91,5 +90,5 @@ If you are unable to connect to the HTTP server, check that:
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).
* 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

@@ -9,13 +9,13 @@ This guide explains how to implement LDAP authentication using an external serve
On Ubuntu:
```no-highlight
# apt-get install -y libldap2-dev libsasl2-dev libssl-dev
sudo apt install -y libldap2-dev libsasl2-dev libssl-dev
```
On CentOS:
```no-highlight
# yum install -y openldap-devel
sudo yum install -y openldap-devel
```
### Install django-auth-ldap
@@ -23,15 +23,14 @@ On CentOS:
Activate the Python virtual environment and install the `django-auth-ldap` package using pip:
```no-highlight
# cd /opt/netbox/
# source venv/bin/activate
(venv) # pip3 install django-auth-ldap
source /opt/netbox/venv/bin/activate
pip3 install django-auth-ldap
```
Once installed, add the package to `local_requirements.txt` to ensure it is re-installed during future rebuilds of the virtual environment:
```no-highlight
(venv) # echo django-auth-ldap >> local_requirements.txt
sudo sh -c "echo 'django-auth-ldap' >> /opt/netbox/local_requirements.txt"
```
## Configuration
@@ -42,7 +41,7 @@ First, enable the LDAP authentication backend in `configuration.py`. (Be sure to
REMOTE_AUTH_BACKEND = 'netbox.authentication.LDAPBackend'
```
Next, 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`. Complete documentation of all `django-auth-ldap` configuration options is included in the project's [official documentation](http://django-auth-ldap.readthedocs.io/).
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](https://django-auth-ldap.readthedocs.io/).
### General Server Configuration
@@ -75,7 +74,7 @@ STARTTLS can be configured by setting `AUTH_LDAP_START_TLS = True` and using the
### User Authentication
!!! info
When using Windows Server 2012, `AUTH_LDAP_USER_DN_TEMPLATE` should be set to None.
When using Windows Server 2012+, `AUTH_LDAP_USER_DN_TEMPLATE` should be set to None.
```python
from django_auth_ldap.config import LDAPSearch
@@ -141,19 +140,30 @@ AUTH_LDAP_CACHE_TIMEOUT = 3600
## 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`.
`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 the following lines to the start of `ldap_config.py` after `import ldap`.
For troubleshooting LDAP user/group queries, add or merge the following [logging](../configuration/optional-settings.md#logging) configuration to `configuration.py`:
```python
import logging, logging.handlers
logfile = "/opt/netbox/logs/django-ldap-debug.log"
my_logger = logging.getLogger('django_auth_ldap')
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
logfile, maxBytes=1024 * 500, backupCount=5
)
my_logger.addHandler(handler)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'netbox_auth_log': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/opt/netbox/local/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

@@ -1,5 +1,7 @@
# Installation
The installation instructions provided here have been tested to work on Ubuntu 20.04 and CentOS 8.3. 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)
@@ -9,6 +11,14 @@ The following sections detail how to set up a new instance of NetBox:
5. [HTTP server](5-http-server.md)
6. [LDAP authentication](6-ldap.md) (optional)
## Requirements
| Dependency | Minimum Version |
|------------|-----------------|
| Python | 3.8 |
| PostgreSQL | 10 |
| 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)
@@ -16,6 +26,3 @@ Below is a simplified overview of the NetBox application stack for reference:
## 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

@@ -38,14 +38,14 @@ You can use the command `systemctl status netbox` to verify that the WSGI servic
# systemctl status netbox.service
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-12-12 19:23:40 UTC; 25s ago
Docs: https://netbox.readthedocs.io/en/stable/
Active: active (running) since Sat 2020-10-24 19:23:40 UTC; 25s ago
Docs: https://docs.netbox.dev/
Main PID: 11993 (gunicorn)
Tasks: 6 (limit: 2362)
CGroup: /system.slice/netbox.service
├─11993 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12015 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12016 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─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/...
...
```

View File

@@ -2,19 +2,19 @@
## 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 version in which the change went into effect.
Prior to upgrading your NetBox instance, be sure to carefully review all [release notes](../release-notes/index.md) 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:
NetBox v3.0 and later require the following:
| Dependency | Minimum Version |
|------------|-----------------|
| Python | 3.6 |
| PostgreSQL | 9.6 |
| Python | 3.8 |
| PostgreSQL | 10 |
| Redis | 4.0 |
## Install the Latest Code
## 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.
@@ -25,47 +25,36 @@ Download the [latest stable release](https://github.com/netbox-community/netbox/
Download and extract the latest version:
```no-highlight
# wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# cd /opt/
# ln -sfn 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 netbox-X.Y.Z/netbox/netbox/configuration.py netbox/netbox/netbox/configuration.py
```
Copy your local requirements file if used:
```no-highlight
# cp netbox-X.Y.Z/local_requirements.txt netbox/local_requirements.txt
```
Also copy the LDAP configuration if using LDAP:
```no-highlight
# cp netbox-X.Y.Z/netbox/netbox/ldap_config.py netbox/netbox/netbox/ldap_config.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
# cp -pr netbox-X.Y.Z/netbox/media/ netbox/netbox/
sudo cp -pr /opt/netbox-X.Y.Z/netbox/media/ /opt/netbox/netbox/
```
Also make sure to copy over 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.)
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
# cp -r /opt/netbox-X.Y.Z/netbox/scripts /opt/netbox/netbox/scripts/
# cp -r /opt/netbox-X.Y.Z/netbox/reports /opt/netbox/netbox/reports/
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 netbox-X.Y.Z/gunicorn.py netbox/gunicorn.py
sudo cp /opt/netbox-X.Y.Z/gunicorn.py /opt/netbox/
```
### Option B: Clone the Git Repository
@@ -73,49 +62,64 @@ If you followed the original installation guide to set up gunicorn, be sure to c
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
```
!!! info "Checking out an older release"
If you need to upgrade to an older version rather than the current stable release, you can check out any valid [git tag](https://github.com/netbox-community/netbox/tags), each of which represents a release. For example, to checkout the code for NetBox v2.11.11, do:
sudo git checkout v2.11.11
## Run the Upgrade Script
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
```
This script:
!!! warning
If the default version of Python is not at least 3.8, you'll need to pass the path to a supported Python version as an environment variable when calling the upgrade script. For example:
```no-highlight
sudo PYTHON=/usr/bin/python3.8 ./upgrade.sh
```
This script performs the following actions:
* 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
* Builds the documentation locally (for offline use)
* 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:
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.
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.
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.
## Restart the NetBox Services
!!! warning
If you are upgrading from an installation that does not use a Python virtual environment, 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.
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.
Finally, restart the gunicorn and RQ services:
```no-highlight
# sudo systemctl restart netbox netbox-rq
sudo systemctl restart netbox netbox-rq
```
!!! note
It's possible you are still using supervisord instead of systemd. If so, please see the instructions for [migrating to systemd](migrating-to-systemd.md).
## Verify Housekeeping Scheduling
If upgrading from a release prior to NetBox v3.0, check that a cron task (or similar scheduled process) has been configured to run NetBox's nightly housekeeping command. A shell script which invokes this command is included at `contrib/netbox-housekeeping.sh`. It can be linked from your system's daily cron task directory, or included within the crontab directly. (If NetBox has been installed in a nonstandard path, be sure to update the system paths within this script first.)
```shell
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
```
See the [housekeeping documentation](../administration/housekeeping.md) for further details.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

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