diff options
author | Renu Kumari <renu.kumari@bell.ca> | 2021-08-30 11:50:43 -0400 |
---|---|---|
committer | Renu Kumari <renu.kumari@bell.ca> | 2021-09-01 08:35:15 -0400 |
commit | 4d520016514834bef903401518be5989b390874a (patch) | |
tree | 83fa301d088792431ce1c99f0f313083078a0b25 /cps-ncmp-rest | |
parent | 7edbeb6d5853206cc1d3b4cadd7ba50e96f4f04d (diff) |
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 <renu.kumari@bell.ca>
Change-Id: I03c7789f48a12d3ffd5fcb934d7ba6347d4044e4
Diffstat (limited to 'cps-ncmp-rest')
7 files changed, 45 insertions, 110 deletions
diff --git a/cps-ncmp-rest/docs/openapi/ncmproxy.yml b/cps-ncmp-rest/docs/openapi/ncmproxy.yml index 8eed9b37b1..138337d24e 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 0dfe3c83a7..8d8684a355 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 dbe1af0973..d3de688e23 100644 --- a/cps-ncmp-rest/pom.xml +++ b/cps-ncmp-rest/pom.xml @@ -2,6 +2,7 @@ <!-- ============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. @@ -64,10 +65,6 @@ <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-annotations</artifactId> </dependency> - <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-boot-starter</artifactId> - </dependency> <!-- T E S T D E P E N D E N C I E S --> <dependency> <groupId>org.codehaus.groovy</groupId> @@ -119,6 +116,7 @@ <artifactId>swagger-codegen-maven-plugin</artifactId> <executions> <execution> + <id>code-gen</id> <goals> <goal>generate</goal> </goals> @@ -139,6 +137,29 @@ </execution> </executions> </plugin> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <executions> + <execution> + <id>copy-resources</id> + <phase>compile</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${project.basedir}/target/classes/static/api-docs/cps-ncmp</outputDirectory> + <resources> + <resource> + <directory>${project.basedir}/target/generated-sources/swagger/</directory> + <includes> + <include>openapi.yaml</include> + </includes> + </resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project> 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 300765d425..0000000000 --- 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 4b0e2561e5..0000000000 --- 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 1a2d3a204f..4ff0ca421f 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 8ffb8827f7..848738a764 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: |