@@ -326,73 +326,76 @@ protected boolean performInstanceConversionUsingVddk(RemoteInstanceTO vmwareInst
326326 return false ;
327327 }
328328
329- String vpxUrl = buildVpxUrl (vmwareInstance , originalVMName );
329+ try {
330+ String vpxUrl = buildVpxUrl (vmwareInstance , originalVMName );
330331
331- StringBuilder cmd = new StringBuilder ();
332+ StringBuilder cmd = new StringBuilder ();
332333
333- String effectiveLibguestfsBackend = StringUtils .defaultIfBlank (libguestfsBackend , "direct" );
334- cmd .append ("export LIBGUESTFS_BACKEND=" ).append (effectiveLibguestfsBackend ).append (" && " );
334+ String effectiveLibguestfsBackend = StringUtils .defaultIfBlank (libguestfsBackend , "direct" );
335+ cmd .append ("export LIBGUESTFS_BACKEND=" ).append (effectiveLibguestfsBackend ).append (" && " );
335336
336- cmd .append ("virt-v2v " );
337- cmd .append ("--root first " );
338- cmd .append ("-ic '" ).append (vpxUrl ).append ("' " );
339- if (StringUtils .isBlank (passwordOption )) {
340- logger .error ("({}) Could not determine supported password file option for virt-v2v" , originalVMName );
341- return false ;
342- }
337+ cmd .append ("virt-v2v " );
338+ cmd .append ("--root first " );
339+ cmd .append ("-ic '" ).append (vpxUrl ).append ("' " );
340+ if (StringUtils .isBlank (passwordOption )) {
341+ logger .error ("({}) Could not determine supported password file option for virt-v2v" , originalVMName );
342+ return false ;
343+ }
343344
344- cmd .append (passwordOption ).append (" " ).append (passwordFilePath ).append (" " );
345- cmd .append ("-it vddk " );
346- cmd .append ("-io vddk-libdir=" ).append (vddkLibDir ).append (" " );
347- String vddkThumbprint = StringUtils .trimToNull (configuredVddkThumbprint );
348- if (StringUtils .isBlank (vddkThumbprint )) {
349- vddkThumbprint = getVcenterThumbprint (vmwareInstance .getVcenterHost (), timeout , originalVMName );
350- }
351- if (StringUtils .isBlank (vddkThumbprint )) {
352- logger .error ("({}) Could not determine vCenter thumbprint for {}" , originalVMName , vmwareInstance .getVcenterHost ());
353- return false ;
354- }
355- cmd .append ("-io vddk-thumbprint=" ).append (vddkThumbprint ).append (" " );
356- if (StringUtils .isNotBlank (vddkTransports )) {
357- cmd .append ("-io vddk-transports=" ).append (vddkTransports ).append (" " );
358- }
359- cmd .append (originalVMName ).append (" " );
360- cmd .append ("-o local " );
361- cmd .append ("-os " ).append (temporaryConvertFolder ).append (" " );
362- cmd .append ("-of qcow2 " );
363- cmd .append ("-on " ).append (temporaryConvertUuid ).append (" " );
345+ cmd .append (passwordOption ).append (" " ).append (passwordFilePath ).append (" " );
346+ cmd .append ("-it vddk " );
347+ cmd .append ("-io vddk-libdir=" ).append (vddkLibDir ).append (" " );
348+ String vddkThumbprint = StringUtils .trimToNull (configuredVddkThumbprint );
349+ if (StringUtils .isBlank (vddkThumbprint )) {
350+ vddkThumbprint = getVcenterThumbprint (vmwareInstance .getVcenterHost (), timeout , originalVMName );
351+ }
352+ if (StringUtils .isBlank (vddkThumbprint )) {
353+ logger .error ("({}) Could not determine vCenter thumbprint for {}" , originalVMName , vmwareInstance .getVcenterHost ());
354+ return false ;
355+ }
356+ cmd .append ("-io vddk-thumbprint=" ).append (vddkThumbprint ).append (" " );
357+ if (StringUtils .isNotBlank (vddkTransports )) {
358+ cmd .append ("-io vddk-transports=" ).append (vddkTransports ).append (" " );
359+ }
360+ cmd .append (originalVMName ).append (" " );
361+ cmd .append ("-o local " );
362+ cmd .append ("-os " ).append (temporaryConvertFolder ).append (" " );
363+ cmd .append ("-of qcow2 " );
364+ cmd .append ("-on " ).append (temporaryConvertUuid ).append (" " );
365+
366+ if (verboseModeEnabled ) {
367+ cmd .append ("-v " );
368+ }
364369
365- if (verboseModeEnabled ) {
366- cmd .append ("-v " );
367- }
370+ if (StringUtils . isNotBlank ( extraParams ) ) {
371+ cmd .append (extraParams ). append ( " " );
372+ }
368373
369- if ( StringUtils . isNotBlank ( extraParams )) {
370- cmd . append ( extraParams ). append ( " " );
371- }
374+ Script script = new Script ( "/bin/bash" , timeout , logger );
375+ script . add ( "-c " );
376+ script . add ( cmd . toString ());
372377
373- Script script = new Script ( "/bin/bash " , timeout , logger );
374- script . add ( "-c" );
375- script . add ( cmd . toString () );
378+ String logPrefix = String . format ( "(%s) virt-v2v vddk import " , originalVMName );
379+ OutputInterpreter . LineByLineOutputLogger outputLogger =
380+ new OutputInterpreter . LineByLineOutputLogger ( logger , logPrefix );
376381
377- String logPrefix = String .format ("(%s) virt-v2v vddk import" , originalVMName );
378- OutputInterpreter .LineByLineOutputLogger outputLogger =
379- new OutputInterpreter .LineByLineOutputLogger (logger , logPrefix );
382+ logger .info ("({}) Starting virt-v2v VDDK conversion" , originalVMName );
383+ script .execute (outputLogger );
380384
381- logger .info ("({}) Starting virt-v2v VDDK conversion" , originalVMName );
382- script .execute (outputLogger );
385+ int exitValue = script .getExitValue ();
386+ if (exitValue != 0 ) {
387+ logger .error ("({}) virt-v2v failed with exit code {}" , originalVMName , exitValue );
388+ }
383389
384- int exitValue = script .getExitValue ();
385- if (exitValue != 0 ) {
386- logger .error ("({}) virt-v2v failed with exit code {}" , originalVMName , exitValue );
387- }
388- try {
389- Files .deleteIfExists (Path .of (passwordFilePath ));
390- logger .debug ("({}) Deleted password file {}" , originalVMName , passwordFilePath );
391- } catch (Exception e ) {
392- logger .warn ("({}) Failed to delete password file {}: {}" , originalVMName , passwordFilePath , e .getMessage ());
390+ return exitValue == 0 ;
391+ } finally {
392+ try {
393+ Files .deleteIfExists (Path .of (passwordFilePath ));
394+ logger .debug ("({}) Deleted password file {}" , originalVMName , passwordFilePath );
395+ } catch (Exception e ) {
396+ logger .warn ("({}) Failed to delete password file {}: {}" , originalVMName , passwordFilePath , e .getMessage ());
397+ }
393398 }
394-
395- return exitValue == 0 ;
396399 }
397400
398401 protected String getVcenterThumbprint (String vcenterHost , long timeout , String originalVMName ) {
0 commit comments