[libvirt] [PATCH v4 12/13] parallels: apply config after VM creation
Daniel Veillard
veillard at redhat.com
Tue Dec 11 08:23:51 UTC 2012
On Tue, Dec 04, 2012 at 05:43:12PM +0400, Dmitry Guryanov wrote:
> New VM will have default values for all parameters, like
> cpu number, we have to change its configuration as provided
> by xml definition, given to parallelsDomainDefineXML.
>
> Signed-off-by: Dmitry Guryanov <dguryanov at parallels.com>
> ---
> src/parallels/parallels_driver.c | 33 +++++++++++++++++----------------
> 1 files changed, 17 insertions(+), 16 deletions(-)
>
> diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
> index fe034f6..64bf409 100644
> --- a/src/parallels/parallels_driver.c
> +++ b/src/parallels/parallels_driver.c
> @@ -2011,20 +2011,6 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
>
> if (dupVM == 1) {
> olddom = virDomainFindByUUID(&privconn->domains, def->uuid);
> - if (parallelsApplyChanges(conn, olddom, def) < 0) {
> - virDomainObjUnlock(olddom);
> - goto cleanup;
> - }
> - virDomainObjUnlock(olddom);
> -
> - if (!(dom = virDomainAssignDef(privconn->caps,
> - &privconn->domains, def, false))) {
> - virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> - _("Can't allocate domobj"));
> - goto cleanup;
> - }
> -
> - def = NULL;
> } else {
> if (STREQ(def->os.type, "hvm")) {
> if (parallelsCreateVm(conn, def))
> @@ -2039,8 +2025,8 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
> }
> if (parallelsLoadDomains(privconn, def->name))
> goto cleanup;
> - dom = virDomainFindByName(&privconn->domains, def->name);
> - if (!dom) {
> + olddom = virDomainFindByName(&privconn->domains, def->name);
> + if (!olddom) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> _("Domain for '%s' is not defined after creation"),
> def->name ? def->name : _("(unnamed)"));
> @@ -2048,6 +2034,21 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml)
> }
> }
>
> + if (parallelsApplyChanges(conn, olddom, def) < 0) {
> + virDomainObjUnlock(olddom);
> + goto cleanup;
> + }
> + virDomainObjUnlock(olddom);
> +
> + if (!(dom = virDomainAssignDef(privconn->caps,
> + &privconn->domains, def, false))) {
> + virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> + _("Can't allocate domobj"));
> + goto cleanup;
> + }
> +
> + def = NULL;
> +
> ret = virGetDomain(conn, dom->def->name, dom->def->uuid);
> if (ret)
> ret->id = dom->def->id;
ACK,
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard at redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list