public function objectDeleted(BaseObject $object, BatchJob $raisedJob = null)
 {
     /* @var $object FileSync */
     $syncKey = kFileSyncUtils::getKeyForFileSync($object);
     $entryId = null;
     switch ($object->getObjectType()) {
         case FileSyncObjectType::ENTRY:
             $entryId = $object->getObjectId();
             break;
         case FileSyncObjectType::BATCHJOB:
             BatchJobPeer::setUseCriteriaFilter(false);
             $batchJob = BatchJobPeer::retrieveByPK($object->getObjectId());
             if ($batchJob) {
                 $entryId = $batchJob->getEntryId();
             }
             BatchJobPeer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::ASSET:
             assetPeer::setUseCriteriaFilter(false);
             $asset = assetPeer::retrieveById($object->getId());
             if ($asset) {
                 $entryId = $asset->getEntryId();
                 //the next piece of code checks whether the entry to which
                 //the deleted asset belongs to is a "replacement" entry
                 $entry = entryPeer::retrieveByPKNoFilter($entryId);
                 if (!$entry) {
                     KalturaLog::alert("No entry found by the ID of [{$entryId}]");
                 } else {
                     if ($entry->getReplacedEntryId()) {
                         KalturaLog::info("Will not handle event - deleted asset belongs to replacement entry");
                         return;
                     }
                 }
             }
             assetPeer::setUseCriteriaFilter(true);
             break;
     }
     $storage = StorageProfilePeer::retrieveByPK($object->getDc());
     kJobsManager::addStorageDeleteJob($raisedJob, $entryId, $storage, $object);
 }
Beispiel #2
0
 /**
  * 
  * add DeleteStorage job for key
  * 
  * @param entry $entry
  * @param StorageProfile $profile
  * @param FileSyncKey $key
  */
 protected static function delete(entry $entry, StorageProfile $profile, FileSyncKey $key)
 {
     $externalFileSync = kFileSyncUtils::getReadyPendingExternalFileSyncForKey($key, $profile->getId());
     if (!$externalFileSync) {
         return;
     }
     $c = new Criteria();
     $c->add(BatchJobPeer::OBJECT_ID, $externalFileSync->getId());
     $c->add(BatchJobPeer::OBJECT_TYPE, BatchJobObjectType::FILE_SYNC);
     $c->add(BatchJobPeer::JOB_TYPE, BatchJobType::STORAGE_EXPORT);
     $c->add(BatchJobPeer::JOB_SUB_TYPE, $profile->getProtocol());
     $c->add(BatchJobPeer::ENTRY_ID, $entry->getId());
     $c->add(BatchJobPeer::STATUS, array(BatchJob::BATCHJOB_STATUS_RETRY, BatchJob::BATCHJOB_STATUS_PENDING), Criteria::IN);
     $exportJobs = BatchJobPeer::doSelect($c);
     if (!$exportJobs) {
         kJobsManager::addStorageDeleteJob(null, $entry->getId(), $profile, $externalFileSync);
     } else {
         foreach ($exportJobs as $exportJob) {
             kJobsManager::abortDbBatchJob($exportJob);
         }
     }
 }