summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--cps-application/src/main/resources/application.yml13
-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
-rw-r--r--cps-ncmp-service/src/test/resources/application.yml22
-rwxr-xr-xcps-parent/pom.xml13
-rw-r--r--cps-rest/docs/openapi/components.yml (renamed from cps-rest/src/main/resources/static/components.yml)5
-rw-r--r--cps-rest/docs/openapi/cpsAdmin.yml (renamed from cps-rest/src/main/resources/static/cpsAdmin.yml)24
-rw-r--r--cps-rest/docs/openapi/cpsData.yml (renamed from cps-rest/src/main/resources/static/cpsData.yml)27
-rw-r--r--cps-rest/docs/openapi/cpsQuery.yml (renamed from cps-rest/src/main/resources/static/cpsQuery.yml)0
-rw-r--r--cps-rest/docs/openapi/openapi.yml (renamed from cps-rest/src/main/resources/static/openapi.yml)9
-rwxr-xr-xcps-rest/pom.xml32
-rwxr-xr-xcps-rest/src/main/java/org/onap/cps/config/CpsConfig.java16
-rwxr-xr-xcps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java13
-rwxr-xr-xcps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java5
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy7
-rw-r--r--docker-compose/README.md5
-rwxr-xr-xdocs/api/swagger/openapi.yml4
22 files changed, 113 insertions, 237 deletions
diff --git a/cps-application/src/main/resources/application.yml b/cps-application/src/main/resources/application.yml
index 39309d842..82c6e0aed 100644
--- a/cps-application/src/main/resources/application.yml
+++ b/cps-application/src/main/resources/application.yml
@@ -24,7 +24,7 @@ server:
rest:
api:
cps-base-path: /cps/api
- ncmp-base-path: /cps-ncmp/api
+ ncmp-base-path: /ncmp
spring:
main:
@@ -84,12 +84,17 @@ notification:
springdoc:
swagger-ui:
- url: /openapi.yml
- path: /swagger-ui/index.html
+ disable-swagger-default-url: true
+ urlsPrimaryName: cps-core
+ urls:
+ - name: cps-core
+ url: /api-docs/cps-core/openapi.yaml
+ - name: cps-ncmp
+ url: /api-docs/cps-ncmp/openapi.yaml
security:
# comma-separated uri patterns which do not require authorization
- permit-uri: /manage/**,/swagger-ui/**,/swagger-resources/**,/v3/api-docs
+ permit-uri: /manage/**,/swagger-ui/**,/swagger-resources/**,/api-docs
auth:
username: ${CPS_USERNAME}
password: ${CPS_PASSWORD}
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 @@
<!--
============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 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:
diff --git a/cps-ncmp-service/src/test/resources/application.yml b/cps-ncmp-service/src/test/resources/application.yml
deleted file mode 100644
index 8ffb8827f..000000000
--- a/cps-ncmp-service/src/test/resources/application.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# ============LICENSE_START=======================================================
-# 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=========================================================
-
-rest:
- api:
- ncmp-base-path: /cps-ncmp/api
-spring:
diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml
index 46594dabe..e8861006e 100755
--- a/cps-parent/pom.xml
+++ b/cps-parent/pom.xml
@@ -123,6 +123,19 @@
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.27</version>
+ <executions>
+ <execution>
+ <id>openapi-yaml-gen</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
+ <language>openapi-yaml</language>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
diff --git a/cps-rest/src/main/resources/static/components.yml b/cps-rest/docs/openapi/components.yml
index 75a6f99fc..3d2eb57e4 100644
--- a/cps-rest/src/main/resources/static/components.yml
+++ b/cps-rest/docs/openapi/components.yml
@@ -12,6 +12,8 @@
# 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=========================================================
components:
@@ -46,10 +48,11 @@ components:
example: Dataspace with name D1 does not exist.
MultipartFile:
+ type: object
required:
- file
properties:
- multipartFile:
+ file:
type: string
description: multipartFile
format: binary
diff --git a/cps-rest/src/main/resources/static/cpsAdmin.yml b/cps-rest/docs/openapi/cpsAdmin.yml
index 35b2e4ca6..a022ef1d9 100644
--- a/cps-rest/src/main/resources/static/cpsAdmin.yml
+++ b/cps-rest/docs/openapi/cpsAdmin.yml
@@ -12,6 +12,8 @@
# 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=========================================================
dataspaces:
@@ -33,28 +35,6 @@ dataspaces:
'403':
$ref: 'components.yml#/components/responses/Forbidden'
-dataspaceByDataspaceName:
- delete:
- description: Delete the given dataspace - DRAFT
- tags:
- - cps-admin
- summary: Delete a dataspace
- operationId: deleteDataspace
- parameters:
- - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- responses:
- '200':
- $ref: 'components.yml#/components/responses/Ok'
- '204':
- $ref: 'components.yml#/components/responses/NoContent'
- '400':
- $ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
-
-
schemaSet:
post:
description: Create a new schema set in the given dataspace
diff --git a/cps-rest/src/main/resources/static/cpsData.yml b/cps-rest/docs/openapi/cpsData.yml
index 77673cb0f..d456f44e6 100644
--- a/cps-rest/src/main/resources/static/cpsData.yml
+++ b/cps-rest/docs/openapi/cpsData.yml
@@ -12,6 +12,8 @@
# 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=========================================================
nodeByDataspaceAndAnchor:
@@ -200,27 +202,4 @@ nodesByDataspaceAndAnchor:
'401':
$ref: 'components.yml#/components/responses/Unauthorized'
'403':
- $ref: 'components.yml#/components/responses/Forbidden'
-
-
-nodesByDataspace:
- get:
- description: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
- tags:
- - cps-data
- summary: Get nodes
- operationId: getNodesByDataspace
- parameters:
- - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
- responses:
- '200':
- $ref: 'components.yml#/components/responses/Ok'
- '400':
- $ref: 'components.yml#/components/responses/BadRequest'
- '401':
- $ref: 'components.yml#/components/responses/Unauthorized'
- '403':
- $ref: 'components.yml#/components/responses/Forbidden'
- '404':
- $ref: 'components.yml#/components/responses/NotFound'
- x-codegen-request-body-name: requestBody
+ $ref: 'components.yml#/components/responses/Forbidden' \ No newline at end of file
diff --git a/cps-rest/src/main/resources/static/cpsQuery.yml b/cps-rest/docs/openapi/cpsQuery.yml
index f45f3f41a..f45f3f41a 100644
--- a/cps-rest/src/main/resources/static/cpsQuery.yml
+++ b/cps-rest/docs/openapi/cpsQuery.yml
diff --git a/cps-rest/src/main/resources/static/openapi.yml b/cps-rest/docs/openapi/openapi.yml
index 922cabb01..f9881fb15 100644
--- a/cps-rest/src/main/resources/static/openapi.yml
+++ b/cps-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.
@@ -40,15 +41,12 @@ tags:
- name: cps-admin
description: cps Admin
- name: cps-data
- description: cps Data
+ description: cps Data
paths:
/v1/dataspaces:
$ref: 'cpsAdmin.yml#/dataspaces'
- /v1/dataspaces/{dataspace-name}:
- $ref: 'cpsAdmin.yml#/dataspaceByDataspaceName'
-
/v1/dataspaces/{dataspace-name}/anchors:
$ref: 'cpsAdmin.yml#/anchorsByDataspace'
@@ -70,8 +68,5 @@ paths:
/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes:
$ref: 'cpsData.yml#/listNodeByDataspaceAndAnchor'
- /v1/dataspaces/{dataspace-name}/nodes:
- $ref: 'cpsData.yml#/nodesByDataspace'
-
/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query:
$ref: 'cpsQuery.yml#/nodesByDataspaceAndAnchorAndCpsPath'
diff --git a/cps-rest/pom.xml b/cps-rest/pom.xml
index 9e29074f7..c4af3803b 100755
--- a/cps-rest/pom.xml
+++ b/cps-rest/pom.xml
@@ -15,6 +15,8 @@
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=========================================================
-->
@@ -67,10 +69,6 @@
<artifactId>swagger-annotations</artifactId>
</dependency>
<dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-boot-starter</artifactId>
- </dependency>
- <dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.9</version>
@@ -130,11 +128,12 @@
<artifactId>swagger-codegen-maven-plugin</artifactId>
<executions>
<execution>
+ <id>code-gen</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
- <inputSpec>${project.basedir}/src/main/resources/static/openapi.yml</inputSpec>
+ <inputSpec>${project.basedir}/docs/openapi/openapi.yml</inputSpec>
<invokerPackage>org.onap.cps.rest.controller</invokerPackage>
<modelPackage>org.onap.cps.rest.model</modelPackage>
<apiPackage>org.onap.cps.rest.api</apiPackage>
@@ -150,6 +149,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-core</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-rest/src/main/java/org/onap/cps/config/CpsConfig.java b/cps-rest/src/main/java/org/onap/cps/config/CpsConfig.java
index 5793d9536..4f4501afb 100755
--- a/cps-rest/src/main/java/org/onap/cps/config/CpsConfig.java
+++ b/cps-rest/src/main/java/org/onap/cps/config/CpsConfig.java
@@ -26,28 +26,12 @@ import org.modelmapper.ModelMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.retry.annotation.EnableRetry;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
@Configuration
@EnableRetry
public class CpsConfig {
/**
- * Swagger configuration.
- */
- @Bean("cps-docket")
- public Docket api() {
- return new Docket(DocumentationType.OAS_30)
- .groupName("cps-docket")
- .select()
- .apis(RequestHandlerSelectors.any())
- .paths(PathSelectors.any()).build();
- }
-
- /**
* ModelMapper configuration.
*/
@Bean
diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
index a1287b2bd..55fdbbe87 100755
--- a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
+++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
@@ -1,7 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2020 Nordix Foundation
- * Modifications Copyright (C) 2020 Bell Canada.
+ * Modifications Copyright (C) 2020-2021 Bell Canada.
* Modifications Copyright (C) 2021 Pantheon.tech
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -71,17 +71,6 @@ public class AdminRestController implements CpsAdminApi {
}
/**
- * Delete a dataspace based on a given name.
- *
- * @param dataspaceName dataspace name
- * @return a {@Link ResponseEntity} of {@link HttpStatus} NOT_IMPLEMENTED
- */
- @Override
- public ResponseEntity<Object> deleteDataspace(final String dataspaceName) {
- return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
- }
-
- /**
* Create a {@link SchemaSet}.
*
* @param multipartFile multipart file
diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
index 0e2050e5c..7db4e5a1b 100755
--- a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
+++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
@@ -68,11 +68,6 @@ public class DataRestController implements CpsDataApi {
}
@Override
- public ResponseEntity<Object> getNodesByDataspace(final String dataspaceName) {
- return null;
- }
-
- @Override
public ResponseEntity<Object> getNodeByDataspaceAndAnchor(final String dataspaceName, final String anchorName,
final String xpath, final Boolean includeDescendants) {
final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
diff --git a/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy
index 6c589b1bb..fc96f0447 100644
--- a/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/config/CpsConfigSpec.groovy
@@ -1,6 +1,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.
@@ -22,7 +23,6 @@ package org.onap.cps.config
import org.modelmapper.ModelMapper
import spock.lang.Specification
-import springfox.documentation.spring.web.plugins.Docket
class CpsConfigSpec extends Specification {
def objectUnderTest = new CpsConfig()
@@ -31,9 +31,4 @@ class CpsConfigSpec extends Specification {
expect: 'the CPS configuration has a Model Mapper'
objectUnderTest.modelMapper() instanceof ModelMapper
}
-
- def 'CPS configuration has a Docket API'() {
- expect: 'the CPS configuration has a Docket API'
- objectUnderTest.api() instanceof Docket
- }
}
diff --git a/docker-compose/README.md b/docker-compose/README.md
index ceb05446b..ae2686822 100644
--- a/docker-compose/README.md
+++ b/docker-compose/README.md
@@ -103,8 +103,9 @@ Here are the steps to run or debug the application from Intellij:
Swagger UI and Open API specifications are available to discover service endpoints and send requests.
-* `http://localhost:<port-number>/swagger-ui/index.html`
-* `http://localhost:<port-number>/v3/api-docs?group=cps-docket`
+* `http://localhost:<port-number>/swagger-ui.html`
+* `http://localhost:<port-number>/api-docs/cps-core/openapi.yaml`
+* `http://localhost:<port-number>/api-docs/cps-ncmp/openapi.yaml`
with <port-number> being either `8080` if running the plain Java build or retrieved using following command
if running from `docker-compose`:
diff --git a/docs/api/swagger/openapi.yml b/docs/api/swagger/openapi.yml
index c00d6ff6c..4d64b01b8 100755
--- a/docs/api/swagger/openapi.yml
+++ b/docs/api/swagger/openapi.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.
@@ -339,10 +340,11 @@ paths:
content:
multipart/form-data:
schema:
+ type: object
required:
- file
properties:
- multipartFile:
+ file:
type: string
description: multipartFile
format: binary