Fixing the lost of the initial state after a task recovery.

Signed-off-by: bnechyporenko <bnechyporenko@bol.com>
This commit is contained in:
bnechyporenko
2024-03-13 09:01:56 +01:00
parent 3e0cdbf026
commit e5f26f9f2d
3 changed files with 13 additions and 0 deletions
@@ -268,6 +268,16 @@ export class DatabaseTaskStore implements TaskStore {
return undefined;
}
const getState = () => {
try {
return task.state ? JSON.parse(task.state) : undefined;
} catch (error) {
throw new Error(
`Failed to parse state of the task '${task.id}', ${error}`,
);
}
};
const secrets = this.parseTaskSecrets(task);
return {
id: task.id,
@@ -277,6 +287,7 @@ export class DatabaseTaskStore implements TaskStore {
createdAt: task.created_at,
createdBy: task.created_by ?? undefined,
secrets,
state: getState(),
};
});
}
@@ -314,6 +314,7 @@ export class StorageTaskBroker implements TaskBroker {
spec: pendingTask.spec,
secrets: pendingTask.secrets,
createdBy: pendingTask.createdBy,
state: pendingTask.state,
},
this.storage,
abortController.signal,
@@ -59,6 +59,7 @@ export type SerializedTask = {
lastHeartbeatAt?: string;
createdBy?: string;
secrets?: TaskSecrets;
state?: JsonObject;
};
/**