From 6d1c4ff81acb391908ea47770556b630f47a431e Mon Sep 17 00:00:00 2001 From: Krishna Acondy Date: Thu, 28 Jan 2021 17:01:59 +0000 Subject: [PATCH] fix(*): fix compute job execution --- src/SASViyaApiClient.ts | 9 +++++---- src/SASjs.ts | 8 +++++++- src/types/ComputeJobExecutionError.ts | 9 +++++++++ src/types/index.ts | 1 + 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 src/types/ComputeJobExecutionError.ts diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index 1661e5d..8116269 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -8,7 +8,8 @@ import { Folder, EditContextInput, JobDefinition, - PollOptions + PollOptions, + ComputeJobExecutionError } from './types' import { formatDataForRequest } from './utils/formatDataForRequest' import { SessionManager } from './SessionManager' @@ -429,7 +430,7 @@ export class SASViyaApiClient { } if (jobStatus === 'failed' || jobStatus === 'error') { - return Promise.reject({ job: currentJob, log }) + return Promise.reject(new ComputeJobExecutionError(currentJob, log)) } let resultLink @@ -598,7 +599,7 @@ export class SASViyaApiClient { return await this.requestClient.post( `${this.serverUrl}/jobDefinitions/definitions?parentFolderUri=${parentFolderUri}`, - JSON.stringify({ + { name: jobName, parameters: [ { @@ -609,7 +610,7 @@ export class SASViyaApiClient { ], type: 'Compute', code - }), + }, accessToken ) } diff --git a/src/SASjs.ts b/src/SASjs.ts index 82ca592..c3b27ff 100644 --- a/src/SASjs.ts +++ b/src/SASjs.ts @@ -9,7 +9,8 @@ import { RequestClient } from './request/RequestClient' import { JobExecutor, WebJobExecutor, - ComputeJobExecutor + ComputeJobExecutor, + JesJobExecutor } from './job-execution' const defaultConfig: SASjsConfig = { @@ -759,6 +760,11 @@ export default class SASjs { this.sasjsConfig.serverUrl, this.sasViyaApiClient! ) + + this.jesJobExecutor = new JesJobExecutor( + this.sasjsConfig.serverUrl, + this.sasViyaApiClient! + ) } private async createFoldersAndServices( diff --git a/src/types/ComputeJobExecutionError.ts b/src/types/ComputeJobExecutionError.ts new file mode 100644 index 0000000..0f5db94 --- /dev/null +++ b/src/types/ComputeJobExecutionError.ts @@ -0,0 +1,9 @@ +import { Job } from './Job' + +export class ComputeJobExecutionError extends Error { + constructor(public job: Job, public log: string) { + super('Error: Job execution failed') + this.name = 'ComputeJobExecutionError' + Object.setPrototypeOf(this, ComputeJobExecutionError.prototype) + } +} diff --git a/src/types/index.ts b/src/types/index.ts index 2dc953d..c41565a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,3 +1,4 @@ +export * from './ComputeJobExecutionError' export * from './Context' export * from './CsrfToken' export * from './ErrorResponse'