From 2bb2865f892ce6eefcb10ab712b14ad986ae9b1c Mon Sep 17 00:00:00 2001 From: Ankit Gupta Date: Wed, 18 Jun 2025 16:18:41 +0530 Subject: [PATCH 1/2] change teardown request --- cleanup.js | 4 ++-- dist/cleanup.js | 18 +++++++++--------- dist/main.js | 15 ++++++++------- main.js | 1 + utils/warpbuild.js | 14 +++++++------- 5 files changed, 27 insertions(+), 25 deletions(-) diff --git a/cleanup.js b/cleanup.js index 94f74cc..52406f4 100644 --- a/cleanup.js +++ b/cleanup.js @@ -30,13 +30,13 @@ async function cleanup() { // Cleanup each builder using the WarpBuild API for (const builder of builders) { try { - let response = await teardownBuilder(config, builder.id); + let response = await teardownBuilder(config, builder); // Handle retry for server errors if (response.statusCode >= 500 && response.statusCode < 600) { core.info(`Got ${response.statusCode} error, retrying teardown for builder ${builder.id} after 1 second...`); await new Promise(resolve => setTimeout(resolve, 1000)); - response = await teardownBuilder(config, builder.id); + response = await teardownBuilder(config, builder); } // Check if response is valid diff --git a/dist/cleanup.js b/dist/cleanup.js index 094c58a..0895885 100644 --- a/dist/cleanup.js +++ b/dist/cleanup.js @@ -25706,11 +25706,10 @@ class WarpBuildConfig { /** * Get builder teardown endpoint - * @param {string} builderId * @returns {string} */ - getBuilderTeardownEndpoint(builderId) { - return `${this.apiDomain}/api/v1/builders/${builderId}/teardown`; + getBuilderTeardownEndpoint() { + return `${this.apiDomain}/api/v1/builder-session-requests/complete`; } } @@ -25828,17 +25827,18 @@ async function getBuilderDetails(config, builderId) { * @param {WarpBuildConfig} config - WarpBuild configuration * @param {string} builderId - Builder ID to teardown */ -async function teardownBuilder(config, builderId) { +async function teardownBuilder(config, builder) { const [authType, authValue] = config.authHeader.split(':').map(s => s.trim()); try { const response = await makeWarpBuildRequest( - config.getBuilderTeardownEndpoint(builderId), + config.getBuilderTeardownEndpoint(), { - method: 'DELETE', + method: 'POST', headers: { [authType]: authValue }, timeout: 10000 - } + }, + JSON.stringify({ request_id: builder.request_id }) ); let parsedData; @@ -27815,13 +27815,13 @@ async function cleanup() { // Cleanup each builder using the WarpBuild API for (const builder of builders) { try { - let response = await teardownBuilder(config, builder.id); + let response = await teardownBuilder(config, builder); // Handle retry for server errors if (response.statusCode >= 500 && response.statusCode < 600) { core.info(`Got ${response.statusCode} error, retrying teardown for builder ${builder.id} after 1 second...`); await new Promise(resolve => setTimeout(resolve, 1000)); - response = await teardownBuilder(config, builder.id); + response = await teardownBuilder(config, builder); } // Check if response is valid diff --git a/dist/main.js b/dist/main.js index c5d5003..6a6498b 100644 --- a/dist/main.js +++ b/dist/main.js @@ -26387,11 +26387,10 @@ class WarpBuildConfig { /** * Get builder teardown endpoint - * @param {string} builderId * @returns {string} */ - getBuilderTeardownEndpoint(builderId) { - return `${this.apiDomain}/api/v1/builders/${builderId}/teardown`; + getBuilderTeardownEndpoint() { + return `${this.apiDomain}/api/v1/builder-session-requests/complete`; } } @@ -26509,17 +26508,18 @@ async function getBuilderDetails(config, builderId) { * @param {WarpBuildConfig} config - WarpBuild configuration * @param {string} builderId - Builder ID to teardown */ -async function teardownBuilder(config, builderId) { +async function teardownBuilder(config, builder) { const [authType, authValue] = config.authHeader.split(':').map(s => s.trim()); try { const response = await makeWarpBuildRequest( - config.getBuilderTeardownEndpoint(builderId), + config.getBuilderTeardownEndpoint(), { - method: 'DELETE', + method: 'POST', headers: { [authType]: authValue }, timeout: 10000 - } + }, + JSON.stringify({ request_id: builder.request_id }) ); let parsedData; @@ -28584,6 +28584,7 @@ async function run() { builderName, builders: responseData.builder_instances.map(b => ({ id: b.id, + request_id: b.request_id, index: responseData.builder_instances.indexOf(b) })) }; diff --git a/main.js b/main.js index 70901ab..dfac0fc 100644 --- a/main.js +++ b/main.js @@ -118,6 +118,7 @@ async function run() { builderName, builders: responseData.builder_instances.map(b => ({ id: b.id, + request_id: b.request_id, index: responseData.builder_instances.indexOf(b) })) }; diff --git a/utils/warpbuild.js b/utils/warpbuild.js index 9b5877d..62b1f6f 100644 --- a/utils/warpbuild.js +++ b/utils/warpbuild.js @@ -58,11 +58,10 @@ class WarpBuildConfig { /** * Get builder teardown endpoint - * @param {string} builderId * @returns {string} */ - getBuilderTeardownEndpoint(builderId) { - return `${this.apiDomain}/api/v1/builders/${builderId}/teardown`; + getBuilderTeardownEndpoint() { + return `${this.apiDomain}/api/v1/builder-session-requests/complete`; } } @@ -180,17 +179,18 @@ async function getBuilderDetails(config, builderId) { * @param {WarpBuildConfig} config - WarpBuild configuration * @param {string} builderId - Builder ID to teardown */ -async function teardownBuilder(config, builderId) { +async function teardownBuilder(config, builder) { const [authType, authValue] = config.authHeader.split(':').map(s => s.trim()); try { const response = await makeWarpBuildRequest( - config.getBuilderTeardownEndpoint(builderId), + config.getBuilderTeardownEndpoint(), { - method: 'DELETE', + method: 'POST', headers: { [authType]: authValue }, timeout: 10000 - } + }, + JSON.stringify({ request_id: builder.request_id }) ); let parsedData; From 90570a9ad59ddd7e571f87c0715f840960ae25c4 Mon Sep 17 00:00:00 2001 From: Ankit Gupta Date: Wed, 18 Jun 2025 18:01:50 +0530 Subject: [PATCH 2/2] log message fixxes --- __tests__/Dockerfile | 4 ++++ cleanup.js | 8 ++++---- dist/cleanup.js | 8 ++++---- dist/main.js | 1 + main.js | 1 + 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/__tests__/Dockerfile b/__tests__/Dockerfile index 795cec1..1ded165 100644 --- a/__tests__/Dockerfile +++ b/__tests__/Dockerfile @@ -4,4 +4,8 @@ RUN apt-get update && apt-get install -y \ curl \ && rm -rf /var/lib/apt/lists/* +RUN echo "Sleeping..." && \ + sleep 60 && \ + echo "Done sleeping!" + CMD ["python3", "--version"] \ No newline at end of file diff --git a/cleanup.js b/cleanup.js index 52406f4..cade834 100644 --- a/cleanup.js +++ b/cleanup.js @@ -34,22 +34,22 @@ async function cleanup() { // Handle retry for server errors if (response.statusCode >= 500 && response.statusCode < 600) { - core.info(`Got ${response.statusCode} error, retrying teardown for builder ${builder.id} after 1 second...`); + core.info(`Got ${response.statusCode} error, retrying teardown for builder request ${builder.request_id} after 1 second...`); await new Promise(resolve => setTimeout(resolve, 1000)); response = await teardownBuilder(config, builder); } // Check if response is valid if (response.statusCode >= 200 && response.statusCode < 300) { - core.info(`Successfully cleaned up builder ${builder.id}`); + core.info(`Successfully cleaned up builder request ${builder.request_id}`); } else { const errorMessage = response.message || response.error || 'Unknown error'; const errorDetails = response.rawData ? ` (Raw response: ${response.rawData})` : ''; const statusCode = response.statusCode || 'No status code'; - core.warning(`Failed to cleanup builder ${builder.id}: ${statusCode} - ${errorMessage}${errorDetails}`); + core.warning(`Failed to cleanup builder request ${builder.request_id}: ${statusCode} - ${errorMessage}${errorDetails}`); } } catch (error) { - core.warning(`Error cleaning up builder ${builder.id}: ${error.message}`); + core.warning(`Error cleaning up builder request ${builder.request_id}: ${error.message}`); } } diff --git a/dist/cleanup.js b/dist/cleanup.js index 0895885..31386d7 100644 --- a/dist/cleanup.js +++ b/dist/cleanup.js @@ -27819,22 +27819,22 @@ async function cleanup() { // Handle retry for server errors if (response.statusCode >= 500 && response.statusCode < 600) { - core.info(`Got ${response.statusCode} error, retrying teardown for builder ${builder.id} after 1 second...`); + core.info(`Got ${response.statusCode} error, retrying teardown for builder request ${builder.request_id} after 1 second...`); await new Promise(resolve => setTimeout(resolve, 1000)); response = await teardownBuilder(config, builder); } // Check if response is valid if (response.statusCode >= 200 && response.statusCode < 300) { - core.info(`Successfully cleaned up builder ${builder.id}`); + core.info(`Successfully cleaned up builder request ${builder.request_id}`); } else { const errorMessage = response.message || response.error || 'Unknown error'; const errorDetails = response.rawData ? ` (Raw response: ${response.rawData})` : ''; const statusCode = response.statusCode || 'No status code'; - core.warning(`Failed to cleanup builder ${builder.id}: ${statusCode} - ${errorMessage}${errorDetails}`); + core.warning(`Failed to cleanup builder request ${builder.request_id}: ${statusCode} - ${errorMessage}${errorDetails}`); } } catch (error) { - core.warning(`Error cleaning up builder ${builder.id}: ${error.message}`); + core.warning(`Error cleaning up builder request ${builder.request_id}: ${error.message}`); } } diff --git a/dist/main.js b/dist/main.js index 6a6498b..98205bb 100644 --- a/dist/main.js +++ b/dist/main.js @@ -28594,6 +28594,7 @@ async function run() { // Setup each builder node for (let i = 0; i < responseData.builder_instances.length; i++) { + core.info(`Setting up builder node ${responseData.builder_instances[i].id} and request ${responseData.builder_instances[i].request_id}...`); await setupBuildxNode( i, responseData.builder_instances[i].id, diff --git a/main.js b/main.js index dfac0fc..bd578f1 100644 --- a/main.js +++ b/main.js @@ -128,6 +128,7 @@ async function run() { // Setup each builder node for (let i = 0; i < responseData.builder_instances.length; i++) { + core.info(`Setting up builder node ${responseData.builder_instances[i].id} and request ${responseData.builder_instances[i].request_id}...`); await setupBuildxNode( i, responseData.builder_instances[i].id,