Merge branch 'cc-5709-airtime-analyzer' into cc-5709-airtime-analyzer-saas

This commit is contained in:
Albert Santoni 2014-04-23 14:58:36 -04:00
commit 2f8461b2a6
8 changed files with 62 additions and 53 deletions

View file

@ -34,55 +34,53 @@ class PluploadController extends Zend_Controller_Action
public function recentUploadsAction() public function recentUploadsAction()
{ {
if (isset($_GET['uploadFilter'])) { $request = $this->getRequest();
$filter = $_GET['uploadFilter'];
} else { $filter = $request->getParam('uploadFilter', "all");
$filter = "all"; $limit = intval($request->getParam('iDisplayLength', 10));
} $rowStart = intval($request->getParam('iDisplayStart', 0));
$limit = isset($_GET['iDisplayLength']) ? $_GET['iDisplayLength'] : 10; $recentUploadsQuery = CcFilesQuery::create();
$rowStart = isset($_GET['iDisplayStart']) ? $_GET['iDisplayStart'] : 0; //old propel 1.5 to reuse this query item (for counts/finds)
$recentUploadsQuery->keepQuery(true);
$recentUploadsQuery = CcFilesQuery::create()->filterByDbUtime(array('min' => time() - 30 * 24 * 60 * 60)) $numTotalRecentUploads = $recentUploadsQuery->count();
->orderByDbUtime(Criteria::DESC); $numTotalDisplayUploads = $numTotalRecentUploads;
$numTotalRecentUploads = $recentUploadsQuery->find()->count();
if ($filter == "pending") { if ($filter == "pending") {
$recentUploadsQuery->filterByDbImportStatus("1"); $recentUploadsQuery->filterByDbImportStatus(1);
$numTotalDisplayUploads = $recentUploadsQuery->count();
} else if ($filter == "failed") { } else if ($filter == "failed") {
$recentUploadsQuery->filterByDbImportStatus(array('min' => 100)); $recentUploadsQuery->filterByDbImportStatus(2);
$numTotalDisplayUploads = $recentUploadsQuery->count();
//TODO: Consider using array('min' => 200)) or something if we have multiple errors codes for failure.
} }
$recentUploads = $recentUploadsQuery->offset($rowStart)->limit($limit)->find(); $recentUploads = $recentUploadsQuery
->orderByDbUtime(Criteria::DESC)
$numRecentUploads = $limit; ->offset($rowStart)
//CcFilesQuery::create()->filterByDbUtime(array('min' => time() - 30 * 24 * 60 * 60)) ->limit($limit)
->find();
//$this->_helper->json->sendJson(array("jsonrpc" => "2.0", "tempfilepath" => $tempFileName));
$uploadsArray = array(); $uploadsArray = array();
$utcTimezone = new DateTimeZone("UTC");
$displayTimezone = new DateTimeZone(Application_Model_Preference::GetUserTimezone());
foreach ($recentUploads as $upload) foreach ($recentUploads as $upload)
{ {
$upload = $upload->toArray(BasePeer::TYPE_FIELDNAME); $upload = $upload->toArray(BasePeer::TYPE_FIELDNAME);
//TODO: $this->sanitizeResponse($upload)); //TODO: $this->sanitizeResponse($upload));
$utcTimezone = new DateTimeZone("UTC");
$displayTimezone = new DateTimeZone(Application_Model_Preference::GetUserTimezone());
$upload['utime'] = new DateTime($upload['utime'], $utcTimezone); $upload['utime'] = new DateTime($upload['utime'], $utcTimezone);
$upload['utime']->setTimeZone($displayTimezone); $upload['utime']->setTimeZone($displayTimezone);
$upload['utime'] = $upload['utime']->format('Y-m-d H:i:s'); $upload['utime'] = $upload['utime']->format('Y-m-d H:i:s');
//$this->_helper->json->sendJson($upload->asJson());
//TODO: Invoke sanitization here //TODO: Invoke sanitization here
array_push($uploadsArray, $upload); array_push($uploadsArray, $upload);
} }
$this->view->sEcho = intval($request->getParam('sEcho'));
$this->view->sEcho = intval($this->getRequest()->getParam('sEcho')); $this->view->iTotalDisplayRecords = $numTotalDisplayUploads;
$this->view->iTotalDisplayRecords = $numTotalRecentUploads; $this->view->iTotalRecords = $numTotalRecentUploads;
//$this->view->iTotalDisplayRecords = $numRecentUploads; //$r["iTotalDisplayRecords"]; $this->view->files = $uploadsArray;
$this->view->iTotalRecords = $numTotalRecentUploads; //$r["iTotalRecords"];
$this->view->files = $uploadsArray; //$r["aaData"];
} }
} }

View file

@ -38,6 +38,7 @@ rabbitmq_install () {
rabbitmqctl add_vhost $RABBITMQ_VHOST rabbitmqctl add_vhost $RABBITMQ_VHOST
rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD
rabbitmqctl set_permissions -p $RABBITMQ_VHOST $RABBITMQ_USER "$EXCHANGES" "$EXCHANGES" "$EXCHANGES" rabbitmqctl set_permissions -p $RABBITMQ_VHOST $RABBITMQ_USER "$EXCHANGES" "$EXCHANGES" "$EXCHANGES"
rabbitmqctl set_permissions -p $RABBITMQ_VHOST $RABBITMQ_USER .\* .\* .\*
export RABBITMQ_USER export RABBITMQ_USER
export RABBITMQ_PASSWORD export RABBITMQ_PASSWORD
@ -49,6 +50,7 @@ preserve="f"
nodb="f" nodb="f"
reinstall="f" reinstall="f"
mediamonitor="f" mediamonitor="f"
airtime_analyzer="f"
pypo="f" pypo="f"
showrecorder="f" showrecorder="f"
web="f" web="f"
@ -64,6 +66,7 @@ do
(-n|--no-db) nodb="t";; (-n|--no-db) nodb="t";;
(-r|--reinstall) reinstall="t";; (-r|--reinstall) reinstall="t";;
(-m|--media-monitor) mediamonitor="t";; (-m|--media-monitor) mediamonitor="t";;
(-a|--airtime-analyzer) airtime_analyzer="t";;
(-y|--pypo) pypo="t";; (-y|--pypo) pypo="t";;
(-w|--web) web="t";; (-w|--web) web="t";;
(-d|--disable-deb-check) disable_deb_check="t";; (-d|--disable-deb-check) disable_deb_check="t";;
@ -75,11 +78,12 @@ do
shift shift
done done
if [ "$mediamonitor" = "f" -a "$pypo" = "f" -a "$web" = "f" ]; then if [ "$mediamonitor" = "f" -a "$pypo" = "f" -a "$web" = "f" -a "$airtime_analyzer" = "f" ]; then
#none of these install parameters were specified, so by default we install all of them #none of these install parameters were specified, so by default we install all of them
mediamonitor="t" mediamonitor="f" # FIXME: Remove media_monitor! -- Albert
pypo="t" pypo="t"
showrecorder="t" showrecorder="t"
airtime_analyzer="t"
web="t" web="t"
fi fi
@ -181,6 +185,7 @@ fi
#export these variables to make them available in sub bash scripts #export these variables to make them available in sub bash scripts
export DO_UPGRADE export DO_UPGRADE
export mediamonitor export mediamonitor
export airtime_analyzer
export pypo export pypo
export showrecorder export showrecorder
export web export web
@ -236,6 +241,9 @@ if [ "$mediamonitor" = "t" -o "$pypo" = "t" ]; then
deactivate deactivate
fi fi
# Restart airtime_analyzer (or start it)
service airtime_analyzer restart
#An attempt to force apache to realize that files are updated on upgrade... #An attempt to force apache to realize that files are updated on upgrade...
touch /usr/share/airtime/public/index.php touch /usr/share/airtime/public/index.php

View file

@ -64,8 +64,10 @@ echo "* Creating /usr/lib/airtime"
if [ "$python_service" -eq "0" ]; then if [ "$python_service" -eq "0" ]; then
python $AIRTIMEROOT/python_apps/api_clients/install/api_client_install.py python $AIRTIMEROOT/python_apps/api_clients/install/api_client_install.py
if [ "$mediamonitor" = "t" ]; then if [ "$airtime_analyzer" = "t" ]; then
python $AIRTIMEROOT/python_apps/media-monitor/install/media-monitor-copy-files.py pushd $AIRTIMEROOT/python_apps/airtime_analyzer/
python setup.py install
popd
fi fi
if [ "$pypo" = "t" ]; then if [ "$pypo" = "t" ]; then
python $AIRTIMEROOT/python_apps/pypo/install/pypo-copy-files.py python $AIRTIMEROOT/python_apps/pypo/install/pypo-copy-files.py

View file

@ -42,7 +42,9 @@ fi
chmod 600 /etc/monit/conf.d/monit-airtime-generic.cfg chmod 600 /etc/monit/conf.d/monit-airtime-generic.cfg
chmod 600 /etc/monit/conf.d/monit-airtime-liquidsoap.cfg chmod 600 /etc/monit/conf.d/monit-airtime-liquidsoap.cfg
chmod 600 /etc/monit/conf.d/monit-airtime-media-monitor.cfg if [ "$mediamonitor" = "t" ]; then
chmod 600 /etc/monit/conf.d/monit-airtime-media-monitor.cfg
fi
chmod 600 /etc/monit/conf.d/monit-airtime-playout.cfg chmod 600 /etc/monit/conf.d/monit-airtime-playout.cfg
chmod 600 /etc/monit/conf.d/monit-airtime-liquidsoap.cfg chmod 600 /etc/monit/conf.d/monit-airtime-liquidsoap.cfg

View file

@ -65,6 +65,9 @@ if ($return_code == 0) {
exit(1); exit(1);
} }
// Stop media-monitor
service media-monitor stop-with-monit
//convert strings like 1.9.0-devel to 1.9.0 //convert strings like 1.9.0-devel to 1.9.0
$version = substr($version, 0, 5); $version = substr($version, 0, 5);

View file

@ -1,7 +1,6 @@
import time import time
import datetime import datetime
import mutagen import mutagen
import magic # For MIME type detection
from analyzer import Analyzer from analyzer import Analyzer
class MetadataAnalyzer(Analyzer): class MetadataAnalyzer(Analyzer):
@ -45,12 +44,9 @@ class MetadataAnalyzer(Analyzer):
# Other fields for Airtime # Other fields for Airtime
metadata["cueout"] = metadata["length"] metadata["cueout"] = metadata["length"]
#Use the python-magic module to get the MIME type. #Use the mutagen to get the MIME type.
if audio_file.mime: if audio_file.mime:
metadata["mime"] = audio_file.mime[0] metadata["mime"] = audio_file.mime[0]
else:
mime_magic = magic.Magic(mime=True)
metadata["mime"] = mime_magic.from_file(filename)
#Try to get the number of channels if mutagen can... #Try to get the number of channels if mutagen can...
try: try:

View file

@ -22,7 +22,6 @@ setup(name='airtime_analyzer',
scripts=['bin/airtime_analyzer'], scripts=['bin/airtime_analyzer'],
install_requires=[ install_requires=[
'mutagen', 'mutagen',
'python-magic',
'pika', 'pika',
'nose', 'nose',
'coverage', 'coverage',

View file

@ -195,19 +195,20 @@ class AirtimeCheck {
$log = "/var/log/airtime/pypo-liquidsoap/ls_script.log"; $log = "/var/log/airtime/pypo-liquidsoap/ls_script.log";
self::show_log_file($log); self::show_log_file($log);
} }
if (isset($services->media_monitor) && $services->media_monitor->process_id != "FAILED") {
self::output_status("MEDIA_MONITOR_PROCESS_ID", $data->services->media_monitor->process_id); #if (isset($services->media_monitor) && $services->media_monitor->process_id != "FAILED") {
self::output_status("MEDIA_MONITOR_RUNNING_SECONDS", $data->services->media_monitor->uptime_seconds); # self::output_status("MEDIA_MONITOR_PROCESS_ID", $data->services->media_monitor->process_id);
self::output_status("MEDIA_MONITOR_MEM_PERC", $data->services->media_monitor->memory_perc); # self::output_status("MEDIA_MONITOR_RUNNING_SECONDS", $data->services->media_monitor->uptime_seconds);
self::output_status("MEDIA_MONITOR_CPU_PERC", $data->services->media_monitor->cpu_perc); # self::output_status("MEDIA_MONITOR_MEM_PERC", $data->services->media_monitor->memory_perc);
} else { # self::output_status("MEDIA_MONITOR_CPU_PERC", $data->services->media_monitor->cpu_perc);
self::output_status("MEDIA_MONITOR_PROCESS_ID", "FAILED"); #} else {
self::output_status("MEDIA_MONITOR_RUNNING_SECONDS", "0"); # self::output_status("MEDIA_MONITOR_PROCESS_ID", "FAILED");
self::output_status("MEDIA_MONITOR_MEM_PERC", "0%"); # self::output_status("MEDIA_MONITOR_RUNNING_SECONDS", "0");
self::output_status("MEDIA_MONITOR_CPU_PERC", "0%"); # self::output_status("MEDIA_MONITOR_MEM_PERC", "0%");
$log = "/var/log/airtime/media-monitor/media-monitor.log"; # self::output_status("MEDIA_MONITOR_CPU_PERC", "0%");
self::show_log_file($log); # $log = "/var/log/airtime/media-monitor/media-monitor.log";
} # self::show_log_file($log);
#}
} }
if (self::$AIRTIME_STATUS_OK){ if (self::$AIRTIME_STATUS_OK){