Enable/Disable Data Sync for Cm Handle
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / inventory / sync / DataSyncWatchdog.java
index 553db65..395fb01 100644 (file)
 package org.onap.cps.ncmp.api.inventory.sync;
 
 import java.time.OffsetDateTime;
+import java.util.function.Consumer;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.api.CpsDataService;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
 import org.onap.cps.ncmp.api.inventory.CompositeState;
+import org.onap.cps.ncmp.api.inventory.DataStoreSyncState;
 import org.onap.cps.ncmp.api.inventory.InventoryPersistence;
-import org.onap.cps.ncmp.api.inventory.SyncState;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
@@ -57,18 +58,27 @@ public class DataSyncWatchdog {
             final String resourceData = syncUtils.getResourceData(cmHandleId);
             if (resourceData == null) {
                 log.debug("Error accessing the node for Cm-Handle: {}", cmHandleId);
+            } else if (unSynchronizedReadyCmHandle.getCompositeState().getDataSyncEnabled().equals(false)) {
+                log.debug("Error: data sync enabled for {} must be true."
+                    + "Data sync enabled is currently set to false", cmHandleId);
             } else {
                 cpsDataService.saveData("NFP-Operational", cmHandleId,
                         resourceData, OffsetDateTime.now());
+                setSyncStateToSynchronized().accept(compositeState);
+                inventoryPersistence.saveCmHandleState(cmHandleId, compositeState);
             }
+            unSynchronizedReadyCmHandle = syncUtils.getAnUnSynchronizedReadyCmHandle();
+        }
+        log.debug("No Cm-Handles currently found in an READY State and Operational Sync State is UNSYNCHRONIZED");
+    }
+
+    private Consumer<CompositeState> setSyncStateToSynchronized() {
+        return compositeState -> {
             compositeState.setLastUpdateTimeNow();
             compositeState.getDataStores()
                     .setOperationalDataStore(CompositeState.Operational.builder()
-                            .syncState(SyncState.SYNCHRONIZED)
+                            .dataStoreSyncState(DataStoreSyncState.SYNCHRONIZED)
                             .lastSyncTime(CompositeState.nowInSyncTimeFormat()).build());
-            inventoryPersistence.saveCmHandleState(cmHandleId, compositeState);
-            unSynchronizedReadyCmHandle = syncUtils.getAnUnSynchronizedReadyCmHandle();
-        }
-        log.debug("No Cm-Handles currently found in an READY State and Operational Sync State is UNSYNCHRONIZED");
+        };
     }
 }