Watchdog-process that syncs 'ADVISED' CM Handles
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / inventory / sync / ModuleSyncWatchdog.java
index 0d8f852..368262b 100644 (file)
@@ -23,32 +23,32 @@ package org.onap.cps.ncmp.api.inventory.sync;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
-import org.springframework.scheduling.annotation.EnableScheduling;
+import org.onap.cps.ncmp.api.inventory.CmHandleState;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 @Slf4j
-@EnableScheduling
 @RequiredArgsConstructor
 @Component
 public class ModuleSyncWatchdog {
 
     private final SyncUtils syncUtils;
 
+    private final ModuleSyncService moduleSyncService;
+
     /**
      * Execute Cm Handle poll which changes the cm handle state from 'ADVISED' to 'READY'.
      */
     @Scheduled(fixedDelayString = "${ncmp.timers.advised-modules-sync.sleep-time-ms}")
     public void executeAdvisedCmHandlePoll() {
-        YangModelCmHandle newAdvisedCmHandle = syncUtils.getAnAdvisedCmHandle();
-        while (newAdvisedCmHandle != null) {
-            // ToDo When Cm-Handle in the 'ADVISED' state is Retrieved, Set CM-Handle state to 'LOCKED'
-            //  and give lock reason
-            // ToDo if lock fails, move to next cm handle.
-            // ToDo Update last update time with a timestamp everytime Cm-handle state is changed
-            syncUtils.updateCmHandleState(newAdvisedCmHandle, "READY");
-            log.info("{} is now in READY state", newAdvisedCmHandle.getId());
-            newAdvisedCmHandle = syncUtils.getAnAdvisedCmHandle();
+        YangModelCmHandle advisedCmHandle = syncUtils.getAnAdvisedCmHandle();
+        while (advisedCmHandle != null) {
+            final CmHandleState cmHandleState = advisedCmHandle.getCmHandleState();
+            moduleSyncService.syncAndCreateSchemaSet(advisedCmHandle);
+            // ToDo Lock Cm Handle if module sync fails
+            syncUtils.updateCmHandleState(advisedCmHandle, cmHandleState.ready());
+            log.info("{} is now in {} state", advisedCmHandle.getId(), advisedCmHandle.getCmHandleState());
+            advisedCmHandle = syncUtils.getAnAdvisedCmHandle();
         }
         log.debug("No Cm-Handles currently found in an ADVISED state");
     }