From 31facc867f1a5dcfe78295b15dc3ddc1c9d15896 Mon Sep 17 00:00:00 2001 From: DylanB95EST Date: Wed, 18 Aug 2021 17:12:25 +0100 Subject: Update CmHandle in DMI-Registry for a DMI-Plugin Instance in NCMP as part of dmi registration. Updating existing CM-Handles created previously as part of CPS-442 Note - Can only update cm handles and properties which already exist. Issue-ID: CPS-443 Change-Id: Ib05a4e01336ca463578b45917dcdfe715b6bad07 Signed-off-by: DylanB95EST --- .../api/impl/NetworkCmProxyDataServiceImpl.java | 58 +++++++++++++++++----- .../cps/ncmp/api/models/DmiPluginRegistration.java | 9 +++- 2 files changed, 53 insertions(+), 14 deletions(-) (limited to 'cps-ncmp-service/src/main/java') 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 84dcc770d9..0b9cb5ad59 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 @@ -24,9 +24,9 @@ package org.onap.cps.ncmp.api.impl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; import lombok.extern.slf4j.Slf4j; @@ -124,24 +124,48 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService @Override public void updateDmiPluginRegistration(final DmiPluginRegistration dmiPluginRegistration) { + if (dmiPluginRegistration.getCreatedCmHandles() != null) { + parseAndCreateCmHandlesInDmiRegistration(dmiPluginRegistration); + } + if (dmiPluginRegistration.getUpdatedCmHandles() != null) { + parseAndUpdateCmHandlesInDmiRegistration(dmiPluginRegistration); + } + } + + private void parseAndCreateCmHandlesInDmiRegistration(final DmiPluginRegistration dmiPluginRegistration) { try { - final List persistenceCmHandles = - new ArrayList<>(); + final List createdPersistenceCmHandles = + new LinkedList<>(); for (final CmHandle cmHandle: dmiPluginRegistration.getCreatedCmHandles()) { - final var persistenceCmHandle = new PersistenceCmHandle(); - persistenceCmHandle.setDmiServiceName(dmiPluginRegistration.getDmiPlugin()); - persistenceCmHandle.setId(cmHandle.getCmHandleID()); - persistenceCmHandle.setAdditionalProperties(cmHandle.getCmHandleProperties()); - persistenceCmHandles.add(persistenceCmHandle); + createdPersistenceCmHandles.add(toPersistenceCmHandle(dmiPluginRegistration, cmHandle)); } - final var persistenceCmHandlesList = new PersistenceCmHandlesList(); - persistenceCmHandlesList.setCmHandles(persistenceCmHandles); + final PersistenceCmHandlesList persistenceCmHandlesList = new PersistenceCmHandlesList(); + persistenceCmHandlesList.setCmHandles(createdPersistenceCmHandles); final String cmHandleJsonData = objectMapper.writeValueAsString(persistenceCmHandlesList); - cpsDataService.saveListNodeData(NCMP_DATASPACE_NAME, - NCMP_DMI_REGISTRY_ANCHOR, - "/dmi-registry", + cpsDataService.saveListNodeData(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, "/dmi-registry", cmHandleJsonData); } catch (final JsonProcessingException e) { + log.error("Parsing error occurred while converting Object to JSON for Dmi Registry."); + throw new DataValidationException( + "Parsing error occurred while processing DMI Plugin Registration" + dmiPluginRegistration, e + .getMessage(), e); + } + } + + private void parseAndUpdateCmHandlesInDmiRegistration(final DmiPluginRegistration dmiPluginRegistration) { + try { + final List updatedPersistenceCmHandles = + new LinkedList<>(); + for (final CmHandle cmHandle: dmiPluginRegistration.getUpdatedCmHandles()) { + updatedPersistenceCmHandles.add(toPersistenceCmHandle(dmiPluginRegistration, cmHandle)); + } + final PersistenceCmHandlesList persistenceCmHandlesList = new PersistenceCmHandlesList(); + persistenceCmHandlesList.setCmHandles(updatedPersistenceCmHandles); + final String cmHandlesJsonData = objectMapper.writeValueAsString(persistenceCmHandlesList); + cpsDataService.updateNodeLeavesAndExistingDescendantLeaves(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, + "/dmi-registry", cmHandlesJsonData); + } catch (final JsonProcessingException e) { + log.error("Parsing error occurred while converting Object to JSON Dmi Registry."); throw new DataValidationException( "Parsing error occurred while processing DMI Plugin Registration" + dmiPluginRegistration, e .getMessage(), e); @@ -216,5 +240,13 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService } } + private PersistenceCmHandle toPersistenceCmHandle(final DmiPluginRegistration dmiPluginRegistration, + final CmHandle cmHandle) { + final PersistenceCmHandle persistenceCmHandle = new PersistenceCmHandle(); + persistenceCmHandle.setDmiServiceName(dmiPluginRegistration.getDmiPlugin()); + persistenceCmHandle.setId(cmHandle.getCmHandleID()); + persistenceCmHandle.setAdditionalProperties(cmHandle.getCmHandleProperties()); + return persistenceCmHandle; + } } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java index 4017c4a56e..fcf9e92d03 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java @@ -21,19 +21,26 @@ package org.onap.cps.ncmp.api.models; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; import java.util.List; import lombok.Getter; import lombok.Setter; /** - * DmiRegistry. + * Dmi Registry request object. */ @Getter @Setter +@JsonInclude(Include.NON_NULL) public class DmiPluginRegistration { private String dmiPlugin; private List createdCmHandles; + private List updatedCmHandles; + + private List deletedCmHandles; + } -- cgit 1.2.3-korg