void execImport()

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();
        }
    }