Skip to content

Commit 9dab3a0

Browse files
Merge pull request #12946 from netbox-community/develop
Release v3.5.4
2 parents 9fb52be + 54622b5 commit 9dab3a0

File tree

25 files changed

+167
-66
lines changed

25 files changed

+167
-66
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.3
17+
placeholder: v3.5.4
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.3
17+
placeholder: v3.5.4
1818
validations:
1919
required: true
2020
- type: dropdown

docs/release-notes/version-3.5.md

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

3+
## v3.5.4 (2023-06-20)
4+
5+
### Enhancements
6+
7+
* [#12828](https://github.com/netbox-community/netbox/issues/12828) - Define colors for staged change action choices
8+
* [#12847](https://github.com/netbox-community/netbox/issues/12847) - Include "add" button on all device & virtual machine component list views
9+
* [#12862](https://github.com/netbox-community/netbox/issues/12862) - Add menu navigation button to add wireless links directly
10+
* [#12865](https://github.com/netbox-community/netbox/issues/12865) - Add "add" buttons for reports & scripts to navigation menu
11+
12+
### Bug Fixes
13+
14+
* [#12474](https://github.com/netbox-community/netbox/issues/12474) - Update cable terminations when assigning a location to a new site
15+
* [#12622](https://github.com/netbox-community/netbox/issues/12622) - Permit the assignment of non-site VLANs to prefixes assigned to a site
16+
* [#12682](https://github.com/netbox-community/netbox/issues/12682) - Correct OpenAPI schema for connected device API endpoint
17+
* [#12687](https://github.com/netbox-community/netbox/issues/12687) - Allow the assignment of all /31 IP addresses to interfaces
18+
* [#12818](https://github.com/netbox-community/netbox/issues/12818) - Fix permissions evaluation when queuing a data sync job
19+
* [#12822](https://github.com/netbox-community/netbox/issues/12822) - Fix encoding of whitespace in custom link URLs
20+
* [#12838](https://github.com/netbox-community/netbox/issues/12838) - Correct rounding of rack power utilization values
21+
* [#12845](https://github.com/netbox-community/netbox/issues/12845) - Fix pagination of objects for related IP addresses table
22+
* [#12850](https://github.com/netbox-community/netbox/issues/12850) - Fix table configuration modal for the contact assignments list
23+
* [#12885](https://github.com/netbox-community/netbox/issues/12885) - Permit mounting of devices in rack unit 100
24+
* [#12914](https://github.com/netbox-community/netbox/issues/12914) - Clear stored ordering from user config when cleared by request
25+
26+
---
27+
328
## v3.5.3 (2023-06-02)
429

530
### Enhancements

netbox/core/api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def sync(self, request, pk):
3333
"""
3434
Enqueue a job to synchronize the DataSource.
3535
"""
36-
if not request.user.has_perm('extras.sync_datasource'):
36+
if not request.user.has_perm('core.sync_datasource'):
3737
raise PermissionDenied("Syncing data sources requires the core.sync_datasource permission.")
3838

3939
datasource = get_object_or_404(DataSource, pk=pk)

netbox/dcim/api/views.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,10 @@ class ConnectedDeviceViewSet(ViewSet):
646646
def get_view_name(self):
647647
return "Connected Device Locator"
648648

649-
@extend_schema(responses={200: OpenApiTypes.OBJECT})
649+
@extend_schema(
650+
parameters=[_device_param, _interface_param],
651+
responses={200: serializers.DeviceSerializer}
652+
)
650653
def list(self, request):
651654

652655
peer_device_name = request.query_params.get(self._device_param.name)

netbox/dcim/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#
1212

1313
RACK_U_HEIGHT_DEFAULT = 42
14+
RACK_U_HEIGHT_MAX = 100
1415

1516
RACK_ELEVATION_BORDER_WIDTH = 2
1617
RACK_ELEVATION_DEFAULT_LEGEND_WIDTH = 30

netbox/dcim/migrations/0154_half_height_rack_units.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ class Migration(migrations.Migration):
1818
migrations.AlterField(
1919
model_name='device',
2020
name='position',
21-
field=models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(99.5)]),
21+
field=models.DecimalField(blank=True, decimal_places=1, max_digits=4, null=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100.5)]),
2222
),
2323
]

netbox/dcim/models/devices.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ class Device(PrimaryModel, ConfigContextModel):
568568
decimal_places=1,
569569
blank=True,
570570
null=True,
571-
validators=[MinValueValidator(1), MaxValueValidator(99.5)],
571+
validators=[MinValueValidator(1), MaxValueValidator(RACK_U_HEIGHT_MAX + 0.5)],
572572
verbose_name='Position (U)',
573573
help_text=_('The lowest-numbered unit occupied by the device')
574574
)

netbox/dcim/models/racks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class Rack(PrimaryModel, WeightMixin):
126126
u_height = models.PositiveSmallIntegerField(
127127
default=RACK_U_HEIGHT_DEFAULT,
128128
verbose_name='Height (U)',
129-
validators=[MinValueValidator(1), MaxValueValidator(100)],
129+
validators=[MinValueValidator(1), MaxValueValidator(RACK_U_HEIGHT_MAX)],
130130
help_text=_('Height in rack units')
131131
)
132132
desc_units = models.BooleanField(
@@ -466,7 +466,7 @@ def get_power_utilization(self):
466466
powerport.get_power_draw()['allocated'] for powerport in powerports
467467
])
468468

469-
return int(allocated_draw / available_power_total * 100)
469+
return round(allocated_draw / available_power_total * 100, 1)
470470

471471
@cached_property
472472
def total_weight(self):

netbox/dcim/signals.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def handle_location_site_change(instance, created, **kwargs):
2727
Rack.objects.filter(location__in=locations).update(site=instance.site)
2828
Device.objects.filter(location__in=locations).update(site=instance.site)
2929
PowerPanel.objects.filter(location__in=locations).update(site=instance.site)
30+
CableTermination.objects.filter(_location__in=locations).update(_site=instance.site)
3031

3132

3233
@receiver(post_save, sender=Rack)

0 commit comments

Comments
 (0)