[pve-devel] [PATCH pve-guest-common 1/1] Add abstract methods for pre/post-migrate hooks

Stefan Hanreich s.hanreich at proxmox.com
Tue Sep 27 09:40:31 CEST 2022



On 9/26/22 17:27, Thomas Lamprecht wrote:
> Am 22/09/2022 um 16:13 schrieb Stefan Hanreich:
>> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
>> ---
>>   src/PVE/AbstractMigrate.pm | 14 ++++++++++++++
>>   1 file changed, 14 insertions(+)
>>
> 
> for the record, if we do it like this (not much rationale given in the commit message)
> this breaks containers and qemu-server without such an implementation and needs the
> respective Breaks/Depends entries in d/control (which you cannot add as you cannot
> predict the exact version this would get actually added).
>

I figured this might pose some problems when releasing. Is there any way 
I can work around this (also for future patches)? Or do we have to bump 
all 3 packages at once? Anything I should change in particular in this 
case (if we stick to having the hooks in the common package..)

Do you think it might be smarter to move the hooks into the respective 
backend? It shouldn't be too much of a hassle. Maybe it is a smarter 
idea after all, since it allows for more fine-grained control of when 
the hooks should be run exactly.

>> diff --git a/src/PVE/AbstractMigrate.pm b/src/PVE/AbstractMigrate.pm
>> index d90e5b7..5e03488 100644
>> --- a/src/PVE/AbstractMigrate.pm
>> +++ b/src/PVE/AbstractMigrate.pm
>> @@ -178,6 +178,8 @@ sub migrate {
>>   	        "public key authentication\n" if $@;
>>   	}
>>   
>> +	$self->pre_migration_hooks($self->{vmid});
>> +
>>   	&$eval_int($self, sub { $self->phase1($self->{vmid}); });
>>   	my $err = $@;
>>   	if ($err) {
>> @@ -228,6 +230,8 @@ sub migrate {
>>   	    $self->log('err', $err);
>>   	    $self->{errors} = 1;
>>   	}
>> +
>> +	$self->post_migration_hooks($self->{vmid});
>>       })};
>>   
>>       my $err = $@;
>> @@ -368,4 +372,14 @@ sub get_bwlimit {
>>       return $bwlimit;
>>   }
>>   
>> +sub pre_migration_hooks {
>> +    my ($self, $vmid) = @_;
>> +    die "abstract method - implement me";
>> +}
>> +
>> +sub post_migration_hooks {
>> +    my ($self, $vmid) = @_;
>> +    die "abstract method - implement me";
>> +}
>> +
>>   1;
> 





More information about the pve-devel mailing list