]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: domain: Introduce VIR_DOMAIN_DISK_BUS_NONE
authorPeter Krempa <pkrempa@redhat.com>
Thu, 15 Apr 2021 14:58:19 +0000 (16:58 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 19 Apr 2021 12:43:59 +0000 (14:43 +0200)
Add a disk bus value represending no selected bus. This will help split
up the XML parser.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/conf/domain_validate.c
src/qemu/qemu_alias.c
src/qemu/qemu_command.c
src/qemu/qemu_domain_address.c
src/qemu/qemu_hotplug.c
src/vbox/vbox_common.c

index 2803055204bf0402d753b701b89d08cdfb8fdee0..c600c1e6b11d4168251d054fbba895df311605bd 100644 (file)
@@ -340,6 +340,7 @@ VIR_ENUM_IMPL(virDomainDiskGeometryTrans,
 
 VIR_ENUM_IMPL(virDomainDiskBus,
               VIR_DOMAIN_DISK_BUS_LAST,
+              "none",
               "ide",
               "fdc",
               "scsi",
@@ -9510,7 +9511,7 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
     }
 
     if (bus) {
-        if ((def->bus = virDomainDiskBusTypeFromString(bus)) < 0) {
+        if ((def->bus = virDomainDiskBusTypeFromString(bus)) <= 0) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("unknown disk bus type '%s'"), bus);
             return NULL;
index 1a2e0fc872a8f7b89306436f498b77890d1f96c7..cb5ce68fdbad284758e79b06054e496f3a92f43e 100644 (file)
@@ -371,6 +371,7 @@ typedef enum {
 } virDomainDiskDevice;
 
 typedef enum {
+    VIR_DOMAIN_DISK_BUS_NONE,
     VIR_DOMAIN_DISK_BUS_IDE,
     VIR_DOMAIN_DISK_BUS_FDC,
     VIR_DOMAIN_DISK_BUS_SCSI,
index 5118d6a25e20f4d36bf79e7c4e31ce572a477e51..1073da3bfab62a776394ad6a79f64fad941bd4d8 100644 (file)
@@ -227,6 +227,7 @@ virDomainDiskAddressDiskBusCompatibility(virDomainDiskBus bus,
     case VIR_DOMAIN_DISK_BUS_USB:
     case VIR_DOMAIN_DISK_BUS_UML:
     case VIR_DOMAIN_DISK_BUS_SD:
+    case VIR_DOMAIN_DISK_BUS_NONE:
     case VIR_DOMAIN_DISK_BUS_LAST:
         return true;
     }
index 7c86a6eeaa264d4186d85264a5d5ccadb3596159..63638b1402e9e5c73f54fdb412ba0ab32a74e4df 100644 (file)
@@ -255,6 +255,7 @@ qemuAssignDeviceDiskAlias(virDomainDef *def,
         case VIR_DOMAIN_DISK_BUS_XEN:
         case VIR_DOMAIN_DISK_BUS_UML:
         case VIR_DOMAIN_DISK_BUS_SD:
+        case VIR_DOMAIN_DISK_BUS_NONE:
         case VIR_DOMAIN_DISK_BUS_LAST:
             break;
         }
index 278590c2c18db5cee7c0a1553fd2cc6851a7e1c2..49fb056e3bdf105af160bb64e7a13cd945cae1d4 100644 (file)
@@ -1608,6 +1608,7 @@ qemuCheckIOThreads(const virDomainDef *def,
     case VIR_DOMAIN_DISK_BUS_UML:
     case VIR_DOMAIN_DISK_BUS_SATA:
     case VIR_DOMAIN_DISK_BUS_SD:
+    case VIR_DOMAIN_DISK_BUS_NONE:
     case VIR_DOMAIN_DISK_BUS_LAST:
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("IOThreads not available for bus %s target %s"),
@@ -1850,6 +1851,7 @@ qemuBuildDiskDeviceStr(const virDomainDef *def,
     case VIR_DOMAIN_DISK_BUS_XEN:
     case VIR_DOMAIN_DISK_BUS_UML:
     case VIR_DOMAIN_DISK_BUS_SD:
+    case VIR_DOMAIN_DISK_BUS_NONE:
     case VIR_DOMAIN_DISK_BUS_LAST:
     default:
         virReportError(VIR_ERR_INTERNAL_ERROR,
index 8adef60675ba594a95be71cc0a04219b79773fb4..1ee75b8f2ed8e7d2ebb5f3fcea549ed27c97755b 100644 (file)
@@ -800,6 +800,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDef *dev,
         case VIR_DOMAIN_DISK_BUS_UML:
         case VIR_DOMAIN_DISK_BUS_SATA:
         case VIR_DOMAIN_DISK_BUS_SD:
+        case VIR_DOMAIN_DISK_BUS_NONE:
         case VIR_DOMAIN_DISK_BUS_LAST:
             return 0;
         }
index 20c34ef1045a6d9a45fd58408b33f5b0fa2337b5..4344edc75b80b8074747fac8c968f321ac0f89b3 100644 (file)
@@ -1092,6 +1092,7 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver *driver,
         /* Note that SD card hotplug support should be added only once
          * they support '-device' (don't require -drive only).
          * See also: qemuDiskBusIsSD */
+    case VIR_DOMAIN_DISK_BUS_NONE:
     case VIR_DOMAIN_DISK_BUS_LAST:
         virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
                        _("disk bus '%s' cannot be hotplugged."),
@@ -5315,6 +5316,7 @@ qemuDomainDetachPrepDisk(virDomainObj *vm,
                            _("This type of disk cannot be hot unplugged"));
             return -1;
 
+        case VIR_DOMAIN_DISK_BUS_NONE:
         case VIR_DOMAIN_DISK_BUS_LAST:
         default:
             virReportEnumRangeError(virDomainDiskBus, disk->bus);
index 1ea1e4e537e879cf5dc8e2ed8dc5dd7aae025081..1ca521321c0540b5d379707306ad41439b10841c 100644 (file)
@@ -1154,6 +1154,7 @@ vboxAttachDrives(virDomainDef *def, struct _vboxDriver *data, IMachine *machine)
         case VIR_DOMAIN_DISK_BUS_USB:
         case VIR_DOMAIN_DISK_BUS_UML:
         case VIR_DOMAIN_DISK_BUS_SD:
+        case VIR_DOMAIN_DISK_BUS_NONE:
         case VIR_DOMAIN_DISK_BUS_LAST:
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("The vbox driver does not support %s bus type"),