From 59daaae3d1fdcb3bc646e4c161292d96d5e1a2a7 Mon Sep 17 00:00:00 2001 From: paulo-ocean Date: Mon, 4 Nov 2024 17:44:45 +0000 Subject: [PATCH] support for starting a free env compute job --- src/@types/Compute.ts | 1 + src/services/Provider.ts | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/@types/Compute.ts b/src/@types/Compute.ts index 5c6638b9..83df541b 100644 --- a/src/@types/Compute.ts +++ b/src/@types/Compute.ts @@ -22,6 +22,7 @@ export interface ComputeEnvironment { storageExpiry: number maxJobDuration: number lastSeen: number + free: boolean } export interface ComputeResult { diff --git a/src/services/Provider.ts b/src/services/Provider.ts index 2de6a063..a395ac57 100644 --- a/src/services/Provider.ts +++ b/src/services/Provider.ts @@ -615,6 +615,7 @@ export class Provider { * @param {ComputeAlgorithm} algorithm The algorithm to start compute with. * @param {AbortSignal} signal abort signal * @param {ComputeOutput} output The compute job output settings. + * @param {boolean} freeEnvironment is it a free environment? uses different route * @return {Promise} The compute job or jobs. */ public async computeStart( @@ -624,7 +625,8 @@ export class Provider { datasets: ComputeAsset[], algorithm: ComputeAlgorithm, signal?: AbortSignal, - output?: ComputeOutput + output?: ComputeOutput, + freeEnvironment?: boolean ): Promise { console.log('called new compute start method...') const providerEndpoints = await this.getEndpoints(providerUri) @@ -632,9 +634,17 @@ export class Provider { providerUri, providerEndpoints ) - const computeStartUrl = this.getEndpointURL(serviceEndpoints, 'computeStart') - ? this.getEndpointURL(serviceEndpoints, 'computeStart').urlPath - : null + let computeStartUrl = null + + if (freeEnvironment) { + computeStartUrl = this.getEndpointURL(serviceEndpoints, 'freeCompute') + ? this.getEndpointURL(serviceEndpoints, 'freeCompute').urlPath + : null + } else { + computeStartUrl = this.getEndpointURL(serviceEndpoints, 'computeStart') + ? this.getEndpointURL(serviceEndpoints, 'computeStart').urlPath + : null + } const consumerAddress = await consumer.getAddress() const nonce = (