/** * Adds new live stream entry. * The entry will be queued for provision. * * @action add * @param KalturaLiveStreamEntry $liveStreamEntry Live stream entry metadata * @param KalturaSourceType $sourceType Live stream source type * @return KalturaLiveStreamEntry The new live stream entry * * @throws KalturaErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL */ function addAction(KalturaLiveStreamEntry $liveStreamEntry, $sourceType = null) { if ($sourceType) { $liveStreamEntry->sourceType = $sourceType; } elseif (is_null($liveStreamEntry->sourceType)) { // default sourceType is AKAMAI_LIVE $liveStreamEntry->sourceType = kPluginableEnumsManager::coreToApi('EntrySourceType', $this->getPartner()->getDefaultLiveStreamEntrySourceType()); } $dbEntry = $this->prepareEntryForInsert($liveStreamEntry); $dbEntry->save(); $te = new TrackEntry(); $te->setEntryId($dbEntry->getId()); $te->setTrackEventTypeId(TrackEntry::TRACK_ENTRY_EVENT_TYPE_ADD_ENTRY); $te->setDescription(__METHOD__ . ":" . __LINE__ . "::" . $dbEntry->getSource()); TrackEntry::addTrackEntry($te); //If a jobData can be created for entry sourceType, add provision job. Otherwise, just save the entry. $jobData = kProvisionJobData::getInstance($dbEntry->getSource()); if ($jobData) { /* @var $data kProvisionJobData */ $jobData->populateFromPartner($dbEntry->getPartner()); $jobData->populateFromEntry($dbEntry); kJobsManager::addProvisionProvideJob(null, $dbEntry, $jobData); } else { $dbEntry->setStatus(entryStatus::READY); $dbEntry->save(); $liveAssets = assetPeer::retrieveByEntryId($dbEntry->getId(), array(assetType::LIVE)); foreach ($liveAssets as $liveAsset) { /* @var $liveAsset liveAsset */ $liveAsset->setStatus(asset::ASSET_STATUS_READY); $liveAsset->save(); } } myNotificationMgr::createNotification(kNotificationJobData::NOTIFICATION_TYPE_ENTRY_ADD, $dbEntry, $this->getPartnerId(), null, null, null, $dbEntry->getId()); $liveStreamEntry->fromObject($dbEntry, $this->getResponseProfile()); return $liveStreamEntry; }
public static function addProvisionDeleteJob(BatchJob $parentJob = null, entry $entry) { $jobData = kProvisionJobData::getInstance($entry->getSource()); if ($jobData) { $jobData->setStreamID($entry->getStreamRemoteId()); $subType = $entry->getSource(); $jobData->populateFromPartner($entry->getPartner()); $jobData->populateFromEntry($entry); $batchJob = null; if ($parentJob) { $batchJob = $parentJob->createChild(BatchJobType::PROVISION_DELETE, $subType); } else { $batchJob = new BatchJob(); $batchJob->setEntryId($entry->getId()); $batchJob->setPartnerId($entry->getPartnerId()); } $batchJob->setObjectId($entry->getId()); $batchJob->setObjectType(BatchJobObjectType::ENTRY); return self::addJob($batchJob, $jobData, BatchJobType::PROVISION_DELETE, $subType); } return false; }