diff --git a/docs/release-notes/version-2.8.md b/docs/release-notes/version-2.8.md new file mode 100644 index 000000000..a29768189 --- /dev/null +++ b/docs/release-notes/version-2.8.md @@ -0,0 +1,5 @@ +# v2.8.0 (FUTURE) + +## API Changes + +* dcim.Rack: The `/api/dcim/racks//units/` endpoint has been replaced with `/api/dcim/racks//elevation/`. diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 8bb127f67..9e7935293 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -176,33 +176,6 @@ class RackViewSet(CustomFieldModelViewSet): serializer_class = serializers.RackSerializer filterset_class = filters.RackFilterSet - @swagger_auto_schema(deprecated=True) - @action(detail=True) - def units(self, request, pk=None): - """ - List rack units (by rack) - """ - # TODO: Remove this action detail route in v2.8 - rack = get_object_or_404(Rack, pk=pk) - face = request.GET.get('face', 'front') - exclude_pk = request.GET.get('exclude', None) - if exclude_pk is not None: - try: - exclude_pk = int(exclude_pk) - except ValueError: - exclude_pk = None - elevation = rack.get_rack_units(face, exclude_pk) - - # Enable filtering rack units by ID - q = request.GET.get('q', None) - if q: - elevation = [u for u in elevation if q in str(u['id'])] - - page = self.paginate_queryset(elevation) - if page is not None: - rack_units = serializers.RackUnitSerializer(page, many=True, context={'request': request}) - return self.get_paginated_response(rack_units.data) - @swagger_auto_schema( responses={200: serializers.RackUnitSerializer(many=True)}, query_serializer=serializers.RackElevationDetailFilterSerializer diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index a3a072bc9..c0ea5eca7 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -589,13 +589,6 @@ class RackTest(APITestCase): self.assertEqual(response.data['name'], self.rack1.name) - def test_get_rack_units(self): - - url = reverse('dcim-api:rack-units', kwargs={'pk': self.rack1.pk}) - response = self.client.get(url, **self.header) - - self.assertEqual(response.data['count'], 42) - def test_get_rack_elevation(self): url = reverse('dcim-api:rack-elevation', kwargs={'pk': self.rack1.pk})