Similar to the runstate commit, allow a boolean <test:transient/> element for setting domain persistence at driver startup. --- v3: Validate that transient is not specified with runstate=shutoff src/test/test_driver.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 48b5ec1..c51c7ca 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -159,6 +159,7 @@ typedef struct _testDomainNamespaceDef testDomainNamespaceDef; typedef testDomainNamespaceDef *testDomainNamespaceDefPtr; struct _testDomainNamespaceDef { int runstate; + bool transient; }; static void @@ -189,6 +190,13 @@ testDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED, if (VIR_ALLOC(nsdata) < 0) return -1; + tmp = virXPathBoolean("boolean(./test:transient)", ctxt); + if (tmp == -1) { + virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid transient")); + goto error; + } + nsdata->transient = tmp; + tmp = virXPathUInt("string(./test:runstate)", ctxt, &tmpuint); if (tmp == 0) { if (tmpuint >= VIR_DOMAIN_LAST) { @@ -205,6 +213,12 @@ testDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED, goto error; } + if (nsdata->transient && nsdata->runstate == VIR_DOMAIN_SHUTOFF) { + virReportError(VIR_ERR_XML_ERROR, + _("transient domain cannot have runstate 'shutoff'")); + goto error; + } + *data = nsdata; return 0; @@ -922,7 +936,7 @@ testParseDomains(testConnPtr privconn, } nsdata = def->namespaceData; - obj->persistent = 1; + obj->persistent = !nsdata->transient; if (nsdata->runstate != VIR_DOMAIN_SHUTOFF) { if (testDomainStartState(privconn, obj, -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list