From 95ccdb630575a34c0229c08b6fdabd3a2e57f5fc Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Fri, 3 Feb 2023 18:35:16 +0000 Subject: Update CmHandleState on deregistration response Current implementation incorrectly sets CmHandleState to DELETED for CM handles that were not deleted. - Update CmHandleState to DELETED only for deleted CM handles - Minor test refactoring Issue-ID: CPS-1471 Signed-off-by: danielhanrahan Change-Id: Ibf8b6d2b87d46a7633f0497b065e3d4099851fd6 --- .../api/impl/NetworkCmProxyDataServiceImpl.java | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'cps-ncmp-service/src/main/java/org/onap') 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 a5bd60605..59b960af6 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 @@ -327,9 +327,10 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService final List tobeRemovedCmHandles) { final List cmHandleRegistrationResponses = new ArrayList<>(tobeRemovedCmHandles.size()); - final List yangModelCmHandles = - tobeRemovedCmHandles.stream().map(inventoryPersistence::getYangModelCmHandle) - .collect(Collectors.toList()); + final Map cmHandleIdToYangModelCmHandleMap = tobeRemovedCmHandles.stream() + .collect(Collectors.toMap(cmHandleId -> cmHandleId, inventoryPersistence::getYangModelCmHandle)); + + final Collection yangModelCmHandles = cmHandleIdToYangModelCmHandleMap.values(); updateCmHandleStateBatch(yangModelCmHandles, CmHandleState.DELETING); for (final List tobeRemovedCmHandleBatch : Lists.partition(tobeRemovedCmHandles, DELETE_BATCH_SIZE)) { @@ -348,7 +349,15 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService } } - updateCmHandleStateBatch(yangModelCmHandles, CmHandleState.DELETED); + final Collection deletedYangModelCmHandles = + cmHandleRegistrationResponses.stream() + .filter(cmHandleRegistrationResponse -> + cmHandleRegistrationResponse.getStatus().equals(CmHandleRegistrationResponse.Status.SUCCESS)) + .map(CmHandleRegistrationResponse::getCmHandle) + .map(cmHandleIdToYangModelCmHandleMap::get) + .collect(Collectors.toList()); + updateCmHandleStateBatch(deletedYangModelCmHandles, CmHandleState.DELETED); + return cmHandleRegistrationResponses; } @@ -372,11 +381,10 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService } } - private void updateCmHandleStateBatch(final List yangModelCmHandles, + private void updateCmHandleStateBatch(final Collection yangModelCmHandles, final CmHandleState cmHandleState) { final Map cmHandleIdsToBeRemoved = new HashMap<>(); - yangModelCmHandles.stream().forEach(yangModelCmHandle -> - cmHandleIdsToBeRemoved.put(yangModelCmHandle, cmHandleState)); + yangModelCmHandles.forEach(yangModelCmHandle -> cmHandleIdsToBeRemoved.put(yangModelCmHandle, cmHandleState)); lcmEventsCmHandleStateHandler.updateCmHandleStateBatch(cmHandleIdsToBeRemoved); } -- cgit 1.2.3-korg