Fixing the lost of the initial state after a task recovery.
Signed-off-by: bnechyporenko <bnechyporenko@bol.com>
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user