aboutsummaryrefslogtreecommitdiffstats
path: root/cps-ncmp-rest
diff options
context:
space:
mode:
authorRenu Kumari <renu.kumari@bell.ca>2021-08-30 11:50:43 -0400
committerRenu Kumari <renu.kumari@bell.ca>2021-09-01 08:35:15 -0400
commit4d520016514834bef903401518be5989b390874a (patch)
tree83fa301d088792431ce1c99f0f313083078a0b25 /cps-ncmp-rest
parent7edbeb6d5853206cc1d3b4cadd7ba50e96f4f04d (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')
-rwxr-xr-xcps-ncmp-rest/docs/openapi/ncmproxy.yml2
-rwxr-xr-xcps-ncmp-rest/docs/openapi/openapi.yml5
-rw-r--r--cps-ncmp-rest/pom.xml29
-rw-r--r--cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/config/NetworkCmProxyConfig.java47
-rw-r--r--cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/config/NetworkCmProxyConfigSpec.groovy33
-rw-r--r--cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy36
-rw-r--r--cps-ncmp-rest/src/test/resources/application.yml3
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: