From 5dab498041addb66edb491fbec666dc56f0a73bb Mon Sep 17 00:00:00 2001 From: Albert Santoni Date: Fri, 2 May 2014 17:16:03 -0400 Subject: [PATCH 1/5] Removed this silly airtime-update-db-settings script * No longer needed, was a horrible hack in the first place. --- install_minimal/include/AirtimeInstall.php | 5 -- install_minimal/include/airtime-copy-files.sh | 1 - .../include/airtime-remove-files.sh | 1 - utils/airtime-update-db-settings | 18 ---- utils/airtime-update-db-settings.py | 87 ------------------- 5 files changed, 112 deletions(-) delete mode 100755 utils/airtime-update-db-settings delete mode 100644 utils/airtime-update-db-settings.py diff --git a/install_minimal/include/AirtimeInstall.php b/install_minimal/include/AirtimeInstall.php index fd37edb22..dd97f0717 100644 --- a/install_minimal/include/AirtimeInstall.php +++ b/install_minimal/include/AirtimeInstall.php @@ -340,10 +340,6 @@ class AirtimeInstall $dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-import/airtime-import"; exec("ln -s $dir /usr/bin/airtime-import"); - echo "* Installing airtime-update-db-settings".PHP_EOL; - $dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-update-db-settings"; - exec("ln -s $dir /usr/bin/airtime-update-db-settings"); - echo "* Installing airtime-check-system".PHP_EOL; $dir = AirtimeInstall::CONF_DIR_BINARIES."/utils/airtime-check-system"; exec("ln -s $dir /usr/bin/airtime-check-system"); @@ -360,7 +356,6 @@ class AirtimeInstall public static function RemoveSymlinks() { exec("rm -f /usr/bin/airtime-import"); - exec("rm -f /usr/bin/airtime-update-db-settings"); exec("rm -f /usr/bin/airtime-check-system"); exec("rm -f /usr/bin/airtime-user"); exec("rm -f /usr/bin/airtime-log"); diff --git a/install_minimal/include/airtime-copy-files.sh b/install_minimal/include/airtime-copy-files.sh index 8f26b7d3f..ac3bff3c9 100755 --- a/install_minimal/include/airtime-copy-files.sh +++ b/install_minimal/include/airtime-copy-files.sh @@ -80,7 +80,6 @@ cp -R $AIRTIMEROOT/python_apps/std_err_override /usr/lib/airtime echo "* Creating symbolic links in /usr/bin" #create symbolic links ln -sf /usr/lib/airtime/utils/airtime-import/airtime-import /usr/bin/airtime-import -ln -sf /usr/lib/airtime/utils/airtime-update-db-settings /usr/bin/airtime-update-db-settings ln -sf /usr/lib/airtime/utils/airtime-check-system /usr/bin/airtime-check-system ln -sf /usr/lib/airtime/utils/airtime-log /usr/bin/airtime-log ln -sf /usr/lib/airtime/utils/airtime-test-soundcard /usr/bin/airtime-test-soundcard diff --git a/install_minimal/include/airtime-remove-files.sh b/install_minimal/include/airtime-remove-files.sh index 2429c17f4..3cafa6cbb 100755 --- a/install_minimal/include/airtime-remove-files.sh +++ b/install_minimal/include/airtime-remove-files.sh @@ -31,7 +31,6 @@ python $AIRTIMEROOT/python_apps/media-monitor/install/media-monitor-remove-files #remove symlinks rm -f /usr/bin/airtime-import -rm -f /usr/bin/airtime-update-db-settings rm -f /usr/bin/airtime-check-system rm -f /usr/bin/airtime-log rm -f /usr/bin/airtime-test-soundcard diff --git a/utils/airtime-update-db-settings b/utils/airtime-update-db-settings deleted file mode 100755 index 5ed0fcd89..000000000 --- a/utils/airtime-update-db-settings +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------- -# Determine directories, files -#------------------------------------------------------------------------------- - -virtualenv_bin="/usr/lib/airtime/airtime_virtualenv/bin/" -. ${virtualenv_bin}activate - -# Absolute path to this script -SCRIPT=`readlink -f $0` -# Absolute directory this script is in -SCRIPTPATH=`dirname $SCRIPT` - -#------------------------------------------------------------------------------- -# Do import -#------------------------------------------------------------------------------- -invokePwd=$PWD -cd $SCRIPTPATH && python airtime-update-db-settings.py diff --git a/utils/airtime-update-db-settings.py b/utils/airtime-update-db-settings.py deleted file mode 100644 index d28322fb1..000000000 --- a/utils/airtime-update-db-settings.py +++ /dev/null @@ -1,87 +0,0 @@ -""" -The purpose of this script is to consolidate into one location where -we need to update database host, dbname, username and password. - -This script reads from /etc/airtime/airtime.conf. -""" -import os -import sys -import ConfigParser -import xml.dom.minidom -from xml.dom.minidom import Node - -if os.geteuid() != 0: - print "Please run this as root." - sys.exit(1) - -airtime_conf = '/etc/airtime/airtime.conf' - -#Read the universal values -parser = ConfigParser.SafeConfigParser() -parser.read(airtime_conf) - -host = 'resources.db.params.host' -dbname = 'resources.db.params.dbname' -username = 'resources.db.params.username' -password = 'resources.db.params.password' - -airtime_dir = parser.get('general', 'airtime_dir') -if os.path.exists(airtime_dir): - print 'Airtime root folder found at %s' % airtime_dir -else: - print 'Could not find Airtime root folder specified by "airtime_dir" in %s' % airtime_conf - sys.exit(1) - -print ("Updating %s/application/configs/application.ini" % airtime_dir) -f = file('%s/application/configs/application.ini' % airtime_dir,'r') -file_lines = [] - -for line in f: - if line[0:len(host)] == host: - line= '%s = "%s"\n' % (host, parser.get('database', 'host')) - elif line[0:len(dbname)] == dbname: - line= '%s = "%s"\n' % (dbname, parser.get('database', 'dbname')) - elif line[0:len(username)] == username: - line= '%s = "%s"\n' % (username, parser.get('database', 'dbuser')) - elif line[0:len(password)] == password: - line= '%s = "%s"\n' % (password, parser.get('database', 'dbpass')) - file_lines.append(line) -f.close() - -f = file('%s/application/configs/application.ini' % airtime_dir, 'w') -f.writelines(file_lines) -f.close() - - -print ("Updating %s/build/build.properties" % airtime_dir) - -f = file('%s/build/build.properties' % airtime_dir, 'r') -file_lines = [] - -db_url = 'propel.database.url' - -for line in f: - if line[0:len(db_url)] == db_url: - line = '%s = pgsql:host=%s dbname=%s user=%s password=%s\n' % \ - (db_url, parser.get('database', 'host'), parser.get('database', 'dbname'), parser.get('database', 'dbuser'), \ - parser.get('database', 'dbpass')) - file_lines.append(line) -f.close() - -f = file('%s/build/build.properties' % airtime_dir, 'w') -f.writelines(file_lines) -f.close() - -print ("Updating %s/build/runtime-conf.xml" % airtime_dir) - -doc = xml.dom.minidom.parse('%s/build/runtime-conf.xml' % airtime_dir) - -node = doc.getElementsByTagName("dsn")[0] -node.firstChild.nodeValue = 'pgsql:host=%s;port=5432;dbname=%s;user=%s;password=%s' % (parser.get('database', 'host'), \ -parser.get('database', 'dbname'), parser.get('database', 'dbuser'), parser.get('database', 'dbpass')) - -xml_file = open('%s/build/runtime-conf.xml' % airtime_dir, "w") -xml_file.writelines(doc.toxml('utf-8')) -xml_file.close() - -print "Success!" From e4e5590b9f2a674ebab830e1dddf87def689383b Mon Sep 17 00:00:00 2001 From: drigato Date: Mon, 5 May 2014 11:19:14 -0400 Subject: [PATCH 2/5] CC-5802: Upgrade application.ini file Remove this upgrade step from the upgrade controller --- .../controllers/UpgradeController.php | 31 ------------------- 1 file changed, 31 deletions(-) diff --git a/airtime_mvc/application/controllers/UpgradeController.php b/airtime_mvc/application/controllers/UpgradeController.php index ecab01910..4c8ada088 100644 --- a/airtime_mvc/application/controllers/UpgradeController.php +++ b/airtime_mvc/application/controllers/UpgradeController.php @@ -42,37 +42,6 @@ class UpgradeController extends Zend_Controller_Action Application_Model_Preference::setDiskUsage($totalSpace - $freeSpace); - //update application.ini - $iniFile = isset($_SERVER['AIRTIME_BASE']) ? $_SERVER['AIRTIME_BASE']."application.ini" : "/usr/share/airtime/application/configs/application.ini"; - - $newLines = "resources.frontController.moduleDirectory = APPLICATION_PATH \"/modules\"\n". - "resources.frontController.plugins.putHandler = \"Zend_Controller_Plugin_PutHandler\"\n". - ";load everything in the modules directory including models\n". - "resources.modules[] = \"\"\n"; - - $currentIniFile = file_get_contents($iniFile); - - /* We want to add the new lines after a specific line. So we must find read the file - * into an array, find the key to which our desired line belongs, and use the key - * to split the file in two halves, $beginning and $end. - * The $newLines will go inbetween $beginning and $end - */ - $lines = explode("\n", $currentIniFile); - - $key = array_search("resources.layout.layoutPath = APPLICATION_PATH \"/layouts/scripts/\"", $lines); - if (!$key) { - throw new Exception('Upgrade to Airtime 2.5.3 FAILED. Could not upgrade application.ini'); - } - - $beginning = implode("\n", array_slice($lines, 0, $key)); - $end = implode("\n", array_slice($lines, $key)); - - if (!is_writeable($iniFile)) { - throw new Exception('Upgrade to Airtime 2.5.3 FAILED. Could not upgrade application.ini - Permission denied.'); - } - $file = new SplFileObject($iniFile, "w"); - $file->fwrite($beginning."\n".$newLines.$end); - //TODO: clear out the cache $con->commit(); From e11afd4e718098948fd8b0f30c87fc9770b59203 Mon Sep 17 00:00:00 2001 From: drigato Date: Mon, 5 May 2014 11:41:43 -0400 Subject: [PATCH 3/5] Fix for new saas instances getting created with a 'disk quota reached' message --- airtime_mvc/application/models/Systemstatus.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/airtime_mvc/application/models/Systemstatus.php b/airtime_mvc/application/models/Systemstatus.php index 7d51eaf54..e33da8db7 100644 --- a/airtime_mvc/application/models/Systemstatus.php +++ b/airtime_mvc/application/models/Systemstatus.php @@ -219,6 +219,9 @@ class Application_Model_Systemstatus $totalSpace = Application_Model_Preference::GetDiskQuota(); $usedSpace = Application_Model_Preference::getDiskUsage(); + if (!$usedSpace) { + $usedSpace = 0; + } /* $path = $_SERVER['AIRTIME_BASE']."etc/airtime/num_bytes.ini"; $arr = parse_ini_file($path); From a8c428bfb0b74ab51696f1d077e79c91eeb48c58 Mon Sep 17 00:00:00 2001 From: drigato Date: Mon, 5 May 2014 11:52:13 -0400 Subject: [PATCH 4/5] Fix disk quota message --- airtime_mvc/application/models/Systemstatus.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/application/models/Systemstatus.php b/airtime_mvc/application/models/Systemstatus.php index e33da8db7..b077c3376 100644 --- a/airtime_mvc/application/models/Systemstatus.php +++ b/airtime_mvc/application/models/Systemstatus.php @@ -219,7 +219,7 @@ class Application_Model_Systemstatus $totalSpace = Application_Model_Preference::GetDiskQuota(); $usedSpace = Application_Model_Preference::getDiskUsage(); - if (!$usedSpace) { + if (empty($usedSpace)) { $usedSpace = 0; } /* $path = $_SERVER['AIRTIME_BASE']."etc/airtime/num_bytes.ini"; @@ -243,7 +243,7 @@ class Application_Model_Systemstatus $diskInfo = self::GetDiskInfo(); $diskInfo = $diskInfo[0]; $diskUsage = $diskInfo->totalSpace - $diskInfo->totalFreeSpace; - if ($diskUsage >= $diskInfo->totalSpace) { + if ($diskUsage > 0 && $diskUsage >= $diskInfo->totalSpace) { return true; } From 16fb9d75d3902c007f53a84f2e7a4b8ac13553a5 Mon Sep 17 00:00:00 2001 From: drigato Date: Mon, 5 May 2014 12:25:42 -0400 Subject: [PATCH 5/5] Changed GetDiskUsage so it will always return 0 if the value has not been set yet --- airtime_mvc/application/models/Preference.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 65b42e83f..50de284a3 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -1428,7 +1428,8 @@ class Application_Model_Preference public static function getDiskUsage() { - return self::getValue("disk_usage"); + $val = self::getValue("disk_usage"); + return (strlen($val) == 0) ? 0 : $val; } public static function setDiskUsage($value)