X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Fapi%2Fimpl%2FNetworkCmProxyDataServiceImpl.java;h=38f8e1707dcc84bed497123f3989383c07c1ffc1;hb=a15c0e5b58f16c3ab4a7c7610ac8c4a191e5e051;hp=eeb004ad51669ffbe7327a6c2d9f3d86b95bb854;hpb=fd50018df540ab3689e2bc5db9d2bcfb2d11c922;p=cps.git diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java index eeb004ad5..38f8e1707 100755 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java @@ -23,23 +23,27 @@ package org.onap.cps.ncmp.api.impl; +import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NCMP_DATASPACE_NAME; +import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NCMP_DMI_REGISTRY_ANCHOR; +import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NCMP_DMI_REGISTRY_PARENT; +import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME; +import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NO_TIMESTAMP; import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum; import static org.onap.cps.spi.CascadeDeleteAllowed.CASCADE_DELETE_ALLOWED; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.onap.cps.api.CpsAdminService; import org.onap.cps.api.CpsDataService; import org.onap.cps.api.CpsModuleService; import org.onap.cps.ncmp.api.NetworkCmProxyDataService; -import org.onap.cps.ncmp.api.impl.exception.NcmpException; +import org.onap.cps.ncmp.api.impl.exception.ServerNcmpException; import org.onap.cps.ncmp.api.impl.operations.DmiDataOperations; import org.onap.cps.ncmp.api.impl.operations.DmiModelOperations; import org.onap.cps.ncmp.api.impl.operations.DmiOperations; @@ -50,52 +54,28 @@ import org.onap.cps.ncmp.api.models.PersistenceCmHandlesList; import org.onap.cps.spi.exceptions.DataNodeNotFoundException; import org.onap.cps.spi.exceptions.DataValidationException; import org.onap.cps.spi.model.ModuleReference; +import org.onap.cps.utils.JsonObjectMapper; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @Slf4j @Service +@RequiredArgsConstructor public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService { - private static final String NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME = "NFP-Operational"; + private final CpsDataService cpsDataService; - private static final String NCMP_DATASPACE_NAME = "NCMP-Admin"; + private final JsonObjectMapper jsonObjectMapper; - private static final String NCMP_DMI_REGISTRY_ANCHOR = "ncmp-dmi-registry"; + private final DmiDataOperations dmiDataOperations; - private static final OffsetDateTime NO_TIMESTAMP = null; + private final DmiModelOperations dmiModelOperations; - private CpsDataService cpsDataService; + private final CpsModuleService cpsModuleService; - private ObjectMapper objectMapper; + private final CpsAdminService cpsAdminService; - private DmiDataOperations dmiDataOperations; - - private DmiModelOperations dmiModelOperations; - - private CpsModuleService cpsModuleService; - - private CpsAdminService cpsAdminService; - - /** - * Constructor Injection for Dependencies. - * @param dmiDataOperations DMI operation - * @param cpsDataService Data Service Interface - * @param objectMapper Object Mapper - */ - public NetworkCmProxyDataServiceImpl(final DmiDataOperations dmiDataOperations, - final DmiModelOperations dmiModelOperations, - final CpsModuleService cpsModuleService, - final CpsDataService cpsDataService, - final CpsAdminService cpsAdminService, - final ObjectMapper objectMapper) { - this.dmiDataOperations = dmiDataOperations; - this.dmiModelOperations = dmiModelOperations; - this.cpsModuleService = cpsModuleService; - this.cpsDataService = cpsDataService; - this.cpsAdminService = cpsAdminService; - this.objectMapper = objectMapper; - } + private final NetworkCmProxyDataServicePropertyHandler networkCmProxyDataServicePropertyHandler; @Override public void updateDmiRegistrationAndSyncModule(final DmiPluginRegistration dmiPluginRegistration) { @@ -110,8 +90,11 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService if (dmiPluginRegistration.getRemovedCmHandles() != null) { parseAndRemoveCmHandlesInDmiRegistration(dmiPluginRegistration); } - } catch (final JsonProcessingException e) { - handleJsonProcessingException(dmiPluginRegistration, e); + } catch (final JsonProcessingException | DataNodeNotFoundException e) { + final String errorMessage = String.format( + "Error occurred while processing the CM-handle registration request [%s] ,caused by : [%s]", + dmiPluginRegistration, e.getMessage()); + throw new DataValidationException(errorMessage, e.getMessage(), e); } } @@ -142,12 +125,12 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService } @Override - public void writeResourceDataPassThroughRunningForCmHandle(final String cmHandle, + public Object writeResourceDataPassThroughRunningForCmHandle(final String cmHandle, final String resourceIdentifier, final OperationEnum operation, final String requestData, final String dataType) { - handleResponse( + return handleResponse( dmiDataOperations.writeResourceDataPassThroughRunningFromDmi( cmHandle, resourceIdentifier, operation, requestData, dataType), "Not able to " + operation + " resource data."); @@ -188,19 +171,14 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService if (responseEntity.getStatusCode().is2xxSuccessful()) { return responseEntity.getBody(); } else { - throw new NcmpException(exceptionMessage, + throw new ServerNcmpException(exceptionMessage, "DMI status code: " + responseEntity.getStatusCodeValue() + ", DMI response body: " + responseEntity.getBody()); } } - private void parseAndUpdateCmHandlesInDmiRegistration(final DmiPluginRegistration dmiPluginRegistration) - throws JsonProcessingException { - final PersistenceCmHandlesList updatedPersistenceCmHandlesList = - getUpdatedPersistenceCmHandlesList(dmiPluginRegistration, dmiPluginRegistration.getUpdatedCmHandles()); - final String cmHandlesAsJson = objectMapper.writeValueAsString(updatedPersistenceCmHandlesList); - cpsDataService.updateNodeLeavesAndExistingDescendantLeaves(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, - "/dmi-registry", cmHandlesAsJson, NO_TIMESTAMP); + private void parseAndUpdateCmHandlesInDmiRegistration(final DmiPluginRegistration dmiPluginRegistration) { + networkCmProxyDataServicePropertyHandler.updateCmHandleProperties(dmiPluginRegistration.getUpdatedCmHandles()); } private PersistenceCmHandlesList getUpdatedPersistenceCmHandlesList( @@ -213,19 +191,10 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService updatedCmHandles); } - private static void handleJsonProcessingException(final DmiPluginRegistration dmiPluginRegistration, - final JsonProcessingException e) { - final String message = "Parsing error occurred while processing DMI Plugin Registration" - + dmiPluginRegistration; - log.error(message); - throw new DataValidationException(message, e.getMessage(), e); - } - - private void registerAndSyncNewCmHandles(final PersistenceCmHandlesList persistenceCmHandlesList) - throws JsonProcessingException { - final String cmHandleJsonData = objectMapper.writeValueAsString(persistenceCmHandlesList); - cpsDataService.saveListElements(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, "/dmi-registry", - cmHandleJsonData, NO_TIMESTAMP); + private void registerAndSyncNewCmHandles(final PersistenceCmHandlesList persistenceCmHandlesList) { + final String cmHandleJsonData = jsonObjectMapper.asJsonString(persistenceCmHandlesList); + cpsDataService.saveListElements(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, NCMP_DMI_REGISTRY_PARENT, + cmHandleJsonData, NO_TIMESTAMP); for (final PersistenceCmHandle persistenceCmHandle : persistenceCmHandlesList.getPersistenceCmHandles()) { syncModulesAndCreateAnchor(persistenceCmHandle); @@ -297,7 +266,4 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService cpsAdminService.createAnchor(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME, persistenceCmHandle.getId(), persistenceCmHandle.getId()); } - - - }