Skip to content

Commit 869808b

Browse files
Merge pull request #7922 from netbox-community/develop
Release v3.0.11
2 parents b29a551 + 57ccbf4 commit 869808b

38 files changed

+512
-281
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ body:
1414
attributes:
1515
label: NetBox version
1616
description: What version of NetBox are you currently running?
17-
placeholder: v3.0.10
17+
placeholder: v3.0.11
1818
validations:
1919
required: true
2020
- type: dropdown

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ body:
1414
attributes:
1515
label: NetBox version
1616
description: What version of NetBox are you currently running?
17-
placeholder: v3.0.10
17+
placeholder: v3.0.11
1818
validations:
1919
required: true
2020
- type: dropdown

docs/administration/housekeeping.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ NetBox includes a `housekeeping` management command that should be run nightly.
88
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.
99

1010
```shell
11-
ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
11+
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
1212
```
1313

1414
!!! note

docs/installation/3-netbox.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ NetBox includes a `housekeeping` management command that handles some recurring
267267
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.)
268268

269269
```shell
270-
ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
270+
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
271271
```
272272

273273
See the [housekeeping documentation](../administration/housekeeping.md) for further details.

docs/installation/upgrading.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ sudo systemctl restart netbox netbox-rq
114114
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.)
115115

116116
```shell
117-
ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
117+
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
118118
```
119119

120120
See the [housekeeping documentation](../administration/housekeeping.md) for further details.

docs/release-notes/version-3.0.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
# NetBox v3.0
22

3+
## v3.0.11 (2021-11-24)
4+
5+
### Enhancements
6+
7+
* [#2101](https://github.com/netbox-community/netbox/issues/2101) - Add missing `q` filters for necessary models
8+
* [#7424](https://github.com/netbox-community/netbox/issues/7424) - Add virtual chassis filters for device components
9+
* [#7531](https://github.com/netbox-community/netbox/issues/7531) - Add Markdown support for strikethrough formatting
10+
* [#7542](https://github.com/netbox-community/netbox/issues/7542) - Add optional VLAN group column to prefixes table
11+
* [#7803](https://github.com/netbox-community/netbox/issues/7803) - Improve live reloading of custom scripts
12+
* [#7810](https://github.com/netbox-community/netbox/issues/7810) - Add IEEE 802.15.1 interface type
13+
14+
### Bug Fixes
15+
16+
* [#7399](https://github.com/netbox-community/netbox/issues/7399) - Fix excessive CPU utilization when `AUTH_LDAP_FIND_GROUP_PERMS` is enabled
17+
* [#7657](https://github.com/netbox-community/netbox/issues/7657) - Make change logging middleware thread-safe
18+
* [#7720](https://github.com/netbox-community/netbox/issues/7720) - Fix initialization of custom script MultiObjectVar field with multiple values
19+
* [#7729](https://github.com/netbox-community/netbox/issues/7729) - Fix permissions evaluation when displaying VLAN group VLANs table
20+
* [#7739](https://github.com/netbox-community/netbox/issues/7739) - Fix exception when tracing cable across circuit with no far end termination
21+
* [#7813](https://github.com/netbox-community/netbox/issues/7813) - Fix handling of errors during export template rendering
22+
* [#7851](https://github.com/netbox-community/netbox/issues/7851) - Add missing cluster name filter for virtual machines
23+
* [#7857](https://github.com/netbox-community/netbox/issues/7857) - Fix ordering IP addresses by assignment status
24+
* [#7859](https://github.com/netbox-community/netbox/issues/7859) - Fix styling of form widgets under cable connection views
25+
* [#7864](https://github.com/netbox-community/netbox/issues/7864) - `power_port` can be null when creating power outlets via REST API
26+
* [#7865](https://github.com/netbox-community/netbox/issues/7865) - REST API should support null values for console port speeds
27+
28+
---
29+
330
## v3.0.10 (2021-11-12)
431

532
### Enhancements
@@ -422,7 +449,7 @@ Note that NetBox's `rqworker` process will _not_ service custom queues by defaul
422449
* [#6154](https://github.com/netbox-community/netbox/issues/6154) - Allow decimal values for cable lengths
423450
* [#6328](https://github.com/netbox-community/netbox/issues/6328) - Build and serve documentation locally
424451

425-
### Bug Fixes (from v3.2-beta2)
452+
### Bug Fixes (from v3.0-beta2)
426453

427454
* [#6977](https://github.com/netbox-community/netbox/issues/6977) - Truncate global search dropdown on small screens
428455
* [#6979](https://github.com/netbox-community/netbox/issues/6979) - Hide "create & add another" button for circuit terminations

netbox/dcim/api/nested_serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ class NestedVirtualChassisSerializer(WritableNestedSerializer):
340340

341341
class Meta:
342342
model = models.VirtualChassis
343-
fields = ['id', 'name', 'url', 'master', 'member_count']
343+
fields = ['id', 'url', 'display', 'name', 'master', 'member_count']
344344

345345

346346
#

netbox/dcim/api/serializers.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,8 @@ class PowerOutletTemplateSerializer(ValidatedModelSerializer):
356356
required=False
357357
)
358358
power_port = NestedPowerPortTemplateSerializer(
359-
required=False
359+
required=False,
360+
allow_null=True
360361
)
361362
feed_leg = ChoiceField(
362363
choices=PowerOutletFeedLegChoices,
@@ -538,7 +539,7 @@ class ConsoleServerPortSerializer(PrimaryModelSerializer, CableTerminationSerial
538539
)
539540
speed = ChoiceField(
540541
choices=ConsolePortSpeedChoices,
541-
allow_blank=True,
542+
allow_null=True,
542543
required=False
543544
)
544545
cable = NestedCableSerializer(read_only=True)
@@ -562,7 +563,7 @@ class ConsolePortSerializer(PrimaryModelSerializer, CableTerminationSerializer,
562563
)
563564
speed = ChoiceField(
564565
choices=ConsolePortSpeedChoices,
565-
allow_blank=True,
566+
allow_null=True,
566567
required=False
567568
)
568569
cable = NestedCableSerializer(read_only=True)
@@ -585,7 +586,8 @@ class PowerOutletSerializer(PrimaryModelSerializer, CableTerminationSerializer,
585586
required=False
586587
)
587588
power_port = NestedPowerPortSerializer(
588-
required=False
589+
required=False,
590+
allow_null=True
589591
)
590592
feed_leg = ChoiceField(
591593
choices=PowerOutletFeedLegChoices,

netbox/dcim/choices.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ class PowerPortTypeChoices(ChoiceSet):
428428
)),
429429
('International/ITA', (
430430
(TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
431-
(TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
431+
(TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
432432
(TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
433433
(TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
434434
(TYPE_ITA_G, 'ITA Type G (BS 1363)'),
@@ -640,8 +640,8 @@ class PowerOutletTypeChoices(ChoiceSet):
640640
(TYPE_CS8464C, 'CS8464C'),
641641
)),
642642
('ITA/International', (
643-
(TYPE_ITA_E, 'ITA Type E (CEE7/5)'),
644-
(TYPE_ITA_F, 'ITA Type F (CEE7/3)'),
643+
(TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
644+
(TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
645645
(TYPE_ITA_G, 'ITA Type G (BS 1363)'),
646646
(TYPE_ITA_H, 'ITA Type H'),
647647
(TYPE_ITA_I, 'ITA Type I'),
@@ -739,6 +739,7 @@ class InterfaceTypeChoices(ChoiceSet):
739739
TYPE_80211AC = 'ieee802.11ac'
740740
TYPE_80211AD = 'ieee802.11ad'
741741
TYPE_80211AX = 'ieee802.11ax'
742+
TYPE_802151 = 'ieee802.15.1'
742743

743744
# Cellular
744745
TYPE_GSM = 'gsm'
@@ -850,6 +851,7 @@ class InterfaceTypeChoices(ChoiceSet):
850851
(TYPE_80211AC, 'IEEE 802.11ac'),
851852
(TYPE_80211AD, 'IEEE 802.11ad'),
852853
(TYPE_80211AX, 'IEEE 802.11ax'),
854+
(TYPE_802151, 'IEEE 802.15.1 (Bluetooth)'),
853855
)
854856
),
855857
(

netbox/dcim/filtersets.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,17 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
861861
to_field_name='name',
862862
label='Device (name)',
863863
)
864+
virtual_chassis_id = django_filters.ModelMultipleChoiceFilter(
865+
field_name='device__virtual_chassis',
866+
queryset=VirtualChassis.objects.all(),
867+
label='Virtual Chassis (ID)'
868+
)
869+
virtual_chassis = django_filters.ModelMultipleChoiceFilter(
870+
field_name='device__virtual_chassis__name',
871+
queryset=VirtualChassis.objects.all(),
872+
to_field_name='name',
873+
label='Virtual Chassis',
874+
)
864875
tag = TagFilter()
865876

866877
def search(self, queryset, name, value):
@@ -1394,6 +1405,10 @@ def search(self, queryset, name, value):
13941405
#
13951406

13961407
class ConnectionFilterSet(BaseFilterSet):
1408+
q = django_filters.CharFilter(
1409+
method='search',
1410+
label='Search',
1411+
)
13971412
site_id = MultiValueNumberFilter(
13981413
method='filter_connections',
13991414
field_name='device__site_id'
@@ -1416,6 +1431,15 @@ def filter_connections(self, queryset, name, value):
14161431
return queryset
14171432
return queryset.filter(**{f'{name}__in': value})
14181433

1434+
def search(self, queryset, name, value):
1435+
if not value.strip():
1436+
return queryset
1437+
qs_filter = (
1438+
Q(device__name__icontains=value) |
1439+
Q(cable__label__icontains=value)
1440+
)
1441+
return queryset.filter(qs_filter)
1442+
14191443

14201444
class ConsoleConnectionFilterSet(ConnectionFilterSet):
14211445

0 commit comments

Comments
 (0)