diff options
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.java | 63 |
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 |