|
@@ -221,25 +221,23 @@ export async function verifyProject(historyId, endTimestamp) {
|
|
|
export class BackupCorruptedError extends OError {}
|
|
export class BackupCorruptedError extends OError {}
|
|
|
export class BackupRPOViolationError extends OError {}
|
|
export class BackupRPOViolationError extends OError {}
|
|
|
|
|
|
|
|
|
|
+const HEALTH_CHECK_PROJECTS = JSON.parse(config.get('healthCheckProjects'))
|
|
|
export async function healthCheck() {
|
|
export async function healthCheck() {
|
|
|
- /** @type {Array<string>} */
|
|
|
|
|
- const HEALTH_CHECK_BLOBS = JSON.parse(config.get('healthCheckBlobs'))
|
|
|
|
|
- if (HEALTH_CHECK_BLOBS.length !== 2) {
|
|
|
|
|
- throw new Error('expected 2 healthCheckBlobs')
|
|
|
|
|
|
|
+ if (!Array.isArray(HEALTH_CHECK_PROJECTS)) {
|
|
|
|
|
+ throw new Error('expected healthCheckProjects to be an array')
|
|
|
}
|
|
}
|
|
|
- if (!HEALTH_CHECK_BLOBS.some(path => path.split('/')[0].length === 24)) {
|
|
|
|
|
- throw new Error('expected mongo id in healthCheckBlobs')
|
|
|
|
|
|
|
+ if (HEALTH_CHECK_PROJECTS.length !== 2) {
|
|
|
|
|
+ throw new Error('expected 2 healthCheckProjects')
|
|
|
}
|
|
}
|
|
|
- if (!HEALTH_CHECK_BLOBS.some(path => path.split('/')[0].length < 24)) {
|
|
|
|
|
- throw new Error('expected postgres id in healthCheckBlobs')
|
|
|
|
|
|
|
+ if (!HEALTH_CHECK_PROJECTS.some(id => id.length === 24)) {
|
|
|
|
|
+ throw new Error('expected mongo id in healthCheckProjects')
|
|
|
}
|
|
}
|
|
|
- if (HEALTH_CHECK_BLOBS.some(path => path.split('/')[1]?.length !== 40)) {
|
|
|
|
|
- throw new Error('expected hash in healthCheckBlobs')
|
|
|
|
|
|
|
+ if (!HEALTH_CHECK_PROJECTS.some(id => id.length < 24)) {
|
|
|
|
|
+ throw new Error('expected postgres id in healthCheckProjects')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- for (const path of HEALTH_CHECK_BLOBS) {
|
|
|
|
|
- const [historyId, hash] = path.split('/')
|
|
|
|
|
- await verifyBlob(historyId, hash)
|
|
|
|
|
|
|
+ for (const historyId of HEALTH_CHECK_PROJECTS) {
|
|
|
|
|
+ await verifyProjectWithErrorContext(historyId)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
export class BackupCorruptedMissingBlobError extends BackupCorruptedError {}
|
|
export class BackupCorruptedMissingBlobError extends BackupCorruptedError {}
|