1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00

Merge pull request #387 from oceanprotocol/fix/compute-algo-meta

Fix compute when not using published algo
This commit is contained in:
Alex Coseru 2020-03-17 11:34:59 +02:00 committed by GitHub
commit 5d978feddd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 7 deletions

View File

@ -1,4 +1,4 @@
import { File, MetaData } from '../ddo/MetaData' import { File, MetaDataAlgorithm } from '../ddo/MetaData'
import Account from '../ocean/Account' import Account from '../ocean/Account'
import { noZeroX } from '../utils' import { noZeroX } from '../utils'
import { Instantiable, InstantiableConfig } from '../Instantiable.abstract' import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
@ -115,7 +115,7 @@ export class Brizo extends Instantiable {
serviceAgreementId: string, serviceAgreementId: string,
consumerAccount: Account, consumerAccount: Account,
algorithmDid?: string, algorithmDid?: string,
algorithmMeta?: MetaData, algorithmMeta?: MetaDataAlgorithm,
jobId?: string, jobId?: string,
output?: Output output?: Output
): Promise<ComputeJob | ComputeJob[]> { ): Promise<ComputeJob | ComputeJob[]> {
@ -138,7 +138,7 @@ export class Brizo extends Instantiable {
url += `&consumerAddress=${address}` url += `&consumerAddress=${address}`
url += `&serviceAgreementId=${noZeroX(serviceAgreementId)}` url += `&serviceAgreementId=${noZeroX(serviceAgreementId)}`
url += (algorithmDid && `&algorithmDid=${algorithmDid}`) || '' url += (algorithmDid && `&algorithmDid=${algorithmDid}`) || ''
url += (algorithmMeta && `&algorithmMeta=${algorithmMeta}`) || '' url += (algorithmMeta && `&algorithmMeta=${JSON.stringify(algorithmMeta)}`) || ''
url += (output && `&output=${JSON.stringify(output)}`) || '' url += (output && `&output=${JSON.stringify(output)}`) || ''
url += (jobId && `&jobId=${jobId}`) || '' url += (jobId && `&jobId=${jobId}`) || ''

View File

@ -64,6 +64,8 @@ export interface File {
} }
export interface MetaDataAlgorithm { export interface MetaDataAlgorithm {
url?: string
rawcode?: string
language?: string language?: string
format?: string format?: string
version?: string version?: string

View File

@ -1,5 +1,5 @@
import { Instantiable, InstantiableConfig } from '../Instantiable.abstract' import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
import { MetaData } from '../ddo/MetaData' import { MetaData, MetaDataAlgorithm } from '../ddo/MetaData'
import Account from './Account' import Account from './Account'
import { DDO } from '../ddo/DDO' import { DDO } from '../ddo/DDO'
import { SubscribablePromise } from '../utils' import { SubscribablePromise } from '../utils'
@ -132,7 +132,7 @@ export class OceanCompute extends Instantiable {
consumerAccount: Account, consumerAccount: Account,
agreementId: string, agreementId: string,
algorithmDid?: string, algorithmDid?: string,
algorithmMeta?: MetaData, algorithmMeta?: MetaDataAlgorithm,
output?: Output output?: Output
): Promise<ComputeJob> { ): Promise<ComputeJob> {
output = this.checkOutput(consumerAccount, output) output = this.checkOutput(consumerAccount, output)

View File

@ -1,7 +1,15 @@
import { assert } from 'chai' import { assert } from 'chai'
import { config } from '../config' import { config } from '../config'
import { Ocean, Account, DDO, MetaData, ComputeJobStatus, Config } from '../../../src' import {
Ocean,
Account,
DDO,
MetaData,
ComputeJobStatus,
Config,
MetaDataAlgorithm
} from '../../../src'
import { getMetadata, createComputeService } from '../utils' import { getMetadata, createComputeService } from '../utils'
import { ServiceCompute } from '../../../src/ddo/Service' import { ServiceCompute } from '../../../src/ddo/Service'
@ -88,9 +96,28 @@ describe('Compute', () => {
} catch {} } catch {}
}) })
it('should start a compute job', async () => { it('should start a compute job with a published algo', async () => {
const response = await ocean.compute.start(account, agreementId, algorithm.id) const response = await ocean.compute.start(account, agreementId, algorithm.id)
assert.equal(response.status, ComputeJobStatus.Started) assert.equal(response.status, ComputeJobStatus.Started)
}) })
it('should start a compute job with a rawcode algo', async () => {
const algoMeta: MetaDataAlgorithm = {
rawcode: `console.log('Hello world!')`,
container: {
entrypoint: 'node $ALGO',
image: 'node',
tag: '10'
}
}
const response = await ocean.compute.start(
account,
agreementId,
undefined,
algoMeta
)
assert.equal(response.status, ComputeJobStatus.Started)
})
}) })