@@ -21,7 +21,7 @@ import * as path from 'node:path';
2121import * as os from 'node:os' ;
2222import * as fs from 'node:fs' ;
2323import { commander , isDaemonRunning } from './daemon-commander' ;
24- import { defaultPreset , getPresetLabel , isWindows , productName , providerId } from './util' ;
24+ import { defaultPreset , getLoggerCallback , getPresetLabel , isWindows , productName , providerId } from './util' ;
2525import type { CrcVersion } from './crc-cli' ;
2626import { getPreset } from './crc-cli' ;
2727import { getCrcVersion } from './crc-cli' ;
@@ -248,41 +248,17 @@ async function createCrcVm(
248248 logger : extensionApi . Logger ,
249249) : Promise < void > {
250250 // we already have an instance
251- if ( crcStatus . status . CrcStatus !== 'No Cluster' && ! isNeedSetup ( ) ) {
251+ if ( crcStatus . status . CrcStatus !== 'No Cluster' ) {
252252 return ;
253253 }
254254
255- if ( isNeedSetup ( ) ) {
256- const initResult = await initializeCrc ( provider , extensionContext , telemetryLogger , logger ) ;
257- if ( ! initResult ) {
258- throw new Error ( `${ productName } not initialized.` ) ;
259- }
260- }
261-
262- const hasStarted = await startCrc ( provider , logger , telemetryLogger ) ;
255+ const hasStarted = await startCrc ( provider , getLoggerCallback ( undefined , logger ) , telemetryLogger ) ;
263256 if ( ! connectionDisposable && hasStarted ) {
264257 addCommands ( telemetryLogger ) ;
265258 await presetChanged ( provider , extensionContext , telemetryLogger ) ;
266259 }
267260}
268261
269- async function initializeCrc (
270- provider : extensionApi . Provider ,
271- extensionContext : extensionApi . ExtensionContext ,
272- telemetryLogger : extensionApi . TelemetryLogger ,
273- logger : extensionApi . Logger ,
274- ) : Promise < boolean > {
275- const hasSetupFinished = await setUpCrc ( logger , true ) ;
276- if ( hasSetupFinished ) {
277- await needSetup ( ) ;
278- await connectToCrc ( ) ;
279- await presetChanged ( provider , extensionContext , telemetryLogger ) ;
280- addCommands ( telemetryLogger ) ;
281- await syncPreferences ( provider , extensionContext , telemetryLogger ) ;
282- }
283- return hasSetupFinished ;
284- }
285-
286262function addCommands ( telemetryLogger : extensionApi . TelemetryLogger ) : void {
287263 registerOpenTerminalCommand ( ) ;
288264 registerOpenConsoleCommand ( ) ;
@@ -353,9 +329,14 @@ function registerOpenShiftLocalCluster(
353329 delete : ( ) => {
354330 return handleDelete ( provider , extensionContext , telemetryLogger ) ;
355331 } ,
356- start : async ctx => {
332+ start : async ( ctx , logger ) => {
357333 provider . updateStatus ( 'starting' ) ;
358- await startCrc ( provider , ctx . log , telemetryLogger ) ;
334+ try {
335+ await startCrc ( provider , getLoggerCallback ( ctx , logger , ) , telemetryLogger ) ;
336+ } catch ( e ) {
337+ logger ?. error ( e ) ;
338+ throw e ;
339+ }
359340 } ,
360341 stop : ( ) => {
361342 provider . updateStatus ( 'stopping' ) ;
0 commit comments