[PATCH v5 2/3] test: Sync GetXML INACTIVE behavior with live driver

Cole Robinson posted 3 patches 1 year, 9 months ago
[PATCH v5 2/3] test: Sync GetXML INACTIVE behavior with live driver
Posted by Cole Robinson 1 year, 9 months ago
- Error if INACTIVE requested for transient object
- Force dumping INACTIVE XML when object is inactive

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 src/test/test_driver.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 153ab7cdc2..e7d2b6c866 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -7514,15 +7514,30 @@ testNodeDeviceGetXMLDesc(virNodeDevicePtr dev,
 {
     testDriver *driver = dev->conn->privateData;
     virNodeDeviceObj *obj;
+    virNodeDeviceDef *def;
     char *ret = NULL;
 
     virCheckFlags(VIR_NODE_DEVICE_XML_INACTIVE, NULL);
 
     if (!(obj = testNodeDeviceObjFindByName(driver, dev->name)))
         return NULL;
+    def = virNodeDeviceObjGetDef(obj);
 
-    ret = virNodeDeviceDefFormat(virNodeDeviceObjGetDef(obj), flags);
+    if (flags & VIR_NODE_DEVICE_XML_INACTIVE) {
+        if (!virNodeDeviceObjIsPersistent(obj)) {
+            virReportError(VIR_ERR_OPERATION_INVALID,
+                           _("node device '%1$s' is not persistent"),
+                           def->name);
+            goto cleanup;
+        }
+    } else {
+        if (!virNodeDeviceObjIsActive(obj))
+            flags |= VIR_NODE_DEVICE_XML_INACTIVE;
+    }
 
+    ret = virNodeDeviceDefFormat(def, flags);
+
+ cleanup:
     virNodeDeviceObjEndAPI(&obj);
     return ret;
 }
-- 
2.44.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH v5 2/3] test: Sync GetXML INACTIVE behavior with live driver
Posted by Boris Fiuczynski 1 year, 9 months ago
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>

On 4/23/24 15:44, Cole Robinson wrote:
> - Error if INACTIVE requested for transient object
> - Force dumping INACTIVE XML when object is inactive
> 
> Signed-off-by: Cole Robinson <crobinso@redhat.com>
> ---
>   src/test/test_driver.c | 17 ++++++++++++++++-
>   1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/src/test/test_driver.c b/src/test/test_driver.c
> index 153ab7cdc2..e7d2b6c866 100644
> --- a/src/test/test_driver.c
> +++ b/src/test/test_driver.c
> @@ -7514,15 +7514,30 @@ testNodeDeviceGetXMLDesc(virNodeDevicePtr dev,
>   {
>       testDriver *driver = dev->conn->privateData;
>       virNodeDeviceObj *obj;
> +    virNodeDeviceDef *def;
>       char *ret = NULL;
>   
>       virCheckFlags(VIR_NODE_DEVICE_XML_INACTIVE, NULL);
>   
>       if (!(obj = testNodeDeviceObjFindByName(driver, dev->name)))
>           return NULL;
> +    def = virNodeDeviceObjGetDef(obj);
>   
> -    ret = virNodeDeviceDefFormat(virNodeDeviceObjGetDef(obj), flags);
> +    if (flags & VIR_NODE_DEVICE_XML_INACTIVE) {
> +        if (!virNodeDeviceObjIsPersistent(obj)) {
> +            virReportError(VIR_ERR_OPERATION_INVALID,
> +                           _("node device '%1$s' is not persistent"),
> +                           def->name);
> +            goto cleanup;
> +        }
> +    } else {
> +        if (!virNodeDeviceObjIsActive(obj))
> +            flags |= VIR_NODE_DEVICE_XML_INACTIVE;
> +    }
>   
> +    ret = virNodeDeviceDefFormat(def, flags);
> +
> + cleanup:
>       virNodeDeviceObjEndAPI(&obj);
>       return ret;
>   }

-- 
Mit freundlichen Grüßen/Kind regards
    Boris Fiuczynski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Wolfgang Wendt
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org