virStorageBackend *backend;
virStorageVolPtr vol = NULL, newvol = NULL;
g_autoptr(virStorageVolDef) voldef = NULL;
+ unsigned int parseFlags = VIR_VOL_XML_PARSE_OPT_CAPACITY;
- virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA, NULL);
+ virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA |
+ VIR_STORAGE_VOL_CREATE_VALIDATE, NULL);
+
+ if (flags & VIR_STORAGE_VOL_CREATE_VALIDATE)
+ parseFlags |= VIR_VOL_XML_PARSE_VALIDATE;
if (!(obj = virStoragePoolObjFromStoragePool(pool)))
return NULL;
if ((backend = virStorageBackendForType(def->type)) == NULL)
goto cleanup;
- voldef = virStorageVolDefParse(def, xmldesc, NULL, VIR_VOL_XML_PARSE_OPT_CAPACITY);
+ voldef = virStorageVolDefParse(def, xmldesc, NULL, parseFlags);
if (voldef == NULL)
goto cleanup;
virStorageVolPtr vol = NULL;
int buildret;
g_autoptr(virStorageVolDef) voldef = NULL;
+ unsigned int parseFlags = VIR_VOL_XML_PARSE_NO_CAPACITY;
virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA |
- VIR_STORAGE_VOL_CREATE_REFLINK,
+ VIR_STORAGE_VOL_CREATE_REFLINK |
+ VIR_STORAGE_VOL_CREATE_VALIDATE,
NULL);
+ if (flags & VIR_STORAGE_VOL_CREATE_VALIDATE)
+ parseFlags |= VIR_VOL_XML_PARSE_VALIDATE;
+
obj = virStoragePoolObjFindByUUID(driver->pools, pool->uuid);
if (obj && STRNEQ(pool->name, volsrc->pool)) {
virObjectUnlock(obj);
goto cleanup;
}
- voldef = virStorageVolDefParse(def, xmldesc, NULL, VIR_VOL_XML_PARSE_NO_CAPACITY);
+ voldef = virStorageVolDefParse(def, xmldesc, NULL, parseFlags);
if (voldef == NULL)
goto cleanup;
virStoragePoolDef *def;
virStorageVolPtr ret = NULL;
g_autoptr(virStorageVolDef) privvol = NULL;
+ unsigned int parseFlags = 0;
- virCheckFlags(0, NULL);
+ virCheckFlags(VIR_STORAGE_VOL_CREATE_VALIDATE, NULL);
+
+ if (flags & VIR_STORAGE_VOL_CREATE_VALIDATE)
+ parseFlags |= VIR_VOL_XML_PARSE_VALIDATE;
if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
return NULL;
def = virStoragePoolObjGetDef(obj);
- privvol = virStorageVolDefParse(def, xmldesc, NULL, 0);
+ privvol = virStorageVolDefParse(def, xmldesc, NULL, parseFlags);
if (privvol == NULL)
goto cleanup;
virStorageVolDef *origvol = NULL;
virStorageVolPtr ret = NULL;
g_autoptr(virStorageVolDef) privvol = NULL;
+ unsigned int parseFlags = 0;
- virCheckFlags(0, NULL);
+ virCheckFlags(VIR_STORAGE_VOL_CREATE_VALIDATE, NULL);
+
+ if (flags & VIR_STORAGE_VOL_CREATE_VALIDATE)
+ parseFlags |= VIR_VOL_XML_PARSE_VALIDATE;
if (!(obj = testStoragePoolObjFindActiveByName(privconn, pool->name)))
return NULL;
def = virStoragePoolObjGetDef(obj);
- privvol = virStorageVolDefParse(def, xmldesc, NULL, 0);
+ privvol = virStorageVolDefParse(def, xmldesc, NULL, parseFlags);
if (privvol == NULL)
goto cleanup;
virStorageVolPtr ret = NULL;
g_autoptr(virStorageVolDef) def = NULL;
g_autofree char *homedir = NULL;
+ unsigned int parseFlags = 0;
if (!data->vboxObj)
return ret;
- virCheckFlags(0, NULL);
+ virCheckFlags(VIR_STORAGE_VOL_CREATE_VALIDATE, NULL);
+
+ if (flags & VIR_STORAGE_VOL_CREATE_VALIDATE)
+ parseFlags |= VIR_VOL_XML_PARSE_VALIDATE;
/* since there is currently one default pool now
* and virStorageVolDefFormat() just checks it type
memset(&poolDef, 0, sizeof(poolDef));
poolDef.type = VIR_STORAGE_POOL_DIR;
- if ((def = virStorageVolDefParse(&poolDef, xml, NULL, 0)) == NULL)
+ if ((def = virStorageVolDefParse(&poolDef, xml, NULL, parseFlags)) == NULL)
goto cleanup;
if (!def->name ||