From 4d520016514834bef903401518be5989b390874a Mon Sep 17 00:00:00 2001 From: Renu Kumari Date: Mon, 30 Aug 2021 11:50:43 -0400 Subject: Add ncmp endpoints to swagger-ui - added ncmp-enpoints to swagger-ui - removed springfox dependencies - removed Docket configuration as we are loading ui from openapi.yml - removed endpoints which are not implemented - Fixed ncmp basepath as per CPS-616 Issue-ID: CPS-601 Issue-ID: CPS-616 Signed-off-by: Renu Kumari Change-Id: I03c7789f48a12d3ffd5fcb934d7ba6347d4044e4 --- cps-ncmp-rest/docs/openapi/ncmproxy.yml | 2 +- cps-ncmp-rest/docs/openapi/openapi.yml | 5 ++- cps-ncmp-rest/pom.xml | 29 +++++++++++-- .../onap/cps/ncmp/config/NetworkCmProxyConfig.java | 47 ---------------------- .../ncmp/config/NetworkCmProxyConfigSpec.groovy | 33 --------------- .../controller/NetworkCmProxyControllerSpec.groovy | 36 +++++++---------- cps-ncmp-rest/src/test/resources/application.yml | 3 +- 7 files changed, 45 insertions(+), 110 deletions(-) delete mode 100644 cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/config/NetworkCmProxyConfig.java delete mode 100644 cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/config/NetworkCmProxyConfigSpec.groovy (limited to 'cps-ncmp-rest') diff --git a/cps-ncmp-rest/docs/openapi/ncmproxy.yml b/cps-ncmp-rest/docs/openapi/ncmproxy.yml index 8eed9b37b..138337d24 100755 --- a/cps-ncmp-rest/docs/openapi/ncmproxy.yml +++ b/cps-ncmp-rest/docs/openapi/ncmproxy.yml @@ -181,7 +181,7 @@ listNodeByCmHandleAndXpath: updateDmiRegistration: post: - description: Register a DMI Plugin with any new CM Handles. + description: Register a DMI Plugin with any new, updated or removed CM Handles. tags: - network-cm-proxy summary: DMI notifies NCMP of new CM Handles diff --git a/cps-ncmp-rest/docs/openapi/openapi.yml b/cps-ncmp-rest/docs/openapi/openapi.yml index 0dfe3c83a..8d8684a35 100755 --- a/cps-ncmp-rest/docs/openapi/openapi.yml +++ b/cps-ncmp-rest/docs/openapi/openapi.yml @@ -1,6 +1,7 @@ # ============LICENSE_START======================================================= # Copyright (C) 2021 Nordix Foundation # Modifications Copyright (C) 2021 Pantheon.tech +# Modifications Copyright (C) 2021 Bell Canada # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -23,7 +24,7 @@ info: description: NCMP to CPS Proxy API version: "1.0" servers: - - url: //localhost:8088/ + - url: /ncmp paths: /v1/cm-handles/{cm-handle}/node: $ref: 'ncmproxy.yml#/nodeByCmHandleAndXpath' @@ -37,7 +38,7 @@ paths: /v1/cm-handles/{cm-handle}/nodes: $ref: 'ncmproxy.yml#/nodesByCmHandleAndXpath' - /ncmp-dmi/v1/ch: + /v1/ch: $ref: 'ncmproxy.yml#/updateDmiRegistration' /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-operational/{resourceIdentifier}: diff --git a/cps-ncmp-rest/pom.xml b/cps-ncmp-rest/pom.xml index dbe1af097..d3de688e2 100644 --- a/cps-ncmp-rest/pom.xml +++ b/cps-ncmp-rest/pom.xml @@ -2,6 +2,7 @@ org.codehaus.groovy @@ -119,6 +116,7 @@ swagger-codegen-maven-plugin + code-gen generate @@ -139,6 +137,29 @@ + + maven-resources-plugin + + + copy-resources + compile + + copy-resources + + + ${project.basedir}/target/classes/static/api-docs/cps-ncmp + + + ${project.basedir}/target/generated-sources/swagger/ + + openapi.yaml + + + + + + + diff --git a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/config/NetworkCmProxyConfig.java b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/config/NetworkCmProxyConfig.java deleted file mode 100644 index 300765d42..000000000 --- a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/config/NetworkCmProxyConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2021 Pantheon.tech - * Modifications (C) 2021 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.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; - -@Configuration -public class NetworkCmProxyConfig { - - /** - * Swagger-ui configuration. - */ - @Bean("ncmp-docket") - public Docket api() { - return new Docket(DocumentationType.OAS_30) - .groupName("ncmp-docket") - .select() - .apis(RequestHandlerSelectors.any()) - .paths(PathSelectors.any()) - .build(); - } - -} \ No newline at end of file diff --git a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/config/NetworkCmProxyConfigSpec.groovy b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/config/NetworkCmProxyConfigSpec.groovy deleted file mode 100644 index 4b0e2561e..000000000 --- a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/config/NetworkCmProxyConfigSpec.groovy +++ /dev/null @@ -1,33 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2021 highstreet technologies GmbH - * Modification Copyright (C) 2021 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.config - -import spock.lang.Specification -import springfox.documentation.spring.web.plugins.Docket - -class NetworkCmProxyConfigSpec extends Specification { - def objectUnderTest = new NetworkCmProxyConfig() - - def 'NetworkCmProxy configuration has a Docket API.'() { - expect: 'the NetworkCmProxy configuration has a Docket API' - objectUnderTest.api() instanceof Docket - } -} diff --git a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy index 1a2d3a204..4ff0ca421 100644 --- a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy +++ b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy @@ -3,6 +3,7 @@ * Copyright (C) 2021 Pantheon.tech * Modification Copyright (C) 2021 highstreet technologies GmbH * Modification Copyright (C) 2021 Nordix Foundation + * Modification Copyright (C) 2021 Bell Canada. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,7 +43,7 @@ import org.springframework.http.MediaType import org.springframework.test.web.servlet.MockMvc import spock.lang.Specification -@WebMvcTest +@WebMvcTest(NetworkCmProxyController) class NetworkCmProxyControllerSpec extends Specification { @Autowired @@ -54,17 +55,8 @@ class NetworkCmProxyControllerSpec extends Specification { @SpringBean ObjectMapper objectMapper = new ObjectMapper() - @Value('${rest.api.ncmp-base-path}') - def basePath - - def deprecatedDataNodeBaseEndPoint - - def ncmpDmiEndpoint - - def setup() { - deprecatedDataNodeBaseEndPoint = "$basePath/v1" - ncmpDmiEndpoint = "$basePath/ncmp-dmi/v1" - } + @Value('${rest.api.ncmp-base-path}/v1') + def ncmpBasePathV1 def cmHandle = 'some handle' def xpath = 'some xpath' @@ -75,7 +67,7 @@ class NetworkCmProxyControllerSpec extends Specification { def cpsPath = 'some cps-path' mockNetworkCmProxyDataService.queryDataNodes(cmHandle, cpsPath, expectedCpsDataServiceOption) >> [dataNode] and: 'the query endpoint' - def dataNodeEndpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes/query" + def dataNodeEndpoint = "$ncmpBasePathV1/cm-handles/$cmHandle/nodes/query" when: 'query data nodes API is invoked' def response = mvc.perform(get(dataNodeEndpoint) .param('cps-path', cpsPath) @@ -97,7 +89,7 @@ class NetworkCmProxyControllerSpec extends Specification { def jsonData = 'json data' when: 'post request is performed' def response = mvc.perform( - post("$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes") + post("$ncmpBasePathV1/cm-handles/$cmHandle/nodes") .contentType(MediaType.APPLICATION_JSON) .content(jsonData) .param('xpath', reqXpath) @@ -119,7 +111,7 @@ class NetworkCmProxyControllerSpec extends Specification { def parentNodeXpath = 'parent node xpath' when: 'post request is performed' def response = mvc.perform( - post("$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/list-node") + post("$ncmpBasePathV1/cm-handles/$cmHandle/list-node") .contentType(MediaType.APPLICATION_JSON) .content(jsonData) .param('xpath', parentNodeXpath) @@ -134,7 +126,7 @@ class NetworkCmProxyControllerSpec extends Specification { given: 'json data' def jsonData = 'json data' and: 'the query endpoint' - def endpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes" + def endpoint = "$ncmpBasePathV1/cm-handles/$cmHandle/nodes" when: 'patch request is performed' def response = mvc.perform( patch(endpoint) @@ -152,7 +144,7 @@ class NetworkCmProxyControllerSpec extends Specification { given: 'json data' def jsonData = 'json data' and: 'the query endpoint' - def endpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/nodes" + def endpoint = "$ncmpBasePathV1/cm-handles/$cmHandle/nodes" when: 'put request is performed' def response = mvc.perform( put(endpoint) @@ -172,7 +164,7 @@ class NetworkCmProxyControllerSpec extends Specification { def dataNode = new DataNodeBuilder().withXpath(xpath).withLeaves(["leaf": "value"]).build() mockNetworkCmProxyDataService.getDataNode(cmHandle, xpath, OMIT_DESCENDANTS) >> dataNode and: 'the query endpoint' - def endpoint = "$deprecatedDataNodeBaseEndPoint/cm-handles/$cmHandle/node" + def endpoint = "$ncmpBasePathV1/cm-handles/$cmHandle/node" when: 'get request is performed through REST API' def response = mvc.perform(get(endpoint).param('xpath', xpath)).andReturn().response then: 'a success response is returned' @@ -186,7 +178,7 @@ class NetworkCmProxyControllerSpec extends Specification { def jsonData = TestUtils.getResourceFileContent('dmi-registration.json') when: 'post request is performed' def response = mvc.perform( - post("$ncmpDmiEndpoint/ch") + post("$ncmpBasePathV1/ch") .contentType(MediaType.APPLICATION_JSON) .content(jsonData) ).andReturn().response @@ -198,7 +190,7 @@ class NetworkCmProxyControllerSpec extends Specification { def 'Get Resource Data from pass-through operational.' () { given: 'resource data url' - def getUrl = "$basePath/v1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-operational" + + def getUrl = "$ncmpBasePathV1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-operational" + "/testResourceIdentifier?fields=testFields&depth=5" when: 'get data resource request is performed' def response = mvc.perform( @@ -218,7 +210,7 @@ class NetworkCmProxyControllerSpec extends Specification { def 'Get Resource Data from pass-through running.' () { given: 'resource data url' - def getUrl = "$basePath/v1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-running" + + def getUrl = "$ncmpBasePathV1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-running" + "/testResourceIdentifier?fields=testFields&depth=5" and: 'ncmp service returns json object' mockNetworkCmProxyDataService.getResourceDataPassThroughRunningForCmHandle('testCmHandle', @@ -240,7 +232,7 @@ class NetworkCmProxyControllerSpec extends Specification { def 'Create Resource Data from pass-through running using POST.' () { given: 'resource data url' - def getUrl = "$basePath/v1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-running" + + def getUrl = "$ncmpBasePathV1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-running" + "/testResourceIdentifier" when: 'get data resource request is performed' def response = mvc.perform( diff --git a/cps-ncmp-rest/src/test/resources/application.yml b/cps-ncmp-rest/src/test/resources/application.yml index 8ffb8827f..848738a76 100644 --- a/cps-ncmp-rest/src/test/resources/application.yml +++ b/cps-ncmp-rest/src/test/resources/application.yml @@ -1,5 +1,6 @@ # ============LICENSE_START======================================================= # Copyright (C) 2021 Nordix Foundation +# Modifications Copyright (C) 2021 Bell Canada. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,5 +19,5 @@ rest: api: - ncmp-base-path: /cps-ncmp/api + ncmp-base-path: /ncmp spring: -- cgit 1.2.3-korg