mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-12 22:51:29 +00:00
parallels: implement containers creation
Add separate function parallelsCreateCt, which creates container. Also add example xml configuration domain-parallels-ct-simple.xml. Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
This commit is contained in:
parent
0f82f30612
commit
a62116de32
@ -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);
|
||||
|
27
tests/domainschemadata/domain-parallels-ct-simple.xml
Normal file
27
tests/domainschemadata/domain-parallels-ct-simple.xml
Normal file
@ -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>
|
Loading…
x
Reference in New Issue
Block a user