diff options
Diffstat (limited to 'models-sim')
22 files changed, 216 insertions, 35 deletions
diff --git a/models-sim/models-sim-dmaap/pom.xml b/models-sim/models-sim-dmaap/pom.xml index bb71eef42..487cec796 100644 --- a/models-sim/models-sim-dmaap/pom.xml +++ b/models-sim/models-sim-dmaap/pom.xml @@ -25,7 +25,7 @@ <parent> <groupId>org.onap.policy.models.sim</groupId> <artifactId>policy-models-sim</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>2.3.5-SNAPSHOT</version> </parent> <artifactId>policy-models-sim-dmaap</artifactId> diff --git a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java index 11da57582..9719ae93f 100644 --- a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java +++ b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/models-sim/packages/models-simulator-docker/pom.xml b/models-sim/packages/models-simulator-docker/pom.xml index c6f4717c0..b9c181fc5 100644 --- a/models-sim/packages/models-simulator-docker/pom.xml +++ b/models-sim/packages/models-simulator-docker/pom.xml @@ -1,6 +1,7 @@ <!-- ============LICENSE_START======================================================= Copyright (C) 2020 Bell Canada. + Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -23,8 +24,8 @@ <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.onap.policy.models.sim</groupId> - <artifactId>policy-models-sim</artifactId> - <version>2.3.2-SNAPSHOT</version> + <artifactId>models-sim-packages</artifactId> + <version>2.3.5-SNAPSHOT</version> </parent> <artifactId>models-simulator-docker</artifactId> @@ -43,6 +44,8 @@ <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry> <docker.push.registry>nexus3.onap.org:10003</docker.push.registry> <maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format> + <!-- There is no code in this sub-module, only holds interfaces. So skip sonar. --> + <sonar.skip>true</sonar.skip> </properties> <build> @@ -166,7 +169,7 @@ <dependency> <groupId>org.onap.policy.models.sim</groupId> <artifactId>models-simulator-tarball</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>${project.version}</version> <classifier>tarball</classifier> <type>tar.gz</type> </dependency> diff --git a/models-sim/packages/models-simulator-tarball/pom.xml b/models-sim/packages/models-simulator-tarball/pom.xml index 9fb1fb5fd..c8c20880d 100644 --- a/models-sim/packages/models-simulator-tarball/pom.xml +++ b/models-sim/packages/models-simulator-tarball/pom.xml @@ -3,6 +3,7 @@ ONAP ================================================================================ Copyright (C) 2020 Bell Canada. + Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,8 +27,8 @@ <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.onap.policy.models.sim</groupId> - <artifactId>policy-models-sim</artifactId> - <version>2.3.2-SNAPSHOT</version> + <artifactId>models-sim-packages</artifactId> + <version>2.3.5-SNAPSHOT</version> </parent> <artifactId>models-simulator-tarball</artifactId> @@ -35,11 +36,16 @@ <name>${project.artifactId}</name> <description>A module that runs all "simulators", including DMaaP.</description> + <properties> + <!-- There is no code in this sub-module, only holds interfaces. So skip sonar. --> + <sonar.skip>true</sonar.skip> + </properties> + <dependencies> <dependency> <groupId>org.onap.policy.models.sim</groupId> <artifactId>policy-models-simulators</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>${project.version}</version> </dependency> </dependencies> diff --git a/models-sim/packages/models-simulator-tarball/src/main/assembly.xml b/models-sim/packages/models-simulator-tarball/src/main/assembly.xml index 9a2fd65df..47395e122 100644 --- a/models-sim/packages/models-simulator-tarball/src/main/assembly.xml +++ b/models-sim/packages/models-simulator-tarball/src/main/assembly.xml @@ -46,5 +46,14 @@ <outputDirectory>etc${file.separator}ssl</outputDirectory> <lineEnding>keep</lineEnding> </fileSet> + <fileSet> + <directory>${project.basedir}/src/main/resources/etc + </directory> + <includes> + <include>*.xml</include> + </includes> + <outputDirectory>etc</outputDirectory> + <lineEnding>unix</lineEnding> + </fileSet> </fileSets> </assembly> diff --git a/models-sim/packages/models-simulator-tarball/src/main/resources/etc/logback.xml b/models-sim/packages/models-simulator-tarball/src/main/resources/etc/logback.xml new file mode 100644 index 000000000..131b0fe33 --- /dev/null +++ b/models-sim/packages/models-simulator-tarball/src/main/resources/etc/logback.xml @@ -0,0 +1,42 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2020 AT&T Intellectual Property. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<configuration scan="true" scanPeriod="30 seconds" debug="false"> + + <!-- + This is only used for testing and only a snapshot docker image is generated, + thus it is not necessary for the messages to following the ONAP standard. + Therefore, keeping it short so it's easier to wade through the output. + + Also sending all output to stdout instead of to a log file; it can be viewed + via "docker logs" or captured by kubernetes. + --> + + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <Pattern>%d %level %msg%n</Pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> + +</configuration> diff --git a/models-sim/packages/pom.xml b/models-sim/packages/pom.xml index 14922559d..ceabde62e 100644 --- a/models-sim/packages/pom.xml +++ b/models-sim/packages/pom.xml @@ -24,7 +24,7 @@ <parent> <groupId>org.onap.policy.models.sim</groupId> <artifactId>policy-models-sim</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>2.3.5-SNAPSHOT</version> </parent> <artifactId>models-sim-packages</artifactId> diff --git a/models-sim/policy-models-sim-pdp/pom.xml b/models-sim/policy-models-sim-pdp/pom.xml index 18d6160db..22425dfa1 100644 --- a/models-sim/policy-models-sim-pdp/pom.xml +++ b/models-sim/policy-models-sim-pdp/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>org.onap.policy.models.sim</groupId> <artifactId>policy-models-sim</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>2.3.5-SNAPSHOT</version> </parent> <artifactId>policy-models-sim-pdp</artifactId> <name>policy-models-sim-pdp</name> diff --git a/models-sim/policy-models-simulators/pom.xml b/models-sim/policy-models-simulators/pom.xml index 9cd19e4c6..c129783aa 100644 --- a/models-sim/policy-models-simulators/pom.xml +++ b/models-sim/policy-models-simulators/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>org.onap.policy.models.sim</groupId> <artifactId>policy-models-sim</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>2.3.5-SNAPSHOT</version> </parent> <artifactId>policy-models-simulators</artifactId> diff --git a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java index a0fafbc9b..f82423c11 100644 --- a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java +++ b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java @@ -83,18 +83,22 @@ public class Main extends ServiceManagerContainer { } DmaapSimParameterGroup dmaapProv = params.getDmaapProvider(); - String dmaapName = dmaapProv.getName(); - String provName = dmaapName.replace("simulator", "provider"); + String dmaapName = (dmaapProv != null ? dmaapProv.getName() : null); // dmaap provider - AtomicReference<DmaapSimProvider> provRef = new AtomicReference<>(); - addAction(provName, () -> provRef.set(buildDmaapProvider(dmaapProv)), () -> provRef.get().shutdown()); + if (dmaapProv != null) { + String provName = dmaapName.replace("simulator", "provider"); + AtomicReference<DmaapSimProvider> provRef = new AtomicReference<>(); + addAction(provName, () -> provRef.set(buildDmaapProvider(dmaapProv)), () -> provRef.get().shutdown()); + } CdsServerParameters cdsServer = params.getGrpcServer(); // Cds Simulator - AtomicReference<CdsSimulator> cdsSim = new AtomicReference<>(); - addAction(cdsServer.getName(), () -> cdsSim.set(buildCdsSimulator(cdsServer)), () -> cdsSim.get().stop()); + if (cdsServer != null) { + AtomicReference<CdsSimulator> cdsSim = new AtomicReference<>(); + addAction(cdsServer.getName(), () -> cdsSim.set(buildCdsSimulator(cdsServer)), () -> cdsSim.get().stop()); + } // REST server simulators // @formatter:off @@ -276,7 +280,7 @@ public class Main extends ServiceManagerContainer { props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SWAGGER_SUFFIX, "false"); props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); - if (dmaapName.equals(params.getName())) { + if (dmaapName != null && dmaapName.equals(params.getName())) { props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, String.join(",", CambriaMessageBodyHandler.class.getName(), GsonMessageBodyHandler.class.getName(), diff --git a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java index 788829f36..4b60d5e45 100644 --- a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java +++ b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java @@ -27,14 +27,14 @@ import lombok.Getter; import org.onap.policy.common.endpoints.parameters.TopicParameters; import org.onap.policy.common.parameters.BeanValidationResult; import org.onap.policy.common.parameters.BeanValidator; -import org.onap.policy.common.parameters.annotations.NotNull; +import org.onap.policy.common.parameters.ObjectValidationResult; +import org.onap.policy.common.parameters.ValidationStatus; import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterGroup; /** * Simulator parameters. */ @Getter -@NotNull public class SimulatorParameters { /** @@ -77,6 +77,24 @@ public class SimulatorParameters { public BeanValidationResult validate(String containerName) { BeanValidationResult result = new BeanValidator().validateTop(containerName, this); + if (dmaapProvider != null) { + // do not want full validation of the provider, so validate the relevant + // fields ourselves + BeanValidationResult subResult = new BeanValidationResult("dmaapProvider", dmaapProvider); + subResult.validateNotNull("name", dmaapProvider.getName()); + if (dmaapProvider.getTopicSweepSec() < 1) { + ObjectValidationResult fieldResult = + new ObjectValidationResult("topicSweepSec", dmaapProvider.getTopicSweepSec(), + ValidationStatus.INVALID, "is below the minimum value: 1"); + subResult.addResult(fieldResult); + } + result.addResult(subResult); + } + + if (grpcServer != null) { + result.addResult(grpcServer.validate()); + } + result.validateList("restServers", restServers, params -> params.validate("restServers")); result.validateList("topicServers", topicServers, params -> params.validate("topicServers")); diff --git a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java index e9e8cbdec..f5598e2e1 100644 --- a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java +++ b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java @@ -109,7 +109,7 @@ public class MainTest { @Test public void testConstructor() throws Exception { - assertThatIllegalArgumentException().isThrownBy(() -> new Main("invalidSimParameters.json")) + assertThatIllegalArgumentException().isThrownBy(() -> new Main("invalidDmaapProvider.json")) .withMessage("invalid simulator parameters"); } @@ -125,7 +125,7 @@ public class MainTest { Main.main(new String[] {PARAMETER_FILE}); // don't need to wait long, because buildXxx() does the wait for us - for (int port = 6666; port <= 6670; ++port) { + for (int port : new int[] {6666, 6667, 6668, 6669, 6670, 6680}) { assertTrue("simulator on port " + port, NetworkUtil.isTcpPortOpen(HOST, port, 1, 100)); } @@ -133,6 +133,13 @@ public class MainTest { checkAai(); } + @Test + public void testMainMinimalParameters() { + Main.main(new String[] {"minParameters.json"}); + assertNotNull(Main.getInstance()); + assertTrue(Main.getInstance().isAlive()); + } + private void checkAai() throws HttpClientConfigException { BusTopicParams params = BusTopicParams.builder().clientName("client").hostname(HOST).port(6666).useHttps(true) .allowSelfSignedCerts(true).basePath("aai").build(); diff --git a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java index 5294ca483..8094ca419 100644 --- a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java +++ b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java @@ -20,6 +20,7 @@ package org.onap.policy.models.simulators; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -34,14 +35,51 @@ public class SimulatorParametersTest { @Test public void testValidate() throws CoderException { - // some fields missing - BeanValidationResult result = new SimulatorParameters().validate("InvalidParams"); - assertFalse(result.isValid()); - assertNotNull(result.getResult()); - - // everything populated SimulatorParameters params = new StandardCoder().decode(new File("src/test/resources/simParameters.json"), SimulatorParameters.class); assertNull(params.validate("ValidParams").getResult()); } + + @Test + public void testValidateEmptyRestServer() throws CoderException { + SimulatorParameters params = new StandardCoder() + .decode(new File("src/test/resources/emptyRestServer.json"), SimulatorParameters.class); + assertNull(params.validate("ValidParams").getResult()); + } + + @Test + public void testValidateInvalidDmaapProvider() throws CoderException { + SimulatorParameters params = new StandardCoder() + .decode(new File("src/test/resources/invalidDmaapProvider.json"), SimulatorParameters.class); + BeanValidationResult result = params.validate("InvalidDmaapParams"); + assertFalse(result.isValid()); + assertNotNull(result.getResult()); + } + + @Test + public void testValidateInvalidDmaapName() throws CoderException { + SimulatorParameters params = new StandardCoder().decode( + new File("src/test/resources/invalidDmaapName.json"), SimulatorParameters.class); + BeanValidationResult result = params.validate("InvalidDmaapParams"); + assertFalse(result.isValid()); + assertThat(result.getResult()).contains("item \"name\" value \"null\""); + } + + @Test + public void testValidateInvalidTopicSweep() throws CoderException { + SimulatorParameters params = new StandardCoder().decode( + new File("src/test/resources/invalidTopicSweep.json"), SimulatorParameters.class); + BeanValidationResult result = params.validate("InvalidDmaapParams"); + assertFalse(result.isValid()); + assertThat(result.getResult()).contains("topicSweepSec"); + } + + @Test + public void testValidateInvalidGrpcServer() throws CoderException { + SimulatorParameters params = new StandardCoder() + .decode(new File("src/test/resources/invalidGrpcServer.json"), SimulatorParameters.class); + BeanValidationResult result = params.validate("InvalidGrpcParams"); + assertFalse(result.isValid()); + assertNotNull(result.getResult()); + } } diff --git a/models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json b/models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json new file mode 100644 index 000000000..4a86253da --- /dev/null +++ b/models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json @@ -0,0 +1,11 @@ +{ + "dmaapProvider": { + "name": "DMaaP simulator", + "topicSweepSec": 300, + "restServerParameters": {} + }, + "restServers": [], + "topicSinks": [], + "topicSources": [], + "topicServers": [] +} diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json new file mode 100644 index 000000000..889c4c844 --- /dev/null +++ b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json @@ -0,0 +1,10 @@ +{ + "dmaapProvider": { + "name": null, + "topicSweepSec":300 + }, + "restServers": [], + "topicSinks": [], + "topicSources": [], + "topicServers": [] +} diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json new file mode 100644 index 000000000..ff6790144 --- /dev/null +++ b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json @@ -0,0 +1,7 @@ +{ + "dmaapProvider": {}, + "restServers": [], + "topicSinks": [], + "topicSources": [], + "topicServers": [] +} diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json b/models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json new file mode 100644 index 000000000..86e425364 --- /dev/null +++ b/models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json @@ -0,0 +1,7 @@ +{ + "grpcServer": {}, + "restServers": [], + "topicSinks": [], + "topicSources": [], + "topicServers": [] +} diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidSimParameters.json b/models-sim/policy-models-simulators/src/test/resources/invalidSimParameters.json deleted file mode 100644 index 2c63c0851..000000000 --- a/models-sim/policy-models-simulators/src/test/resources/invalidSimParameters.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json b/models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json new file mode 100644 index 000000000..11a37d5c4 --- /dev/null +++ b/models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json @@ -0,0 +1,10 @@ +{ + "dmaapProvider": { + "name": "DMaaP simulator", + "topicSweepSec":0 + }, + "restServers": [], + "topicSinks": [], + "topicSources": [], + "topicServers": [] +} diff --git a/models-sim/policy-models-simulators/src/test/resources/minParameters.json b/models-sim/policy-models-simulators/src/test/resources/minParameters.json new file mode 100644 index 000000000..c7ea49874 --- /dev/null +++ b/models-sim/policy-models-simulators/src/test/resources/minParameters.json @@ -0,0 +1,14 @@ +{ + "restServers": [ + { + "name": "A&AI simulator", + "providerClass": "org.onap.policy.simulators.AaiSimulatorJaxRs", + "host": "localhost", + "port": 6766, + "https": true + } + ], + "topicSinks": [], + "topicSources": [], + "topicServers": [] +} diff --git a/models-sim/policy-models-simulators/src/test/resources/simParameters.json b/models-sim/policy-models-simulators/src/test/resources/simParameters.json index 1d1c0aad7..df8de6ff7 100644 --- a/models-sim/policy-models-simulators/src/test/resources/simParameters.json +++ b/models-sim/policy-models-simulators/src/test/resources/simParameters.json @@ -1,10 +1,7 @@ { "dmaapProvider": { "name": "DMaaP simulator", - "topicSweepSec": 300, - "restServerParameters": { - - } + "topicSweepSec": 300 }, "restServers": [ { diff --git a/models-sim/pom.xml b/models-sim/pom.xml index ce9cfae06..40eb2a199 100644 --- a/models-sim/pom.xml +++ b/models-sim/pom.xml @@ -25,7 +25,7 @@ <parent> <groupId>org.onap.policy.models</groupId> <artifactId>policy-models</artifactId> - <version>2.3.2-SNAPSHOT</version> + <version>2.3.5-SNAPSHOT</version> </parent> <groupId>org.onap.policy.models.sim</groupId> |