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); }
/** * * 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); } } }