summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src/main/java/org
diff options
context:
space:
mode:
authorJosephKeenan <joseph.keenan@est.tech>2023-01-11 09:18:07 +0000
committerJosephKeenan <joseph.keenan@est.tech>2023-01-12 16:13:05 +0000
commit078ce32b996a8f0421d8f30f9d10d9755cee28d7 (patch)
tree74d42dc1d117a20a888463f8eece2f8b65de2190 /cps-ncmp-service/src/main/java/org
parent96c8e88e3750a16fa66d3f16ea0c84c0daf0be8f (diff)
Updating CmHandleStates using batch operation
Issue-ID: CPS-1424 Signed-off-by: JosephKeenan <joseph.keenan@est.tech> Change-Id: Ia67db468ece4a7ab694d95cb63a954f24dd8cb55
Diffstat (limited to 'cps-ncmp-service/src/main/java/org')
-rwxr-xr-xcps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java29
1 files changed, 22 insertions, 7 deletions
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 d00d2119b1..5aad404e61 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
@@ -93,8 +93,12 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
final DmiPluginRegistration dmiPluginRegistration) {
dmiPluginRegistration.validateDmiPluginRegistration();
final DmiPluginRegistrationResponse dmiPluginRegistrationResponse = new DmiPluginRegistrationResponse();
- dmiPluginRegistrationResponse.setRemovedCmHandles(
- parseAndRemoveCmHandlesInDmiRegistration(dmiPluginRegistration.getRemovedCmHandles()));
+
+ if (!dmiPluginRegistration.getRemovedCmHandles().isEmpty()) {
+ dmiPluginRegistrationResponse.setRemovedCmHandles(
+ parseAndRemoveCmHandlesInDmiRegistration(dmiPluginRegistration.getRemovedCmHandles()));
+ }
+
if (!dmiPluginRegistration.getCreatedCmHandles().isEmpty()) {
dmiPluginRegistrationResponse.setCreatedCmHandles(
parseAndCreateCmHandlesInDmiRegistrationAndSyncModules(dmiPluginRegistration));
@@ -321,15 +325,13 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
final List<String> tobeRemovedCmHandles) {
final List<CmHandleRegistrationResponse> cmHandleRegistrationResponses =
new ArrayList<>(tobeRemovedCmHandles.size());
+
+ setState(tobeRemovedCmHandles, CmHandleState.DELETING);
+
for (final String cmHandleId : tobeRemovedCmHandles) {
try {
- final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle(cmHandleId);
- lcmEventsCmHandleStateHandler.updateCmHandleState(yangModelCmHandle,
- CmHandleState.DELETING);
deleteCmHandleFromDbAndModuleSyncMap(cmHandleId);
cmHandleRegistrationResponses.add(CmHandleRegistrationResponse.createSuccessResponse(cmHandleId));
- lcmEventsCmHandleStateHandler.updateCmHandleState(yangModelCmHandle,
- CmHandleState.DELETED);
} catch (final DataNodeNotFoundException dataNodeNotFoundException) {
log.error("Unable to find dataNode for cmHandleId : {} , caused by : {}",
cmHandleId, dataNodeNotFoundException.getMessage());
@@ -347,9 +349,22 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
CmHandleRegistrationResponse.createFailureResponse(cmHandleId, exception));
}
}
+
+ setState(tobeRemovedCmHandles, CmHandleState.DELETED);
+
return cmHandleRegistrationResponses;
}
+ private void setState(final List<String> tobeRemovedCmHandles, final CmHandleState cmHandleState) {
+ final Map<YangModelCmHandle, CmHandleState> cmHandleIdsToBeRemoved = new HashMap<>();
+ for (final String cmHandleId : tobeRemovedCmHandles) {
+ cmHandleIdsToBeRemoved.put(
+ inventoryPersistence.getYangModelCmHandle(cmHandleId),
+ cmHandleState);
+ }
+ lcmEventsCmHandleStateHandler.updateCmHandleStateBatch(cmHandleIdsToBeRemoved);
+ }
+
private void deleteCmHandleFromDbAndModuleSyncMap(final String cmHandleId) {
inventoryPersistence.deleteSchemaSetWithCascade(cmHandleId);
inventoryPersistence.deleteListOrListElement("/dmi-registry/cm-handles[@id='" + cmHandleId + "']");