[libvirt] [PATCH] vz: implementation of domainCreateXML callback
Dmitry Guryanov
dguryanov at virtuozzo.com
Tue Nov 24 14:24:48 UTC 2015
On Fri, 2015-11-20 at 16:52 +0300, Mikhail Feoktistov wrote:
> ---
> src/vz/vz_driver.c | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
> index 39f58a4..31dfb6a 100644
> --- a/src/vz/vz_driver.c
> +++ b/src/vz/vz_driver.c
> @@ -979,6 +979,38 @@ vzDomainUndefine(virDomainPtr domain)
> return vzDomainUndefineFlags(domain, 0);
> }
>
> +static virDomainPtr
> +vzDomainCreateXML(virConnectPtr conn,
> + const char *xml,
> + unsigned int flags)
> +{
> + virDomainPtr domain;
> + int ret;
> +
> + virCheckFlags(VIR_DOMAIN_START_PAUSED, NULL);
> +
> + domain = vzDomainDefineXMLFlags(conn, xml, 0);
> + if (domain == NULL)
> + return domain;
> +
> + ret = vzDomainCreate(domain);
> + if (ret != 0) {
> + vzDomainUndefine(domain);
> + return NULL;
> + }
> +
> + if (flags & VIR_DOMAIN_START_PAUSED) {
> + ret = vzDomainSuspend(domain);
> + if (ret != 0) {
> + vzDomainDestroy(domain);
> + vzDomainUndefine(domain);
> + return NULL;
> + }
I think we shouldn't allow this start paused operation. Because it means that
domain shouldn't run any code before being paused, and with this implementation
we start a domain, it does some work and only that you suspend it. Also suspend
and paused states are different and we only support paused state for VMs.
> + }
> +
> + return domain;
> +}
> +
> static int
> vzDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
> {
> @@ -1493,6 +1525,7 @@ static virHypervisorDriver vzDriver = {
> .domainShutdown = vzDomainShutdown, /* 0.10.0 */
> .domainCreate = vzDomainCreate, /* 0.10.0 */
> .domainCreateWithFlags = vzDomainCreateWithFlags, /* 1.2.10 */
> + .domainCreateXML = vzDomainCreateXML, /* 1.2.22 */
> .domainReboot = vzDomainReboot, /* 1.2.22 */
> .domainDefineXML = vzDomainDefineXML, /* 0.10.0 */
> .domainDefineXMLFlags = vzDomainDefineXMLFlags, /* 1.2.12 */
--
Dmitry Guryanov
More information about the libvir-list
mailing list