Example #1
0
 /**
  * Execute the cleanup.
  *
  * @param  \phpbu\App\Configuration\Backup $backup
  * @param  \phpbu\App\Backup\Target        $target
  * @param  \phpbu\App\Backup\Collector     $collector
  * @throws \Exception
  */
 protected function executeCleanup(Configuration\Backup $backup, Target $target, Collector $collector)
 {
     $cleanup = $backup->getCleanup();
     if (!empty($cleanup)) {
         try {
             $this->result->cleanupStart($cleanup);
             if ($this->failure && $cleanup->skipOnFailure) {
                 $this->result->cleanupSkipped($cleanup);
             } else {
                 $cleaner = $this->factory->createCleaner($cleanup->type, $cleanup->options);
                 $cleaner->cleanup($target, $collector, $this->result);
                 $this->result->cleanupEnd($cleanup);
             }
         } catch (Backup\Cleaner\Exception $e) {
             $this->failure = true;
             $this->result->addError($e);
             $this->result->cleanupFailed($cleanup);
         }
     }
 }
Example #2
0
 /**
  * Tests max Result life cycle with errors.
  */
 public function testBackupMaximalWithErrors()
 {
     $conf = new Configuration('/tmp/foo.xml');
     $backup = new Configuration\Backup('test-backup', false);
     $check = new Configuration\Backup\Check('sizemin', '10M');
     $crypt = new Configuration\Backup\Crypt('mcrypt', false);
     $sync = new Configuration\Backup\Sync('rsync', false);
     $cleanup = new Configuration\Backup\Cleanup('capacity', false);
     $result = new Result();
     $result->phpbuStart($conf);
     $result->backupStart($backup);
     $result->checkStart($check);
     $result->checkEnd($check);
     $result->cryptStart($crypt);
     $result->addError(new Exception('failed'));
     $result->cryptFailed($crypt);
     $result->syncStart($sync);
     $result->addError(new Exception('failed'));
     $result->syncFailed($sync);
     $result->cleanupStart($cleanup);
     $result->addError(new Exception('failed'));
     $result->cleanupFailed($cleanup);
     $result->backupEnd($backup);
     $result->phpbuEnd();
     $this->assertTrue($result->wasSuccessful(), 'should be successful');
     $this->assertFalse($result->allOk(), 'should be ok');
     $this->assertTrue($result->backupOkButSkipsOrFails(), 'crypt, sync and cleanup should be failed');
     $this->assertEquals(1, $result->syncsFailedCount());
     $this->assertEquals(0, $result->syncsSkippedCount());
     $this->assertEquals(1, $result->cryptsFailedCount());
     $this->assertEquals(0, $result->cryptsSkippedCount());
     $this->assertEquals(1, $result->cleanupsFailedCount());
     $this->assertEquals(0, $result->cleanupsSkippedCount());
     $this->assertEquals(3, $result->errorCount());
     $this->assertEquals(3, count($result->getErrors()));
     $this->assertEquals(1, count($result->getBackups()));
 }