plugin: lvmplugin: add parse_snap_name

Signed-off-by: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
This commit is contained in:
Alexandre Derumier
2025-07-16 08:31:50 +02:00
committed by Wolfgang Bumiller
parent 618b5bc3d8
commit 1dab17545c
2 changed files with 25 additions and 9 deletions

View File

@ -458,6 +458,14 @@ my sub get_snap_name {
} }
} }
my sub parse_snap_name {
my ($name) = @_;
if ($name =~ m/^snap_\S+_(.*)\.qcow2$/) {
return $1;
}
}
sub filesystem_path { sub filesystem_path {
my ($class, $scfg, $volname, $snapname) = @_; my ($class, $scfg, $volname, $snapname) = @_;
@ -773,11 +781,10 @@ sub volume_snapshot_info {
my $get_snapname_from_path = sub { my $get_snapname_from_path = sub {
my ($volname, $path) = @_; my ($volname, $path) = @_;
my $basepath = basename($path); my $name = basename($path);
my $name = ($volname =~ s/\.[^.]+$//r); if (my $snapname = parse_snap_name($name)) {
if ($basepath =~ m/^snap_${name}_(.*)\.qcow2$/) { return $snapname;
return $1; } elsif ($name eq $volname) {
} elsif ($basepath eq $volname) {
return 'current'; return 'current';
} }
return undef; return undef;

View File

@ -779,6 +779,14 @@ my sub get_snap_name {
return $name; return $name;
} }
my sub parse_snap_name {
my ($name) = @_;
if ($name =~ m/^snap-(.*)-vm(.*)$/) {
return $1;
}
}
sub filesystem_path { sub filesystem_path {
my ($class, $scfg, $volname, $snapname) = @_; my ($class, $scfg, $volname, $snapname) = @_;
@ -1728,10 +1736,11 @@ sub volume_snapshot_info {
my $get_snapname_from_path = sub { my $get_snapname_from_path = sub {
my ($volname, $path) = @_; my ($volname, $path) = @_;
my $basepath = basename($path); my $name = basename($path);
if ($basepath =~ m/^snap-(.*)-vm(.*)$/) {
return $1; if (my $snapname = parse_snap_name($name)) {
} elsif ($basepath eq basename($volname)) { return $snapname;
} elsif ($name eq basename($volname)) {
return 'current'; return 'current';
} }
return undef; return undef;