On 11/21/19 11:43 AM, Tim Marx wrote: > The bugfix for #2317 introduced a kind of odd api behavior, where each volume > was returned twice from our api if a storage has both 'rootdir' & 'images' > content > types enabled. To give the content type of the volume an actual meaning, it is > now inferred from the associated guest, if there's no guest or we don't > have an owner for that volume we default to 'images'. > > At the volume level, there is no option to list volumes > based on content types, since the volumes do not know what type they are > actually > used for. > > Signed-off-by: Tim Marx <t.m...@proxmox.com> > --- > > changed v3: > * adapted commit message > * default to images for all volumes except if there's a lxc container with > that id >
applied, with a followup... > PVE/Storage/Plugin.pm | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm > index 88da231..2573cb7 100644 > --- a/PVE/Storage/Plugin.pm > +++ b/PVE/Storage/Plugin.pm > @@ -937,7 +937,7 @@ sub list_volumes { > my ($class, $storeid, $scfg, $vmid, $content_types) = @_; > > my $res = []; > - > + my $vmlist = PVE::Cluster::get_vmlist(); > foreach my $ct (@$content_types) { > my $data; > > @@ -960,7 +960,22 @@ sub list_volumes { > next if !$data; > > foreach my $item (@$data) { > - $item->{content} = $ct; > + if ($ct eq 'images' || $ct eq 'rootdir') { > + > + my $vmtype = $vmlist->{ids}->{$item->{vmid}}->{type}; > + if (defined($vmtype) && $vmtype eq 'lxc') { > + $item->{content} = 'rootdir'; > + } else { > + $item->{content} = 'images'; > + } > + if (!($ct eq $item->{content})) { > + next; > + } ...just used: next if $type ne $item->{content}; as perl has a not-equal, it's not required to negate the eq ;) _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel