description => "Enable/disable ACPI.",
default => 1,
},
- qga => {
+ agent => {
optional => 1,
type => 'boolean',
description => "Enable/disable Qemu GuestAgent.",
- default => 1,
+ default => 0,
},
kvm => {
optional => 1,
#push @$cmd, '-soundhw', 'es1370';
#push @$cmd, '-soundhw', $soundhw if $soundhw;
- if($conf->{qga}) {
+ if($conf->{agent}) {
my $qgasocket = qga_socket($vmid);
my $pciaddr = print_pci_addr("qga0", $bridges);
push @$devices, '-chardev', "socket,path=$qgasocket,server,nowait,id=qga0";
}
+sub qemu_volume_snapshot {
+ my ($vmid, $deviceid, $storecfg, $volid, $snap) = @_;
+
+ my $running = PVE::QemuServer::check_running($vmid);
+
+ return if !PVE::Storage::volume_snapshot($storecfg, $volid, $snap, $running);
+
+ return if !$running;
+
+ vm_mon_cmd($vmid, "snapshot-drive", device => $deviceid, name => $snap);
+
+}
+
+sub qemu_volume_snapshot_delete {
+ my ($vmid, $deviceid, $storecfg, $volid, $snap) = @_;
+
+ #need to implement statefile location
+ my $statefile="/tmp/$vmid-$snap";
+
+ unlink $statefile if -e $statefile;
+
+ my $running = PVE::QemuServer::check_running($vmid);
+
+ return if !PVE::Storage::volume_snapshot_delete($storecfg, $volid, $snap, $running);
+
+ return if !$running;
+
+ #need to split delvm monitor command like savevm
+
+}
+
+sub qemu_snapshot_start {
+ my ($vmid, $snap) = @_;
+
+ #need to implement statefile location
+ my $statefile="/tmp/$vmid-$snap";
+
+ vm_mon_cmd($vmid, "snapshot-start", statefile => $statefile);
+
+}
+
+sub qemu_snapshot_end {
+ my ($vmid) = @_;
+
+ vm_mon_cmd($vmid, "snapshot-end");
+
+}
+
+sub qga_freezefs {
+ my ($vmid) = @_;
+
+ #need to impplement call to qemu-ga
+}
+
+sub qga_unfreezefs {
+ my ($vmid) = @_;
+
+ #need to impplement call to qemu-ga
+}
+
sub vm_start {
my ($storecfg, $vmid, $statefile, $skiplock, $migratedfrom) = @_;