From 856ceb8cb3c5b1dd0deadb333484e5b4ef249b8a Mon Sep 17 00:00:00 2001 From: Taowei Date: Mon, 11 Aug 2014 18:06:22 +0800 Subject: [PATCH] vbox: Rewrite vboxDomainCreateXML --- src/vbox/vbox_common.c | 28 ++++++++++++++++++++++++++++ src/vbox/vbox_tmpl.c | 28 ---------------------------- src/vbox/vbox_uniformed_api.h | 2 ++ 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index f0e8703bc8..e7937265dd 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -2160,3 +2160,31 @@ int vboxDomainCreate(virDomainPtr dom) { return vboxDomainCreateWithFlags(dom, 0); } + +virDomainPtr vboxDomainCreateXML(virConnectPtr conn, const char *xml, + unsigned int flags) +{ + /* VirtualBox currently doesn't have support for running + * virtual machines without actually defining them and thus + * for time being just define new machine and start it. + * + * TODO: After the appropriate API's are added in VirtualBox + * change this behaviour to the expected one. + */ + + virDomainPtr dom; + + virCheckFlags(0, NULL); + + dom = vboxDomainDefineXML(conn, xml); + if (dom == NULL) + return NULL; + + if (vboxDomainCreate(dom) < 0) { + vboxDomainUndefineFlags(dom, 0); + virObjectUnref(dom); + return NULL; + } + + return dom; +} diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index bbc2ee5745..ccf73437d6 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -933,34 +933,6 @@ vboxSocketParseAddrUtf16(vboxGlobalData *data, const PRUnichar *utf16, return result; } -static virDomainPtr vboxDomainCreateXML(virConnectPtr conn, const char *xml, - unsigned int flags) -{ - /* VirtualBox currently doesn't have support for running - * virtual machines without actually defining them and thus - * for time being just define new machine and start it. - * - * TODO: After the appropriate API's are added in VirtualBox - * change this behaviour to the expected one. - */ - - virDomainPtr dom; - - virCheckFlags(0, NULL); - - dom = vboxDomainDefineXML(conn, xml); - if (dom == NULL) - return NULL; - - if (vboxDomainCreate(dom) < 0) { - vboxDomainUndefineFlags(dom, 0); - virObjectUnref(dom); - return NULL; - } - - return dom; -} - static virDomainPtr vboxDomainLookupByName(virConnectPtr conn, const char *name) { diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h index e745bc7450..1c11caafc0 100644 --- a/src/vbox/vbox_uniformed_api.h +++ b/src/vbox/vbox_uniformed_api.h @@ -407,6 +407,8 @@ virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml); int vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags); int vboxDomainCreateWithFlags(virDomainPtr dom, unsigned int flags); int vboxDomainCreate(virDomainPtr dom); +virDomainPtr vboxDomainCreateXML(virConnectPtr conn, const char *xml, + unsigned int flags); /* Version specified functions for installing uniformed API */ void vbox22InstallUniformedAPI(vboxUniformedAPI *pVBoxAPI); -- GitLab