/**
  * Add bulk upload job
  * @param DropFolder $folder
  * @param DropFolderFile $leadDropFolderFile
  * @throws Exception
  */
 private function addXMLBulkUploadJob(DropFolder $folder, DropFolderFile $leadDropFolderFile)
 {
     /* @var $leadDropFolderFile FeedDropFolderFile */
     KalturaLog::info('Adding BulkUpload job');
     try {
         $coreBulkUploadType = BulkUploadXmlPlugin::getBulkUploadTypeCoreValue(BulkUploadXmlType::XML);
         $objectId = $leadDropFolderFile->getId();
         $objectType = DropFolderXmlBulkUploadPlugin::getBatchJobObjectTypeCoreValue(DropFolderBatchJobObjectType::DROP_FOLDER_FILE);
         $partner = PartnerPeer::retrieveByPK($folder->getPartnerId());
         $data = KalturaPluginManager::loadObject('kBulkUploadJobData', $coreBulkUploadType);
         /* @var $data kBulkUploadJobData */
         $data->setUploadedBy(kDropFolderXmlEventsConsumer::UPLOADED_BY);
         KalturaLog::info("Feed XML path: " . $leadDropFolderFile->getFeedXmlPath());
         $data->setFilePath($leadDropFolderFile->getFeedXmlPath());
         $data->setFileName(basename($data->getFilePath()) . '.xml');
         $objectData = new kBulkUploadEntryData();
         KalturaLog::info('Conversion profile id: ' . $folder->getConversionProfileId());
         $objectData->setConversionProfileId($folder->getConversionProfileId());
         $data->setObjectData($objectData);
         $job = kJobsManager::addBulkUploadJob($partner, $data, $coreBulkUploadType, $objectId, $objectType);
         $this->setFileToProcessing($leadDropFolderFile);
         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));
     }
 }
Пример #2
0
 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;
     }
 }
 /**
  * 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());
         }
     }
 }
 /**
  * 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      DropFolder $value A DropFolder object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(DropFolder $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
 /**
  * Check if file is XML according to the file pattern set on the drop folder
  * The comparison is case insensitive
  * @param string $fileName
  * @param DropFolder $folder
  */
 private function isXmlFile($fileName, DropFolder $folder)
 {
     KalturaLog::debug('checking if file ' . $fileName . ' is XML');
     $isXml = false;
     $fileNamePatterns = trim($folder->getFileNamePatterns(), ' *');
     KalturaLog::debug('file name pattern [ ' . $fileNamePatterns . ']');
     if ($fileNamePatterns) {
         $isXml = stristr($fileName, $fileNamePatterns);
     } else {
         $isXml = true;
     }
     return $isXml;
 }
Пример #6
0
 /**
  * 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      DropFolder $value A DropFolder object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(DropFolder $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('DropFolderPeer');
         }
     }
 }
 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());
     }
 }
Пример #8
0
 /**
  * Check if file is XML according to the file pattern set on the drop folder
  * The comparison is case insensitive
  * @param string $fileName
  * @param DropFolder $folder
  */
 private function isXmlFile($fileName, DropFolder $folder)
 {
     $isXml = false;
     $fileNamePatterns = trim($folder->getFileNamePatterns(), ' *');
     if ($fileNamePatterns) {
         $isXml = stristr($fileName, $fileNamePatterns);
     } else {
         $isXml = true;
     }
     return $isXml;
 }