/** * Builds alert file with all required information - type of event, attachments and sends to * ConnectEMC */ protected void buildAlertFile(EmaApiConnectHome alertFile, EmaApiLogType log) throws Exception { _log.info("Start SendEvent::buildEventType"); alertFile.eventAdd(getEventType(), log); // Create event file to attach String eventFilename = CONNECT_EMC_HOME + EmaApiUtils.emaGenerateFilename(_fileId); _log.info("Event filename: {}", eventFilename); ArrayList<String> fileList = genAttachFiles(); BadRequestException badRequestException = null; if (fileList != null && !fileList.isEmpty()) { boolean attachLogs = true; try { validateAttachmentSize(fileList); } catch (BadRequestException e) { if (forceAttachLogs) { throw e; } badRequestException = e; attachLogs = false; } ArrayList<EmaApiFilenameType> attachFiles = new ArrayList<EmaApiFilenameType>(); if (attachLogs) { for (String file : fileList) { EmaApiFilenameType filename = new EmaApiFilenameType(); filename.setQualifiedFileName(file); filename.setTargetFileName(getTargetFileName(file)); attachFiles.add(filename); } } else { // log size too big, not to attach logs for (String file : fileList) { if (file.equals(SYSTEM_LOGS_FILE_PATH) || file.equals(SYSTEM_EVENT_FILE_PATH)) { continue; } EmaApiFilenameType filename = new EmaApiFilenameType(); filename.setQualifiedFileName(file); filename.setTargetFileName(getTargetFileName(file)); attachFiles.add(filename); } AlertsLogger.getAlertsLogger() .warn( "ConnectEMC alert will be sent without logs attached due to logs have exceeded max allowed size (" + this.getAttachmentsMaxSizeMB() + " MB)"); } alertFile.addFileRawData(eventFilename, attachFiles, log); } alertFile.write(eventFilename, log); alertFile.emaCreateDotEndFile(eventFilename, log); _log.info("Finish SendEvent::buildEventType"); if (badRequestException != null) { throw badRequestException; } }