Jelajahi Sumber

changes by Roland

root 4 tahun lalu
induk
melakukan
f42c775264
1 mengubah file dengan 24 tambahan dan 5 penghapusan
  1. 24 5
      app/Jobs/Cloud/SnapshotVmJob.php

+ 24 - 5
app/Jobs/Cloud/SnapshotVmJob.php

@@ -51,13 +51,14 @@ class SnapshotVmJob extends BaseJob {
         $taskId =  $snapshot->create();
         //save task id
         $this->putModelDataAndSave(["taskId" => $taskId, "node" => sl('Vm')->getVm()->getNode()]);
+        
         //sleep
         $this->sleep(5);
-
         $this->clean();
         $this->sleep(25);
         return false;
     }
+    
 
     /**
      * @return SnapshotJob
@@ -89,11 +90,29 @@ class SnapshotVmJob extends BaseJob {
         foreach ($snapshotRepository->sortBySnaptime()->fetch() as $entity) {
             syslog(LOG_NOTICE,"   Checking Snapshot: " . $entity->getName() . " (" . $entity->getPath() . ")" );
             if($toDelete <=0) {
-                break;
+            	    break;
+    	    }
+            $errorCount = 0;
+            $errorMessage = "NOT EMPTY";
+            while(!empty($errorMessage) && $errorCount < 18) {
+                syslog(LOG_NOTICE,"   ->Delete Snapshot: " . $entity->getName() );
+                while(!empty($errorMessage) && $errorCount < 18) {
+                try {
+                    $result = $entity->delete();
+                    //syslog(LOG_NOTICE,"   ->RESULT " . print_r($result,true) );
+
+                    $errorMessage = "";
+                    syslog(LOG_NOTICE,"   ->SUCCESS " . $result );
+                    sleep(55);
+                } catch(\Exception $ex) {
+                    $errorMessage = $ex->getMessage();
+                    syslog(LOG_NOTICE,"   ->ERROR " . $errorCount . ": " . $errorMessage );
+                    $errorCount ++;
+                    sleep(55);
+                }
             }
-            syslog(LOG_NOTICE,"   ->Delete Snapshot: " . $entity->getName() . " (" . $entity->getPath() . ")" );
-            $entity->delete();
             $toDelete --;
         }
     }
-}
+    syslog(LOG_NOTICE,"Snapshot Clean DONE" );
+}