[pve-devel] [PATCH storage] map_volume: fallback to 'path'

Mira Limbeck m.limbeck at proxmox.com
Fri Apr 26 15:00:57 CEST 2019


Adds a fallback to 'Plugin::path' in the default implementation of
'map_volume' to make the additional call to 'path' unnecessary if
'map_volume' is not implemented in the plugin used. 'Plugin::path' is now
always returned if the plugin in question does not override 'map_volume'.

Signed-off-by: Mira Limbeck <m.limbeck at proxmox.com>
---
This change was discussed with @Wolfgang off-list. It should simplify
the use-case of calling 'map_volume' followed by 'path' if it is not
defined as found for example in pve-container/src/API2/LXC.pm:
my $path = PVE::Storage::map_volume($storage_cfg, $volid);
$path = PVE::Storage::path($storage_cfg, $volid) if !defined($path);

 PVE/Storage/Plugin.pm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
index 7964441..6b428d7 100644
--- a/PVE/Storage/Plugin.pm
+++ b/PVE/Storage/Plugin.pm
@@ -966,7 +966,8 @@ sub deactivate_storage {
 sub map_volume {
     my ($class, $storeid, $scfg, $volname, $snapname) = @_;
 
-    return undef;
+    my ($path, $vmid, $vtype) = $class->path($scfg, $volname, $storeid, $snapname);
+    return wantarray ? ($path, $vmid, $vtype) : $path;
 }
 
 sub unmap_volume {
-- 
2.11.0





More information about the pve-devel mailing list