]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: nodedev: Don't refresh host caps in testdriver
authorCole Robinson <crobinso@redhat.com>
Fri, 23 Feb 2018 23:09:20 +0000 (18:09 -0500)
committerCole Robinson <crobinso@redhat.com>
Tue, 17 Jul 2018 18:06:12 +0000 (14:06 -0400)
Add a 'skipUpdateCaps' bool that we set for test_driver.c nodedevs
which will skip accessing host resources via virNodeDeviceUpdateCaps

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
src/conf/virnodedeviceobj.c
src/conf/virnodedeviceobj.h
src/test/test_driver.c

index 13e9a1751851e37613d4c4b90e5e1b26a5232c89..6c04caf6ab2694709c694ba39e6413977ba56bdc 100644 (file)
@@ -37,6 +37,8 @@ struct _virNodeDeviceObj {
     virObjectLockable parent;
 
     virNodeDeviceDefPtr def;            /* device definition */
+    bool skipUpdateCaps;                /* whether to skip checking host caps,
+                                           used by testdriver */
 };
 
 struct _virNodeDeviceObjList {
@@ -806,7 +808,8 @@ virNodeDeviceMatch(virNodeDeviceObjPtr obj,
                    unsigned int flags)
 {
     /* Refresh the capabilities first, e.g. due to a driver change */
-    if (virNodeDeviceUpdateCaps(obj->def) < 0)
+    if (!obj->skipUpdateCaps &&
+        virNodeDeviceUpdateCaps(obj->def) < 0)
         return false;
 
     /* filter by cap type */
@@ -915,3 +918,11 @@ virNodeDeviceObjListExport(virConnectPtr conn,
     virObjectListFree(data.devices);
     return -1;
 }
+
+
+void
+virNodeDeviceObjSetSkipUpdateCaps(virNodeDeviceObjPtr obj,
+                                  bool skipUpdateCaps)
+{
+    obj->skipUpdateCaps = skipUpdateCaps;
+}
index 87f90836965685021d095fed150fcbe8f157eee8..ffbe4e32e58c8d9e883d92dcd36fbe07bb6f127c 100644 (file)
@@ -109,4 +109,8 @@ virNodeDeviceObjListExport(virConnectPtr conn,
                            virNodeDeviceObjListFilter filter,
                            unsigned int flags);
 
+void
+virNodeDeviceObjSetSkipUpdateCaps(virNodeDeviceObjPtr obj,
+                                  bool skipUpdateCaps);
+
 #endif /* __VIRNODEDEVICEOBJ_H__ */
index 5494d51017f04c4cb44bee18875fbf9d65c9f300..9fb97813bf1037a6aaef25bef2560d6570684d5c 100644 (file)
@@ -1165,6 +1165,7 @@ testParseNodedevs(testDriverPtr privconn,
             goto error;
         }
 
+        virNodeDeviceObjSetSkipUpdateCaps(obj, true);
         virNodeDeviceObjEndAPI(&obj);
     }
 
@@ -5549,6 +5550,7 @@ testNodeDeviceMockCreateVport(testDriverPtr driver,
 
     if (!(obj = virNodeDeviceObjListAssignDef(driver->devs, def)))
         goto cleanup;
+    virNodeDeviceObjSetSkipUpdateCaps(obj, true);
     def = NULL;
     objdef = virNodeDeviceObjGetDef(obj);