ソースを参照

Switch health check to use projects instead of blobs

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: db1a1c8ce5968e558b0754e5e0da50af89fd80db
Andrew Rumble 1 年間 前
コミット
b5f8bfa28e
1 ファイル変更11 行追加13 行削除
  1. 11 13
      services/history-v1/storage/lib/backupVerifier.mjs

+ 11 - 13
services/history-v1/storage/lib/backupVerifier.mjs

@@ -221,25 +221,23 @@ export async function verifyProject(historyId, endTimestamp) {
 export class BackupCorruptedError extends OError {}
 export class BackupRPOViolationError extends OError {}
 
+const HEALTH_CHECK_PROJECTS = JSON.parse(config.get('healthCheckProjects'))
 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 {}