storage: volume_snapshot: add $running param

This add a $running param to volume_snapshot,
it can be used if some extra actions need to be done at the storage
layer when the snapshot has already be done at qemu level.

Signed-off-by: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
This commit is contained in:
Alexandre Derumier
2025-07-09 18:21:56 +02:00
committed by Wolfgang Bumiller
parent 73bfe226d6
commit bb21ba381d
10 changed files with 14 additions and 10 deletions

View File

@ -22,6 +22,10 @@ Future changes should be documented in here.
Feel free to request allowing more drivers or options on the pve-devel mailing list based on your
needs.
* Add `running` parameter to `volume_snapshot()`
The parameter *can* be used if some extra actions need to be done at the storage
layer when the snapshot has already be done at qemu level when the vm is running.
## Version 11:
* Allow declaring storage features via plugin data

View File

@ -449,13 +449,13 @@ sub volume_rollback_is_possible {
}
sub volume_snapshot {
my ($cfg, $volid, $snap) = @_;
my ($cfg, $volid, $snap, $running) = @_;
my ($storeid, $volname) = parse_volume_id($volid, 1);
if ($storeid) {
my $scfg = storage_config($cfg, $storeid);
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
return $plugin->volume_snapshot($scfg, $storeid, $volname, $snap);
return $plugin->volume_snapshot($scfg, $storeid, $volname, $snap, $running);
} elsif ($volid =~ m|^(/.+)$| && -e $volid) {
die "snapshot file/device '$volid' is not possible\n";
} else {

View File

@ -555,7 +555,7 @@ sub volume_size_info {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
die "creating snapshots is not supported for $class\n";
}

View File

@ -232,7 +232,7 @@ sub volume_resize {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
die "volume snapshot is not possible on iscsi device\n";
}

View File

@ -702,7 +702,7 @@ sub volume_size_info {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
die "lvm snapshot is not implemented";
}

View File

@ -353,7 +353,7 @@ sub create_base {
# sub volume_resize {} reuse code from parent class
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
my $vg = $scfg->{vgname};
my $snapvol = "snap_${volname}_$snap";

View File

@ -966,7 +966,7 @@ sub volume_resize {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
die "volume snapshot is not possible on pbs device";
}

View File

@ -1314,7 +1314,7 @@ sub volume_resize {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
die "can't snapshot this image format\n" if $volname !~ m/\.(qcow2|qed)$/;

View File

@ -868,7 +868,7 @@ sub volume_resize {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
my ($vtype, $name, $vmid) = $class->parse_volname($volname);

View File

@ -480,7 +480,7 @@ sub volume_size_info {
}
sub volume_snapshot {
my ($class, $scfg, $storeid, $volname, $snap) = @_;
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
my $vname = ($class->parse_volname($volname))[1];