domainCreateWithFlags function is used by OpenStack Nova to boot
instance.
---
src/parallels/parallels_driver.c | 50 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
index 0373830..d0f49b9 100644
--- a/src/parallels/parallels_driver.c
+++ b/src/parallels/parallels_driver.c
@@ -2428,6 +2428,55 @@ parallelsNodeGetCPUMap(virConnectPtr conn ATTRIBUTE_UNUSED,
}
+static int
+parallelsDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
+{
+ parallelsConnPtr privconn = domain->conn->privateData;
+ virDomainObjPtr privdom = NULL;
+ int ret = -1;
+
+ virCheckFlags(VIR_DOMAIN_START_PAUSED |
+ VIR_DOMAIN_START_AUTODESTROY |
+ VIR_DOMAIN_START_BYPASS_CACHE |
+ VIR_DOMAIN_START_FORCE_BOOT, -1);
+
+ parallelsDriverLock(privconn);
+ privdom = virDomainObjListFindByUUID(privconn->domains, domain->uuid);
+ parallelsDriverUnlock(privconn);
+
+ if (!privdom) {
+ virReportError(VIR_ERR_NO_DOMAIN, "%s",
+ _("no domain with matching uuid"));
+ ret = -1;
+ goto cleanup;
+ }
+
+ if (virDomainObjIsActive(privdom)) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ "%s", _("domain is already running"));
+ ret = -1;
+ goto cleanup;
+ }
+
+ ret = parallelsStart(privdom);
+ if (ret == 0) {
+ virDomainObjSetState(privdom, VIR_DOMAIN_RUNNING,
+ VIR_DOMAIN_RUNNING_BOOTED);
+ } else {
+ virDomainObjSetState(privdom, VIR_DOMAIN_CRASHED,
+ VIR_DOMAIN_CRASHED_UNKNOWN);
+ }
+
+ ret = 0;
+
+ cleanup:
+ if (privdom)
+ virObjectUnlock(privdom);
+
+ return ret;
+}
+
+
static virDriver parallelsDriver = {
.no = VIR_DRV_PARALLELS,
.name = "Parallels",
@@ -2459,6 +2508,7 @@ static virDriver parallelsDriver = {
.domainShutdown = parallelsDomainShutdown, /* 0.10.0 */
.domainCreate = parallelsDomainCreate, /* 0.10.0 */
.domainDefineXML = parallelsDomainDefineXML, /* 0.10.0 */
+ .domainCreateWithFlags = parallelsDomainCreateWithFlags, /* 1.2.7 */
.nodeGetCPUMap = parallelsNodeGetCPUMap, /* 1.2.6 */
.connectIsEncrypted = parallelsConnectIsEncrypted, /* 1.2.5 */
.connectIsSecure = parallelsConnectIsSecure, /* 1.2.5 */
--
1.9.1