- my $logfunc = sub { my ($msg) = @_; $self->log('info', $msg); };
- $rep_volumes = PVE::Replication::run_replication(
- 'PVE::QemuConfig', $jobcfg, $start_time, $start_time, $logfunc);
+ my $logfunc = sub { $self->log('info', shift) };
+ $self->{replicated_volumes} = PVE::Replication::run_replication(
+ 'PVE::QemuConfig', $replication_jobcfg, $start_time, $start_time, $logfunc);
+ }
+
+ # sizes in config have to be accurate for remote node to correctly
+ # allocate disks, rescan to be sure
+ my $volid_hash = PVE::QemuServer::scan_volids($storecfg, $vmid);
+ PVE::QemuConfig->foreach_volume($conf, sub {
+ my ($key, $drive) = @_;
+ my ($updated, $old_size, $new_size) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash);
+ if (defined($updated)) {
+ $conf->{$key} = PVE::QemuServer::print_drive($updated);
+ $self->log('info', "size of disk '$updated->{file}' ($key) updated from $old_size to $new_size\n");
+ }
+ });
+
+ # we want to set the efidisk size in the config to the size of the
+ # real OVMF_VARS.fd image, else we can create a too big image, which does not work
+ if (defined($conf->{efidisk0})) {
+ PVE::QemuServer::update_efidisk_size($conf);