Define Initial Data Sync Enabled Flag and state
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / inventory / sync / ModuleSyncWatchdog.java
index 0330991..f18d843 100644 (file)
@@ -31,6 +31,7 @@ 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.LockReasonCategory;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -45,6 +46,9 @@ public class ModuleSyncWatchdog {
 
     private final ModuleSyncService moduleSyncService;
 
+    @Value("${data-sync.cache.enabled:false}")
+    private boolean isGlobalDataSyncCacheEnabled;
+
     /**
      * Execute Cm Handle poll which changes the cm handle state from 'ADVISED' to 'READY'.
      */
@@ -96,11 +100,9 @@ public class ModuleSyncWatchdog {
 
     private Consumer<CompositeState> setCompositeStateToReadyWithInitialDataStoreSyncState() {
         return compositeState -> {
+            compositeState.setDataSyncEnabled(isGlobalDataSyncCacheEnabled);
             compositeState.setCmHandleState(CmHandleState.READY);
-            final CompositeState.Operational operational = CompositeState.Operational.builder()
-                    .dataStoreSyncState(DataStoreSyncState.UNSYNCHRONIZED)
-                    .lastSyncTime(CompositeState.nowInSyncTimeFormat())
-                    .build();
+            final CompositeState.Operational operational = getDataStoreSyncState(compositeState.getDataSyncEnabled());
             final CompositeState.DataStores dataStores = CompositeState.DataStores.builder()
                     .operationalDataStore(operational)
                     .build();
@@ -116,4 +118,11 @@ public class ModuleSyncWatchdog {
                 .details(oldLockReasonDetails).build();
         compositeState.setLockReason(lockReason);
     }
+
+    private CompositeState.Operational getDataStoreSyncState(final boolean dataSyncEnabled) {
+        final DataStoreSyncState dataStoreSyncState = dataSyncEnabled
+            ? DataStoreSyncState.UNSYNCHRONIZED : DataStoreSyncState.NONE_REQUESTED;
+        return CompositeState.Operational.builder().dataStoreSyncState(dataStoreSyncState).build();
+    }
+
 }