Introduce qemu_blockdev_options() plugin method. In terms of the plugin API only, adding the qemu_blockdev_options() method is a fully backwards-compatible change. When qemu-server will switch to '-blockdev' however, plugins where the default implemenation is not sufficient, will not be usable for virtual machines anymore. Therefore, this is intended for the next major release, Proxmox VE 9.
Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- New in v2. ApiChangeLog | 13 +++++++++++++ src/PVE/Storage.pm | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ApiChangeLog b/ApiChangeLog index 987da54..062e75b 100644 --- a/ApiChangeLog +++ b/ApiChangeLog @@ -6,6 +6,19 @@ without breaking anything unaware of it.) Future changes should be documented in here. +## Version 12: + +* Introduce `qemu_blockdev_options()` plugin method + + Proxmox VE will switch to the more modern QEMU command line option `-blockdev` replacing `-drive`. + With `-drive`, it was enough to specify a path, where special protocol paths like `iscsi://` were + also supported. With `-blockdev`, the data is more structured, a driver needs to be specified + alongside the path to an image and each driver supports driver-specific options. Most storage + plugins should be fine using driver `host_device` in case of a block device and `file` in case of + a file and no special options, see the default implemenation of the base plugin. Implement this + this method for Proxmox VE 9. For available drivers and driver-specific options, see: + https://qemu.readthedocs.io/en/master/interop/qemu-qmp-ref.html#object-QMP-block-core.BlockdevOptions + ## Version 11: * Allow declaring storage features via plugin data diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm index 3b0f07e..39bb492 100755 --- a/src/PVE/Storage.pm +++ b/src/PVE/Storage.pm @@ -42,11 +42,11 @@ use PVE::Storage::BTRFSPlugin; use PVE::Storage::ESXiPlugin; # Storage API version. Increment it on changes in storage API interface. -use constant APIVER => 11; +use constant APIVER => 12; # Age is the number of versions we're backward compatible with. # This is like having 'current=APIVER' and age='APIAGE' in libtool, # see https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html -use constant APIAGE => 2; +use constant APIAGE => 3; our $KNOWN_EXPORT_FORMATS = ['raw+size', 'tar+size', 'qcow2+size', 'vmdk+size', 'zfs', 'btrfs']; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel