X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-rest%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Frest%2Fcontroller%2FNetworkCmProxyController.java;h=14f33d1e244f0cd1249d8fc732191a8d6618f8d2;hb=fd713b2f104ae5ddd449e82263e6fbfbc4d49c71;hp=3d771b6c511106b87519b66f00fc178f45775cb3;hpb=2ff8b7c6c11e56f6104ed529cc858f5fc128ea25;p=cps.git 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 3d771b6c5..14f33d1e2 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 @@ -3,6 +3,7 @@ * Copyright (C) 2021 Pantheon.tech * Modifications (C) 2021 Nordix Foundation * Modification Copyright (C) 2021 highstreet technologies GmbH + * Modifications (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. @@ -21,19 +22,18 @@ 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 javax.validation.constraints.NotNull; 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.ncmp.rest.model.CmHandles; +import org.onap.cps.ncmp.rest.model.Conditions; import org.onap.cps.spi.FetchDescendantsOption; import org.onap.cps.spi.model.DataNode; +import org.onap.cps.spi.model.ModuleReference; import org.onap.cps.utils.DataMapUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -48,17 +48,12 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { 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) { + public NetworkCmProxyController(final NetworkCmProxyDataService networkCmProxyDataService) { this.networkCmProxyDataService = networkCmProxyDataService; - this.objectMapper = objectMapper; } /** @@ -99,19 +94,6 @@ 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 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. @@ -151,10 +133,78 @@ public class NetworkCmProxyController implements NetworkCmProxyApi { return new ResponseEntity<>(HttpStatus.OK); } + /** + * Get resource data from operational datastore. + * + * @param cmHandle cm handle identifier + * @param resourceIdentifier resource identifier + * @param acceptParamInHeader accept header parameter + * @param optionsParamInQuery options query parameter + * @return {@code ResponseEntity} response from dmi plugin + */ + @Override + public ResponseEntity getResourceDataOperationalForCmHandle(final String cmHandle, + final @NotNull @Valid String resourceIdentifier, + final String acceptParamInHeader, + final @Valid String optionsParamInQuery) { + final Object responseObject = networkCmProxyDataService.getResourceDataOperationalForCmHandle(cmHandle, + resourceIdentifier, + acceptParamInHeader, + optionsParamInQuery); + return ResponseEntity.ok(responseObject); + } - private DmiPluginRegistration convertRestObjectToJavaApiObject( - final RestDmiPluginRegistration restDmiPluginRegistration) { - return objectMapper.convertValue(restDmiPluginRegistration, DmiPluginRegistration.class); + /** + * Get resource data from pass-through running datastore. + * + * @param cmHandle cm handle identifier + * @param resourceIdentifier resource identifier + * @param acceptParamInHeader accept header parameter + * @param optionsParamInQuery options query parameter + * @return {@code ResponseEntity} response from dmi plugin + */ + @Override + public ResponseEntity getResourceDataRunningForCmHandle(final String cmHandle, + final @NotNull @Valid String resourceIdentifier, + final String acceptParamInHeader, + final @Valid String optionsParamInQuery) { + final Object responseObject = networkCmProxyDataService.getResourceDataPassThroughRunningForCmHandle(cmHandle, + resourceIdentifier, + acceptParamInHeader, + optionsParamInQuery); + return ResponseEntity.ok(responseObject); + } + + /** + * Create resource data in datastore pass through running + * for given cm-handle. + * + * @param resourceIdentifier resource identifier + * @param cmHandle cm handle identifier + * @param requestBody requestBody + * @param contentType content type of body + * @return {@code ResponseEntity} response from dmi plugi + */ + @Override + public ResponseEntity createResourceDataRunningForCmHandle(final String resourceIdentifier, + final String cmHandle, + final String requestBody, + final String contentType) { + networkCmProxyDataService.createResourceDataPassThroughRunningForCmHandle(cmHandle, + resourceIdentifier, requestBody, contentType); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @Override + public ResponseEntity executeCmHandleSearch(final Conditions conditions) { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + + @Override + public ResponseEntity getModuleReferencesByCmHandle(final String cmHandle) { + final Collection + moduleReferences = networkCmProxyDataService.getYangResourcesModuleReferences(cmHandle); + return new ResponseEntity<>(new Gson().toJson(moduleReferences), HttpStatus.OK); } }