echo "Session started\n"; /** * Creates CSV file */ $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array('*title' => 'bulk-sanity-test1', 'description' => 'bulk-sanity-test1', 'tags' => 'sanity,test1', 'url' => $clientConfig->serviceUrl . 'content/templates/entry/data/kaltura_logo_animated_black.flv', 'contentType' => 'video', 'category' => 'sanity>test'), array('*title' => 'bulk-sanity-test2', 'description' => 'bulk-sanity-test2', 'tags' => 'sanity,test2', 'url' => $clientConfig->serviceUrl . 'content/templates/entry/data/kaltura_logo_animated_blue.flv', 'contentType' => 'video', 'category' => 'sanity>test')); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $bulkUpload = $client->media->bulkUploadAdd($csvPath); /* @var $bulkUpload KalturaBulkUpload */ echo "Bulk upload added [{$bulkUpload->id}]\n"; $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); while ($bulkUpload) { if ($bulkUpload->status == KalturaBatchJobStatus::FINISHED || $bulkUpload->status == KalturaBatchJobStatus::FINISHED_PARTIALLY) { break; } if ($bulkUpload->status == KalturaBatchJobStatus::FAILED) { echo "Bulk upload [{$bulkUpload->id}] failed\n"; exit(-1); } if ($bulkUpload->status == KalturaBatchJobStatus::ABORTED) { echo "Bulk upload [{$bulkUpload->id}] aborted\n"; exit(-1); } if ($bulkUpload->status == KalturaBatchJobStatus::FATAL) { echo "Bulk upload [{$bulkUpload->id}] failed fataly\n"; exit(-1);
function getBulkMonitorResult($client, $config) { $monitorResult = new KalturaMonitorResult(); $apiCall = null; try { $apiCall = 'session.start'; $start = microtime(true); $ks = $client->session->start($config['monitor-partner']['secret'], 'monitor-user', KalturaSessionType::USER, $config['monitor-partner']['id']); $client->setKs($ks); $data = @file_get_contents(__DIR__ . self::BULK_XML_FILE_ADD); $entry1_ref_id = uniqid('monitor_bulk_xml1'); $entry2_ref_id = uniqid('monitor_bulk_xml2'); $entries_data = array('ENTRY1_URL' => $client->getConfig()->serviceUrl . '/content/templates/entry/data/kaltura_logo_animated_green.flv', 'ENTRY1_REF_ID' => $entry1_ref_id, 'ENTRY2_URL' => $client->getConfig()->serviceUrl . '/content/templates/entry/data/kaltura_logo_animated_red.flv', 'ENTRY2_REF_ID' => $entry2_ref_id); $xml = self::replaceTokensInString($data, $entries_data); $xmlPath = sys_get_temp_dir() . "/" . uniqid('bulk_upload') . '.xml'; file_put_contents($xmlPath, $xml); $this->bulkError = null; $this->monitorDescription = ''; $bulkStatus; $apiCall = 'media.bulkUploadAdd'; $jobData = new KalturaBulkUploadXmlJobData(); $bulkUpload = $client->media->bulkUploadAdd($xmlPath, $jobData); $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Add", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = "Add: " . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription = $error->description; } else { // create update users csv $data = @file_get_contents(__DIR__ . self::BULK_XML_FILE_UPDATE); $entries_data = array('ACTION' => 'update', 'ENTRY1_REF_ID' => $entry1_ref_id, 'ENTRY1_DESC' => 'update monitor bulk upload xml 1', 'ENTRY2_REF_ID' => $entry2_ref_id, 'ENTRY2_DESC' => 'update monitor bulk upload xml 2'); $xml = self::replaceTokensInString($data, $entries_data); $xmlPath = sys_get_temp_dir() . "/" . uniqid('bulk_upload') . '.xml'; file_put_contents($xmlPath, $xml); $this->bulkError = null; $apiCall = 'media.bulkUploadAdd'; $jobData = new KalturaBulkUploadXmlJobData(); $bulkUpload = $client->media->bulkUploadAdd($xmlPath, $jobData); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Update", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = 'Update: ' . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription .= $error->description; } else { // create delete entries xml $data = @file_get_contents(__DIR__ . self::BULK_XML_FILE_UPDATE); $entries_data = array('ACTION' => 'delete', 'ENTRY1_REF_ID' => $entry1_ref_id, 'ENTRY1_DESC' => 'update monitor bulk upload xml 1', 'ENTRY2_REF_ID' => $entry2_ref_id, 'ENTRY2_DESC' => 'update monitor bulk upload xml 2'); $xml = self::replaceTokensInString($data, $entries_data); $xmlPath = sys_get_temp_dir() . "/" . uniqid('bulk_upload') . '.xml'; file_put_contents($xmlPath, $xml); $this->bulkError = null; $apiCall = 'media.bulkUploadAdd'; $jobData = new KalturaBulkUploadXmlJobData(); $bulkUpload = $client->media->bulkUploadAdd($xmlPath, $jobData); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Delete", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = 'Delete: ' . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription .= $error->description; } } } $monitorResult->executionTime = microtime(true) - $start; $monitorResult->value = $bulkStatus; $monitorResult->description = $this->monitorDescription; } catch (KalturaException $e) { $end = microtime(true); $monitorResult->executionTime = $end - $start; $error = new KalturaMonitorError(); $error->code = $e->getCode(); $error->description = $e->getMessage(); $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $monitorResult->description = "Exception: " . get_class($e) . ", API: {$apiCall}, Code: " . $e->getCode() . ", Message: " . $e->getMessage(); } catch (KalturaClientException $ce) { $end = microtime(true); $monitorResult->executionTime = $end - $start; $error = new KalturaMonitorError(); $error->code = $ce->getCode(); $error->description = $ce->getMessage(); $error->level = KalturaMonitorError::CRIT; $monitorResult->errors[] = $error; $monitorResult->description = "Exception: " . get_class($ce) . ", API: {$apiCall}, Code: " . $ce->getCode() . ", Message: " . $ce->getMessage(); } return $monitorResult; }
function getBulkMonitorResult($client, $config) { $monitorResult = new KalturaMonitorResult(); $apiCall = null; try { $apiCall = 'session.start'; $start = microtime(true); $ks = $client->session->start($config['monitor-partner']['secret'], 'monitor-user', KalturaSessionType::USER, $config['monitor-partner']['id']); $client->setKs($ks); $rootCatRefId = uniqid('monitor_root_cat'); $subCatRefId = uniqid('monitor_sub_cat'); // create add categories csv $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array("*action" => KalturaBulkUploadAction::ADD, "name" => uniqid("monitor_root_cat_csv"), "relativePath" => "", "description" => "monitor root category csv", "tags" => "monitor,root_cat", "referenceId" => $rootCatRefId), array("*action" => KalturaBulkUploadAction::ADD, "name" => uniqid("monitor_sub_cat_csv"), "relativePath" => "monitor_root_cat_csv", "description" => "monitor sub category csv", "tags" => "monitor,sub_cat", "referenceId" => $subCatRefId)); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $this->bulkError = null; $this->monitorDescription = ''; $bulkStatus; $apiCall = 'category.addFromBulkUpload'; $bulkUpload = $client->category->addFromBulkUpload($csvPath); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Add", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = "Add: " . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $monitorDescription = $error->description; } else { // create update categories csv $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array("*action" => KalturaBulkUploadAction::UPDATE, "referenceId" => $rootCatRefId, "description" => "update monitor root category csv"), array("*action" => KalturaBulkUploadAction::UPDATE, "referenceId" => $subCatRefId, "description" => "update monitor sub category csv")); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $this->bulkError = null; $apiCall = 'cateogry.addFromBulkUpload'; $bulkUpload = $client->category->addFromBulkUpload($csvPath); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Update", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = 'Update: ' . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription .= $error->description; } else { // create delete categories csv $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array("*action" => KalturaBulkUploadAction::DELETE, "referenceId" => $rootCatRefId), array("*action" => KalturaBulkUploadAction::DELETE, "referenceId" => $subCatRefId)); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $this->bulkError = null; $apiCall = 'category.addFromBulkUpload'; $bulkUpload = $client->category->addFromBulkUpload($csvPath); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Delete", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = 'Delete: ' . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription .= $error->description; } } } $monitorResult->executionTime = microtime(true) - $start; $monitorResult->value = $bulkStatus; $monitorResult->description = $this->monitorDescription; } catch (KalturaException $e) { $end = microtime(true); $monitorResult->executionTime = $end - $start; $error = new KalturaMonitorError(); $error->code = $e->getCode(); $error->description = $e->getMessage(); $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $monitorResult->description = "Exception: " . get_class($e) . ", API: {$apiCall}, Code: " . $e->getCode() . ", Message: " . $e->getMessage(); } catch (KalturaClientException $ce) { $end = microtime(true); $monitorResult->executionTime = $end - $start; $error = new KalturaMonitorError(); $error->code = $ce->getCode(); $error->description = $ce->getMessage(); $error->level = KalturaMonitorError::CRIT; $monitorResult->errors[] = $error; $monitorResult->description = "Exception: " . get_class($ce) . ", API: {$apiCall}, Code: " . $ce->getCode() . ", Message: " . $ce->getMessage(); } return $monitorResult; }
function getBulkMonitorResult($client, $config) { $monitorResult = new KalturaMonitorResult(); $apiCall = null; try { $apiCall = 'session.start'; $start = microtime(true); $ks = $client->session->start($config['monitor-partner']['secret'], 'monitor-user', KalturaSessionType::USER, $config['monitor-partner']['id']); $client->setKs($ks); $userId_1 = uniqid('monitor-user1'); $userId_2 = uniqid('monitor-user2'); // create add users csv $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array("*action" => KalturaBulkUploadAction::ADD, "userId" => $userId_1, "screenName" => "monitor-user1", "firstName" => "monitor", "lastName" => "user1", "email" => "*****@*****.**", "tags" => "monitor,user1"), array("*action" => KalturaBulkUploadAction::ADD, "userId" => $userId_2, "screenName" => "monitor-user2", "firstName" => "monitor", "lastName" => "user2", "email" => "*****@*****.**", "tags" => "monitor,user2")); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $this->bulkError = null; $this->monitorDescription = ''; $bulkStatus; $apiCall = 'user.addFromBulkUpload'; $bulkUpload = $client->user->addFromBulkUpload($csvPath); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Add", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = "Add: " . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription = $error->description; } else { // create update users csv $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array("*action" => KalturaBulkUploadAction::UPDATE, "userId" => $userId_1, "screenName" => "monitor-user1-update"), array("*action" => KalturaBulkUploadAction::UPDATE, "userId" => $userId_2, "screenName" => "monitor-user2-update")); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $this->bulkError = null; $apiCall = 'user.addFromBulkUpload'; $bulkUpload = $client->user->addFromBulkUpload($csvPath); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Update", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = 'Update: ' . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription .= $error->description; } else { // create delete users csv $csvPath = tempnam(sys_get_temp_dir(), 'csv'); $csvData = array(array("*action" => KalturaBulkUploadAction::DELETE, "userId" => $userId_1), array("*action" => KalturaBulkUploadAction::DELETE, "userId" => $userId_2)); $f = fopen($csvPath, 'w'); fputcsv($f, array_keys(reset($csvData))); foreach ($csvData as $csvLine) { fputcsv($f, $csvLine); } fclose($f); $this->bulkError = null; $apiCall = 'user.addFromBulkUpload'; $bulkUpload = $client->user->addFromBulkUpload($csvPath); /* @var $bulkUpload KalturaBulkUpload */ $bulkUploadPlugin = KalturaBulkUploadClientPlugin::get($client); $bulkStatus = self::getBulkJobStatus("Delete", $bulkUpload, $bulkUploadPlugin); if ($this->bulkError) { $bulkStatus = self::JOB_STATUS_CODE_ERROR; $error = new KalturaMonitorError(); $error->description = 'Delete: ' . $this->bulkError; $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $this->monitorDescription .= $error->description; } } } $monitorResult->executionTime = microtime(true) - $start; $monitorResult->value = $bulkStatus; $monitorResult->description = $this->monitorDescription; } catch (KalturaException $e) { $end = microtime(true); $monitorResult->executionTime = $end - $start; $error = new KalturaMonitorError(); $error->code = $e->getCode(); $error->description = $e->getMessage(); $error->level = KalturaMonitorError::ERR; $monitorResult->errors[] = $error; $monitorResult->description = "Exception: " . get_class($e) . ", API: {$apiCall}, Code: " . $e->getCode() . ", Message: " . $e->getMessage(); } catch (KalturaClientException $ce) { $end = microtime(true); $monitorResult->executionTime = $end - $start; $error = new KalturaMonitorError(); $error->code = $ce->getCode(); $error->description = $ce->getMessage(); $error->level = KalturaMonitorError::CRIT; $monitorResult->errors[] = $error; $monitorResult->description = "Exception: " . get_class($ce) . ", API: {$apiCall}, Code: " . $ce->getCode() . ", Message: " . $ce->getMessage(); } return $monitorResult; }