/**
  * @param BaseObject $object
  * @return bool true if should continue to the next consumer
  */
 public function objectAdded(BaseObject $object)
 {
     if (!$object instanceof FileSync || $object->getStatus() != FileSync::FILE_SYNC_STATUS_PENDING || $object->getFileType() != FileSync::FILE_SYNC_FILE_TYPE_FILE || $object->getDc() == kDataCenterMgr::getCurrentDcId()) {
         return true;
     }
     $c = new Criteria();
     $c->addAnd(FileSyncPeer::OBJECT_ID, $object->getObjectId());
     $c->addAnd(FileSyncPeer::VERSION, $object->getVersion());
     $c->addAnd(FileSyncPeer::OBJECT_TYPE, $object->getObjectType());
     $c->addAnd(FileSyncPeer::OBJECT_SUB_TYPE, $object->getObjectSubType());
     $c->addAnd(FileSyncPeer::ORIGINAL, '1');
     $original_filesync = FileSyncPeer::doSelectOne($c);
     if (!$original_filesync) {
         KalturaLog::err('Original filesync not found for object_id[' . $object->getObjectId() . '] version[' . $object->getVersion() . '] type[' . $object->getObjectType() . '] subtype[' . $object->getObjectSubType() . ']');
         return true;
     }
     $sourceFileUrl = $original_filesync->getExternalUrl();
     if (!$sourceFileUrl) {
         KalturaLog::err('External URL not found for filesync id [' . $object->getId() . ']');
         return true;
     }
     $job = kMultiCentersManager::addFileSyncImportJob($this->getEntryId($object), $object->getPartnerId(), $object->getId(), $sourceFileUrl);
     $job->setDc($object->getDc());
     $job->save();
     return true;
 }
 public function shouldConsumeAddedEvent(BaseObject $object)
 {
     if ($object instanceof FileSync && $object->getStatus() == FileSync::FILE_SYNC_STATUS_PENDING && $object->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_FILE && $object->getDc() != kDataCenterMgr::getCurrentDcId() && $this->shouldSyncFileObjectType($object->getObjectType(), $object->getObjectSubType())) {
         return true;
     }
     return false;
 }
Esempio n. 3
0
 public function objectChanged(BaseObject $object, array $modifiedColumns)
 {
     /* @var $object FileSync */
     $c = new Criteria();
     $c->add(FileSyncPeer::DC, $object->getDc());
     $c->add(FileSyncPeer::FILE_TYPE, array(FileSync::FILE_SYNC_FILE_TYPE_LINK, FileSync::FILE_SYNC_FILE_TYPE_URL), Criteria::IN);
     $c->add(FileSyncPeer::LINKED_ID, $object->getId());
     $c->addAscendingOrderByColumn(FileSyncPeer::ID);
     $c->setLimit(100);
     $offset = 0;
     $links = FileSyncPeer::doSelect($c);
     while ($links) {
         $offset += count($links);
         foreach ($links as $link) {
             $link->setStatus($object->getStatus());
             $link->save();
         }
         $c->setOffset($offset);
         $links = FileSyncPeer::doSelect($c);
     }
 }
 public function objectChanged(BaseObject $object, array $modifiedColumns)
 {
     /* @var $object FileSync */
     $c = new Criteria();
     $c->add(FileSyncPeer::DC, $object->getDc());
     $c->add(FileSyncPeer::FILE_TYPE, FileSync::FILE_SYNC_FILE_TYPE_LINK);
     $c->add(FileSyncPeer::LINKED_ID, $object->getId());
     $links = FileSyncPeer::doSelect($c);
     foreach ($links as $link) {
         $link->setStatus($object->getStatus());
         $link->save();
     }
 }
 /**
  * @param BaseObject $object
  * @return bool true if the consumer should handle the event
  */
 public function shouldConsumeDeletedEvent(BaseObject $object)
 {
     if ($object instanceof FileSync) {
         if ($object->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_URL) {
             $storage = StorageProfilePeer::retrieveByPK($object->getDc());
             KalturaLog::debug("storage auto delete policy: " . $storage->getAllowAutoDelete());
             if ($storage->getStatus() == StorageProfile::STORAGE_STATUS_AUTOMATIC && $storage->getAllowAutoDelete()) {
                 return true;
             }
             KalturaLog::debug('Unable to consume deleted event; storageProfile status is not equal to ' . StorageProfile::STORAGE_STATUS_AUTOMATIC);
         }
     }
     return false;
 }
Esempio n. 6
0
 /**
  * @param BaseObject $object
  * @return bool true if the consumer should handle the event
  */
 public function shouldConsumeDeletedEvent(BaseObject $object)
 {
     if ($object instanceof FileSync) {
         if (!PermissionPeer::isValidForPartner(PermissionName::FEATURE_REMOTE_STORAGE, $object->getPartnerId())) {
             return false;
         }
         if ($object->getFileType() == FileSync::FILE_SYNC_FILE_TYPE_URL) {
             $storage = StorageProfilePeer::retrieveByPK($object->getDc());
             if ($storage->getStatus() == StorageProfile::STORAGE_STATUS_AUTOMATIC && $storage->getAllowAutoDelete()) {
                 return true;
             }
         }
     }
     return false;
 }