From a197a27d75c722fc207bdd13a29236f8f599f118 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 22 Sep 2011 16:22:47 -0400 Subject: [PATCH 1/6] -ensure liquidsoap from 1.8.2 is dead -start monit --- install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php b/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php index ebcb9358a..73931c253 100644 --- a/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php +++ b/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php @@ -763,6 +763,7 @@ exec("svc -dx /etc/service/pypo-liquidsoap/log"); exec("svc -dx /etc/service/recorder"); exec("svc -dx /etc/service/recorder/log"); exec("killall supervise"); +exec("killall liquidsoap"); $pathnames = array("/usr/bin/airtime-pypo-start", "/usr/bin/airtime-pypo-stop", @@ -819,6 +820,7 @@ AirtimeInstall::SetUniqueId(); AirtimeInstall::SetImportTimestamp(); AirtimeIni::CreateMonitFile(); +exec("/etc/init.d/monit start"); AirtimeInstall::CreateSymlinksToUtils(); From 7bb9e92ac9e32090bc57b58323079505ae6be3d9 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 22 Sep 2011 17:30:05 -0400 Subject: [PATCH 2/6] cc-2864: upgrade from 1.7 broken -fixed --- airtime_mvc/application/models/StoredFile.php | 2 +- install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 08563f98e..c66b66e97 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -730,7 +730,7 @@ class StoredFile { $chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0; $chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0; $fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : ''; - Logging::log(__FILE__.':uploadFile(): filename='.$fileName); + Logging::log(__FILE__.":uploadFile(): filename=$fileName to $p_targetDir"); // Clean the fileName for security reasons //this needs fixing for songs not in ascii. //$fileName = preg_replace('/[^\w\._]+/', '', $fileName); diff --git a/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php b/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php index 73931c253..38a7e8688 100644 --- a/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php +++ b/install_minimal/upgrades/airtime-1.9.0/airtime-upgrade.php @@ -677,7 +677,10 @@ class Airtime190Upgrade{ ->findOne(); /* Handle Database Changes. */ - $stor_dir = realpath($values['general']['base_files_dir']."/stor")."/"; + + $pi = pathinfo($values['general']['base_files_dir']); + $stor_dir = $pi["dirname"].DIRECTORY_SEPARATOR.$pi["basename"].DIRECTORY_SEPARATOR."stor".DIRECTORY_SEPARATOR; + echo "* Inserting stor directory location $stor_dir into music_dirs table".PHP_EOL; $propel_stor_dir->setDirectory($stor_dir); $propel_stor_dir->save(); From cb2f4b5c7072905fe9137c6f50e24f50f13d9398 Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 26 Sep 2011 17:26:48 -0400 Subject: [PATCH 3/6] CC-2889: Virtualenv fails when installing through apt repo on Ubuntu Server 10.04 -added sync commands --- install_minimal/airtime-install | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/install_minimal/airtime-install b/install_minimal/airtime-install index cf900e625..b459a5397 100755 --- a/install_minimal/airtime-install +++ b/install_minimal/airtime-install @@ -7,6 +7,11 @@ if [ `whoami` != 'root' ]; then exit 1 fi +#Sync to force flushing all buffered writes to the disk. We need to do this because +#sometimes packages that have been installed by a script before this one are +#not yet available to call. +sync + set +e DEB=$(dpkg -s airtime 2> /dev/null | grep Status) set -e @@ -59,6 +64,9 @@ else echo -e "\n*** Existing Airtime Virtualenv Found ***" fi +#Another sync to flush buffered writes to disk. +sync + virtualenv_bin="/usr/lib/airtime/airtime_virtualenv/bin/" . ${virtualenv_bin}activate From 6672c712caf84cd0c5e04dd388bc01cd93c95ad4 Mon Sep 17 00:00:00 2001 From: martin Date: Tue, 27 Sep 2011 15:28:00 -0400 Subject: [PATCH 4/6] CC-2889: Virtualenv fails when installing through apt repo on Ubuntu Server 10.04 -removed sync commands --- install_minimal/airtime-install | 8 -------- 1 file changed, 8 deletions(-) diff --git a/install_minimal/airtime-install b/install_minimal/airtime-install index b459a5397..cf900e625 100755 --- a/install_minimal/airtime-install +++ b/install_minimal/airtime-install @@ -7,11 +7,6 @@ if [ `whoami` != 'root' ]; then exit 1 fi -#Sync to force flushing all buffered writes to the disk. We need to do this because -#sometimes packages that have been installed by a script before this one are -#not yet available to call. -sync - set +e DEB=$(dpkg -s airtime 2> /dev/null | grep Status) set -e @@ -64,9 +59,6 @@ else echo -e "\n*** Existing Airtime Virtualenv Found ***" fi -#Another sync to flush buffered writes to disk. -sync - virtualenv_bin="/usr/lib/airtime/airtime_virtualenv/bin/" . ${virtualenv_bin}activate From 4e105e6151ef0106666b5aeb344c34991abc1dd5 Mon Sep 17 00:00:00 2001 From: martin Date: Wed, 28 Sep 2011 16:04:40 -0400 Subject: [PATCH 5/6] CC-2891: Unicode error with metadata that contains unicode strings -fixed --- .../application/controllers/ApiController.php | 1 + python_apps/api_clients/api_client.py | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 4fff61201..b74c7da94 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -112,6 +112,7 @@ class ApiController extends Zend_Controller_Action $file_base_name = substr($file_base_name, 1); header('Content-Disposition: attachment; filename="'.$file_base_name.'"'); } + $logger->info("Sending $filepath"); header("Content-Length: " . filesize($filepath)); // !! binary mode !! diff --git a/python_apps/api_clients/api_client.py b/python_apps/api_clients/api_client.py index fa1059174..194432743 100755 --- a/python_apps/api_clients/api_client.py +++ b/python_apps/api_clients/api_client.py @@ -40,10 +40,13 @@ def to_unicode(obj, encoding='utf-8'): return obj def encode_to(obj, encoding='utf-8'): - if isinstance(obj, basestring): - if not isinstance(obj, str): - obj = obj.encode(encoding) + if isinstance(obj, unicode): + obj = obj.encode(encoding) return obj + +def convert_dict_value_to_utf8: + #list comprehension to convert all values of md to utf-8 + return dict([(item[0], encode_to(item[1], "utf-8")) for item in md.items()]) class ApiClientInterface: @@ -408,7 +411,9 @@ class AirTimeApiClient(ApiClientInterface): url = "http://%s:%s/%s/%s" % (self.config["base_url"], str(self.config["base_port"]), self.config["api_base"], self.config["update_media_url"]) url = url.replace("%%api_key%%", self.config["api_key"]) url = url.replace("%%mode%%", mode) - + + md = convert_dict_value_to_utf8(md) + data = urllib.urlencode(md) req = urllib2.Request(url, data) @@ -422,7 +427,7 @@ class AirTimeApiClient(ApiClientInterface): if(is_record): url = "http://%s:%s/%s/%s" % (self.config["base_url"], str(self.config["base_port"]), self.config["api_base"], self.config["upload_recorded"]) url = url.replace("%%fileid%%", str(response[u'id'])) - url = url.replace("%%showinstanceid%%", str(md['MDATA_KEY_TRACKNUMBER'])) + url = url.replace("%%showinstanceid%%", md['MDATA_KEY_TRACKNUMBER']) logger.debug(url) url = url.replace("%%api_key%%", self.config["api_key"]) @@ -434,7 +439,7 @@ class AirTimeApiClient(ApiClientInterface): except Exception, e: response = None - logger.error("Exception with filepath %s: %s", md['MDATA_KEY_FILEPATH'], e) + logger.error("Exception with file %s: %s", md, e) return response From c7ec73e1f203769ba31caaf2eb0cace0dd722833 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 29 Sep 2011 14:45:56 -0400 Subject: [PATCH 6/6] CC-2891: Unicode error with metadata that contains unicode strings -reversed two changes talked about in code review. --- python_apps/api_clients/api_client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python_apps/api_clients/api_client.py b/python_apps/api_clients/api_client.py index 194432743..0064a95d5 100755 --- a/python_apps/api_clients/api_client.py +++ b/python_apps/api_clients/api_client.py @@ -44,7 +44,7 @@ def encode_to(obj, encoding='utf-8'): obj = obj.encode(encoding) return obj -def convert_dict_value_to_utf8: +def convert_dict_value_to_utf8(md): #list comprehension to convert all values of md to utf-8 return dict([(item[0], encode_to(item[1], "utf-8")) for item in md.items()]) @@ -427,7 +427,7 @@ class AirTimeApiClient(ApiClientInterface): if(is_record): url = "http://%s:%s/%s/%s" % (self.config["base_url"], str(self.config["base_port"]), self.config["api_base"], self.config["upload_recorded"]) url = url.replace("%%fileid%%", str(response[u'id'])) - url = url.replace("%%showinstanceid%%", md['MDATA_KEY_TRACKNUMBER']) + url = url.replace("%%showinstanceid%%", str(md['MDATA_KEY_TRACKNUMBER'])) logger.debug(url) url = url.replace("%%api_key%%", self.config["api_key"])