From cb0256d46fa8fd75f54482917ec1cd4aba02fb55 Mon Sep 17 00:00:00 2001 From: "waqas.ikram" Date: Fri, 16 Jun 2023 13:05:04 +0100 Subject: Refactored code to enable its utilization in Junit tests for the client Change-Id: I847ae0f48444af907039bfddb9879581003c0f35 Issue-ID: CPS-1751 Signed-off-by: waqas.ikram --- cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml | 56 ++++++ .../org/onap/cps/ncmp/rest/stub/Application.java | 32 ++++ .../cps-ncmp-rest-stub-service/pom.xml | 50 +++++ .../controller/NetworkCmProxyStubController.java | 210 +++++++++++++++++++++ .../src/main/resources/application.yml | 39 ++++ .../src/main/resources/stubs/cmHandlesSearch.json | 8 + .../stubs/passthrough-operational-example.json | 45 +++++ cps-ncmp-rest-stub/pom.xml | 158 +--------------- .../org/onap/cps/ncmp/rest/stub/Application.java | 32 ---- .../controller/NetworkCmProxyStubController.java | 116 ------------ .../handlers/NetworkCmProxyApiStubDefaultImpl.java | 143 -------------- .../src/main/resources/application.yml | 39 ---- .../src/main/resources/stubs/cmHandlesSearch.json | 8 - .../stubs/passthrough-operational-example.json | 45 ----- .../test/java/org/onap/cps/TestApplication.java | 30 --- cps-parent/pom.xml | 3 +- 16 files changed, 452 insertions(+), 562 deletions(-) create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/application.yml create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/cmHandlesSearch.json create mode 100644 cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/passthrough-operational-example.json delete mode 100644 cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java delete mode 100644 cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java delete mode 100644 cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java delete mode 100644 cps-ncmp-rest-stub/src/main/resources/application.yml delete mode 100644 cps-ncmp-rest-stub/src/main/resources/stubs/cmHandlesSearch.json delete mode 100644 cps-ncmp-rest-stub/src/main/resources/stubs/passthrough-operational-example.json delete mode 100644 cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml new file mode 100644 index 000000000..7a244c4d4 --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml @@ -0,0 +1,56 @@ + + + + + 4.0.0 + + org.onap.cps + cps-ncmp-rest-stub + 3.3.3-SNAPSHOT + + + cps-ncmp-rest-stub-app + + + + + org.springframework.boot + spring-boot-maven-plugin + + org.onap.cps.ncmp.rest.stub.Application + + + + + repackage + + + + + + + + + + org.onap.cps + cps-ncmp-rest-stub-service + ${project.version} + + + \ No newline at end of file diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java new file mode 100644 index 000000000..0f0035dab --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java @@ -0,0 +1,32 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Bell Canada. + * ================================================================================ + * 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.cps.ncmp.rest.stub; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(final String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml new file mode 100644 index 000000000..fc33270ea --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + org.onap.cps + cps-ncmp-rest-stub + 3.3.3-SNAPSHOT + + cps-ncmp-rest-stub-service + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + compile + + + org.springframework.boot + spring-boot-starter-jetty + compile + + + org.onap.cps + cps-ncmp-rest + + + \ No newline at end of file diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java new file mode 100644 index 000000000..37980ed8d --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java @@ -0,0 +1,210 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Bell Canada + * Modifications Copyright (c) 2022-2023 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.cps.ncmp.rest.stub.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import lombok.extern.slf4j.Slf4j; +import org.onap.cps.ncmp.api.impl.operations.DatastoreType; +import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; +import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters; +import org.onap.cps.ncmp.rest.model.ResourceDataBatchRequest; +import org.onap.cps.ncmp.rest.model.RestModuleDefinition; +import org.onap.cps.ncmp.rest.model.RestModuleReference; +import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; +import org.onap.cps.ncmp.rest.model.RestOutputCmHandleCompositeState; +import org.onap.cps.ncmp.rest.model.RestOutputCmHandlePublicProperties; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Slf4j +@RestController +@RequestMapping("${rest.api.ncmp-stub-base-path}") +public class NetworkCmProxyStubController implements NetworkCmProxyApi { + + @Value("${stub.path}") + private String pathToResponseFiles; + private static final String ASYNC_REQUEST_ID = "requestId"; + + @Override + public ResponseEntity getResourceDataForCmHandle(final String datastoreName, final String cmHandle, + final String resourceIdentifier, + final String optionsParamInQuery, + final String topicParamInQuery, + final Boolean includeDescendants) { + if (DatastoreType.PASSTHROUGH_OPERATIONAL == DatastoreType.fromDatastoreName(datastoreName)) { + final ResponseEntity> asyncResponse = populateAsyncResponse(topicParamInQuery); + final Map asyncResponseData = asyncResponse.getBody(); + Object responseObject = null; + // read JSON file and map/convert to java POJO + final ClassPathResource resource = new ClassPathResource( + pathToResponseFiles + "passthrough-operational-example.json"); + try (InputStream inputStream = resource.getInputStream()) { + final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); + final ObjectMapper mapper = new ObjectMapper(); + responseObject = mapper.readValue(string, Object.class); + } catch (final IOException exception) { + log.error("Error reading the file.", exception); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + if (asyncResponseData == null) { + return ResponseEntity.ok(responseObject); + } + return ResponseEntity.ok(asyncResponse); + } + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity> searchCmHandles( + final CmHandleQueryParameters cmHandleQueryParameters) { + List restOutputCmHandles = null; + // read JSON file and map/convert to java POJO + final ClassPathResource resource = new ClassPathResource(pathToResponseFiles + "cmHandlesSearch.json"); + try (InputStream inputStream = resource.getInputStream()) { + final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); + final ObjectMapper mapper = new ObjectMapper(); + restOutputCmHandles = Arrays.asList(mapper.readValue(string, RestOutputCmHandle[].class)); + } catch (final IOException exception) { + log.error("Error reading the file.", exception); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + return ResponseEntity.ok(restOutputCmHandles); + } + + private ResponseEntity> populateAsyncResponse(final String topicParamInQuery) { + final Map responseData; + if (topicParamInQuery == null) { + responseData = null; + } else { + responseData = getAsyncResponseData(); + } + return ResponseEntity.ok().body(responseData); + } + + private Map getAsyncResponseData() { + final Map asyncResponseData = new HashMap<>(1); + final String resourceDataRequestId = UUID.randomUUID().toString(); + asyncResponseData.put(ASYNC_REQUEST_ID, resourceDataRequestId); + return asyncResponseData; + } + + @Override + public ResponseEntity createResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, + final String datastoreName, final String cmHandle, + @Valid final Object body, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity deleteResourceDataRunningForCmHandle(final String datastoreName, final String cmHandle, + @NotNull @Valid final String resourceIdentifier, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getCmHandlePublicPropertiesByCmHandleId( + final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getCmHandleStateByCmHandleId(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity> getModuleDefinitionsByCmHandleId(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity> getModuleReferencesByCmHandle(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getResourceDataForCmHandleBatch(@NotNull @Valid final String topic, + @Valid final ResourceDataBatchRequest body) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity patchResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, + final String datastoreName, final String cmHandle, + @Valid final Object body, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity queryResourceDataForCmHandle(final String datastoreName, final String cmHandle, + @Valid final String cpsPath, @Valid final String options, + @Valid final String topic, + @Valid final Boolean includeDescendants) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity retrieveCmHandleDetailsById(final String cmHandle) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + @Override + public ResponseEntity> searchCmHandleIds(@Valid final CmHandleQueryParameters body) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + @Override + public ResponseEntity setDataSyncEnabledFlagForCmHandle(final String cmHandle, + @NotNull @Valid final Boolean dataSyncEnabled) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } + + @Override + public ResponseEntity updateResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, + final String datastoreName, + final String cmHandle, @Valid final Object body, + final String contentType) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + + } +} diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/application.yml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/application.yml new file mode 100644 index 000000000..9fbd35965 --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/application.yml @@ -0,0 +1,39 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2022 Bell Canada +# ================================================================================ +# 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========================================================= +server: + port: 8091 + +rest: + api: + ncmp-stub-base-path: /ncmp + +spring: + main: + banner-mode: "off" + application: + name: "cps-ncmp-rest-stub" + +logging: + level: + org: + springframework: INFO + onap: + cps: INFO + +stub: + path: "/stubs/" \ No newline at end of file diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/cmHandlesSearch.json b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/cmHandlesSearch.json new file mode 100644 index 000000000..9a2e1ed5d --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/cmHandlesSearch.json @@ -0,0 +1,8 @@ +[ + { + "cmHandle": "stub-cm-handle-id" + }, + { + "cmHandle": "stub-cm-handle-id2" + } + ] \ No newline at end of file diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/passthrough-operational-example.json b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/passthrough-operational-example.json new file mode 100644 index 000000000..1838b47ca --- /dev/null +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/resources/stubs/passthrough-operational-example.json @@ -0,0 +1,45 @@ +{ + "stores:bookstore": { + "categories": [ + { + "code": "02", + "books": [ + { + "title": "A Horror book", + "price": "2000", + "pub_year": 2003, + "lang": "English", + "authors": [ + "Joe" + ] + }, + { + "title": "Another Horror Book", + "price": "2000", + "pub_year": 2003, + "lang": "English", + "authors": [ + "Joe" + ] + } + ], + "name": "Horror" + }, + { + "code": "100", + "books": [ + { + "title": "A Cook book", + "price": "2011", + "pub_year": 2019, + "lang": "English", + "authors": [ + "Rahul" + ] + } + ], + "name": "Cooking Books" + } + ] + } +} \ No newline at end of file diff --git a/cps-ncmp-rest-stub/pom.xml b/cps-ncmp-rest-stub/pom.xml index 0a6684fc0..7fa44e613 100644 --- a/cps-ncmp-rest-stub/pom.xml +++ b/cps-ncmp-rest-stub/pom.xml @@ -6,22 +6,18 @@ 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========================================================= --> - + 4.0.0 org.onap.cps @@ -31,149 +27,15 @@ cps-ncmp-rest-stub + pom + - org.onap.cps.ncmp.rest.stub.Application - 11 - ${project.reporting.outputDirectory}/jacoco-aggregate - - ../jacoco-report/target/site/jacoco-aggregate/jacoco.xml - - 3.0.8 - https://nexus.onap.org - /content/repositories/releases/ - /content/repositories/snapshots/ + ${project.parent.basedir}/.. true - 1.4.2.Final - - - io.swagger.core.v3 - swagger-annotations - 2.1.4 - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-jetty - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - - org.projectlombok - lombok - - - - org.slf4j - slf4j-simple - 1.8.0-beta4 - - - cglib - cglib-nodep - test - 3.1 - - - com.google.code.gson - gson - - - org.onap.cps - cps-ncmp-rest - true - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - ${java.version} - ${java.version} - - - - - org.apache.maven.plugins - maven-shade-plugin - - - org.springframework.boot - spring-boot-maven-plugin - 1.2.7.RELEASE - - - - true - true - - - *:* - - org/onap/cps/ncmp/rest/controller/** - - - - - - - package - - shade - - - - - META-INF/spring.handlers - - - META-INF/spring.factories - - - META-INF/spring.schemas - - - - org/onap/cps/ncmp/rest/stub/Application - - - - - - - - - + + cps-ncmp-rest-stub-service + cps-ncmp-rest-stub-app + + \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java b/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java deleted file mode 100644 index 0f0035dab..000000000 --- a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/Application.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Bell Canada. - * ================================================================================ - * 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.cps.ncmp.rest.stub; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class Application { - - public static void main(final String[] args) { - SpringApplication.run(Application.class, args); - } -} diff --git a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java b/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java deleted file mode 100644 index 688f62403..000000000 --- a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Bell Canada - * Modifications Copyright (c) 2022-2023 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.cps.ncmp.rest.stub.controller; - -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import lombok.extern.slf4j.Slf4j; -import org.onap.cps.ncmp.api.impl.operations.DatastoreType; -import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; -import org.onap.cps.ncmp.rest.stub.handlers.NetworkCmProxyApiStubDefaultImpl; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.ClassPathResource; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@Slf4j -@RestController -@RequestMapping("${rest.api.ncmp-stub-base-path}") -public class NetworkCmProxyStubController implements NetworkCmProxyApiStubDefaultImpl { - - @Value("${stub.path}") - private String pathToResponseFiles; - - @Override - public ResponseEntity getResourceDataForCmHandle(final String dataStoreName, - final String cmHandle, - final String resourceIdentifier, - final String optionsParamInQuery, - final String topicParamInQuery, - final Boolean includeDescendants) { - if (DatastoreType.PASSTHROUGH_OPERATIONAL == DatastoreType.fromDatastoreName(dataStoreName)) { - final ResponseEntity> asyncResponse = populateAsyncResponse(topicParamInQuery); - final Map asyncResponseData = asyncResponse.getBody(); - Object responseObject = null; - // read JSON file and map/convert to java POJO - final ClassPathResource resource = - new ClassPathResource(pathToResponseFiles + "passthrough-operational-example.json"); - try (InputStream inputStream = resource.getInputStream()) { - final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); - final ObjectMapper mapper = new ObjectMapper(); - responseObject = mapper.readValue(string, Object.class); - } catch (final IOException exception) { - log.error("Error reading the file.", exception); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); - } - if (asyncResponseData == null) { - return ResponseEntity.ok(responseObject); - } - return ResponseEntity.ok(asyncResponse); - } - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - public ResponseEntity> searchCmHandles( - final CmHandleQueryParameters cmHandleQueryParameters) { - List restOutputCmHandles = null; - // read JSON file and map/convert to java POJO - final ClassPathResource resource = new ClassPathResource(pathToResponseFiles + "cmHandlesSearch.json"); - try (InputStream inputStream = resource.getInputStream()) { - final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); - final ObjectMapper mapper = new ObjectMapper(); - restOutputCmHandles = Arrays.asList(mapper.readValue(string, RestOutputCmHandle[].class)); - } catch (final IOException exception) { - log.error("Error reading the file.", exception); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); - } - return ResponseEntity.ok(restOutputCmHandles); - } - - private ResponseEntity> populateAsyncResponse(final String topicParamInQuery) { - final Map responseData; - if (topicParamInQuery == null) { - responseData = null; - } else { - responseData = getAsyncResponseData(); - } - return ResponseEntity.ok().body(responseData); - } - - private Map getAsyncResponseData() { - final Map asyncResponseData = new HashMap<>(1); - final String resourceDataRequestId = UUID.randomUUID().toString(); - asyncResponseData.put(ASYNC_REQUEST_ID, resourceDataRequestId); - return asyncResponseData; - } -} diff --git a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java b/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java deleted file mode 100644 index 7bd3acbf6..000000000 --- a/cps-ncmp-rest-stub/src/main/java/org/onap/cps/ncmp/rest/stub/handlers/NetworkCmProxyApiStubDefaultImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2023 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.cps.ncmp.rest.stub.handlers; - -import java.util.List; -import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; -import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters; -import org.onap.cps.ncmp.rest.model.ResourceDataBatchRequest; -import org.onap.cps.ncmp.rest.model.RestModuleDefinition; -import org.onap.cps.ncmp.rest.model.RestModuleReference; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandleCompositeState; -import org.onap.cps.ncmp.rest.model.RestOutputCmHandlePublicProperties; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; - -public interface NetworkCmProxyApiStubDefaultImpl extends NetworkCmProxyApi { - - String ASYNC_REQUEST_ID = "requestId"; - - @Override - default ResponseEntity getResourceDataForCmHandle(final String datastoreName, - final String cmHandle, - final String resourceIdentifier, - final String optionsParamInQuery, - final String topicParamInQuery, - final Boolean includeDescendants) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity getResourceDataForCmHandleBatch(final String topicParamInQuery, - final ResourceDataBatchRequest - resourceDataBatchRequest) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> searchCmHandles( - final CmHandleQueryParameters cmHandleQueryParameters) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity createResourceDataRunningForCmHandle(final String datastoreName, - final String resourceIdentifier, - final String cmHandleId, - final Object requestBody, - final String contentType) { - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @Override - default ResponseEntity deleteResourceDataRunningForCmHandle(final String datastoreName, - final String cmHandleId, - final String resourceIdentifier, - final String contentType) { - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Override - default ResponseEntity setDataSyncEnabledFlagForCmHandle(final String cmHandleId, - final Boolean dataSyncEnabled) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> searchCmHandleIds(final CmHandleQueryParameters cmHandleQueryParameters) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity getCmHandlePublicPropertiesByCmHandleId( - final String cmHandleId) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity getCmHandleStateByCmHandleId(final String cmHandle) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> getModuleDefinitionsByCmHandleId(final String cmHandle) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity> getModuleReferencesByCmHandle(final String cmHandleId) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity patchResourceDataRunningForCmHandle(final String datastoreName, - final String resourceIdentifier, - final String cmHandleId, - final Object requestBody, - final String contentType) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity queryResourceDataForCmHandle(final String datastoreName, - final String cmHandle, - final String cpsPath, - final String optionsParamInQuery, - final String topicParamInQuery, - final Boolean includeDescendants) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity retrieveCmHandleDetailsById(final String cmHandleId) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } - - @Override - default ResponseEntity updateResourceDataRunningForCmHandle(final String datastoreName, - final String resourceIdentifier, - final String cmHandleId, - final Object requestBody, - final String contentType) { - return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); - } -} diff --git a/cps-ncmp-rest-stub/src/main/resources/application.yml b/cps-ncmp-rest-stub/src/main/resources/application.yml deleted file mode 100644 index 9fbd35965..000000000 --- a/cps-ncmp-rest-stub/src/main/resources/application.yml +++ /dev/null @@ -1,39 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2022 Bell Canada -# ================================================================================ -# 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========================================================= -server: - port: 8091 - -rest: - api: - ncmp-stub-base-path: /ncmp - -spring: - main: - banner-mode: "off" - application: - name: "cps-ncmp-rest-stub" - -logging: - level: - org: - springframework: INFO - onap: - cps: INFO - -stub: - path: "/stubs/" \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/main/resources/stubs/cmHandlesSearch.json b/cps-ncmp-rest-stub/src/main/resources/stubs/cmHandlesSearch.json deleted file mode 100644 index 9a2e1ed5d..000000000 --- a/cps-ncmp-rest-stub/src/main/resources/stubs/cmHandlesSearch.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "cmHandle": "stub-cm-handle-id" - }, - { - "cmHandle": "stub-cm-handle-id2" - } - ] \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/main/resources/stubs/passthrough-operational-example.json b/cps-ncmp-rest-stub/src/main/resources/stubs/passthrough-operational-example.json deleted file mode 100644 index 1838b47ca..000000000 --- a/cps-ncmp-rest-stub/src/main/resources/stubs/passthrough-operational-example.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stores:bookstore": { - "categories": [ - { - "code": "02", - "books": [ - { - "title": "A Horror book", - "price": "2000", - "pub_year": 2003, - "lang": "English", - "authors": [ - "Joe" - ] - }, - { - "title": "Another Horror Book", - "price": "2000", - "pub_year": 2003, - "lang": "English", - "authors": [ - "Joe" - ] - } - ], - "name": "Horror" - }, - { - "code": "100", - "books": [ - { - "title": "A Cook book", - "price": "2011", - "pub_year": 2019, - "lang": "English", - "authors": [ - "Rahul" - ] - } - ], - "name": "Cooking Books" - } - ] - } -} \ No newline at end of file diff --git a/cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java b/cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java deleted file mode 100644 index a095edc42..000000000 --- a/cps-ncmp-rest-stub/src/test/java/org/onap/cps/TestApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Bell Canada. - * ================================================================================ - * 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.cps; - -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * The @SpringBootApplication annotated class is required in order to run tests - * marked with @SpringBootTest annotation. - */ -@SpringBootApplication -public class TestApplication { -} diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml index 0f58fbba7..be62a4c5d 100755 --- a/cps-parent/pom.xml +++ b/cps-parent/pom.xml @@ -45,6 +45,7 @@ ../jacoco-report/target/site/jacoco-aggregate/jacoco.xml + ${project.basedir}/.. @@ -417,7 +418,7 @@ ${script.executor} - ../cps-ri/src/main/resources/ + ${parent.directory}/cps-ri/src/main/resources/ yangResourceCsvGenerator.py dmi-registry@2021-12-13 -- cgit 1.2.3-korg