diff --git a/projects/nshmp-apps/src/app/internal/aws/check-haz-jobs/services/app.service.ts b/projects/nshmp-apps/src/app/internal/aws/check-haz-jobs/services/app.service.ts index 70dcfb529c3c890fbcf84da32daa07ff78c4b77e..c991579c15de11d20d9a000511c556436def7b79 100644 --- a/projects/nshmp-apps/src/app/internal/aws/check-haz-jobs/services/app.service.ts +++ b/projects/nshmp-apps/src/app/internal/aws/check-haz-jobs/services/app.service.ts @@ -185,6 +185,14 @@ export class AppService implements AppServiceModel<AppState, ControlForm> { }; } + logHasFinished(response: GetLogsResponseData): boolean { + return this.logHasMessage(response, 'Finished'); + } + + logHasForSupport(response: GetLogsResponseData): boolean { + return this.logHasMessage(response, 'For support contact'); + } + /** * Update state. * @@ -222,9 +230,12 @@ export class AppService implements AppServiceModel<AppState, ControlForm> { ): void { const {autoRefresh} = this.formGroup.getRawValue(); const status = serviceResponse.response.jobStatus; + const response = serviceResponse.response; if ( - (status === JobStatus.RUNNING || status === JobStatus.CREATED) && + status !== JobStatus.TERMINATED && + !this.logHasFinished(response) && + !this.logHasForSupport(response) && autoRefresh ) { setTimeout(() => this.callService(false), 3000); @@ -236,6 +247,13 @@ export class AppService implements AppServiceModel<AppState, ControlForm> { }); } + private logHasMessage( + response: GetLogsResponseData, + message: string, + ): boolean { + return response.logs.some(log => log.message.includes(message)); + } + /** * Update URL based on form values. */