/**
  * 
  * @param int $objectType
  * @param string $objectId
  * @return ISyncableFile
  */
 public static function retrieveObject($objectType, $objectId)
 {
     $object = null;
     switch ($objectType) {
         case FileSyncObjectType::ENTRY:
             entryPeer::setUseCriteriaFilter(false);
             $object = entryPeer::retrieveByPK($objectId);
             entryPeer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::UICONF:
             uiConfPeer::setUseCriteriaFilter(false);
             $object = uiConfPeer::retrieveByPK($objectId);
             uiConfPeer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::BATCHJOB:
             BatchJobPeer::setUseCriteriaFilter(false);
             $object = BatchJobPeer::retrieveByPK($objectId);
             BatchJobPeer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::FLAVOR_ASSET:
             assetPeer::setUseCriteriaFilter(false);
             $object = assetPeer::retrieveById($objectId);
             assetPeer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::SYNDICATION_FEED:
             syndicationFeedPeer::setUseCriteriaFilter(false);
             $object = syndicationFeedPeer::retrieveByPK($objectId);
             syndicationFeedPeer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::CONVERSION_PROFILE:
             conversionProfile2Peer::setUseCriteriaFilter(false);
             $object = conversionProfile2Peer::retrieveByPK($objectId);
             conversionProfile2Peer::setUseCriteriaFilter(true);
             break;
         case FileSyncObjectType::FILE_ASSET:
             conversionProfile2Peer::setUseCriteriaFilter(false);
             $object = FileAssetPeer::retrieveByPK($objectId);
             conversionProfile2Peer::setUseCriteriaFilter(true);
             break;
     }
     if ($object == null) {
         $object = KalturaPluginManager::loadObject('ISyncableFile', $objectType, array('objectId' => $objectId));
     }
     if ($object == null) {
         $error = __METHOD__ . " Cannot find object type [" . $objectType . "] with object_id [" . $objectId . "]";
         KalturaLog::err($error);
         throw new kFileSyncException($error);
     }
     return $object;
 }
示例#2
0
 public function getChildJobs(Criteria $c = null)
 {
     if ($c) {
         $c = clone $c;
     } else {
         $c = new Criteria();
     }
     BatchJobPeer::setUseCriteriaFilter(false);
     // Get by root
     $c1 = clone $c;
     $c1->addAnd($c1->getNewCriterion(BatchJobPeer::ROOT_JOB_ID, $this->id));
     $c1->addAnd($c1->getNewCriterion(BatchJobPeer::PARENT_JOB_ID, $this->id, Criteria::NOT_EQUAL));
     $result1 = BatchJobPeer::doSelect($c1, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
     // Get by parent
     $c->addAnd($c->getNewCriterion(BatchJobPeer::PARENT_JOB_ID, $this->id));
     $result2 = BatchJobPeer::doSelect($c, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
     // Unite
     BatchJobPeer::setUseCriteriaFilter(true);
     return array_merge($result1, $result2);
 }
示例#3
0
 /**
  * Code to be run after inserting to database
  * @param PropelPDO $con 
  */
 public function postInsert(PropelPDO $con = null)
 {
     BatchJobPeer::setUseCriteriaFilter(false);
     $this->reload();
     BatchJobPeer::setUseCriteriaFilter(true);
     kEventsManager::raiseEvent(new kObjectCreatedEvent($this));
     if ($this->copiedFrom) {
         kEventsManager::raiseEvent(new kObjectCopiedEvent($this->copiedFrom, $this));
     }
 }
示例#4
0
 /**
  * Reloads this object from datastore based on primary key and (optionally) resets all associated objects.
  *
  * This will only work if the object has been saved and has a valid primary key set.
  *
  * @param      boolean $deep (optional) Whether to also de-associated any related objects.
  * @param      PropelPDO $con (optional) The PropelPDO connection to use.
  * @return     void
  * @throws     PropelException - if this object is deleted, unsaved or doesn't have pk match in db
  */
 public function reload($deep = false, PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("Cannot reload a deleted object.");
     }
     if ($this->isNew()) {
         throw new PropelException("Cannot reload an unsaved object.");
     }
     if ($con === null) {
         $con = Propel::getConnection(BatchJobPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     // We don't need to alter the object instance pool; we're just modifying this instance
     // already in the pool.
     BatchJobPeer::setUseCriteriaFilter(false);
     $stmt = BatchJobPeer::doSelectStmt($this->buildPkeyCriteria(), $con);
     BatchJobPeer::setUseCriteriaFilter(true);
     $row = $stmt->fetch(PDO::FETCH_NUM);
     $stmt->closeCursor();
     if (!$row) {
         throw new PropelException('Cannot find matching row in the database to reload object values.');
     }
     $this->hydrate($row, 0, true);
     // rehydrate
     if ($deep) {
         // also de-associate any related objects?
         $this->aBatchJobLock = null;
         $this->collBatchJobLocks = null;
         $this->lastBatchJobLockCriteria = null;
         $this->collBatchJobLockSuspends = null;
         $this->lastBatchJobLockSuspendCriteria = null;
     }
     // if (deep)
 }
 public function getChildJobs(Criteria $c = null)
 {
     if (!$c) {
         $c = new Criteria();
     }
     $crit = $c->getNewCriterion(BatchJobPeer::ROOT_JOB_ID, $this->id);
     $crit->addOr($c->getNewCriterion(BatchJobPeer::PARENT_JOB_ID, $this->id));
     $c->addAnd($crit);
     // remove partner id filter in order to force an optimized query. Otherwise mysql may use the partner id key which is
     // far from optimal for this direct query using ROOT_JOB_ID and PARENT_JOB_ID keys.
     BatchJobPeer::setUseCriteriaFilter(false);
     $result = BatchJobPeer::doSelect($c, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
     BatchJobPeer::setUseCriteriaFilter(true);
     return $result;
 }
 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);
 }