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.bek...@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 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel