From 0a33a29a9335c456117cae7afed0ed92385573f3 Mon Sep 17 00:00:00 2001 From: "waqas.ikram" Date: Tue, 23 Jul 2019 12:39:15 +0000 Subject: [PATCH] Creating infrastructure for aai simulator Change-Id: I73b15d50db8216e7fe3e2cade3b80fe645f363a9 Issue-ID: SO-1953 Signed-off-by: waqas.ikram --- .../so/integration-etsi-testing/docker-compose.yml | 26 +++++++-- .../so-simulators/aai-simulator/pom.xml | 34 +++++++++++ .../so/aai/simulator/AaiSimulatorApplication.java | 37 ++++++++++++ .../so/aai/simulator/AaiSimulatorController.java | 48 ++++++++++++++++ .../org/onap/so/aai/simulator/utils/Constant.java | 34 +++++++++++ .../src/main/resources/application.yaml | 5 ++ .../aai/simulator/AaiSimulatorControllerTest.java | 67 ++++++++++++++++++++++ .../so-simulators/package/docker/pom.xml | 30 +++++++++- .../integration-etsi-testing/so-simulators/pom.xml | 1 + .../so/sdc/simulator/SdcSimulatorController.java | 4 +- .../simulator/providers/ResourceProviderImpl.java | 2 +- .../so/sdc/simulator/{ => utils}/Constant.java | 2 +- .../src/main/resources/application.yaml | 2 +- .../sdc/simulator/SdcSimulatorControllerTest.java | 6 +- .../providers/ResourceProviderImplTest.java | 2 +- 15 files changed, 283 insertions(+), 17 deletions(-) create mode 100644 plans/so/integration-etsi-testing/so-simulators/aai-simulator/pom.xml create mode 100644 plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorApplication.java create mode 100644 plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorController.java create mode 100644 plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/utils/Constant.java create mode 100644 plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/resources/application.yaml create mode 100644 plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/test/java/org/onap/so/aai/simulator/AaiSimulatorControllerTest.java rename plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/{ => utils}/Constant.java (97%) diff --git a/plans/so/integration-etsi-testing/docker-compose.yml b/plans/so/integration-etsi-testing/docker-compose.yml index bbc03df9..2286c9a9 100644 --- a/plans/so/integration-etsi-testing/docker-compose.yml +++ b/plans/so/integration-etsi-testing/docker-compose.yml @@ -87,7 +87,7 @@ services: - -- - "/app/start-app.sh" ################################################################################ - VNFM-adapter: + vnfm-adapter: image: ${NEXUS_DOCKER_REPO_MSO}/onap/so/vnfm-adapter:${TAG} ports: - "9092:9092" @@ -95,7 +95,7 @@ services: - ${TEST_LAB_DIR}/volumes/so/ca-certificates/onapheat:/app/ca-certificates - ${TEST_LAB_DIR}/volumes/so/config/vnfm-adapter/onapheat:/app/config environment: - - APP=VNFM-adapter + - APP=vnfm-adapter - JVM_ARGS=-Xms64m -Xmx512m hostname: vnfm-adapter-test @@ -126,7 +126,25 @@ services: sdc-simulator depends_on: - mariadb - - VNFM-adapter + - vnfm-adapter + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" +################################################################################ + aai-simulator: + image: simulators/aai-simulator:latest + ports: + - "9993:9993" + environment: + - APP=AAI-SIMULATOR + - JVM_ARGS=-Xms64m -Xmx512m + hostname: + aai-simulator + depends_on: + - mariadb + - vnfm-adapter logging: driver: "json-file" options: @@ -146,7 +164,7 @@ services: - CATALOG_DB=catalogdb depends_on: - mariadb - - VNFM-adapter + - vnfm-adapter command: - "/config/apply-workarounds.sh" ################################################################################ diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/pom.xml b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/pom.xml new file mode 100644 index 00000000..1d1f8dba --- /dev/null +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/pom.xml @@ -0,0 +1,34 @@ + + 4.0.0 + + org.onap.so.simulators + so-simulators + 1.0-SNAPSHOT + + aai-simulator + + + + + org.springframework.boot + spring-boot-maven-plugin + + org.onap.so.aai.simulator.AaiSimulatorApplication + + + + + repackage + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorApplication.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorApplication.java new file mode 100644 index 00000000..72c37ad3 --- /dev/null +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorApplication.java @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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========================================================= + */ +package org.onap.so.aai.simulator; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * @author waqas.ikram@ericsson.com + * + */ +@SpringBootApplication(scanBasePackages = {"org.onap"}) +public class AaiSimulatorApplication extends SpringBootServletInitializer { + + public static void main(final String[] args) { + SpringApplication.run(AaiSimulatorApplication.class, args); + } + +} diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorController.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorController.java new file mode 100644 index 00000000..4acae56d --- /dev/null +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/AaiSimulatorController.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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========================================================= + */ +package org.onap.so.aai.simulator; + +import javax.ws.rs.core.MediaType; +import org.onap.so.aai.simulator.utils.Constant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author waqas.ikram@ericsson.com + * + */ +@RestController +@RequestMapping(path = Constant.BASE_URL) +public class AaiSimulatorController { + private static final Logger LOGGER = LoggerFactory.getLogger(AaiSimulatorController.class); + + @GetMapping(value = "/healthcheck", produces = MediaType.TEXT_PLAIN) + @ResponseStatus(code = HttpStatus.OK) + public String healthCheck() { + LOGGER.info("Running health check ..."); + return Constant.HEALTHY; + } + +} diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/utils/Constant.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/utils/Constant.java new file mode 100644 index 00000000..9dd503bb --- /dev/null +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/java/org/onap/so/aai/simulator/utils/Constant.java @@ -0,0 +1,34 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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========================================================= + */ +package org.onap.so.aai.simulator.utils; + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class Constant { + + public static final String BASE_URL = "/simulator/aai"; + + public static final String HEALTHY = "healthy"; + + private Constant() {} + +} diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/resources/application.yaml b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/resources/application.yaml new file mode 100644 index 00000000..69f46eab --- /dev/null +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/main/resources/application.yaml @@ -0,0 +1,5 @@ +server: + port: 9993 + tomcat: + max-threads: 4 +ssl-enable: false diff --git a/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/test/java/org/onap/so/aai/simulator/AaiSimulatorControllerTest.java b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/test/java/org/onap/so/aai/simulator/AaiSimulatorControllerTest.java new file mode 100644 index 00000000..0bd6aaaa --- /dev/null +++ b/plans/so/integration-etsi-testing/so-simulators/aai-simulator/src/test/java/org/onap/so/aai/simulator/AaiSimulatorControllerTest.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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========================================================= + */ +package org.onap.so.aai.simulator; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.so.aai.simulator.utils.Constant; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * @author waqas.ikram@ericsson.com + * + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ActiveProfiles("test") +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) +@Configuration +public class AaiSimulatorControllerTest { + + @LocalServerPort + private int port; + + @Autowired + private TestRestTemplate restTemplate; + + @Test + public void test_healthCheck_matchContent() { + final String url = getBaseUrl() + "/healthcheck"; + final ResponseEntity object = restTemplate.getForEntity(url, String.class); + + assertEquals(Constant.HEALTHY, object.getBody()); + + } + + private String getBaseUrl() { + return "http://localhost:" + port + Constant.BASE_URL; + } + + + +} diff --git a/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml b/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml index 1753f4b5..5736c8e1 100644 --- a/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml +++ b/plans/so/integration-etsi-testing/so-simulators/package/docker/pom.xml @@ -57,6 +57,29 @@ + + simulators/aai-simulator + + try + docker-files + Dockerfile.so-simulator-base-image + + ${project.version} + + + + + + + org.onap.so.simulators:aai-simulator + + app.jar + + + + + + @@ -79,8 +102,6 @@ build - - @@ -102,6 +123,11 @@ sdc-simulator ${project.version} + + org.onap.so.simulators + aai-simulator + ${project.version} + diff --git a/plans/so/integration-etsi-testing/so-simulators/pom.xml b/plans/so/integration-etsi-testing/so-simulators/pom.xml index 5e582c89..c18e1709 100644 --- a/plans/so/integration-etsi-testing/so-simulators/pom.xml +++ b/plans/so/integration-etsi-testing/so-simulators/pom.xml @@ -18,6 +18,7 @@ sdc-simulator + aai-simulator package diff --git a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/SdcSimulatorController.java b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/SdcSimulatorController.java index 953df6fc..b844caa2 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/SdcSimulatorController.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/SdcSimulatorController.java @@ -23,6 +23,7 @@ package org.onap.so.sdc.simulator; import java.util.Optional; import javax.ws.rs.core.MediaType; import org.onap.so.sdc.simulator.providers.ResourceProvider; +import org.onap.so.sdc.simulator.utils.Constant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -40,6 +41,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(path = Constant.BASE_URL) public class SdcSimulatorController { + private static final Logger LOGGER = LoggerFactory.getLogger(SdcSimulatorController.class); private ResourceProvider resourceProvider; @@ -47,8 +49,6 @@ public class SdcSimulatorController { this.resourceProvider = resourceProvider; } - private static final Logger LOGGER = LoggerFactory.getLogger(SdcSimulatorController.class); - @GetMapping(value = "/healthcheck", produces = MediaType.APPLICATION_JSON) @ResponseStatus(code = HttpStatus.OK) public String healthCheck() { diff --git a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/providers/ResourceProviderImpl.java b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/providers/ResourceProviderImpl.java index 302dcb69..cdc96f61 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/providers/ResourceProviderImpl.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/providers/ResourceProviderImpl.java @@ -26,7 +26,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Optional; -import org.onap.so.sdc.simulator.Constant; +import org.onap.so.sdc.simulator.utils.Constant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; diff --git a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/Constant.java b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/utils/Constant.java similarity index 97% rename from plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/Constant.java rename to plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/utils/Constant.java index d03bb7bf..d22de711 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/Constant.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/java/org/onap/so/sdc/simulator/utils/Constant.java @@ -13,7 +13,7 @@ * SPDX-License-Identifier: Apache-2.0 ============LICENSE_END========================================================= */ -package org.onap.so.sdc.simulator; +package org.onap.so.sdc.simulator.utils; /** * @author Waqas Ikram (waqas.ikram@est.tech) diff --git a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/resources/application.yaml b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/resources/application.yaml index f1e63b10..89a13aa5 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/resources/application.yaml +++ b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/main/resources/application.yaml @@ -1,5 +1,5 @@ server: port: 9991 tomcat: - max-threads: 50 + max-threads: 4 ssl-enable: false diff --git a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/SdcSimulatorControllerTest.java b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/SdcSimulatorControllerTest.java index 5c7a77a8..7834425d 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/SdcSimulatorControllerTest.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/SdcSimulatorControllerTest.java @@ -23,14 +23,12 @@ package org.onap.so.sdc.simulator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; - import java.util.Optional; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.onap.so.sdc.simulator.providers.ResourceProvider; +import org.onap.so.sdc.simulator.utils.Constant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; @@ -51,8 +49,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @Configuration public class SdcSimulatorControllerTest { - private static final String MOCKER_SDC_CONTROLLER_BEAN = "mockResourceProvider"; - @LocalServerPort private int port; diff --git a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/providers/ResourceProviderImplTest.java b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/providers/ResourceProviderImplTest.java index a06d1e71..4871d511 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/providers/ResourceProviderImplTest.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdc-simulator/src/test/java/org/onap/so/sdc/simulator/providers/ResourceProviderImplTest.java @@ -30,7 +30,7 @@ import java.nio.file.Path; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.onap.so.sdc.simulator.Constant; +import org.onap.so.sdc.simulator.utils.Constant; import org.springframework.core.io.ClassPathResource; import org.springframework.util.StreamUtils; -- 2.16.6