/** * Validate if all the files ready: * 1. Yes: add BulkUpload job * 2. No: set status to Waiting * @param DropFolder $folder * @param DropFolderFile $file */ private function onXmlDropFolderFileStatusChangedToPending(DropFolder $folder, DropFolderFile $file) { KalturaLog::debug('in onXmlDropFolderFileStatusChangedToPending file id [' . $file->getId() . '] folder id [' . $folder->getId() . ']'); $relatedFiles = array(); try { $xmlFileHandler = kDropFolderXmlFileHandler::getHandlerInstance($folder->getType()); $xmlFileHandler->handlePendingDropFolderFile($folder, $file); } catch (Exception $e) { KalturaLog::err("Error in onXmlDropFolderFileStatusChangedToPending -" . $e->getMessage()); if ($e->getCode() == DropFolderXmlBulkUploadPlugin::getErrorCodeCoreValue(DropFolderXmlBulkUploadErrorCode::ERROR_ADDING_BULK_UPLOAD)) { foreach ($relatedFiles as $relatedFile) { $this->setFileError($relatedFile, DropFolderFileStatus::ERROR_HANDLING, $e->getCode(), $e->getMessage()); } } else { $this->setFileError($file, DropFolderFileStatus::ERROR_HANDLING, $e->getCode(), $e->getMessage()); } } }
private function setParsedSlugFlavor(DropFolder $folder, DropFolderFile $file) { $parsedSlug = null; $parsedFlavor = null; $parsedUserId = null; $isMatch = $this->parseRegex($folder->getFileHandlerConfig(), $file->getNameForParsing(), $parsedSlug, $parsedFlavor, $parsedUserId); if ($isMatch) { $file->setParsedSlug($parsedSlug); $file->setParsedFlavor($parsedFlavor); $file->setParsedUserId($parsedUserId); $file->save(); return $file; } else { return null; } }
protected function setFileToProcessing(DropFolderFile $leadDropFolderFile) { $leadDropFolderFile->setLeadDropFolderFileId($leadDropFolderFile->getId()); $leadDropFolderFile->setStatus(DropFolderFileStatus::PROCESSING); $leadDropFolderFile->save(); }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param DropFolderFile $value A DropFolderFile object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(DropFolderFile $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }
public function setParsedSlug($v) { $v .= '_' . $this->getRecordingId(); parent::setParsedSlug($v); }
/** * Add bulk upload job * @param DropFolder $folder * @param DropFolderFile $leadDropFolderFile * @throws Exception */ private function addXMLBulkUploadJob(DropFolder $folder, DropFolderFile $leadDropFolderFile) { KalturaLog::debug('Adding BulkUpload job'); try { $coreBulkUploadType = DropFolderXmlBulkUploadPlugin::getBulkUploadTypeCoreValue(DropFolderXmlBulkUploadType::DROP_FOLDER_XML); $objectId = $leadDropFolderFile->getId(); $objectType = DropFolderXmlBulkUploadPlugin::getBatchJobObjectTypeCoreValue(DropFolderBatchJobObjectType::DROP_FOLDER_FILE); $partner = PartnerPeer::retrieveByPK($folder->getPartnerId()); $data = KalturaPluginManager::loadObject('kBulkUploadJobData', $coreBulkUploadType); $data->setUploadedBy(kDropFolderXmlEventsConsumer::UPLOADED_BY); $data->setFileName($leadDropFolderFile->getFileName()); $objectData = new kBulkUploadEntryData(); KalturaLog::debug('conversion profile id: ' . $folder->getConversionProfileId()); $objectData->setConversionProfileId($folder->getConversionProfileId()); $data->setObjectData($objectData); $job = kJobsManager::addBulkUploadJob($partner, $data, $coreBulkUploadType, $objectId, $objectType); return $job; } catch (Exception $e) { KalturaLog::err("Error adding BulkUpload job -" . $e->getMessage()); throw new Exception(DropFolderXmlBulkUploadPlugin::ERROR_ADDING_BULK_UPLOAD_MESSAGE, DropFolderXmlBulkUploadPlugin::getErrorCodeCoreValue(DropFolderXmlBulkUploadErrorCode::ERROR_ADDING_BULK_UPLOAD)); } }
private function setFileError(DropFolderFile $file, $status, $errorCode, $errorDescription) { KalturaLog::err('Error with file [' . $file->getId() . '] -' . $errorDescription); $file->setStatus($status); $file->setErrorCode($errorCode); $file->setErrorDescription($errorDescription); $file->save(); }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param DropFolderFile $value A DropFolderFile object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(DropFolderFile $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } if (isset(self::$instances[$key]) || count(self::$instances) < kConf::get('max_num_instances_in_pool')) { self::$instances[$key] = $obj; kMemoryManager::registerPeer('DropFolderFilePeer'); } } }
public function setData(DropFolder $folder, DropFolderFile $dropFolderFileForObject, $dropFolderFileIds) { $this->dropFolderId = $folder->getId(); $this->setConversionProfileId($folder->getConversionProfileId()); $this->setParsedSlug($dropFolderFileForObject->getParsedSlug()); $this->setContentMatchPolicy($folder->getFileHandlerConfig()->getContentMatchPolicy()); $this->setDropFolderFileIds($dropFolderFileIds); if ($dropFolderFileForObject->getParsedUserId()) { $this->setParsedUserId($dropFolderFileForObject->getParsedUserId()); } }