using the new option valid_target_formats. This is necessary, because clone_image can result in a qcow2 image being created (on directory based storages) which is not valid for LXC.
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- src/PVE/API2/LXC.pm | 2 +- src/PVE/LXC/Config.pm | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm index a5aa5fc..ddf417b 100644 --- a/src/PVE/API2/LXC.pm +++ b/src/PVE/API2/LXC.pm @@ -1440,7 +1440,7 @@ __PACKAGE__->register_method({ } else { # not full means clone instead of copy die "Linked clone feature for '$volid' is not available\n" - if !PVE::Storage::volume_has_feature($storecfg, 'clone', $volid, $snapname, $running); + if !PVE::Storage::volume_has_feature($storecfg, 'clone', $volid, $snapname, $running, {'valid_target_formats' => ['raw', 'subvol']}); } $mountpoints->{$opt} = $mp; diff --git a/src/PVE/LXC/Config.pm b/src/PVE/LXC/Config.pm index e88ba0b..ea5b689 100644 --- a/src/PVE/LXC/Config.pm +++ b/src/PVE/LXC/Config.pm @@ -62,6 +62,11 @@ sub has_feature { my ($class, $feature, $conf, $storecfg, $snapname, $running, $backup_only) = @_; my $err; + my $opts; + if ($feature eq 'copy' || $feature eq 'clone') { + $opts = {'valid_target_formats' => ['raw', 'subvol']}; + } + $class->foreach_mountpoint($conf, sub { my ($ms, $mountpoint) = @_; @@ -71,7 +76,7 @@ sub has_feature { $err = 1 if !PVE::Storage::volume_has_feature($storecfg, $feature, $mountpoint->{volume}, - $snapname, $running); + $snapname, $running, $opts); }); return $err ? 0 : 1; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel