char writeThrough_name[32] = "";
bool writeThrough = false;
+ char mode_name[32] = "";
+ char *mode = NULL;
+
if (def == NULL || *def != NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
return -1;
VMX_BUILD_NAME(fileType);
VMX_BUILD_NAME(fileName);
VMX_BUILD_NAME(writeThrough);
+ VMX_BUILD_NAME(mode);
/* vmx:present */
if (virVMXGetConfigBoolean(conf, present_name, &present, false, true) < 0) {
goto cleanup;
}
+ /* vmx:mode -> def:transient */
+ if (virVMXGetConfigString(conf, mode_name, &mode, true) < 0) {
+ goto cleanup;
+ }
+
if (clientDevice) {
/*
* Just ignore devices in client mode, because I have no clue how to
(*def)->src = ctx->parseFileName(fileName, ctx->opaque);
(*def)->cachemode = writeThrough ? VIR_DOMAIN_DISK_CACHE_WRITETHRU
: VIR_DOMAIN_DISK_CACHE_DEFAULT;
+ if (mode)
+ (*def)->transient = STRCASEEQ(mode,
+ "independent-nonpersistent");
if ((*def)->src == NULL) {
goto cleanup;
VIR_FREE(deviceType);
VIR_FREE(fileType);
VIR_FREE(fileName);
+ VIR_FREE(mode);
return result;
}
}
+ if (def->transient)
+ virBufferAsprintf(buffer,
+ "%s%d:%d.mode = \"independent-nonpersistent\"\n",
+ busType, controllerOrBus, unit);
return 0;
}