Skip to content

Commit 23cde65

Browse files
committed
Fixes #2589: Virtual machine API serializer should require cluster assignment
1 parent 408f632 commit 23cde65

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ v2.4.8 (FUTURE)
1111
* [#2565](https://github.com/digitalocean/netbox/issues/2565) - Improved rendering of Markdown tables
1212
* [#2575](https://github.com/digitalocean/netbox/issues/2575) - Correct model specified for rack roles table
1313
* [#2588](https://github.com/digitalocean/netbox/issues/2588) - Catch all exceptions from failed NAPALM API Calls
14+
* [#2589](https://github.com/digitalocean/netbox/issues/2589) - Virtual machine API serializer should require cluster assignment
1415

1516
---
1617

netbox/virtualization/api/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class Meta:
9393
class VirtualMachineSerializer(TaggitSerializer, CustomFieldModelSerializer):
9494
status = ChoiceField(choices=VM_STATUS_CHOICES, required=False)
9595
site = NestedSiteSerializer(read_only=True)
96-
cluster = NestedClusterSerializer(required=False, allow_null=True)
96+
cluster = NestedClusterSerializer()
9797
role = NestedDeviceRoleSerializer(required=False, allow_null=True)
9898
tenant = NestedTenantSerializer(required=False, allow_null=True)
9999
platform = NestedPlatformSerializer(required=False, allow_null=True)

netbox/virtualization/tests/test_api.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,18 @@ def test_create_virtualmachine(self):
380380
self.assertEqual(virtualmachine4.name, data['name'])
381381
self.assertEqual(virtualmachine4.cluster.pk, data['cluster'])
382382

383+
def test_create_virtualmachine_without_cluster(self):
384+
385+
data = {
386+
'name': 'Test Virtual Machine 4',
387+
}
388+
389+
url = reverse('virtualization-api:virtualmachine-list')
390+
response = self.client.post(url, data, format='json', **self.header)
391+
392+
self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST)
393+
self.assertEqual(VirtualMachine.objects.count(), 3)
394+
383395
def test_create_virtualmachine_bulk(self):
384396

385397
data = [

0 commit comments

Comments
 (0)