[pve-devel] [PATCH v2 qemu-server 5/5] hotplug_pending: allow partial fast plugging

Thomas Lamprecht t.lamprecht at proxmox.com
Thu Mar 12 14:18:07 CET 2020


On 3/12/20 2:11 PM, Oguz Bektas wrote:
> On Tue, Mar 10, 2020 at 11:25:23AM +0100, Thomas Lamprecht wrote:
>> On 2/19/20 5:07 PM, Oguz Bektas wrote:
>>> 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
>>> +	},
>>> +    },
>>> +};
>> this belongs solely in the get_partial_fast_plug_option method, I do not want
>> to tighten the cyclic use of both modules and it's not required here.
> when we move the hash to QemuConfig it complains about $agent_fmt which
> resides in QemuServer (as well as other formats which could be used
> later on for partial fastplugging). that was the initial reason i added
> it there because i didn't want to move the formats. should we change the
> definitions from 'my' to 'our' to use them in QemuConfig? or how to
> handle this better?
> 

Ah yeah, in the longer run the schemas should move to QemuConfig in the longer run,
IIRC some discussions. 




More information about the pve-devel mailing list