[libvirt] PATCH: 2/2: port Test driver to new domain APIs

Daniel Veillard veillard at redhat.com
Thu Jun 26 13:57:08 UTC 2008


On Tue, Jun 24, 2008 at 05:03:16PM +0100, Daniel P. Berrange wrote:
> This patch ports the Test driver over to the domain XML apis. 
> 
> Basically the 'struct _testDom' is removed, and replaced by usage of the
> generic virDomainObjPtr and virDomainDefPtr objects. The XML parser
> and formatters are ripped out and replaced by calls to the generic APIs
> in domain_conf.h. Finally there is just alot of cleanup of all the 
> individual domain driver implementations to adjust to the style of the
> new APIs used.

  Big cleanup, less code and more functionalities, yay !

> This actually dramatically increases the functionality of the test
> driver - previously its XML parser didn't support any of the <device>
> section in the XML. This should make it much more useful for advanced
> apps like virt-manager

  and more advanced regression tests like for the bindings.

> +
> +static const char *defaultDomainXML =
> +"<domain type='test'>"
> +"  <name>test</name>"
> +"  <memory>8388608</memory>"
> +"  <currentMemory>2097152</currentMemory>"
> +"  <vcpu>2</vcpu>"
> +"  <os>"
> +"    <type>hvm</type>"
> +"  </os>"

 shouldn't we add a couple of device (one disk, one net) for good measure here ?

> +"</domain>";
> +
[...]
> +    if (ret > 0) {
> +        for (i = 0 ; i < ret ; i++) {
> +            xmlChar *netFile = xmlGetProp(domains[i], BAD_CAST "file");
> +            char *absFile = testBuildFilename(file, (const char *)netFile);
> +            VIR_FREE(netFile);
> +            if (!absFile) {
> +                testError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR, _("resolving domain filename"));
> +                goto error;
> +            }
> +            if ((dom = testLoadDomainFromFile(conn, absFile)) == NULL) {
> +                VIR_FREE(absFile);
> +                goto error;
> +            }
> +            dom->state = VIR_DOMAIN_RUNNING;
> +            dom->def->id = privconn->nextDomID++;
> +            dom->persistent = 1;
> +            dom->configFile = absFile;
> +        }
> +        if (domains != NULL) {
> +            VIR_FREE(domains);
> +            domains = NULL;
> +        }
>      }

  One thing i'm wondering is if we couldn't do single instance XML definitions
for tests including the domains, network, etc... just reusing the new routines
to parse up the full set. that way  a test could be defined as a single 
standalone file, we could also easilly get testing of the full set of parsing
code just by using the test driver pointing to xml test instances.
  This just push the actual test configuration one step further, and 
actually I would not be too annnoyed to break some existing support in the
test driver to gte that more complete and convenient coverage. 

   What do you think ?

   +1 for the patch

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/




More information about the libvir-list mailing list