diff options
author | Sourabh Sourabh <sourabh.sourabh@est.tech> | 2022-08-25 14:35:18 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2022-08-25 14:35:18 +0000 |
commit | e2a699f90d9b755230ea960df21abef55bc305ce (patch) | |
tree | e1d02d7c6ed0ccd240d4df324375bb111c3dd596 /cps-ncmp-service/src/main | |
parent | 10317d3502c18c8013ae11d3c18e29b40db151d1 (diff) | |
parent | ed6c05157f60328b0215bde544f7a4e9894fd15f (diff) |
Merge "Performance Improvement: Batch Update DataNodes"
Diffstat (limited to 'cps-ncmp-service/src/main')
-rw-r--r-- | cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/InventoryPersistence.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/InventoryPersistence.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/InventoryPersistence.java index 14fc6d698a..c059ece0d3 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/InventoryPersistence.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/InventoryPersistence.java @@ -28,6 +28,8 @@ import static org.onap.cps.spi.FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS; import java.time.OffsetDateTime; import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.onap.cps.api.CpsDataService; @@ -91,12 +93,27 @@ public class InventoryPersistence { public void saveCmHandleState(final String cmHandleId, final CompositeState compositeState) { final String cmHandleJsonData = String.format("{\"state\":%s}", jsonObjectMapper.asJsonString(compositeState)); - cpsDataService.replaceNodeTree(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, + cpsDataService.updateDataNodeAndDescendants(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, String.format(CM_HANDLE_XPATH_TEMPLATE, cmHandleId), cmHandleJsonData, OffsetDateTime.now()); } /** + * Save all cm handles states in batch. + * + * @param cmHandleStates contains cm handle id and updated state + */ + public void saveCmHandleStates(final Map<String, CompositeState> cmHandleStates) { + final Map<String, String> cmHandlesJsonDataMap = new HashMap<>(); + cmHandleStates.entrySet().stream().forEach(cmHandleEntry -> + cmHandlesJsonDataMap.put(String.format(CM_HANDLE_XPATH_TEMPLATE, cmHandleEntry.getKey()), + String.format("{\"state\":%s}", + jsonObjectMapper.asJsonString(cmHandleEntry.getValue())))); + cpsDataService.updateDataNodesAndDescendants(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, + cmHandlesJsonDataMap, OffsetDateTime.now()); + } + + /** * This method retrieves DMI service name, DMI properties and the state for a given cm handle. * @param cmHandleId the id of the cm handle * @return yang model cm handle |