This fixes a regression caused by an abs_filesystem_path call introduced
with OCI image support. When trying to restore a container from a
Proxmox Backup Server, this tried to resolve a path on a PBS datastore
as a local file system path. This is fixed by only calling
abs_filesystem_path on path-based storages.

Fixes: 2aed26d320ae ("add support for OCI images as container
templates")

Signed-off-by: Filip Schauer <[email protected]>
---
 src/PVE/API2/LXC.pm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index cffa17a..dd4fdc8 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -543,8 +543,12 @@ __PACKAGE__->register_method({
                 eval {
                     my $rootdir = PVE::LXC::mount_all($vmid, $storage_cfg, 
$conf, 1);
                     my $archivepath = '-';
-                    $archivepath = 
PVE::Storage::abs_filesystem_path($storage_cfg, $archive)
-                        if ($archive ne '-');
+                    if ($archive ne '-') {
+                        my $archive_sid = 
(PVE::Storage::parse_volume_id($archive))[0];
+                        my $scfg = PVE::Storage::storage_config($storage_cfg, 
$archive_sid);
+                        $archivepath = 
PVE::Storage::abs_filesystem_path($storage_cfg, $archive)
+                            if $scfg->{path};
+                    }
                     $bwlimit = PVE::Storage::get_bandwidth_limit(
                         'restore', [keys %used_storages], $bwlimit,
                     );
-- 
2.47.3



_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to