Ejemplo n.º 1
0
 /**
  * report getTotal action allows to get a graph data for a specific report. 
  * 
  * @action getTotal
  * @param KalturaReportType $reportType  
  * @param KalturaReportInputFilter $reportInputFilter
  * @param string $objectIds - one ID or more (separated by ',') of specific objects to query
  * @return KalturaReportTotal 
  */
 function getTotalAction($reportType, KalturaReportInputFilter $reportInputFilter, $objectIds = null)
 {
     $reportTotal = new KalturaReportTotal();
     list($header, $data) = myReportsMgr::getTotal($this->getPartnerId(), $reportType, $reportInputFilter->toReportsInputFilter(), $objectIds);
     $reportTotal->fromReportTotal($header, $data);
     return $reportTotal;
 }
 /**
  * report getTotal action allows to get a graph data for a specific report. 
  * 
  * @action getTotal
  * @param KalturaReportType $reportType  
  * @param KalturaReportInputFilter $reportInputFilter
  * @param string $objectIds - one ID or more (separated by ',') of specific objects to query
  * @return KalturaReportTotal 
  */
 public function getTotalAction($reportType, KalturaReportInputFilter $reportInputFilter, $objectIds = null)
 {
     if ($reportType == KalturaReportType::PARTNER_USAGE || $reportType == KalturaReportType::VAR_USAGE) {
         $objectIds = $this->validateObjectsAreAllowedPartners($objectIds);
     }
     $reportTotal = new KalturaReportTotal();
     list($header, $data) = myReportsMgr::getTotal($this->getPartnerId(), $reportType, $reportInputFilter->toReportsInputFilter(), $objectIds);
     $reportTotal->fromReportTotal($header, $data);
     return $reportTotal;
 }
Ejemplo n.º 3
0
 private static function collectPartnerMonthlyStatisticsFromDWH($partner, $report_date)
 {
     $totalTranscoding = 0;
     $totalBandwith = 0;
     $totalStorage = 0;
     $fromDate = dateUtils::firstDayOfMonth($report_date);
     $reportFilter = new reportsInputFilter();
     $reportFilter->from_day = str_replace('-', '', $fromDate);
     $reportFilter->to_day = str_replace('-', '', $report_date);
     list($header, $data) = myReportsMgr::getTotal($partner->getId(), myReportsMgr::REPORT_TYPE_PARTNER_USAGE, $reportFilter, $partner->getId());
     $bandwidth_consumption = array_search('bandwidth_consumption', $header);
     $deleted_storage = array_search('deleted_storage', $header);
     $added_storage = array_search('added_storage', $header);
     $transcoding_consumption = array_search('transcoding_consumption', $header);
     $totalBandwith = $data[$bandwidth_consumption] * 1024;
     //KB
     $totalTranscoding = $data[$transcoding_consumption] * 1024;
     //KB
     $totalStorage = $data[$added_storage] * 1024 - $data[$deleted_storage] * 1024;
     //KB
     return array($totalStorage, $totalBandwith, $totalTranscoding);
 }
Ejemplo n.º 4
0
 /**
  * Function which calulates partner usage of a group of a VAR's sub-publishers
  * 
  * @action getPartnerUsage
  * @param KalturaPartnerFilter $partnerFilter
  * @param KalturaReportInputFilter $usageFilter
  * @param KalturaFilterPager $pager
  * @return KalturaPartnerUsageListResponse
  * @throws KalturaVarConsoleErrors::MAX_SUB_PUBLISHERS_EXCEEDED
  */
 public function getPartnerUsageAction(KalturaPartnerFilter $partnerFilter = null, KalturaReportInputFilter $usageFilter = null, KalturaFilterPager $pager = null)
 {
     if (is_null($partnerFilter)) {
         $partnerFilter = new KalturaPartnerFilter();
     }
     if (is_null($usageFilter)) {
         $usageFilter = new KalturaReportInputFilter();
         $usageFilter->fromDate = time() - 60 * 60 * 24 * 30;
         // last 30 days
         $usageFilter->toDate = time();
     } else {
         //The first time the filter is sent, it it sent with 0 as fromDate
         if (!$usageFilter->fromDate) {
             $usageFilter->fromDate = time() - 60 * 60 * 24 * 30;
         }
         if (!$usageFilter->interval) {
             $usageFilter->interval = KalturaReportInterval::MONTHS;
         }
     }
     if (is_null($pager)) {
         $pager = new KalturaFilterPager();
     }
     //Create a propel filter for the partner
     $partnerFilterDb = new partnerFilter();
     $partnerFilter->toObject($partnerFilterDb);
     //add filter to criteria
     $c = PartnerPeer::getDefaultCriteria();
     $partnerFilterDb->attachToCriteria($c);
     $partnersCount = PartnerPeer::doCount($c);
     if ($partnersCount > self::MAX_SUB_PUBLISHERS) {
         throw new KalturaAPIException(KalturaVarConsoleErrors::MAX_SUB_PUBLISHERS_EXCEEDED);
     }
     $partners = PartnerPeer::doSelect($c);
     $partnerIds = array();
     foreach ($partners as &$partner) {
         $partnerIds[] = $partner->getId();
     }
     // add pager to criteria
     $pager->attachToCriteria($c);
     $c->addAscendingOrderByColumn(PartnerPeer::ID);
     // select partners
     $items = array();
     $inputFilter = new reportsInputFilter();
     $inputFilter->from_date = $usageFilter->fromDate;
     $inputFilter->to_date = $usageFilter->toDate;
     $inputFilter->from_day = date("Ymd", $usageFilter->fromDate);
     $inputFilter->to_day = date("Ymd", $usageFilter->toDate);
     $inputFilter->timeZoneOffset = $usageFilter->timeZoneOffset;
     $inputFilter->interval = $usageFilter->interval;
     if (!count($partnerIds)) {
         $total = new KalturaVarPartnerUsageTotalItem();
         // no partners fit the filter - don't fetch data
         $totalCount = 0;
         // the items are set to an empty KalturaSystemPartnerUsageArray
     } else {
         $totalCount = 0;
         $orderBy = ($inputFilter->interval == reportInterval::MONTHS ? "+month_id" : "+date_id") . ",+partner_id";
         list($reportHeader, $reportData, $totalCount) = myReportsMgr::getTable(null, myReportsMgr::REPORT_TYPE_VAR_USAGE, $inputFilter, $pager->pageSize, $pager->pageIndex, $orderBy, implode(",", $partnerIds));
         foreach ($reportData as $line) {
             $item = new KalturaVarPartnerUsageItem();
             $item->fromString($reportHeader, $line);
             if ($item) {
                 $items[] = $item;
             }
         }
         list($reportHeader, $reportData) = myReportsMgr::getTotal(null, myReportsMgr::REPORT_TYPE_PARTNER_USAGE, $inputFilter, implode(",", $partnerIds));
         $total = new KalturaVarPartnerUsageTotalItem();
         $total->fromString($reportHeader, $reportData);
         list($peakStoragereportHeader, $peakStoragereportData) = myReportsMgr::getTotal(null, myReportsMgr::REPORT_TYPE_PEAK_STORAGE, $inputFilter, implode(",", $partnerIds));
         if ($peakStoragereportData[0]) {
             $total->peakStorage = ceil(@$peakStoragereportData[0]);
         }
     }
     $response = new KalturaPartnerUsageListResponse();
     //Sort according to dateId and partnerId
     uasort($items, array($this, 'sortByDate'));
     $response->total = $total;
     $response->totalCount = $totalCount;
     $response->objects = $items;
     return $response;
 }