On 09/26/2013 10:44 AM, Michal Privoznik wrote:
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).
I dropped it from this patch, but the qemu driver isn't affected anymore since
that code was recently altered.
> + }
> +
> + testDriverUnlock(driver);
> + return vm;
> +}
Once we have this function a follow up patch would be nice - turn all these
testDriverLock()
virDomainObjListFindByName()
testDriverUnlock()
into testDomObjFromDomain().
Yeah there's definitely a lot of opportunity for such cleanups in the test driver.
> +
> 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
Pushed with those changes.
Thanks,
Cole