Which looks up whether a storage supports a given feature in its 'plugindata'. This is intentionally kept simple and not implemented as a plugin method for now. Should it ever become more complex requiring plugins to override the default implementation, it can later be changed to a method.
Suggested-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- New in v3. src/PVE/Storage.pm | 8 ++++++++ src/PVE/Storage/Plugin.pm | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm index 57b2038..e251056 100755 --- a/src/PVE/Storage.pm +++ b/src/PVE/Storage.pm @@ -204,6 +204,14 @@ sub storage_check_enabled { return storage_check_node($cfg, $storeid, $node, $noerr); } +sub storage_has_feature { + my ($cfg, $storeid, $feature) = @_; + + my $scfg = storage_config($cfg, $storeid); + + return PVE::Storage::Plugin::storage_has_feature($scfg->{type}, $feature); +} + # storage_can_replicate: # return true if storage supports replication # (volumes allocated with vdisk_alloc() has replication feature) diff --git a/src/PVE/Storage/Plugin.pm b/src/PVE/Storage/Plugin.pm index 8cc693c..6071e45 100644 --- a/src/PVE/Storage/Plugin.pm +++ b/src/PVE/Storage/Plugin.pm @@ -244,6 +244,16 @@ sub dirs_hash_to_string { return join(',', map { "$_=$hash->{$_}" } sort keys %$hash); } +sub storage_has_feature { + my ($type, $feature) = @_; + + my $data = $defaultData->{plugindata}->{$type}; + if (my $features = $data->{features}) { + return $features->{$feature}; + } + return; +} + sub default_format { my ($scfg) = @_; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel