mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-08-14 10:19:29 +00:00
migration: test targetnode min version for cloudinit section
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
This commit is contained in:
parent
31280b4b72
commit
9c88e85446
@ -122,6 +122,14 @@ sub prepare {
|
||||
# test if VM exists
|
||||
my $conf = $self->{vmconf} = PVE::QemuConfig->load_config($vmid);
|
||||
|
||||
my $version = PVE::QemuServer::Helpers::get_node_pvecfg_version($self->{node});
|
||||
my $cloudinit_config = $conf->{cloudinit};
|
||||
|
||||
if (defined($cloudinit_config) && keys %$cloudinit_config &&
|
||||
!PVE::QemuServer::Helpers::pvecfg_min_version($version, 7, 2, 5)) {
|
||||
die "target node is too old and doesn't support new cloudinit section\n";
|
||||
}
|
||||
|
||||
my $repl_conf = PVE::ReplicationConfig->new();
|
||||
$self->{replication_jobcfg} = $repl_conf->find_local_replication_job($vmid, $self->{node});
|
||||
$self->{is_replicated} = $repl_conf->check_for_existing_jobs($vmid, 1);
|
||||
|
@ -4,6 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use File::stat;
|
||||
use JSON;
|
||||
|
||||
use PVE::INotify;
|
||||
use PVE::ProcFSTools;
|
||||
@ -161,4 +162,27 @@ sub config_aware_timeout {
|
||||
return $timeout;
|
||||
}
|
||||
|
||||
sub get_node_pvecfg_version {
|
||||
my ($node) = @_;
|
||||
|
||||
my $nodes_version_info = PVE::Cluster::get_node_kv('version-info', $node);
|
||||
return if !$nodes_version_info->{$node};
|
||||
|
||||
my $version_info = decode_json($nodes_version_info->{$node});
|
||||
return $version_info->{version};
|
||||
}
|
||||
|
||||
sub pvecfg_min_version {
|
||||
my ($verstr, $major, $minor, $release) = @_;
|
||||
|
||||
return 0 if !$verstr;
|
||||
|
||||
if ($verstr =~ m/^(\d+)\.(\d+)-(\d+)/) {
|
||||
return 1 if version_cmp($1, $major, $2, $minor, $3, $release) >= 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
die "internal error: cannot check version of invalid string '$verstr'";
|
||||
}
|
||||
|
||||
1;
|
||||
|
Loading…
Reference in New Issue
Block a user