in src/main/java/co/elastic/support/monitoring/MonitoringImportService.java [30:66]
void execImport(MonitoringImportInputs inputs) throws DiagnosticException {
Map<String, Object> configMap = JsonYamlUtils.readYamlFromClasspath(Constants.DIAG_CONFIG, true);
MonitoringImportConfig config = new MonitoringImportConfig(configMap);
try (RestClient client = getClient(inputs, config)){
String tempDir = SystemProperties.userDir + SystemProperties.fileSeparator + Constants.MONITORING_DIR;
String extractDir = tempDir + SystemProperties.fileSeparator +"extract";
// Create the temp directory - delete if first if it exists from a previous run
SystemUtils.nukeDirectory(tempDir);
logger.info(Constants.CONSOLE, "Creating temporary directory {}", tempDir);
new File(extractDir).mkdirs();
// Set up the log file manually since we're going to package it with the diagnostic.
// It will go to wherever we have the temp dir set up.
logger.info(Constants.CONSOLE, "Configuring log file.");
createFileAppender(tempDir, "import.log");
// Check the version.
Semver version = CheckElasticsearchVersion.getElasticsearchVersion(client);
if (version.getMajor() < 7) {
throw new DiagnosticException("Target cluster must be at least 7.x");
}
ArchiveUtils.extractArchive(inputs.input, extractDir);
MonitoringImportProcessor processor = new MonitoringImportProcessor(config, inputs, client);
processor.exec(getDirectoryEntries(extractDir));
}catch (Exception e){
logger.error( "Error extracting archive or indexing results", e);
logger.info(Constants.CONSOLE, "Cannot continue processing. {} \n {}", e.getMessage(), Constants.CHECK_LOG);
}
finally {
closeLogs();
}
}