diff --git a/ameasure2/src/provisioner/MeasurementProvisioner.cpp b/ameasure2/src/provisioner/MeasurementProvisioner.cpp index 784eb401f6a4d1f5e1f32a448840292a0e35b78e..a9ac9b619fc052194e00fd7d9613088b70811d46 100644 --- a/ameasure2/src/provisioner/MeasurementProvisioner.cpp +++ b/ameasure2/src/provisioner/MeasurementProvisioner.cpp @@ -22,14 +22,38 @@ MeasurementProvisionerResults MeasurementProvisioner::runConfiguration ( const M MeasurementProvisionerResults mprResults; + int inputCounter = 1; + int inputCount = mpiData.getSubstitutionMaps ( ).size ( ); + for ( const MPSubstitutionMap & substitutionMap : mpiData.getSubstitutionMaps ( ) ) { MPRResults mprr; for ( const auto & mpsmPair : substitutionMap ) mprr.inputs.push_back ( { mpsmPair.first, mpiData.getMPIDHandle ( mpsmPair.second ).alias } ); - for ( const MPPipeline & pipeline : mpiData.getSubstitutionPipelines ( ) ) + if ( inputCounter != 1 ) + clog << endl << endl; + + clog << "+" << endl; + clog << "| Input [" << inputCounter++ << "/" << inputCount << "]: " << endl; + + for ( const auto & mpsmPair : substitutionMap ) + clog << "| \t$" << mpsmPair.first << " -> " << mpiData.getMPIDHandle ( mpsmPair.second ).alias << endl; + + clog << "| Pipelines:" << endl; + + int pipelineCounter = 1; + int pipelineCount = mpiData.getSubstitutionPipelines ( ).size ( ); + + for ( const MPPipeline & pipeline : mpiData.getSubstitutionPipelines ( ) ) { + if ( pipelineCounter != 1 ) + clog << "|" << endl; + + clog << "| \t[" << pipelineCounter++ << "/" << pipelineCount << "]: " << endl; mprr.pipelineResults.push_back ( runPipeline ( pipeline, substitutionMap ) ); + } + + clog << "+" << endl; mprResults.results.push_back ( std::move ( mprr ) ); } @@ -68,7 +92,9 @@ MPRPipelineResults MeasurementProvisioner::runPipeline ( const MPPipeline & pipe if ( ( inputTmpfileFd == -1 ) || ( outputTmpfileFd == -1 ) || ( errorTmpfileFd == -1 ) ) { if ( inputTmpfileFd != -1 ) close ( inputTmpfileFd ); + if ( outputTmpfileFd != -1 ) close ( outputTmpfileFd ); + if ( errorTmpfileFd != -1 ) close ( errorTmpfileFd ); throw::exception::CommonException ( "MeasurementProvisioner: Cannot make io tmp files" ); @@ -108,13 +134,11 @@ MPRPipelineResults MeasurementProvisioner::runPipeline ( const MPPipeline & pipe string command = mppcIter->substitute ( substitutionMap ); - ofdlog << command << endl; + ofdlog << "| \t" << mppcIter->getRawCommand ( ) << flush; // leave the execution to the system shell int status = system ( command.c_str ( ) ); - ofdlog << WEXITSTATUS ( status ) << endl; - if ( WEXITSTATUS ( status ) != 0 ) { ifdstream errorIfd ( errorTmpfileFd ); stringstream buffer; @@ -122,9 +146,13 @@ MPRPipelineResults MeasurementProvisioner::runPipeline ( const MPPipeline & pipe pipelineResults.pipelineStatus.exitCode = WEXITSTATUS ( status ); pipelineResults.pipelineStatus.errorOrigin = mppcIter->getRawCommand ( ); pipelineResults.pipelineStatus.errorValue = buffer.str ( ); + + ofdlog << " ERROR!" << endl; break; } + ofdlog << " OK!" << endl; + if ( mppcIter->getMeasure ( ) ) { // since we are at the end of file after the output, we need to rewind lseek ( measurementsFd, SEEK_SET, 0 ); @@ -135,7 +163,7 @@ MPRPipelineResults MeasurementProvisioner::runPipeline ( const MPPipeline & pipe measurements::MeasurementResults measurementResults = measurements::MeasurementXmlFactory::parseMeasurementResults ( tokens ); - ofdlog << measurements::MeasurementFormat::TREE << measurementResults << endl; + // ofdlog << measurements::MeasurementFormat::TREE << measurementResults << endl; pipelineResults.commandResults.push_back ( { mppcIter->getRawCommand ( ), std::move ( measurementResults ) } );