summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java')
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java63
1 files changed, 43 insertions, 20 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java b/src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java
index ab9c7e1d..73503d23 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/service/operation/SdncOperations.java
@@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull;
import org.onap.cps.ncmp.dmi.config.DmiConfiguration.SdncProperties;
import org.onap.cps.ncmp.dmi.service.client.SdncRestconfClient;
import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
@@ -34,9 +35,9 @@ import org.springframework.stereotype.Component;
public class SdncOperations {
private static final String TOPOLOGY_URL_TEMPLATE_DATA =
- "/rests/data/network-topology:network-topology/topology={topologyId}";
+ "/rests/data/network-topology:network-topology/topology={topologyId}";
private static final String TOPOLOGY_URL_TEMPLATE_OPERATIONAL =
- "/rests/operations/network-topology:network-topology/topology={topologyId}";
+ "/rests/operations/network-topology:network-topology/topology={topologyId}";
private static final String MOUNT_URL_TEMPLATE = "/node={nodeId}/yang-ext:mount";
private static final String GET_SCHEMA_URL = "/ietf-netconf-monitoring:netconf-state/schemas";
private static final String GET_SCHEMA_SOURCES_URL = "/ietf-netconf-monitoring:get-schema";
@@ -56,7 +57,7 @@ public class SdncOperations {
this.sdncProperties = sdncProperties;
this.sdncRestconfClient = sdncRestconfClient;
topologyUrlOperational =
- TOPOLOGY_URL_TEMPLATE_OPERATIONAL.replace("{topologyId}", this.sdncProperties.getTopologyId());
+ TOPOLOGY_URL_TEMPLATE_OPERATIONAL.replace("{topologyId}", this.sdncProperties.getTopologyId());
topologyUrlData = TOPOLOGY_URL_TEMPLATE_DATA.replace("{topologyId}", this.sdncProperties.getTopologyId());
}
@@ -79,30 +80,32 @@ public class SdncOperations {
* @return response entity
*/
public ResponseEntity<String> getModuleResource(final String nodeId, final String moduleProperties) {
- final String getYangResourceUrl = prepareGetOperationSchemaUrl(nodeId);
- return sdncRestconfClient.postOperationWithJsonData(getYangResourceUrl, moduleProperties);
+ final var getYangResourceUrl = prepareGetOperationSchemaUrl(nodeId);
+ final var httpHeaders = new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+ return sdncRestconfClient
+ .postOperationWithJsonData(getYangResourceUrl, moduleProperties, httpHeaders);
}
/**
- * This method fetches the resource data for given node identifier on given resource
- * using sdnc client.
+ * This method fetches the resource data for given node identifier on given resource using sdnc client.
*
- * @param nodeId network resource identifier
- * @param resourceId resource identifier
+ * @param nodeId network resource identifier
+ * @param resourceId resource identifier
* @param fieldsValue fields query
- * @param depthValue depth query
+ * @param depthValue depth query
* @param acceptParam accept parameter
* @return {@code ResponseEntity} response entity
*/
public ResponseEntity<String> getResouceDataForOperationalAndRunning(final String nodeId,
- final String resourceId,
- final String fieldsValue,
- final Integer depthValue,
- final String acceptParam,
+ final String resourceId,
+ final String fieldsValue,
+ final Integer depthValue,
+ final String acceptParam,
final String contentQuery) {
final String getResourceDataUrl = prepareResourceDataUrl(nodeId,
- resourceId,
- getQueryList(fieldsValue, depthValue, contentQuery));
+ resourceId,
+ getQueryList(fieldsValue, depthValue, contentQuery));
final HttpHeaders httpHeaders = new HttpHeaders();
if (!StringUtils.isEmpty(acceptParam)) {
httpHeaders.set(HttpHeaders.ACCEPT, acceptParam);
@@ -110,6 +113,23 @@ public class SdncOperations {
return sdncRestconfClient.getOperation(getResourceDataUrl, httpHeaders);
}
+ /**
+ * Write resource data using passthrough running.
+ *
+ * @param nodeId network resource identifier
+ * @param resourceId resource identifier
+ * @param contentType http content type
+ * @param requestData request data
+ * @return {@code ResponseEntity} response entity
+ */
+ public ResponseEntity<String> writeResourceDataPassthroughRunning(final String nodeId,
+ final String resourceId, final String contentType, final String requestData) {
+ final var getResourceDataUrl = preparePassthroughRunningUrl(nodeId, resourceId);
+ final var httpHeaders = new HttpHeaders();
+ httpHeaders.setContentType(MediaType.parseMediaType(contentType));
+ return sdncRestconfClient.postOperationWithJsonData(getResourceDataUrl, requestData, httpHeaders);
+ }
+
@NotNull
private List<String> getQueryList(final String fieldsValue, final Integer depthValue, final String contentQuery) {
final List<String> queryList = new LinkedList<>();
@@ -131,6 +151,10 @@ public class SdncOperations {
return addResource(addTopologyDataUrlwithNode(nodeId), GET_SCHEMA_URL);
}
+ private String preparePassthroughRunningUrl(final String nodeId, final String resourceId) {
+ return addResource(addTopologyDataUrlwithNode(nodeId), "/" + resourceId);
+ }
+
private String prepareGetOperationSchemaUrl(final String nodeId) {
final var topologyMountUrl = topologyUrlOperational + MOUNT_URL_TEMPLATE;
final var topologyMountUrlWithNodeId = topologyMountUrl.replace("{nodeId}", nodeId);
@@ -139,8 +163,8 @@ public class SdncOperations {
@NotNull
private String prepareResourceDataUrl(final String nodeId,
- final String resourceId,
- final List<String> queryList) {
+ final String resourceId,
+ final List<String> queryList) {
return addQuery(addResource(addTopologyDataUrlwithNode(nodeId), resourceId), queryList);
}
@@ -152,7 +176,7 @@ public class SdncOperations {
return url.concat("/" + resourceId);
}
}
-
+
@NotNull
private String addQuery(final String url, final List<String> queryList) {
if (queryList.isEmpty()) {
@@ -173,5 +197,4 @@ public class SdncOperations {
final String topologyMountUrl = topologyUrlData + MOUNT_URL_TEMPLATE;
return topologyMountUrl.replace("{nodeId}", nodeId);
}
-
} \ No newline at end of file