]> xenbits.xensource.com Git - libvirt.git/commitdiff
virDomainWatchdogDef: Convert 'model' field to proper enum type
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 2 May 2023 11:43:38 +0000 (13:43 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 15 Sep 2023 08:35:13 +0000 (10:35 +0200)
Convert the field and adjust the XML parsers to use
virXMLPropEnum().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/qemu/qemu_domain_address.c
src/qemu/qemu_validate.c

index 47c4170f29bace467eae4864e7c899feee8e8b60..5c1712cb46c63d1c8880195126e4d7880eda4a5c 100644 (file)
@@ -12065,21 +12065,14 @@ virDomainWatchdogDefParseXML(virDomainXMLOption *xmlopt,
                              unsigned int flags)
 {
     virDomainWatchdogDef *def;
-    g_autofree char *model = NULL;
     g_autofree char *action = NULL;
 
     def = g_new0(virDomainWatchdogDef, 1);
 
-    model = virXMLPropString(node, "model");
-    if (model == NULL) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("watchdog must contain model name"));
-        goto error;
-    }
-    def->model = virDomainWatchdogModelTypeFromString(model);
-    if (def->model < 0) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("unknown watchdog model '%1$s'"), model);
+    if (virXMLPropEnum(node, "model",
+                       virDomainWatchdogModelTypeFromString,
+                       VIR_XML_PROP_REQUIRED,
+                       &def->model) < 0) {
         goto error;
     }
 
index c9b9fbabd320a59b6744c3b5754c7f3a76927521..e7c663b0e95925836e2d17f38b3a03525d89730a 100644 (file)
@@ -1759,7 +1759,7 @@ typedef enum {
 } virDomainWatchdogAction;
 
 struct _virDomainWatchdogDef {
-    int model;
+    virDomainWatchdogModel model;
     int action;
     virDomainDeviceInfo info;
 };
index 0ed70e5b8653cfdcbb17a09cef64c424dd866ba2..099778b2a863baf836eee40c85c24ea670e3dd4f 100644 (file)
@@ -927,7 +927,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDef *dev,
 
     case VIR_DOMAIN_DEVICE_WATCHDOG:
         /* only one model connects using PCI */
-        switch ((virDomainWatchdogModel) dev->data.watchdog->model) {
+        switch (dev->data.watchdog->model) {
         case VIR_DOMAIN_WATCHDOG_MODEL_I6300ESB:
             return pciFlags;
 
index fc61c489e98791827e5cb4d85c9336594236eacd..27fd5b9a99b562fbaf406ceb32640db568b21e4d 100644 (file)
@@ -2251,7 +2251,7 @@ qemuValidateDomainWatchdogDef(const virDomainWatchdogDef *dev,
         return -1;
     }
 
-    switch ((virDomainWatchdogModel) dev->model) {
+    switch (dev->model) {
     case VIR_DOMAIN_WATCHDOG_MODEL_I6300ESB:
         if (dev->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
             dev->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {