diff --git a/src/imageAnalysis.ts b/src/imageAnalysis.ts index 2d8ac9c9..f3e65ea9 100644 --- a/src/imageAnalysis.ts +++ b/src/imageAnalysis.ts @@ -6,6 +6,7 @@ import * as vscode from 'vscode'; import { globalConfig } from './config'; import { imageAnalysisService } from './exhortServices'; import { StatusMessages, Titles } from './constants'; +import * as templates from './template'; import { Options } from '@trustification/exhort-javascript-api'; import { updateCurrentWebviewPanel } from './rhda'; import { buildLogErrorMessage } from './utils'; @@ -162,6 +163,15 @@ class DockerImageAnalysis { try { this.outputChannel.info(`generating image analysis report for "${this.filePath}"`); + // Check if no images were found + if (this.images.length === 0) { + this.outputChannel.info(`no images found in "${this.filePath}"`); + updateCurrentWebviewPanel(templates.NO_IMAGES_TEMPLATE); + p.report({ message: StatusMessages.WIN_FAILURE_DEPENDENCY_ANALYSIS }); + this.imageAnalysisReportHtml = templates.NO_IMAGES_TEMPLATE; + return; + } + const options: IOptions = { 'RHDA_TOKEN': globalConfig.telemetryId ?? '', 'RHDA_SOURCE': globalConfig.utmSource, diff --git a/src/imageAnalysis/diagnostics.ts b/src/imageAnalysis/diagnostics.ts index bbc201a5..d6f2246c 100644 --- a/src/imageAnalysis/diagnostics.ts +++ b/src/imageAnalysis/diagnostics.ts @@ -103,6 +103,10 @@ async function performDiagnostics(diagnosticFilePath: Uri, contents: string, pro }; const images = provider.collect(contents); + if (images.length === 0) { + outputChannelDep.warn(`no image references found in ${diagnosticFilePath}`); + return; + } const imageMap = new ImageMap(images, options); const diagnosticsPipeline = new DiagnosticsPipeline(imageMap, diagnosticFilePath); diff --git a/src/template.ts b/src/template.ts index bdbaf756..9b01c307 100644 --- a/src/template.ts +++ b/src/template.ts @@ -285,3 +285,50 @@ export const ERROR_TEMPLATE = ` `; + +export const NO_IMAGES_TEMPLATE = ` + + + + + + + +
+

No Container Images Found

+

This Dockerfile or Containerfile does not contain any image references to analyze.

+

Add FROM statements with base images to perform stack analysis.

+
+ + `;