Emit event when variant analysis is updated

This commit is contained in:
Koen Vlaswinkel
2022-10-03 14:19:18 +02:00
parent 28b00b249b
commit 15579012f1
2 changed files with 10 additions and 3 deletions

View File

@@ -25,7 +25,7 @@ export class VariantAnalysisManager extends DisposableObject implements VariantA
logger: Logger,
) {
super();
this.variantAnalysisMonitor = new VariantAnalysisMonitor(ctx, logger);
this.variantAnalysisMonitor = this.push(new VariantAnalysisMonitor(ctx, logger));
}
public async showView(variantAnalysisId: number): Promise<void> {

View File

@@ -1,4 +1,4 @@
import { ExtensionContext, CancellationToken, commands } from 'vscode';
import { ExtensionContext, CancellationToken, commands, EventEmitter } from 'vscode';
import { Credentials } from '../authentication';
import { Logger } from '../logging';
import * as ghApiClient from './gh-api/gh-api-client';
@@ -9,17 +9,22 @@ import {
} from './gh-api/variant-analysis';
import { VariantAnalysisMonitorResult } from './shared/variant-analysis-monitor-result';
import { processFailureReason, processUpdatedVariantAnalysis } from './variant-analysis-processor';
import { DisposableObject } from '../pure/disposable-object';
export class VariantAnalysisMonitor {
export class VariantAnalysisMonitor extends DisposableObject {
// With a sleep of 5 seconds, the maximum number of attempts takes
// us to just over 2 days worth of monitoring.
public static maxAttemptCount = 17280;
public static sleepTime = 5000;
private readonly _onVariantAnalysisChange = this.push(new EventEmitter<VariantAnalysis | undefined>());
readonly onVariantAnalysisChange = this._onVariantAnalysisChange.event;
constructor(
private readonly extensionContext: ExtensionContext,
private readonly logger: Logger
) {
super();
}
public async monitorVariantAnalysis(
@@ -61,6 +66,8 @@ export class VariantAnalysisMonitor {
variantAnalysis = processUpdatedVariantAnalysis(variantAnalysis, variantAnalysisSummary);
this._onVariantAnalysisChange.fire(variantAnalysis);
void this.logger.log('****** Retrieved variant analysis' + JSON.stringify(variantAnalysisSummary));
if (variantAnalysisSummary.scanned_repositories) {