private function transform(KalturaBatchJob $job, KalturaTransformMetadataJobData $data)
 {
     $pager = new KalturaFilterPager();
     $pager->maxPageSize = 40;
     if ($this->taskConfig->params && $this->taskConfig->params->maxObjectsEachRun) {
         $pager->maxPageSize = $this->taskConfig->params->maxObjectsEachRun;
     }
     $transformList = $this->kClient->metadataBatch->getTransformMetadataObjects($data->metadataProfileId, $data->srcVersion, $data->destVersion, $pager);
     if (!$transformList->totalCount) {
         if (!$transformList->lowerVersionCount) {
             $this->closeJob($job, null, null, 'All metadata transformed', KalturaBatchJobStatus::FINISHED);
             return $job;
         }
         $this->closeJob($job, null, null, "Waiting for metadata objects [{$transformList->lowerVersionCount}] of lower versions", KalturaBatchJobStatus::RETRY);
         return $job;
     }
     if ($transformList->lowerVersionCount || $transformList->totalCount) {
         $this->kClient->batch->resetJobExecutionAttempts($job->id, $this->getExclusiveLockKey(), $job->jobType);
     }
     foreach ($transformList->objects as $object) {
         $xml = kXsd::transformXmlData($object->xml, $data->destXsdPath, $data->srcXslPath);
         if ($xml) {
             $this->kClient->metadata->update($object->id, $xml);
         } else {
             $this->kClient->metadata->invalidate($object->id);
         }
     }
     $this->closeJob($job, null, null, "Metadata objects [" . count($transformList->objects) . "] transformed", KalturaBatchJobStatus::RETRY);
     return $job;
 }
 private function upgrade(KalturaBatchJob $job, KalturaTransformMetadataJobData $data)
 {
     KalturaLog::debug("transform({$job->id})");
     if ($this->taskConfig->params->multiRequestSize) {
         $this->multiRequestSize = $this->taskConfig->params->multiRequestSize;
     }
     $pager = new KalturaFilterPager();
     $pager->maxPageSize = 40;
     if ($this->taskConfig->params && $this->taskConfig->params->maxObjectsEachRun) {
         $pager->maxPageSize = $this->taskConfig->params->maxObjectsEachRun;
     }
     $transformList = $this->kClient->metadataBatch->getTransformMetadataObjects($data->metadataProfileId, $data->srcVersion, $data->destVersion, $pager);
     if (!$transformList->totalCount) {
         if (!$transformList->lowerVersionCount) {
             $this->closeJob($job, null, null, 'All metadata transformed', KalturaBatchJobStatus::FINISHED);
             return $job;
         }
         $this->closeJob($job, null, null, "Waiting for metadata objects [{$transformList->lowerVersionCount}] of lower versions", KalturaBatchJobStatus::RETRY);
         return $job;
     }
     if ($transformList->lowerVersionCount || $transformList->totalCount) {
         $this->kClient->batch->resetJobExecutionAttempts($job->id, $this->getExclusiveLockKey(), $job->jobType);
     }
     $this->kClient->startMultiRequest();
     $transformObjectIds = array();
     foreach ($transformList->objects as $object) {
         /* @var $object KalturaMetadata */
         $xml = kXsd::transformXmlData($object->xml, $data->destXsdPath, $data->srcXslPath);
         if ($xml) {
             $this->kClient->metadata->update($object->id, $xml, $object->version);
         } else {
             $this->kClient->metadata->invalidate($object->id, $object->version);
         }
         $transformObjectIds[] = $object->id;
         if ($this->kClient->getMultiRequestQueueSize() >= $this->multiRequestSize) {
             $results = $this->kClient->doMultiRequest();
             $this->invalidateFailedMetadatas($results, $transformObjectIds);
             $transformObjectIds = array();
             $this->kClient->startMultiRequest();
         }
     }
     $results = $this->kClient->doMultiRequest();
     $this->invalidateFailedMetadatas($results, $transformObjectIds);
     $this->closeJob($job, null, null, "Metadata objects [" . count($transformList->objects) . "] transformed", KalturaBatchJobStatus::RETRY);
     return $job;
 }