diff --git a/backend/src/keystore/keystore.ts b/backend/src/keystore/keystore.ts index 37555f375..be63d03d9 100644 --- a/backend/src/keystore/keystore.ts +++ b/backend/src/keystore/keystore.ts @@ -19,9 +19,9 @@ export const KeyStorePrefixes = { ProjectEnvironmentCreate: "project-environment-creation-lock", ProjectEnvironmentUpdate: "project-environment-update-lock", ProjectEnvironmentDelete: "project-environment-delete-lock", - WaitUntilReadyCreateProjectEnvironment: "wait-until-ready-create-project-environments-", - WaitUntilReadyUpdateProjectEnvironment: "wait-until-ready-update-project-environments-", - WaitUntilReadyDeleteProjectEnvironment: "wait-until-ready-delete-project-environments-", + + WaitUntilReadyProjectEnvironmentOperation: (projectId: string) => + `wait-until-ready-project-environments-operation-${projectId}`, SyncSecretIntegrationLock: (projectId: string, environmentSlug: string, secretPath: string) => `sync-integration-mutex-${projectId}-${environmentSlug}-${secretPath}` as const, diff --git a/backend/src/services/project-env/project-env-service.ts b/backend/src/services/project-env/project-env-service.ts index 90d8c9fc3..f74e7544a 100644 --- a/backend/src/services/project-env/project-env-service.ts +++ b/backend/src/services/project-env/project-env-service.ts @@ -56,7 +56,7 @@ export const projectEnvServiceFactory = ({ try { if (!lock) { await keyStore.waitTillReady({ - key: `${KeyStorePrefixes.WaitUntilReadyCreateProjectEnvironment}${projectId}`, + key: KeyStorePrefixes.WaitUntilReadyProjectEnvironmentOperation(projectId), keyCheckCb: (val) => val === "true", waitingCb: () => logger.debug("Create project environment. Waiting for "), delay: 500 @@ -90,7 +90,7 @@ export const projectEnvServiceFactory = ({ }); await keyStore.setItemWithExpiry( - `${KeyStorePrefixes.WaitUntilReadyCreateProjectEnvironment}${projectId}`, + KeyStorePrefixes.WaitUntilReadyProjectEnvironmentOperation(projectId), 10, "true" ); @@ -128,7 +128,7 @@ export const projectEnvServiceFactory = ({ try { if (!lock) { await keyStore.waitTillReady({ - key: `${KeyStorePrefixes.WaitUntilReadyUpdateProjectEnvironment}${projectId}`, + key: KeyStorePrefixes.WaitUntilReadyProjectEnvironmentOperation(projectId), keyCheckCb: (val) => val === "true", waitingCb: () => logger.debug("Update project environment. Waiting for project environment update"), delay: 500 @@ -156,7 +156,7 @@ export const projectEnvServiceFactory = ({ }); await keyStore.setItemWithExpiry( - `${KeyStorePrefixes.WaitUntilReadyUpdateProjectEnvironment}${projectId}`, + KeyStorePrefixes.WaitUntilReadyProjectEnvironmentOperation(projectId), 10, "true" ); @@ -184,7 +184,7 @@ export const projectEnvServiceFactory = ({ try { if (!lock) { await keyStore.waitTillReady({ - key: `${KeyStorePrefixes.WaitUntilReadyDeleteProjectEnvironment}${projectId}`, + key: KeyStorePrefixes.WaitUntilReadyProjectEnvironmentOperation(projectId), keyCheckCb: (val) => val === "true", waitingCb: () => logger.debug("Delete project environment. Waiting for "), delay: 500 @@ -204,7 +204,7 @@ export const projectEnvServiceFactory = ({ }); await keyStore.setItemWithExpiry( - `${KeyStorePrefixes.WaitUntilReadyDeleteProjectEnvironment}${projectId}`, + KeyStorePrefixes.WaitUntilReadyProjectEnvironmentOperation(projectId), 10, "true" );