On 25.09.2013 21:15, Cole Robinson wrote:
This is just stolen from qemu_driver.c with tweaks to fit the
test driver.
---
src/test/test_driver.c | 392 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 392 insertions(+)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 7e60716..9a39087 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -45,6 +45,7 @@
#include "interface_conf.h"
#include "domain_conf.h"
#include "domain_event.h"
+#include "snapshot_conf.h"
#include "fdstream.h"
#include "storage_conf.h"
#include "node_device_conf.h"
@@ -423,6 +424,27 @@ static const unsigned long long defaultPoolAlloc = 0;
static int testStoragePoolObjSetDefaults(virStoragePoolObjPtr pool);
static int testNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);
+static virDomainObjPtr
+testDomObjFromDomain(virDomainPtr domain)
+{
+ virDomainObjPtr vm;
+ testConnPtr driver = domain->conn->privateData;
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
+ testDriverLock(driver);
+ vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
+ if (!vm) {
+ virUUIDFormat(domain->uuid, uuidstr);
+ virReportError(VIR_ERR_NO_DOMAIN,
+ _("no domain with matching uuid '%s' (%s)"),
+ uuidstr, domain->name);
+ vm = NULL;
This line is NOP. But we have the very same line in qemu driver too. So
please remove this and post patch that cleanups *DomObjFromDomain()
functions (quick look into libxl and lxc drivers shows these functions
can be simplified a bit).
+ }
+
+ testDriverUnlock(driver);
+ return vm;
+}
Once we have this function a follow up patch would be nice - turn all these
testDriverLock()
virDomainObjListFindByName()
testDriverUnlock()
into testDomObjFromDomain().
+
static char *
testDomainGenerateIfname(virDomainDefPtr domdef) {
int maxif = 1024;
@@ -6098,6 +6120,362 @@ cleanup:
}
+/*
+ * Snapshot APIs
+ */
+
Yup, these are true copy of qemu functions.
static virDriver testDriver = {
.no = VIR_DRV_TEST,
.name = "Test",
@@ -6174,6 +6552,20 @@ static virDriver testDriver = {
.domainManagedSave = testDomainManagedSave, /* 1.1.3 */
.domainHasManagedSaveImage = testDomainHasManagedSaveImage, /* 1.1.3 */
.domainManagedSaveRemove = testDomainManagedSaveRemove, /* 1.1.3 */
+
+ .domainSnapshotNum = testDomainSnapshotNum, /* 1.1.3 */
+ .domainSnapshotListNames = testDomainSnapshotListNames, /* 1.1.3 */
+ .domainListAllSnapshots = testDomainListAllSnapshots, /* 1.1.3 */
+ .domainSnapshotGetXMLDesc = testDomainSnapshotGetXMLDesc, /* 1.1.3 */
+ .domainSnapshotNumChildren = testDomainSnapshotNumChildren, /* 1.1.3 */
+ .domainSnapshotListChildrenNames = testDomainSnapshotListChildrenNames, /* 1.1.3 */
+ .domainSnapshotListAllChildren = testDomainSnapshotListAllChildren, /* 1.1.3 */
+ .domainSnapshotLookupByName = testDomainSnapshotLookupByName, /* 1.1.3 */
+ .domainHasCurrentSnapshot = testDomainHasCurrentSnapshot, /* 1.1.3 */
+ .domainSnapshotGetParent = testDomainSnapshotGetParent, /* 1.1.3 */
+ .domainSnapshotCurrent = testDomainSnapshotCurrent, /* 1.1.3 */
+ .domainSnapshotIsCurrent = testDomainSnapshotIsCurrent, /* 1.1.3 */
+ .domainSnapshotHasMetadata = testDomainSnapshotHasMetadata, /* 1.1.3 */
};
static virNetworkDriver testNetworkDriver = {
Unfortunately, we are in the freeze, so you'll need to update these to
1.1.4 and push after the release.
ACK
Michal