mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-07-09 15:50:07 +00:00
remove running from Storage and check it in QemuServer
It is better to check if a VM is running in QemuServer then in Storage. for the Storage there is no difference if it is running or not. Signed-off-by: Wolfgang Link <w.link@proxmox.com>
This commit is contained in:
parent
7180955830
commit
e5eaa02815
@ -31,6 +31,8 @@ use PVE::QMPClient;
|
|||||||
use PVE::RPCEnvironment;
|
use PVE::RPCEnvironment;
|
||||||
use Time::HiRes qw(gettimeofday);
|
use Time::HiRes qw(gettimeofday);
|
||||||
|
|
||||||
|
my $qemu_snap_storage = {rbd => 1, sheepdog => 1};
|
||||||
|
|
||||||
my $cpuinfo = PVE::ProcFSTools::read_cpuinfo();
|
my $cpuinfo = PVE::ProcFSTools::read_cpuinfo();
|
||||||
|
|
||||||
# Note about locking: we use flock on the config file protect
|
# Note about locking: we use flock on the config file protect
|
||||||
@ -3777,12 +3779,11 @@ sub qemu_volume_snapshot {
|
|||||||
|
|
||||||
my $running = check_running($vmid);
|
my $running = check_running($vmid);
|
||||||
|
|
||||||
return if !PVE::Storage::volume_snapshot($storecfg, $volid, $snap, $running);
|
if ($running && do_snapshots_with_qemu($storecfg, $volid)){
|
||||||
|
|
||||||
return if !$running;
|
|
||||||
|
|
||||||
vm_mon_cmd($vmid, "snapshot-drive", device => $deviceid, name => $snap);
|
vm_mon_cmd($vmid, "snapshot-drive", device => $deviceid, name => $snap);
|
||||||
|
} else {
|
||||||
|
PVE::Storage::volume_snapshot($storecfg, $volid, $snap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub qemu_volume_snapshot_delete {
|
sub qemu_volume_snapshot_delete {
|
||||||
@ -5772,6 +5773,22 @@ my $savevm_wait = sub {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sub do_snapshots_with_qemu {
|
||||||
|
my ($storecfg, $volid) = @_;
|
||||||
|
|
||||||
|
my $storage_name = PVE::Storage::parse_volume_id($volid);
|
||||||
|
|
||||||
|
if ($qemu_snap_storage->{$storecfg->{ids}->{$storage_name}->{type}} ){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($volid =~ m/\.(qcow2|qed)$/){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
sub snapshot_create {
|
sub snapshot_create {
|
||||||
my ($vmid, $snapname, $save_vmstate, $comment) = @_;
|
my ($vmid, $snapname, $save_vmstate, $comment) = @_;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user