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

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

index 4294b50c3aeba19998cfc08028cc064e2342b30e..7a6bb022036c983cfe2fdeacdaaedee708c21fc4 100644 (file)
@@ -215,7 +215,7 @@ virDomainAuditRNG(virDomainObj *vm,
     const char *oldsrcpath = NULL;
 
     if (newDef) {
-        switch ((virDomainRNGBackend) newDef->backend) {
+        switch (newDef->backend) {
         case VIR_DOMAIN_RNG_BACKEND_RANDOM:
             newsrcpath = newDef->source.file;
             break;
@@ -231,7 +231,7 @@ virDomainAuditRNG(virDomainObj *vm,
     }
 
     if (oldDef) {
-        switch ((virDomainRNGBackend) oldDef->backend) {
+        switch (oldDef->backend) {
         case VIR_DOMAIN_RNG_BACKEND_RANDOM:
             oldsrcpath = oldDef->source.file;
             break;
index 3b24d0218da3161961e919d944fd09505ded90ce..47c4170f29bace467eae4864e7c899feee8e8b60 100644 (file)
@@ -12116,7 +12116,6 @@ virDomainRNGDefParseXML(virDomainXMLOption *xmlopt,
     VIR_XPATH_NODE_AUTORESTORE(ctxt)
     int nbackends;
     g_autofree xmlNodePtr *backends = NULL;
-    g_autofree char *backend = NULL;
     g_autofree char *type = NULL;
 
     def = g_new0(virDomainRNGDef, 1);
@@ -12151,19 +12150,14 @@ virDomainRNGDefParseXML(virDomainXMLOption *xmlopt,
         goto error;
     }
 
-    if (!(backend = virXMLPropString(backends[0], "model"))) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing RNG device backend model"));
-        goto error;
-    }
-
-    if ((def->backend = virDomainRNGBackendTypeFromString(backend)) < 0) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("unknown RNG backend model '%1$s'"), backend);
+    if (virXMLPropEnum(backends[0], "model",
+                       virDomainRNGBackendTypeFromString,
+                       VIR_XML_PROP_REQUIRED,
+                       &def->backend) < 0) {
         goto error;
     }
 
-    switch ((virDomainRNGBackend) def->backend) {
+    switch (def->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
         def->source.file = virXPathString("string(./backend)", ctxt);
         break;
@@ -15197,7 +15191,7 @@ virDomainRNGFind(virDomainDef *def,
         if (rng->rate != tmp->rate || rng->period != tmp->period)
             continue;
 
-        switch ((virDomainRNGBackend) rng->backend) {
+        switch (rng->backend) {
         case VIR_DOMAIN_RNG_BACKEND_RANDOM:
             if (STRNEQ_NULLABLE(rng->source.file, tmp->source.file))
                 continue;
@@ -25076,7 +25070,7 @@ virDomainRNGDefFormat(virBuffer *buf,
     }
     virBufferAsprintf(buf, "<backend model='%s'", backend);
 
-    switch ((virDomainRNGBackend) def->backend) {
+    switch (def->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
         virBufferEscapeString(buf, ">%s</backend>\n", def->source.file);
         break;
@@ -25117,7 +25111,7 @@ virDomainRNGDefFree(virDomainRNGDef *def)
     if (!def)
         return;
 
-    switch ((virDomainRNGBackend) def->backend) {
+    switch (def->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
         g_free(def->source.file);
         break;
index f56c04ce360cbd99f661b7f6fc725483854348f1..c9b9fbabd320a59b6744c3b5754c7f3a76927521 100644 (file)
@@ -2610,7 +2610,7 @@ typedef enum {
 
 struct _virDomainRNGDef {
     virDomainRNGModel model;
-    int backend;
+    virDomainRNGBackend backend;
     unsigned int rate; /* bytes per period */
     unsigned int period; /* milliseconds */
 
index 17d7bfcfd30d41eff0664fed1ac29f882b30b532..11ede25c0bfb3010d55ba1b307ba9d7f99cf8226 100644 (file)
@@ -5361,7 +5361,7 @@ qemuBuildRNGBackendChrdev(virCommand *cmd,
 {
     g_autofree char *charAlias = qemuAliasChardevFromDevAlias(rng->info.alias);
 
-    switch ((virDomainRNGBackend) rng->backend) {
+    switch (rng->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
     case VIR_DOMAIN_RNG_BACKEND_BUILTIN:
     case VIR_DOMAIN_RNG_BACKEND_LAST:
@@ -5390,7 +5390,7 @@ qemuBuildRNGBackendProps(virDomainRNGDef *rng,
 
     objAlias = g_strdup_printf("obj%s", rng->info.alias);
 
-    switch ((virDomainRNGBackend) rng->backend) {
+    switch (rng->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
         if (qemuMonitorCreateObjectProps(props, "rng-random", objAlias,
                                          "s:filename", rng->source.file,
index f245712f9ab9330f9dfb4618a724770a7cdbdf3d..915d44310f3f967284cb963054172c126a956725 100644 (file)
@@ -574,7 +574,7 @@ static int
 qemuDomainSetupRNG(virDomainRNGDef *rng,
                    GSList **paths)
 {
-    switch ((virDomainRNGBackend) rng->backend) {
+    switch (rng->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
         *paths = g_slist_prepend(*paths, g_strdup(rng->source.file));
         break;
index 2fcc86bb2246bc9f95c549f39bc9b6460f21c351..fc61c489e98791827e5cb4d85c9336594236eacd 100644 (file)
@@ -2154,7 +2154,7 @@ qemuValidateDomainRNGDef(const virDomainRNGDef *def,
 {
     virDomainCapsDeviceRNG rngCaps = { 0 };
 
-    switch ((virDomainRNGBackend) def->backend) {
+    switch (def->backend) {
     case VIR_DOMAIN_RNG_BACKEND_RANDOM:
         if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_RNG_RANDOM)) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",