[pve-devel] [PATCH storage] volume import: assume target API version is at least 9

Fiona Ebner f.ebner at proxmox.com
Thu Jul 4 12:28:41 CEST 2024


Am 04.07.24 um 11:52 schrieb Thomas Lamprecht:
> Am 10/06/2024 um 11:04 schrieb Fiona Ebner:
>> The storage API version has been bumped to at least 9 since
>> libpve-storage = 7.0-4. If the source node is on Proxmox VE 8, where
>> this change will come in, then the target node can be assumed to be
>> running either Proxmox VE 8 or, during upgrade, the latest version of
>> Proxmox VE 7.4, so it's safe to assume a storage API version of at
>> least 9 in all cases.
> 
> it's fine by me that this was applied, but can we somehow assert this
> assumption with an early `die if $apiver < 7` ? (maybe don't die if the
> apiver could not be queried/parsed, i.e. is undef, if there are
> legitimate situations where this can happen).
> 

Why version 7? We'd need to distinguish between there not being an
apiinfo API call and other errors. The previous code did just continue
if not being able to query (punting version to 1) and that lead to the
very issue reported by Maximiliano.

> While just one major release difference might be seen as enough, we still
> have users that are doing some more funky stuff on upgrades of clusters,
> so if it's somewhat easy to assert the assumption, doing so can
> definitively only help to improve UX.

Well, we'd have to put back in the apiinfo call for that. If using
version 9 for the check instead of 7, the only thing it would do is die
early when replicating back from an upgraded node to a node with
libpve-storage < 7.0-4

For offline guest disk migration, the base_snapshot check doesn't matter
so the only thing the check would catch is migrating back to a node with
api version < 5 which means libpve-storage-perl < 6.1-6.

I'd rather have the code cleaner than very slightly improve UX for users
running ancient versions.




More information about the pve-devel mailing list