summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-rest/src/main
diff options
context:
space:
mode:
authorDylanB95EST <dylan.byrne@est.tech>2021-07-02 13:30:42 +0100
committerDylanB95EST <dylan.byrne@est.tech>2021-08-03 16:47:24 +0100
commit4f4178c7af4ca5571a0813a5c79f35b11c825d35 (patch)
tree0167aaaf7f51498499acb572c8e7995474b9ac9f /cps-ncmp-rest/src/main
parent15b93e7ad7db7372d51c4c1ad45f95d463aaaffc (diff)
Implement DMI Registration (NCMP-Side)
Implementing registration of CM-Handles to NCMP from DMI CM Handles are Written to fragment tables Moved NetworkCmProxyDataServiceImplSpec.groovy as it was not in the same package as the class it was testing. Meaning it didn't cover this when it came to code coverage Have included Json structure validation also within open api Deprecating old API's along with old API Methods Issue-ID: CPS-442 Change-Id: I819b9bf65280b1d968d3b75ca5ef2f9eb5617579 Signed-off-by: DylanB95EST <dylan.byrne@est.tech>
Diffstat (limited to 'cps-ncmp-rest/src/main')
-rwxr-xr-xcps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyController.java76
1 files changed, 70 insertions, 6 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 484a21ae65..e9e022345f 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
@@ -21,46 +21,75 @@
package org.onap.cps.ncmp.rest.controller;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.Collection;
import javax.validation.Valid;
import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
+import org.onap.cps.ncmp.api.models.DmiPluginRegistration;
import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi;
+import org.onap.cps.ncmp.rest.model.RestDmiPluginRegistration;
import org.onap.cps.spi.FetchDescendantsOption;
import org.onap.cps.spi.model.DataNode;
import org.onap.cps.utils.DataMapUtils;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-
@RestController
@RequestMapping("${rest.api.ncmp-base-path}")
public class NetworkCmProxyController implements NetworkCmProxyApi {
private static final Gson GSON = new GsonBuilder().create();
- @Autowired
- private NetworkCmProxyDataService networkCmProxyDataService;
+ private final NetworkCmProxyDataService networkCmProxyDataService;
+ private final ObjectMapper objectMapper;
+
+ /**
+ * Constructor Injection for Dependencies.
+ * @param networkCmProxyDataService Data Service Interface
+ * @param objectMapper Object Mapper
+ */
+ public NetworkCmProxyController(final NetworkCmProxyDataService networkCmProxyDataService,
+ final ObjectMapper objectMapper) {
+ this.networkCmProxyDataService = networkCmProxyDataService;
+ this.objectMapper = objectMapper;
+ }
+
+ /**
+ * Create Node.
+ * @deprecated This Method is no longer used as part of NCMP.
+ */
@Override
- public ResponseEntity<String> createNode(final String jsonData, final String cmHandle,
+ @Deprecated(forRemoval = false)
+ public ResponseEntity<Void> createNode(final String jsonData, final String cmHandle,
final String parentNodeXpath) {
networkCmProxyDataService.createDataNode(cmHandle, parentNodeXpath, jsonData);
return new ResponseEntity<>(HttpStatus.CREATED);
}
+ /**
+ * Add List-node Child Element.
+ * @deprecated This Method is no longer used as part of NCMP.
+ */
@Override
- public ResponseEntity<String> addListNodeElements(final String jsonData, final String parentNodeXpath,
+ @Deprecated(forRemoval = false)
+ public ResponseEntity<Void> addListNodeElements(final String jsonData, final String parentNodeXpath,
final String cmHandle) {
networkCmProxyDataService.addListNodeElements(cmHandle, parentNodeXpath, 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.
+ */
@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)
@@ -69,7 +98,25 @@ public class NetworkCmProxyController implements NetworkCmProxyApi {
return new ResponseEntity<>(DataMapUtils.toDataMap(dataNode), HttpStatus.OK);
}
+ /**
+ * Update DMI Plugin Registration (used for first registration also).
+ * @param restDmiPluginRegistration the registration data
+ */
@Override
+ public ResponseEntity<Void> updateDmiPluginRegistration(
+ final @Valid RestDmiPluginRegistration restDmiPluginRegistration) {
+ final DmiPluginRegistration dmiPluginRegistration =
+ convertRestObjectToJavaApiObject(restDmiPluginRegistration);
+ networkCmProxyDataService.updateDmiPluginRegistration(dmiPluginRegistration);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ /**
+ * Query Data Nodes.
+ * @deprecated This Method is no longer used as part of NCMP.
+ */
+ @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)
@@ -79,17 +126,34 @@ public class NetworkCmProxyController implements NetworkCmProxyApi {
return new ResponseEntity<>(GSON.toJson(dataNodes), HttpStatus.OK);
}
+ /**
+ * Replace Node With Descendants.
+ * @deprecated This Method is no longer used as part of NCMP.
+ */
@Override
+ @Deprecated(forRemoval = false)
public ResponseEntity<Object> replaceNode(@Valid final String jsonData, final String cmHandle,
@Valid final String parentNodeXpath) {
networkCmProxyDataService.replaceNodeTree(cmHandle, parentNodeXpath, jsonData);
return new ResponseEntity<>(HttpStatus.OK);
}
+ /**
+ * Update Node Leaves.
+ * @deprecated This Method is no longer used as part of NCMP.
+ */
@Override
+ @Deprecated(forRemoval = false)
public ResponseEntity<Object> updateNodeLeaves(@Valid final String jsonData, final String cmHandle,
@Valid final String parentNodeXpath) {
networkCmProxyDataService.updateNodeLeaves(cmHandle, parentNodeXpath, jsonData);
return new ResponseEntity<>(HttpStatus.OK);
}
+
+
+ private DmiPluginRegistration convertRestObjectToJavaApiObject(
+ final RestDmiPluginRegistration restDmiPluginRegistration) {
+ return objectMapper.convertValue(restDmiPluginRegistration, DmiPluginRegistration.class);
+ }
+
}