diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index dd3652b1f..69adc0c29 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -164,7 +164,7 @@ class PrefixViewSet(CustomFieldModelViewSet): 200: serializers.AvailableIPSerializer(many=True), } ) - @action(detail=True, url_path='available-ips', methods=['get', 'post']) + @action(detail=True, url_path='available-ips', methods=['get', 'post'], queryset=IPAddress.objects.all()) @advisory_lock(ADVISORY_LOCK_KEYS['available-ips']) def available_ips(self, request, pk=None): """ diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py index 41f39703c..70ae738b5 100644 --- a/netbox/ipam/tests/test_api.py +++ b/netbox/ipam/tests/test_api.py @@ -276,8 +276,7 @@ class PrefixTest(APIViewTestCases.APIViewTestCase): vrf = VRF.objects.create(name='Test VRF 1', rd='1234') prefix = Prefix.objects.create(prefix=IPNetwork('192.0.2.0/30'), vrf=vrf, is_pool=True) url = reverse('ipam-api:prefix-available-ips', kwargs={'pk': prefix.pk}) - # TODO: ipam.add_prefix should not be required - self.add_permissions('ipam.add_prefix', 'ipam.add_ipaddress') + self.add_permissions('ipam.add_ipaddress') # Create all four available IPs with individual requests for i in range(1, 5): @@ -300,8 +299,7 @@ class PrefixTest(APIViewTestCases.APIViewTestCase): """ prefix = Prefix.objects.create(prefix=IPNetwork('192.0.2.0/29'), is_pool=True) url = reverse('ipam-api:prefix-available-ips', kwargs={'pk': prefix.pk}) - # TODO: ipam.add_prefix, ipam.view_prefix should not be required - self.add_permissions('ipam.add_prefix', 'ipam.view_prefix', 'ipam.view_ipaddress', 'ipam.add_ipaddress') + self.add_permissions('ipam.view_ipaddress', 'ipam.add_ipaddress') # Try to create nine IPs (only eight are available) data = [{'description': 'Test IP {}'.format(i)} for i in range(1, 10)] # 9 IPs