summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-rest/src
diff options
context:
space:
mode:
Diffstat (limited to 'cps-ncmp-rest/src')
-rwxr-xr-xcps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java88
-rw-r--r--cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy113
-rw-r--r--cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/exceptions/NetworkCmProxyRestExceptionHandlerSpec.groovy18
3 files changed, 8 insertions, 211 deletions
diff --git a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java
index e3c457eaf4..a97852fe2b 100755
--- a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java
+++ b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java
@@ -1,7 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
- * Modifications (C) 2021 Nordix Foundation
+ * Modifications (C) 2021-2022 Nordix Foundation
* Modification Copyright (C) 2021 highstreet technologies GmbH
* Modifications (C) 2021 Bell Canada
* ================================================================================
@@ -48,9 +48,6 @@ import org.onap.cps.ncmp.rest.model.Conditions;
import org.onap.cps.ncmp.rest.model.ModuleNameAsJsonObject;
import org.onap.cps.ncmp.rest.model.ModuleNamesAsJsonArray;
import org.onap.cps.ncmp.rest.model.ModuleReference;
-import org.onap.cps.spi.FetchDescendantsOption;
-import org.onap.cps.spi.model.DataNode;
-import org.onap.cps.utils.DataMapUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -76,89 +73,6 @@ public class NetworkCmProxyController implements NetworkCmProxyApi {
}
/**
- * Create Node.
- * @deprecated This Method is no longer used as part of NCMP.
- */
- // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642
- @Override
- @Deprecated(forRemoval = false)
- public ResponseEntity<Void> createNode(final String cmHandle, @Valid final Object jsonData,
- @Valid final String parentNodeXpath) {
- networkCmProxyDataService.createDataNode(cmHandle, parentNodeXpath, GSON.toJson(jsonData));
- return new ResponseEntity<>(HttpStatus.CREATED);
- }
-
- /**
- * Add List-node Child Element.
- * @deprecated This Method is no longer used as part of NCMP.
- */
- // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642
- @Override
- @Deprecated(forRemoval = false)
- public ResponseEntity<Void> addListNodeElements(@NotNull @Valid final String parentNodeXpath,
- final String cmHandle, @Valid final Object jsonData) {
- networkCmProxyDataService.addListNodeElements(cmHandle, parentNodeXpath, GSON.toJson(jsonData));
- return new ResponseEntity<>(HttpStatus.CREATED);
- }
-
- /**
- * Get Node By CM Handle and X-Path.
- * @deprecated This Method is no longer used as part of NCMP.
- */
- // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642
- @Override
- @Deprecated(forRemoval = false)
- public ResponseEntity<Object> getNodeByCmHandleAndXpath(final String cmHandle, @Valid final String xpath,
- @Valid final Boolean includeDescendants) {
- final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
- ? FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS : FetchDescendantsOption.OMIT_DESCENDANTS;
- final var dataNode = networkCmProxyDataService.getDataNode(cmHandle, xpath, fetchDescendantsOption);
- return new ResponseEntity<>(DataMapUtils.toDataMap(dataNode), HttpStatus.OK);
- }
-
- /**
- * Query Data Nodes.
- * @deprecated This Method is no longer used as part of NCMP.
- */
- // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642
- @Override
- @Deprecated(forRemoval = false)
- public ResponseEntity<Object> queryNodesByCmHandleAndCpsPath(final String cmHandle, @Valid final String cpsPath,
- @Valid final Boolean includeDescendants) {
- final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
- ? FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS : FetchDescendantsOption.OMIT_DESCENDANTS;
- final Collection<DataNode> dataNodes =
- networkCmProxyDataService.queryDataNodes(cmHandle, cpsPath, fetchDescendantsOption);
- return new ResponseEntity<>(GSON.toJson(dataNodes), HttpStatus.OK);
- }
-
- /**
- * Replace Node With Descendants.
- * @deprecated This Method is no longer used as part of NCMP.
- */
- // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642
- @Override
- @Deprecated(forRemoval = false)
- public ResponseEntity<Object> replaceNode(final String cmHandle, @Valid final Object jsonData,
- @Valid final String parentNodeXpath) {
- networkCmProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, GSON.toJson(jsonData));
- return new ResponseEntity<>(HttpStatus.OK);
- }
-
- /**
- * Update Node Leaves.
- * @deprecated This Method is no longer used as part of NCMP.
- */
- // All deprecated APIs methods will be address into https://jira.onap.org/browse/CPS-642
- @Override
- @Deprecated(forRemoval = false)
- public ResponseEntity<Object> updateNodeLeaves(final String cmHandle, @Valid final Object jsonData,
- @Valid final String parentNodeXpath) {
- networkCmProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, GSON.toJson(jsonData));
- return new ResponseEntity<>(HttpStatus.OK);
- }
-
- /**
* Get resource data from operational datastore.
*
* @param cmHandle cm handle identifier
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 a3d8afaf24..b5dc2eabbb 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
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
* Modification Copyright (C) 2021 highstreet technologies GmbH
- * Modification Copyright (C) 2021 Nordix Foundation
+ * Modification Copyright (C) 2021-2022 Nordix Foundation
* Modification Copyright (C) 2021 Bell Canada.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,8 +26,6 @@ import org.onap.cps.TestUtils
import org.onap.cps.spi.model.ModuleReference
import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.PATCH
-import static org.onap.cps.spi.FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS
-import static org.onap.cps.spi.FetchDescendantsOption.OMIT_DESCENDANTS
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch
@@ -37,9 +35,7 @@ import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum
import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.UPDATE
import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.DELETE
-import com.google.gson.Gson
import org.onap.cps.ncmp.api.NetworkCmProxyDataService
-import org.onap.cps.spi.model.DataNodeBuilder
import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
@@ -61,115 +57,8 @@ class NetworkCmProxyControllerSpec extends Specification {
@Value('${rest.api.ncmp-base-path}/v1')
def ncmpBasePathV1
- def cmHandle = 'some handle'
- def xpath = 'some xpath'
def jsonString = '{"some-key":"some-value"}'
- def 'Query data node by cps path for the given cm handle with #scenario.'() {
- given: 'service method returns a list containing a data node'
- def dataNode = new DataNodeBuilder().withXpath('/xpath').build()
- def cpsPath = 'some cps-path'
- mockNetworkCmProxyDataService.queryDataNodes(cmHandle, cpsPath, expectedCpsDataServiceOption) >> [dataNode]
- and: 'the query endpoint'
- 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)
- .param('include-descendants', includeDescendantsOption))
- .andReturn().response
- then: 'the response contains the the datanode in json format'
- response.status == HttpStatus.OK.value()
- def expectedJsonContent = new Gson().toJson(dataNode)
- response.getContentAsString().contains(expectedJsonContent)
- where: 'the following options for include descendants are provided in the request'
- scenario | includeDescendantsOption || expectedCpsDataServiceOption
- 'no descendants by default' | '' || OMIT_DESCENDANTS
- 'no descendant explicitly' | 'false' || OMIT_DESCENDANTS
- 'descendants' | 'true' || INCLUDE_ALL_DESCENDANTS
- }
-
- def 'Create data node: #scenario.'() {
- when: 'post request is performed'
- def response = mvc.perform(
- post("$ncmpBasePathV1/cm-handles/$cmHandle/nodes")
- .contentType(MediaType.APPLICATION_JSON)
- .content(jsonString)
- .param('xpath', reqXpath)
- ).andReturn().response
- then: 'the service method is invoked once with expected parameters'
- 1 * mockNetworkCmProxyDataService.createDataNode(cmHandle, usedXpath, jsonString)
- and: 'response status indicates success'
- response.status == HttpStatus.CREATED.value()
- where: 'following parameters were used'
- scenario | reqXpath || usedXpath
- 'no xpath parameter' | '' || '/'
- 'root xpath' | '/' || '/'
- 'parent node xpath' | '/xpath' || '/xpath'
- }
-
- def 'Add list-node elements.'() {
- given: ' parent node xpath'
- def parentNodeXpath = 'parent node xpath'
- when: 'post request is performed'
- def response = mvc.perform(
- post("$ncmpBasePathV1/cm-handles/$cmHandle/list-node")
- .contentType(MediaType.APPLICATION_JSON)
- .content(jsonString)
- .param('xpath', parentNodeXpath)
- ).andReturn().response
- then: 'the service method is invoked once with expected parameters'
- 1 * mockNetworkCmProxyDataService.addListNodeElements(cmHandle, parentNodeXpath, jsonString)
- and: 'response status indicates success'
- response.status == HttpStatus.CREATED.value()
- }
-
- def 'Update data node leaves.'() {
- given: 'the query endpoint'
- def endpoint = "$ncmpBasePathV1/cm-handles/$cmHandle/nodes"
- when: 'patch request is performed'
- def response = mvc.perform(
- patch(endpoint)
- .contentType(MediaType.APPLICATION_JSON)
- .content(jsonString)
- .param('xpath', xpath)
- ).andReturn().response
- then: 'the service method is invoked once with expected parameters'
- 1 * mockNetworkCmProxyDataService.updateNodeLeaves(cmHandle, xpath, jsonString)
- and: 'response status indicates success'
- response.status == HttpStatus.OK.value()
- }
-
- def 'Replace data node tree.'() {
- given: 'the query endpoint'
- def endpoint = "$ncmpBasePathV1/cm-handles/$cmHandle/nodes"
- when: 'put request is performed'
- def response = mvc.perform(
- put(endpoint)
- .contentType(MediaType.APPLICATION_JSON)
- .content(jsonString)
- .param('xpath', xpath)
- ).andReturn().response
- then: 'the service method is invoked once with expected parameters'
- 1 * mockNetworkCmProxyDataService.replaceNodeTree(cmHandle, xpath, jsonString)
- and: 'response status indicates success'
- response.status == HttpStatus.OK.value()
- }
-
- def 'Get data node.'() {
- given: 'the service returns a data node'
- def xpath = 'some xpath'
- def dataNode = new DataNodeBuilder().withXpath(xpath).withLeaves(["leaf": "value"]).build()
- mockNetworkCmProxyDataService.getDataNode(cmHandle, xpath, OMIT_DESCENDANTS) >> dataNode
- and: 'the query endpoint'
- 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'
- response.status == HttpStatus.OK.value()
- and: 'response contains expected leaf and value'
- response.contentAsString.contains('"leaf":"value"')
- }
-
def 'Get Resource Data from pass-through operational.' () {
given: 'resource data url'
def getUrl = "$ncmpBasePathV1/ch/testCmHandle/data/ds/ncmp-datastore:passthrough-operational" +
diff --git a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/exceptions/NetworkCmProxyRestExceptionHandlerSpec.groovy b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/exceptions/NetworkCmProxyRestExceptionHandlerSpec.groovy
index 3fcf818aff..f36a706937 100644
--- a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/exceptions/NetworkCmProxyRestExceptionHandlerSpec.groovy
+++ b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/exceptions/NetworkCmProxyRestExceptionHandlerSpec.groovy
@@ -1,7 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2021 highstreet technologies GmbH
- * Modification Copyright (C) 2021 Nordix Foundation
+ * Modification Copyright (C) 2021-2022 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,7 +23,6 @@ package org.onap.cps.ncmp.rest.exceptions
import groovy.json.JsonSlurper
import org.onap.cps.ncmp.api.NetworkCmProxyDataService
import org.onap.cps.ncmp.api.impl.exception.NcmpException
-import org.onap.cps.spi.FetchDescendantsOption
import org.onap.cps.spi.exceptions.CpsException
import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
@@ -55,9 +54,6 @@ class NetworkCmProxyRestExceptionHandlerSpec extends Specification {
@Shared
def errorDetails = 'some error details'
- def cmHandle = 'some handle'
- def xpath = 'some xpath'
-
def setup() {
dataNodeBaseEndpoint = "$basePath/v1"
}
@@ -75,18 +71,16 @@ class NetworkCmProxyRestExceptionHandlerSpec extends Specification {
'other' | new IllegalStateException(errorMessage) || null
}
- def setupTestException(exception) {
- mockNetworkCmProxyDataService.getDataNode(cmHandle, xpath, FetchDescendantsOption.OMIT_DESCENDANTS) >>
+ def setupTestException(exception){
+ mockNetworkCmProxyDataService.getYangResourcesModuleReferences('testCmHandle')>>
{ throw exception}
}
- def performTestRequest() {
- return mvc.perform(get("$dataNodeBaseEndpoint/cm-handles/$cmHandle/node").param('xpath', xpath))
- .andReturn().response
+ def performTestRequest(){
+ return mvc.perform(get("$dataNodeBaseEndpoint/ch/testCmHandle/modules")).andReturn().response
}
- static void assertTestResponse(response, expectedStatus,expectedErrorMessage,
- expectedErrorDetails) {
+ static void assertTestResponse(response, expectedStatus , expectedErrorMessage , expectedErrorDetails) {
assert response.status == expectedStatus.value()
def content = new JsonSlurper().parseText(response.contentAsString)
assert content['status'] == expectedStatus.toString()