On 15.04.21 13:53, Aaron Lauterer wrote: > Just adding the functionality on the top level Plugin.pm could have some > potential ugly side effects for 3rd party plugins that do not yet handle that > call themselves. So to be on the safe side, by default we rather fail right > there (was discussed a versions ago).
I may have forgotten the old discussion, but I do not think that this is a problem. External plugins can detect if they require it and implement it, and actually, we could just check the ABI version a plugin provides on calling the base method and error out if it's less than the one where we introduced this method. > IMHO it would be nice though to change the structure of the storage plugins a > bit. E.g. instead of assuming dir/file storages for Plugin.pm, having a basic > abstraction specifically for any directory/file based storage which handles > all the common tasks and further down the hierarchy the specific > implementations regarding mounting and such. But that would mean a hard break > of the current approach, especially for 3rd party plugins. That sounds actually quite like what we already have, rather the base plugin module should just provide the set of methods with a `die "implement me"`, and probably only that, i.e., be a plain abstract interface. But that's quite some change involved and requires a ABI version break as all plugins would need to adapt to that one, and the benefit is meh, at least for our internal ones; and after all those are the ones we actually support. _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel