goto cleanup;
}
- newvol = virStorageVolDefParseString(pool->def, xmldesc, 0);
+ newvol = virStorageVolDefParseString(pool->def, xmldesc,
+ VIR_VOL_XML_PARSE_NO_CAPACITY);
if (newvol == NULL)
goto cleanup;
goto cleanup;
}
- /* Is there ever a valid case for this? */
+ /* Use the original volume's capacity in case the new capacity
+ * is less than that, or it was omitted */
if (newvol->target.capacity < origvol->target.capacity)
newvol->target.capacity = origvol->target.capacity;
--- /dev/null
+qemu-img convert -f raw -O qcow2 \
+-o encryption=on,preallocation=metadata \
+/var/lib/libvirt/images/sparse.img \
+/var/lib/libvirt/images/OtherDemo.img
char *expectedCmdline = NULL;
char *actualCmdline = NULL;
int ret = -1;
+ unsigned long parse_flags = 0;
int len;
goto cleanup;
}
- if (!(vol = virStorageVolDefParseString(pool, volXmlData, 0)))
+ if (inputvolxml)
+ parse_flags |= VIR_VOL_XML_PARSE_NO_CAPACITY;
+
+ if (!(vol = virStorageVolDefParseString(pool, volXmlData, parse_flags)))
goto cleanup;
if (inputvolxml &&
DO_TEST("pool-dir", "vol-qcow2-nocow",
NULL, NULL,
"qcow2-nocow-compat", 0, FMT_COMPAT);
+ DO_TEST("pool-dir", "vol-qcow2-nocapacity",
+ "pool-dir", "vol-file",
+ "qcow2-nocapacity-convert-prealloc", flags, FMT_OPTIONS);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
--- /dev/null
+<volume>
+ <name>OtherDemo.img</name>
+ <key>/var/lib/libvirt/images/OtherDemo.img</key>
+ <source>
+ </source>
+ <target>
+ <path>/var/lib/libvirt/images/OtherDemo.img</path>
+ <format type='qcow2'/>
+ <permissions>
+ <mode>0644</mode>
+ <owner>0</owner>
+ <group>0</group>
+ <label>unconfined_u:object_r:virt_image_t:s0</label>
+ </permissions>
+ <encryption format='qcow'>
+ <secret type='passphrase' uuid='e78d4b51-a2af-485f-b0f5-afca709a80f4'/>
+ </encryption>
+ </target>
+</volume>
--- /dev/null
+<volume type='file'>
+ <name>OtherDemo.img</name>
+ <key>/var/lib/libvirt/images/OtherDemo.img</key>
+ <source>
+ </source>
+ <capacity unit='bytes'>0</capacity>
+ <allocation unit='bytes'>0</allocation>
+ <target>
+ <path>/var/lib/libvirt/images/OtherDemo.img</path>
+ <format type='qcow2'/>
+ <permissions>
+ <mode>0644</mode>
+ <owner>0</owner>
+ <group>0</group>
+ <label>unconfined_u:object_r:virt_image_t:s0</label>
+ </permissions>
+ <encryption format='qcow'>
+ <secret type='passphrase' uuid='e78d4b51-a2af-485f-b0f5-afca709a80f4'/>
+ </encryption>
+ </target>
+</volume>
DO_TEST("pool-sheepdog", "vol-sheepdog");
DO_TEST("pool-gluster", "vol-gluster-dir");
DO_TEST("pool-gluster", "vol-gluster-dir-neg-uid");
+ DO_TEST_FULL("pool-dir", "vol-qcow2-nocapacity",
+ VIR_VOL_XML_PARSE_NO_CAPACITY);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}