Merge "Expose hazelcast cluster info"
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / events / lcm / LcmEventsCmHandleStateHandlerImpl.java
index 2f77ec3..a31332f 100644 (file)
 
 package org.onap.cps.ncmp.api.impl.events.lcm;
 
-import static org.onap.cps.ncmp.api.inventory.CmHandleState.ADVISED;
-import static org.onap.cps.ncmp.api.inventory.CmHandleState.DELETED;
-import static org.onap.cps.ncmp.api.inventory.CmHandleState.LOCKED;
-import static org.onap.cps.ncmp.api.inventory.CmHandleState.READY;
+import static org.onap.cps.ncmp.api.impl.inventory.CmHandleState.ADVISED;
+import static org.onap.cps.ncmp.api.impl.inventory.CmHandleState.DELETED;
+import static org.onap.cps.ncmp.api.impl.inventory.CmHandleState.LOCKED;
+import static org.onap.cps.ncmp.api.impl.inventory.CmHandleState.READY;
 
 import io.micrometer.core.annotation.Timed;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -36,12 +37,12 @@ import lombok.NoArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
+import org.onap.cps.ncmp.api.impl.inventory.CmHandleState;
+import org.onap.cps.ncmp.api.impl.inventory.CompositeState;
+import org.onap.cps.ncmp.api.impl.inventory.CompositeStateUtils;
+import org.onap.cps.ncmp.api.impl.inventory.InventoryPersistence;
 import org.onap.cps.ncmp.api.impl.utils.YangDataConverter;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
-import org.onap.cps.ncmp.api.inventory.CmHandleState;
-import org.onap.cps.ncmp.api.inventory.CompositeState;
-import org.onap.cps.ncmp.api.inventory.CompositeStateUtils;
-import org.onap.cps.ncmp.api.inventory.InventoryPersistence;
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle;
 import org.springframework.stereotype.Service;
 
@@ -82,6 +83,15 @@ public class LcmEventsCmHandleStateHandlerImpl implements LcmEventsCmHandleState
         lcmEventsCmHandleStateHandlerAsyncHelper.publishLcmEventBatchAsynchronously(cmHandleTransitionPairs);
     }
 
+    @Override
+    public void initiateStateAdvised(final Collection<YangModelCmHandle> yangModelCmHandles) {
+        final Map<YangModelCmHandle, CmHandleState> cmHandleStatePerCmHandle = new HashMap<>(yangModelCmHandles.size());
+        for (final YangModelCmHandle yangModelCmHandle : yangModelCmHandles) {
+            cmHandleStatePerCmHandle.put(yangModelCmHandle, ADVISED);
+        }
+        updateCmHandleStateBatch(cmHandleStatePerCmHandle);
+    }
+
     private Collection<CmHandleTransitionPair> prepareCmHandleTransitionBatch(
             final Map<YangModelCmHandle, CmHandleState> cmHandleStatePerCmHandle) {
         final List<CmHandleTransitionPair> cmHandleTransitionPairs = new ArrayList<>(cmHandleStatePerCmHandle.size());
@@ -100,14 +110,13 @@ public class LcmEventsCmHandleStateHandlerImpl implements LcmEventsCmHandleState
                 cmHandleTransitionPairs.add(cmHandleTransitionPair);
             }
         });
-
         return cmHandleTransitionPairs;
     }
 
 
     private void persistCmHandle(final YangModelCmHandle targetYangModelCmHandle,
             final YangModelCmHandle currentYangModelCmHandle) {
-        if (isNew(currentYangModelCmHandle.getCompositeState(), targetYangModelCmHandle.getCompositeState())) {
+        if (isNew(currentYangModelCmHandle.getCompositeState())) {
             log.debug("Registering a new cm handle {}", targetYangModelCmHandle.getId());
             inventoryPersistence.saveCmHandle(targetYangModelCmHandle);
         } else if (isDeleted(targetYangModelCmHandle.getCompositeState())) {
@@ -124,8 +133,8 @@ public class LcmEventsCmHandleStateHandlerImpl implements LcmEventsCmHandleState
         final Map<String, CompositeState> compositeStatePerCmHandleId = new LinkedHashMap<>();
 
         cmHandleTransitionPairs.forEach(cmHandleTransitionPair -> {
-            if (isNew(cmHandleTransitionPair.getCurrentYangModelCmHandle().getCompositeState(),
-                    cmHandleTransitionPair.getTargetYangModelCmHandle().getCompositeState())) {
+            if (isNew(cmHandleTransitionPair.getCurrentYangModelCmHandle().getCompositeState()
+            )) {
                 newCmHandles.add(cmHandleTransitionPair.getTargetYangModelCmHandle());
             } else if (!isDeleted(cmHandleTransitionPair.getTargetYangModelCmHandle().getCompositeState())) {
                 compositeStatePerCmHandleId.put(cmHandleTransitionPair.getTargetYangModelCmHandle().getId(),
@@ -172,8 +181,8 @@ public class LcmEventsCmHandleStateHandlerImpl implements LcmEventsCmHandleState
         CompositeStateUtils.setCompositeState(targetCmHandleState).accept(yangModelCmHandle.getCompositeState());
     }
 
-    private boolean isNew(final CompositeState existingCompositeState, final CompositeState targetCompositeState) {
-        return (existingCompositeState == null && targetCompositeState.getCmHandleState() == ADVISED);
+    private boolean isNew(final CompositeState existingCompositeState) {
+        return (existingCompositeState == null);
     }
 
     private boolean isDeleted(final CompositeState targetCompositeState) {