return extract_job_state($stateobj, $jobcfg);
}
+# update state for a single job
sub write_job_state {
my ($jobcfg, $state) = @_;
PVE::GuestHelpers::guest_migration_lock($vmid, undef, $code);
}
+# update all job states related to a specific $vmid
+sub write_vmid_job_states {
+ my ($vmid_state, $vmid) = @_;
+
+ my $update = sub {
+ my $stateobj = read_state();
+ $stateobj->{$vmid} = $vmid_state;
+ PVE::Tools::file_set_contents($state_path, encode_json($stateobj));
+ };
+
+ my $code = sub {
+ PVE::Tools::lock_file($state_lock, 10, $update);
+ die $@ if $@;
+ };
+
+ # make sure we have guest_migration_lock during update
+ PVE::GuestHelpers::guest_migration_lock($vmid, undef, $code);
+}
+
sub replication_snapshot_name {
my ($jobid, $last_sync) = @_;