Skip to content

Commit 8555269

Browse files
Merge pull request #13589 from netbox-community/develop
Release v3.5.9
2 parents 8f5005e + f42a2ac commit 8555269

File tree

44 files changed

+575
-1124
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+575
-1124
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.5.8
17+
placeholder: v3.5.9
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.5.8
17+
placeholder: v3.5.9
1818
validations:
1919
required: true
2020
- type: dropdown

contrib/generated_schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@
332332
"100gbase-x-cfp",
333333
"100gbase-x-cfp2",
334334
"200gbase-x-cfp2",
335+
"400gbase-x-cfp2",
335336
"100gbase-x-cfp4",
336337
"100gbase-x-cxp",
337338
"100gbase-x-cpak",

docs/customization/reports.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ The following methods are available to log results within a report:
111111

112112
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.
113113

114-
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`.
114+
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.
115115

116116
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.
117117

docs/installation/upgrading.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Copy `local_requirements.txt`, `configuration.py`, and `ldap_config.py` (if pres
5959

6060
```no-highlight
6161
# Set $OLDVER to the NetBox version currently installed
62-
NEWVER=3.4.9
62+
OLDVER=3.4.9
6363
sudo cp /opt/netbox-$OLDVER/local_requirements.txt /opt/netbox/
6464
sudo cp /opt/netbox-$OLDVER/netbox/netbox/configuration.py /opt/netbox/netbox/netbox/
6565
sudo cp /opt/netbox-$OLDVER/netbox/netbox/ldap_config.py /opt/netbox/netbox/netbox/

docs/reference/filtering.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,14 @@ These lookup expressions can be applied by adding a suffix to the desired field'
6161

6262
Numeric based fields (ASN, VLAN ID, etc) support these lookup expressions:
6363

64-
| Filter | Description |
65-
|--------|-------------|
66-
| `n` | Not equal to |
67-
| `lt` | Less than |
68-
| `lte` | Less than or equal to |
69-
| `gt` | Greater than |
70-
| `gte` | Greater than or equal to |
64+
| Filter | Description |
65+
|---------|--------------------------|
66+
| `n` | Not equal to |
67+
| `lt` | Less than |
68+
| `lte` | Less than or equal to |
69+
| `gt` | Greater than |
70+
| `gte` | Greater than or equal to |
71+
| `empty` | Is empty/null (boolean) |
7172

7273
Here is an example of a numeric field lookup expression that will return all VLANs with a VLAN ID greater than 900:
7374

@@ -79,18 +80,18 @@ GET /api/ipam/vlans/?vid__gt=900
7980

8081
String based (char) fields (Name, Address, etc) support these lookup expressions:
8182

82-
| Filter | Description |
83-
|--------|-------------|
84-
| `n` | Not equal to |
85-
| `ic` | Contains (case-insensitive) |
86-
| `nic` | Does not contain (case-insensitive) |
87-
| `isw` | Starts with (case-insensitive) |
88-
| `nisw` | Does not start with (case-insensitive) |
89-
| `iew` | Ends with (case-insensitive) |
90-
| `niew` | Does not end with (case-insensitive) |
91-
| `ie` | Exact match (case-insensitive) |
92-
| `nie` | Inverse exact match (case-insensitive) |
93-
| `empty` | Is empty (boolean) |
83+
| Filter | Description |
84+
|---------|----------------------------------------|
85+
| `n` | Not equal to |
86+
| `ic` | Contains (case-insensitive) |
87+
| `nic` | Does not contain (case-insensitive) |
88+
| `isw` | Starts with (case-insensitive) |
89+
| `nisw` | Does not start with (case-insensitive) |
90+
| `iew` | Ends with (case-insensitive) |
91+
| `niew` | Does not end with (case-insensitive) |
92+
| `ie` | Exact match (case-insensitive) |
93+
| `nie` | Inverse exact match (case-insensitive) |
94+
| `empty` | Is empty/null (boolean) |
9495

9596
Here is an example of a lookup expression on a string field that will return all devices with `switch` in the name:
9697

docs/release-notes/version-3.5.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# NetBox v3.5
22

3+
## v3.5.9 (2023-08-28)
4+
5+
### Enhancements
6+
7+
* [#12489](https://github.com/netbox-community/netbox/issues/12489) - Dynamically render location and device lists under site and location views
8+
* [#12825](https://github.com/netbox-community/netbox/issues/12825) - Display assigned values count per obejct type under custom field view
9+
* [#13313](https://github.com/netbox-community/netbox/issues/13313) - Enable filtering IP ranges by containing prefix
10+
* [#13415](https://github.com/netbox-community/netbox/issues/13415) - Include request object in custom link renderer on tables
11+
* [#13536](https://github.com/netbox-community/netbox/issues/13536) - Move child VLANs list to a separate tab under VLAN group view
12+
* [#13542](https://github.com/netbox-community/netbox/issues/13542) - Pass additional HTTP headers through to custom script context
13+
* [#13585](https://github.com/netbox-community/netbox/issues/13585) - Introduce `empty` lookup for numeric value filters
14+
15+
### Bug Fixes
16+
17+
* [#11272](https://github.com/netbox-community/netbox/issues/11272) - Fix localization support for device position field
18+
* [#13358](https://github.com/netbox-community/netbox/issues/13358) - Git backend should send HTTP auth headers only if credentials have been defined
19+
* [#13477](https://github.com/netbox-community/netbox/issues/13477) - Fix filtering of modified objects after bulk import/update
20+
* [#13478](https://github.com/netbox-community/netbox/issues/13478) - Fix filtering of export templates by content type under web UI
21+
* [#13500](https://github.com/netbox-community/netbox/issues/13500) - Fix form validation for bulk update of L2VPN terminations via bulk import form
22+
* [#13503](https://github.com/netbox-community/netbox/issues/13503) - Fix utilization graph proportions when localization is enabled
23+
* [#13507](https://github.com/netbox-community/netbox/issues/13507) - Avoid raising exception for invalid content type during global search
24+
* [#13516](https://github.com/netbox-community/netbox/issues/13516) - Plugin utility functions should be importable from `extras.plugins`
25+
* [#13530](https://github.com/netbox-community/netbox/issues/13530) - Ensure script log messages can be serialized as JSON data
26+
* [#13543](https://github.com/netbox-community/netbox/issues/13543) - Config context tab under device/VM view should not require `extras.view_configcontext` permission
27+
* [#13544](https://github.com/netbox-community/netbox/issues/13544) - Ensure `reindex` command clears all cached values when not in lazy mode
28+
* [#13556](https://github.com/netbox-community/netbox/issues/13556) - Correct REST API representation of VDC status choice
29+
* [#13569](https://github.com/netbox-community/netbox/issues/13569) - Fix selection widgets for related interfaces when bulk editing interfaces under device view
30+
31+
---
32+
333
## v3.5.8 (2023-08-15)
434

535
### Enhancements

netbox/core/data_backends.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,13 @@ def fetch(self):
103103
}
104104

105105
if self.url_scheme in ('http', 'https'):
106-
clone_args.update(
107-
{
108-
"username": self.params.get('username'),
109-
"password": self.params.get('password'),
110-
}
111-
)
106+
if self.params.get('username'):
107+
clone_args.update(
108+
{
109+
"username": self.params.get('username'),
110+
"password": self.params.get('password'),
111+
}
112+
)
112113

113114
if settings.HTTP_PROXIES and self.url_scheme in ('http', 'https'):
114115
if proxy := settings.HTTP_PROXIES.get(self.url_scheme):

netbox/dcim/api/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,7 @@ class VirtualDeviceContextSerializer(NetBoxModelSerializer):
714714
primary_ip = NestedIPAddressSerializer(read_only=True, allow_null=True)
715715
primary_ip4 = NestedIPAddressSerializer(required=False, allow_null=True)
716716
primary_ip6 = NestedIPAddressSerializer(required=False, allow_null=True)
717+
status = ChoiceField(choices=VirtualDeviceContextStatusChoices)
717718

718719
# Related object counts
719720
interface_count = serializers.IntegerField(read_only=True)

netbox/dcim/forms/model_forms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,12 +401,13 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
401401
position = forms.DecimalField(
402402
required=False,
403403
help_text=_("The lowest-numbered unit occupied by the device"),
404+
localize=True,
404405
widget=APISelect(
405406
api_url='/api/dcim/racks/{{rack}}/elevation/',
406407
attrs={
407408
'disabled-indicator': 'device',
408409
'data-dynamic-params': '[{"fieldName":"face","queryParam":"face"}]'
409-
}
410+
},
410411
)
411412
)
412413
device_type = DynamicModelChoiceField(

0 commit comments

Comments
 (0)