[pve-devel] [PATCH v2 qemu-server 5/5] hotplug_pending: allow partial fast plugging
Oguz Bektas
o.bektas at proxmox.com
Wed Feb 19 17:07:59 CET 2020
adds a loop after the main fastplug loop, to check if any of the options
are partially fast pluggable.
these are defined in $partial_fast_plug_option
Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---
v1->v2:
* set $changes according to partial_fast_plug result as well as fast_plug result
* do cleanup_pending before writing fastplug changes
PVE/QemuConfig.pm | 7 +++++++
PVE/QemuServer.pm | 19 +++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/PVE/QemuConfig.pm b/PVE/QemuConfig.pm
index 1ba728a..d1727b2 100644
--- a/PVE/QemuConfig.pm
+++ b/PVE/QemuConfig.pm
@@ -399,6 +399,13 @@ sub __snapshot_foreach_volume {
PVE::QemuServer::foreach_drive($conf, $func);
}
+
+sub get_partial_fast_plug_option {
+ my ($class) = @_;
+
+ return $PVE::QemuServer::partial_fast_plug_option;
+}
+
# END implemented abstract methods from PVE::AbstractConfig
1;
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 44d0dee..8a689a0 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -4732,6 +4732,18 @@ my $fast_plug_option = {
'tags' => 1,
};
+# name of opt
+# -> fmt -> format variable
+# -> properties -> fastpluggable options hash
+our $partial_fast_plug_option = {
+ agent => {
+ fmt => $agent_fmt,
+ properties => {
+ fstrim_cloned_disks => 1
+ },
+ },
+};
+
# hotplug changes in [PENDING]
# $selection hash can be used to only apply specified options, for
# example: { cores => 1 } (only apply changed 'cores')
@@ -4761,7 +4773,14 @@ sub vmconfig_hotplug_pending {
}
}
+ foreach my $opt (keys %{$conf->{pending}}) {
+ if ($partial_fast_plug_option->{$opt}) {
+ $changes ||= PVE::QemuConfig->partial_fast_plug($conf, $opt);
+ }
+ }
+
if ($changes) {
+ PVE::QemuConfig->cleanup_pending($conf);
PVE::QemuConfig->write_config($vmid, $conf);
}
--
2.20.1
More information about the pve-devel
mailing list