with a small style follow-up, thanks! create_base prints a warning (before this patch as well):
> WARNING: Combining activation change with other commands is not advised. maybe we could get rid of that one? I guess it doesn't like `-an` combined with other stuff.. On December 19, 2023 3:03 pm, Hannes Duerr wrote: > for base images we call the volume_import of the parent plugin and pass > it as vm-image instead of base-image, then convert it back as base-image > > Signed-off-by: Hannes Duerr <h.du...@proxmox.com> > --- > src/PVE/Storage/LvmThinPlugin.pm | 50 ++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > diff --git a/src/PVE/Storage/LvmThinPlugin.pm > b/src/PVE/Storage/LvmThinPlugin.pm > index 1d2e37c..96f619b 100644 > --- a/src/PVE/Storage/LvmThinPlugin.pm > +++ b/src/PVE/Storage/LvmThinPlugin.pm > @@ -383,6 +383,56 @@ sub volume_has_feature { > return undef; > } > > +sub volume_import { > + my ($class, $scfg, $storeid, $fh, $volname, $format, $snapshot, > $base_snapshot, $with_snapshots, $allow_rename) = @_; > + > + my ($vtype, $name, $vmid, $basename, $basevmid, $isBase, $file_format) = > + $class->parse_volname($volname); > + > + if (!$isBase) { > + return $class->SUPER::volume_import( > + $scfg, > + $storeid, > + $fh, > + $volname, > + $format, > + $snapshot, > + $base_snapshot, > + $with_snapshots, > + $allow_rename > + ); > + } else { > + my $tempname; > + my $vg = $scfg->{vgname}; > + my $lvs = PVE::Storage::LVMPlugin::lvm_list_volumes($vg); > + if ($lvs->{$vg}->{$volname}) { > + die "volume $vg/$volname already exists\n" if !$allow_rename; > + warn "volume $vg/$volname already exists - importing with a > different name\n"; > + > + $tempname = $class->find_free_diskname($storeid, $scfg, $vmid); > + } else { > + $tempname = $volname; > + $tempname =~ s/base/vm/; > + } > + > + ($storeid,my $newname) = > PVE::Storage::parse_volume_id($class->SUPER::volume_import( > + $scfg, > + $storeid, > + $fh, > + $tempname, > + $format, > + $snapshot, > + $base_snapshot, > + $with_snapshots, > + $allow_rename > + )); > + > + $volname = $class->create_base($storeid, $scfg, $newname); > + } > + > + return "$storeid:$volname"; > +} > + > # used in LVMPlugin->volume_import > sub volume_import_write { > my ($class, $input_fh, $output_file) = @_; > -- > 2.39.2 > > > > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel