Max workspaces and strong consistency locks
parent
641958ea44
commit
141bfef2fd
|
|
@ -5127,7 +5127,9 @@ class SharedWorkspaceLocking {
|
||||||
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
|
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
|
||||||
throw new Error("Workspace doesn't exist, can't call get all locks");
|
throw new Error("Workspace doesn't exist, can't call get all locks");
|
||||||
}
|
}
|
||||||
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`)).map((x) => x.replace(`/`, ``));
|
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`))
|
||||||
|
.map((x) => x.replace(`/`, ``))
|
||||||
|
.filter((x) => x.includes(`_lock`));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
static GetOrCreateLockedWorkspace(workspace, runId, buildParametersContext) {
|
static GetOrCreateLockedWorkspace(workspace, runId, buildParametersContext) {
|
||||||
|
|
@ -5190,6 +5192,9 @@ class SharedWorkspaceLocking {
|
||||||
}
|
}
|
||||||
static IsWorkspaceBelowMax(workspace, buildParametersContext) {
|
static IsWorkspaceBelowMax(workspace, buildParametersContext) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
if (!(yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
const workspaces = yield SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
|
const workspaces = yield SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
|
||||||
const ordered = [];
|
const ordered = [];
|
||||||
for (const ws of workspaces) {
|
for (const ws of workspaces) {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -28,7 +28,9 @@ export class SharedWorkspaceLocking {
|
||||||
await SharedWorkspaceLocking.ReadLines(
|
await SharedWorkspaceLocking.ReadLines(
|
||||||
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`,
|
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`,
|
||||||
)
|
)
|
||||||
).map((x) => x.replace(`/`, ``));
|
)
|
||||||
|
.map((x) => x.replace(`/`, ``))
|
||||||
|
.filter((x) => x.includes(`_lock`));
|
||||||
}
|
}
|
||||||
public static async GetOrCreateLockedWorkspace(
|
public static async GetOrCreateLockedWorkspace(
|
||||||
workspace: string,
|
workspace: string,
|
||||||
|
|
@ -112,6 +114,9 @@ export class SharedWorkspaceLocking {
|
||||||
workspace: string,
|
workspace: string,
|
||||||
buildParametersContext: BuildParameters,
|
buildParametersContext: BuildParameters,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
|
if (!(await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
const workspaces = await SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
|
const workspaces = await SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
|
||||||
const ordered: any[] = [];
|
const ordered: any[] = [];
|
||||||
for (const ws of workspaces) {
|
for (const ws of workspaces) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue