fix: use retained mode 0 results in no limit

pull/437/head
Frostebite 2022-10-19 01:05:02 +01:00
parent e17bafe800
commit 1c7c6b5c8c
3 changed files with 21 additions and 7 deletions

12
dist/index.js vendored
View File

@ -5118,7 +5118,7 @@ class SharedWorkspaceLocking {
cloud_runner_logger_1.default.log(`run agent ${runId} is trying to access a workspace, free: ${JSON.stringify(workspaces)}`);
for (const element of workspaces) {
const lockResult = yield SharedWorkspaceLocking.LockWorkspace(element, runId, buildParametersContext);
cloud_runner_logger_1.default.log(`run agent ${runId} try lock workspace: ${element} result: ${lockResult}`);
cloud_runner_logger_1.default.log(`run agent: ${runId} try lock workspace: ${element} result: ${lockResult}`);
if (lockResult) {
return true;
}
@ -5158,7 +5158,7 @@ class SharedWorkspaceLocking {
const workspaces = yield SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
for (const element of workspaces) {
if (!(yield SharedWorkspaceLocking.IsWorkspaceLocked(element, buildParametersContext)) &&
(yield SharedWorkspaceLocking.IsWorkspaceBelowMax(element, buildParametersContext))) {
(yield SharedWorkspaceLocking.IsWorkspaceBelowMax(``, buildParametersContext))) {
result.push(element);
}
}
@ -5171,6 +5171,10 @@ class SharedWorkspaceLocking {
return true;
}
const workspaces = yield SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
if (workspace === ``) {
return (workspaces.length < buildParametersContext.maxRetainedWorkspaces ||
buildParametersContext.maxRetainedWorkspaces === 0);
}
const ordered = [];
for (const ws of workspaces) {
ordered.push({
@ -5180,7 +5184,9 @@ class SharedWorkspaceLocking {
}
ordered.sort((x) => x.timestamp);
const matches = ordered.filter((x) => x.name.includes(workspace));
const isWorkspaceBelowMax = matches.length > 0 && ordered.indexOf(matches[0]) < buildParametersContext.maxRetainedWorkspaces;
const isWorkspaceBelowMax = matches.length > 0 &&
(ordered.indexOf(matches[0]) < buildParametersContext.maxRetainedWorkspaces ||
buildParametersContext.maxRetainedWorkspaces === 0);
cloud_runner_logger_1.default.log(`isWorkspaceBelowMax ${isWorkspaceBelowMax} = ${matches.length} > 0 && ${ordered.indexOf(matches[0])} < ${buildParametersContext.maxRetainedWorkspaces}`);
return isWorkspaceBelowMax;
});

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -49,7 +49,7 @@ export class SharedWorkspaceLocking {
CloudRunnerLogger.log(`run agent ${runId} is trying to access a workspace, free: ${JSON.stringify(workspaces)}`);
for (const element of workspaces) {
const lockResult = await SharedWorkspaceLocking.LockWorkspace(element, runId, buildParametersContext);
CloudRunnerLogger.log(`run agent ${runId} try lock workspace: ${element} result: ${lockResult}`);
CloudRunnerLogger.log(`run agent: ${runId} try lock workspace: ${element} result: ${lockResult}`);
if (lockResult) {
return true;
@ -100,7 +100,7 @@ export class SharedWorkspaceLocking {
for (const element of workspaces) {
if (
!(await SharedWorkspaceLocking.IsWorkspaceLocked(element, buildParametersContext)) &&
(await SharedWorkspaceLocking.IsWorkspaceBelowMax(element, buildParametersContext))
(await SharedWorkspaceLocking.IsWorkspaceBelowMax(``, buildParametersContext))
) {
result.push(element);
}
@ -117,6 +117,12 @@ export class SharedWorkspaceLocking {
return true;
}
const workspaces = await SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
if (workspace === ``) {
return (
workspaces.length < buildParametersContext.maxRetainedWorkspaces ||
buildParametersContext.maxRetainedWorkspaces === 0
);
}
const ordered: any[] = [];
for (const ws of workspaces) {
ordered.push({
@ -127,7 +133,9 @@ export class SharedWorkspaceLocking {
ordered.sort((x) => x.timestamp);
const matches = ordered.filter((x) => x.name.includes(workspace));
const isWorkspaceBelowMax =
matches.length > 0 && ordered.indexOf(matches[0]) < buildParametersContext.maxRetainedWorkspaces;
matches.length > 0 &&
(ordered.indexOf(matches[0]) < buildParametersContext.maxRetainedWorkspaces ||
buildParametersContext.maxRetainedWorkspaces === 0);
CloudRunnerLogger.log(
`isWorkspaceBelowMax ${isWorkspaceBelowMax} = ${matches.length} > 0 && ${ordered.indexOf(matches[0])} < ${
buildParametersContext.maxRetainedWorkspaces