[pve-devel] [PATCH storage 26/26] update ApiChangeLog

Wolfgang Bumiller
2025-07-29T11:17:36Z

ApiChangeLog | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

diff --git a/ApiChangeLog b/ApiChangeLog
index d80bfb3..ff85ee0 100644
--- a/ApiChangeLog
+++ b/ApiChangeLog
@@ -57,6 +57,59 @@ Future changes should be documented in here.
which can override the default format. Must be implemented when the supported formats or default
format depend on the storage configuration.

+* There are now 2 new content types: "vm-vol" and "ct-vol", deprecating "images" and "rootdir"
+ types.
+
+ These represent VM volumes and container volumes respectively.
+
+ Usually, the legacy type "images" should *include* the new "vm-vol" type, and the legacy type
+ "rootdir" should *include* the new "ct-vol" type, but *not* the other way round. See the
+ description of `list_images` below.
+
+* The `get_subdir()` method may now be passed "vm-vol" or "ct-vol".
+
+ Ideally these should map to directories separate from "images" and "rootdir", but as long as the
+ behavior of the other API methods works as intended, this is not strictly necessary.
+
+* Add `type` parameter to `list_images`.
+
+ If this is not set, *all* images should be returned.
+
+ - If `undef`, all volumes should be listed, legacy as well as vm-vol/ct-vol typed.
+ - For "images", this should return *all* untyped volumes *and* the ones of type "vm-vol".
+ - For "rootdir", this should return *all* untyped volumes *and* the ones of type "ct-vol".
+ - For "vm-vol", only volumes expicitly allocated with type "vm-vol" should be listed.
+ - For "ct-vol", only volumes expicitly allocated with type "ct-vol" should be listed.
+
+* Add `type` parameter to `alloc_image`.
+
+ This parameter can be "vm-vol" or "ct-vol", and the storage plugin *should* store this alongside
+ the volumes (this can for instance be done via a naming convention). The type passed here is the
+ which should be returned in `list_images` and `parse_volname`.
+
+ Legacy plugins inevitably ignore this and create volumes of legacy types.
+
+ Note that "images" and "rootdir" will never be passed explicitly as these are considered
+ deprecated.
+
+* Add a `vtype` entry to `list_images` return type.
+
+ For volumes which are known to be of type "vm-vol" or "ct-vol" the plugin *must* include a `vtype`
+ entry containing one of these values in the returned items.
+ For volumes without a type (eg. volumes created by previous versions of the plugin), the field
+ should not be set.
+
+* Add `type` parameter to `clone_image`.
+
+ If the `type` is set, transitioning from a new vtype ("vm-vol" or "ct-vol") to the old "images" or
+ "rootdir" types must be rejected, while transitioning *to* the new vtypes should be allowed.
+
+ The helper `PVE::Storage::Common::is_vtype_change_allowed(from, to)` can be used for this check.
+
+* Add `import_type` parameter to `volume_import`.
+
+ The behavior should be similar to `rename_volume`.
+
## Version 11:

* Allow declaring storage features via plugin data