Better locking
parent
be914c1b7a
commit
728801a531
|
|
@ -684,7 +684,7 @@ class SharedWorkspaceLocking {
|
|||
fs.writeFileSync(file, '');
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 cp ./${file} s3://game-ci-test-storage/locks/${workspace}/${file}`, false, true);
|
||||
fs.rmSync(file);
|
||||
return SharedWorkspaceLocking.HasWorkspaceLock(workspace);
|
||||
return SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
});
|
||||
}
|
||||
static ReleaseWorkspace(workspace, runId) {
|
||||
|
|
@ -697,21 +697,15 @@ class SharedWorkspaceLocking {
|
|||
cloud_runner_logger_1.default.log(`Deleting file ${file}`);
|
||||
cloud_runner_logger_1.default.log(`aws s3 rm s3://game-ci-test-storage/locks/${workspace}/${file}`);
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 rm s3://game-ci-test-storage/locks/${workspace}/${file}`, false, true);
|
||||
return !SharedWorkspaceLocking.HasWorkspaceLock(workspace);
|
||||
return !SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
});
|
||||
}
|
||||
static HasWorkspaceLock(workspace) {
|
||||
static HasWorkspaceLock(workspace, runId) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace))) {
|
||||
return false;
|
||||
}
|
||||
cloud_runner_logger_1.default.log((yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 ls s3://game-ci-test-storage/locks/${workspace}/`, false, true))
|
||||
.split('\n')
|
||||
.map((x) => {
|
||||
return x.split(' ');
|
||||
})
|
||||
.length.toString());
|
||||
return true;
|
||||
return (yield SharedWorkspaceLocking.GetAllLocks(workspace)).filter((x) => x.includes(runId)).length > 0;
|
||||
});
|
||||
}
|
||||
static IsWorkspaceLocked(workspace) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -72,7 +72,7 @@ export class SharedWorkspaceLocking {
|
|||
);
|
||||
fs.rmSync(file);
|
||||
|
||||
return SharedWorkspaceLocking.HasWorkspaceLock(workspace);
|
||||
return SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
}
|
||||
|
||||
public static async ReleaseWorkspace(workspace: string, runId: string): Promise<boolean> {
|
||||
|
|
@ -85,22 +85,14 @@ export class SharedWorkspaceLocking {
|
|||
CloudRunnerLogger.log(`aws s3 rm s3://game-ci-test-storage/locks/${workspace}/${file}`);
|
||||
await CloudRunnerSystem.Run(`aws s3 rm s3://game-ci-test-storage/locks/${workspace}/${file}`, false, true);
|
||||
|
||||
return !SharedWorkspaceLocking.HasWorkspaceLock(workspace);
|
||||
return !SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
}
|
||||
public static async HasWorkspaceLock(workspace: string): Promise<boolean> {
|
||||
public static async HasWorkspaceLock(workspace: string, runId: string): Promise<boolean> {
|
||||
if (!(await SharedWorkspaceLocking.DoesWorkspaceExist(workspace))) {
|
||||
return false;
|
||||
}
|
||||
CloudRunnerLogger.log(
|
||||
(await CloudRunnerSystem.Run(`aws s3 ls s3://game-ci-test-storage/locks/${workspace}/`, false, true))
|
||||
.split('\n')
|
||||
.map((x) => {
|
||||
return x.split(' ');
|
||||
})
|
||||
.length.toString(),
|
||||
);
|
||||
|
||||
return true;
|
||||
return (await SharedWorkspaceLocking.GetAllLocks(workspace)).filter((x) => x.includes(runId)).length > 0;
|
||||
}
|
||||
|
||||
public static async IsWorkspaceLocked(workspace: string): Promise<boolean> {
|
||||
|
|
|
|||
Loading…
Reference in New Issue