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 {
my ($class, $scfg, $volname, $snapname) = @_;
@ -773,11 +781,10 @@ sub volume_snapshot_info {
my $get_snapname_from_path = sub {
my ($volname, $path) = @_;
my $basepath = basename($path);
my $name = ($volname =~ s/\.[^.]+$//r);
if ($basepath =~ m/^snap_${name}_(.*)\.qcow2$/) {
return $1;
} elsif ($basepath eq $volname) {
my $name = basename($path);
if (my $snapname = parse_snap_name($name)) {
return $snapname;
} elsif ($name eq $volname) {
return 'current';
}
return undef;

View file

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