diff --git a/instances/api/serializers.py b/instances/api/serializers.py index 999cfa03..5c2847c8 100644 --- a/instances/api/serializers.py +++ b/instances/api/serializers.py @@ -1,4 +1,5 @@ from instances.models import CreateInstance, Flavor, Instance, MigrateInstance +from instances.utils import nic_macs from rest_framework import serializers @@ -58,6 +59,13 @@ class CreateInstanceSerializer(serializers.ModelSerializer): virtio = serializers.BooleanField(initial=True) qemu_ga = serializers.BooleanField(initial=True) + def validate(self, attrs): + try: + nic_macs(attrs.get("mac"), attrs.get("networks", "")) + except ValueError as err: + raise serializers.ValidationError({"mac": str(err)}) + return attrs + class Meta: model = CreateInstance fields = [ diff --git a/instances/templates/create_instance_w2.html b/instances/templates/create_instance_w2.html index e70260c3..648f8341 100644 --- a/instances/templates/create_instance_w2.html +++ b/instances/templates/create_instance_w2.html @@ -251,7 +251,7 @@
- {% for bus in disk_buses %} + {% for bus in cdrom_buses %} @@ -744,7 +744,7 @@
""" xml += f"""""" diff --git a/vrtManager/test_util.py b/vrtManager/test_util.py index fb174231..b1279563 100644 --- a/vrtManager/test_util.py +++ b/vrtManager/test_util.py @@ -123,6 +123,7 @@ class TestVrtManagerUtil(unittest.TestCase): self.assertEqual(vol_dev_type("ide"), "hd") self.assertEqual(vol_dev_type("fdc"), "fd") self.assertEqual(vol_dev_type("virtio"), "vd") + self.assertEqual(vol_dev_type("usb"), "sd") self.assertEqual(vol_dev_type("scsi"), "sd") self.assertEqual(vol_dev_type("sata"), "sd") self.assertIsNone(vol_dev_type("unknown_bus")) diff --git a/vrtManager/util.py b/vrtManager/util.py index 26ca01f9..de32a1d3 100644 --- a/vrtManager/util.py +++ b/vrtManager/util.py @@ -208,6 +208,6 @@ def vol_dev_type(vol_bus): return "fd" elif vol_bus == "virtio": return "vd" - elif vol_bus in ["scsi", "sata"]: + elif vol_bus in ["scsi", "sata", "usb"]: return "sd"