Relevant for the 'clone' feature, because Plugin.pm's clone_image always produces qcow2. Also fixed style for neighboring if/else block.
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- Previous discussion: https://pve.proxmox.com/pipermail/pve-devel/2020-March/042472.html Changes from v1: * As Fabian G. pointed out, templates are not impossible on directory based storages, but linked cloning (currently) is. So fix the storage backend and get rid of the wrong checks. This solution doesn't need an API change. It does need PVE::Cluster which is used by list_images already. PVE/Storage/Plugin.pm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm index 2232261..8baa410 100644 --- a/PVE/Storage/Plugin.pm +++ b/PVE/Storage/Plugin.pm @@ -844,13 +844,19 @@ sub volume_has_feature { my ($vtype, $name, $vmid, $basename, $basevmid, $isBase, $format) = $class->parse_volname($volname); + my $vmlist = PVE::Cluster::get_vmlist(); + my $vminfo = $vmlist->{ids}->{$vmid}; + my $key = undef; - if($snapname){ - $key = 'snap'; - }else{ - $key = $isBase ? 'base' : 'current'; + if ($snapname) { + $key = 'snap'; + } else { + $key = $isBase ? 'base' : 'current'; } + # clone_images produces a qcow2 image + return 0 if defined($vminfo) && $vminfo->{type} eq 'lxc' && $feature eq 'clone'; + return 1 if defined($features->{$feature}->{$key}->{$format}); return undef; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel