On Wed, Sep 12, 2012 at 04:40:54PM +0400, Dmitry Guryanov wrote: > Add separate function parallelsCreateCt, which creates container. > Also add example xml configuration domain-parallels-ct-simple.xml. > > Signed-off-by: Dmitry Guryanov <dguryanov@xxxxxxxxxxxxx> > --- > src/parallels/parallels_driver.c | 41 +++++++++++++++++++- > .../domain-parallels-ct-simple.xml | 27 +++++++++++++ > 2 files changed, 67 insertions(+), 1 deletions(-) > create mode 100644 tests/domainschemadata/domain-parallels-ct-simple.xml > > diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c > index 9eb2526..0dd13fe 100644 > --- a/src/parallels/parallels_driver.c > +++ b/src/parallels/parallels_driver.c > @@ -1663,6 +1663,36 @@ parallelsCreateVm(virConnectPtr conn, virDomainDefPtr def) > return -1; > } > > +static int > +parallelsCreateCt(virConnectPtr conn ATTRIBUTE_UNUSED, virDomainDefPtr def) > +{ > + char uuidstr[VIR_UUID_STRING_BUFLEN]; > + > + virUUIDFormat(def->uuid, uuidstr); > + > + if (def->nfss != 1 || > + def->fss[0]->type != VIR_DOMAIN_FS_TYPE_TEMPLATE) { > + > + virReportError(VIR_ERR_INVALID_ARG, "%s", > + _("There must be only 1 template FS for " > + "container creation")); > + goto error; > + } > + > + if (parallelsCmdRun(PRLCTL, "create", def->name, "--vmtype", "ct", > + "--uuid", uuidstr, > + "--ostemplate", def->fss[0]->src, NULL) < 0) > + goto error; > + > + if (parallelsCmdRun(PRLCTL, "set", def->name, "--vnc-mode", "auto", NULL) < 0) > + goto error; > + > + return 0; > + > +error: > + return -1; > +} > + > static virDomainPtr > parallelsDomainDefineXML(virConnectPtr conn, const char *xml) > { > @@ -1703,8 +1733,17 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml) > > def = NULL; > } else { > - if (parallelsCreateVm(conn, def)) > + if (STREQ(def->os.type, "hvm")) { > + if (parallelsCreateVm(conn, def)) > + goto cleanup; > + } else if (STREQ(def->os.type, "exe")) { > + if (parallelsCreateCt(conn, def)) > + goto cleanup; > + } else { > + virReportError(VIR_ERR_INVALID_ARG, > + _("Unsupported OS type: %s"), def->os.type); > goto cleanup; > + } > if (parallelsLoadDomains(privconn, def->name)) > goto cleanup; > dom = virDomainFindByName(&privconn->domains, def->name); > diff --git a/tests/domainschemadata/domain-parallels-ct-simple.xml b/tests/domainschemadata/domain-parallels-ct-simple.xml > new file mode 100644 > index 0000000..a2b87ce > --- /dev/null > +++ b/tests/domainschemadata/domain-parallels-ct-simple.xml > @@ -0,0 +1,27 @@ > +<domain type='parallels'> > + <name>1010</name> > + <uuid>88576506-d611-41c2-b6b6-c9043704a0dd</uuid> > + <description></description> > + <memory unit='KiB'>262144</memory> > + <currentMemory unit='KiB'>262144</currentMemory> > + <vcpu placement='static'>8</vcpu> > + <os> > + <type arch='x86_64'>exe</type> > + <init>/sbin/init</init> > + </os> > + <clock offset='utc'/> > + <on_poweroff>destroy</on_poweroff> > + <on_reboot>destroy</on_reboot> > + <on_crash>destroy</on_crash> > + <devices> > + <filesystem type='template'> > + <source name='centos-6-x86_64'/> > + <target dir='/'/> > + </filesystem> > + <video> > + <model type='vga' vram='16777216' heads='1'> > + <acceleration accel3d='no' accel2d='no'/> > + </model> > + </video> > + </devices> > +</domain> Seems to be the 4/4 part of the series ACK, looks fine, I pushed the 4 patches set as a result thanks ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list