From: emartin Date: Tue, 2 Apr 2019 11:40:04 +0000 (+0000) Subject: Handle non-xml PM files X-Git-Tag: 1.0.0~7^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=39bec8163a57b4c026fc78feb12797a0d3bbdc15;p=dcaegen2%2Fservices%2Fpm-mapper.git Handle non-xml PM files *Non-xml files will not be mapped to VES Change-Id: Ice1b901576be4da0593f38eb2c0b4e4676b6019e Issue-ID: DCAEGEN2-1327 Signed-off-by: emartin --- diff --git a/pom.xml b/pom.xml index 31572a3..135a361 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,7 @@ 2.0.16.Final 2.8.5 2.3.28 + 2.6 5.3.2 2.23.4 @@ -127,6 +128,11 @@ freemarker ${freemarker.version} + + commons-io + commons-io + ${commons.io.version} + org.junit.jupiter junit-jupiter-engine diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandler.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandler.java index 7aec457..6896d3c 100644 --- a/src/main/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandler.java +++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandler.java @@ -28,6 +28,7 @@ import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; +import org.apache.commons.io.FilenameUtils; import org.onap.dcaegen2.services.pmmapper.model.Event; import org.onap.dcaegen2.services.pmmapper.model.MeasCollecFile; import org.onap.dcaegen2.services.pmmapper.model.MeasCollecFile.MeasData; @@ -45,6 +46,7 @@ import org.slf4j.LoggerFactory; **/ public class MeasFilterHandler { private static final ONAPLogAdapter logger = new ONAPLogAdapter(LoggerFactory.getLogger(MeasFilterHandler.class)); + public static final String XML_EXTENSION = "xml"; private MeasConverter converter; public MeasFilterHandler(MeasConverter converter) { @@ -129,7 +131,24 @@ public class MeasFilterHandler { logger.unwrap().debug("Filtering the measurement by file type."); String requestPath = event.getHttpServerExchange().getRequestPath(); String fileName = requestPath.substring(requestPath.lastIndexOf('/')+1); - return (fileName.startsWith("C") || fileName.startsWith("A")); + boolean isXML = isXMLFile(fileName); + boolean isValidPMType = isValidPMType(fileName); + if(!isXML) { + logger.unwrap().info("PM measurement file must have an extension of .{}", XML_EXTENSION); + } + if(!isValidPMType) { + logger.unwrap().info("PM measurement file type not supported"); + } + + return isXML && isValidPMType; + } + + private boolean isValidPMType(String fileName) { + return fileName.startsWith("C") || fileName.startsWith("A"); + } + + private boolean isXMLFile(String fileName) { + return FilenameUtils.getExtension(fileName).equals(XML_EXTENSION); } private void setMeasInfoFromMeasType(MeasInfo currentMeasInfo, List filteredMeasInfos, Filter filter) { diff --git a/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java b/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java index 436984e..694b4e9 100644 --- a/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java +++ b/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java @@ -194,7 +194,7 @@ class MeasFilterHandlerTest { @Test void invalid_fileType() { Event event = mock(Event.class); - List invalidFiletypes = Arrays.asList("Bpm.xml","Dpm.xml","asdf","bsdf"); + List invalidFiletypes = Arrays.asList("Bpm.xml","Dpm.xml","Apm.xml.gz","Apm.xm1","asdf","bsdf"); when(event.getHttpServerExchange()).thenReturn(exchange); when(exchange.getRequestPath()) .thenReturn(invalidFiletypes.toString());