From b40460d8f8d3761355297d947ee2b22c60144070 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 14 Jul 2011 21:32:45 -0400 Subject: [PATCH 1/5] CC-2279: Upgrade script for converting stor directory to new format -don't exit upon db sql error. --- install/upgrades/airtime-1.9.0/airtime-upgrade.php | 1 - 1 file changed, 1 deletion(-) diff --git a/install/upgrades/airtime-1.9.0/airtime-upgrade.php b/install/upgrades/airtime-1.9.0/airtime-upgrade.php index b70db5090..b9a1474d7 100644 --- a/install/upgrades/airtime-1.9.0/airtime-upgrade.php +++ b/install/upgrades/airtime-1.9.0/airtime-upgrade.php @@ -84,7 +84,6 @@ function execSqlQuery($sql){ if (PEAR::isError($result)) { echo "* Failed sql query: $sql".PHP_EOL; echo "* Message {$result->getMessage()}".PHP_EOL; - exit(1); } } From 241eb54e0d67dfc64edfc1053b50d8fda470be55 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 15 Jul 2011 14:20:32 -0400 Subject: [PATCH 2/5] CC-2279: Upgrade script for converting stor directory to new format -further tweaks --- install/include/airtime-upgrade.php | 2 ++ .../airtime-1.9.0/airtime-upgrade.php | 29 ++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/install/include/airtime-upgrade.php b/install/include/airtime-upgrade.php index aaec375c3..ce7ac7077 100644 --- a/install/include/airtime-upgrade.php +++ b/install/include/airtime-upgrade.php @@ -102,5 +102,7 @@ passthru("python ".__DIR__."/../../python_apps/media-monitor/install/media-monit AirtimeIni::CreateMonitFile(); +sleep(4); +passthru("airtime-check-system"); echo "******************************* Update Complete *******************************".PHP_EOL; diff --git a/install/upgrades/airtime-1.9.0/airtime-upgrade.php b/install/upgrades/airtime-1.9.0/airtime-upgrade.php index b9a1474d7..84a082a32 100644 --- a/install/upgrades/airtime-1.9.0/airtime-upgrade.php +++ b/install/upgrades/airtime-1.9.0/airtime-upgrade.php @@ -15,6 +15,7 @@ AirtimeInstall::CreateZendPhpLogFile(); const CONF_DIR_BINARIES = "/usr/lib/airtime"; const CONF_FILE_AIRTIME = "/etc/airtime/airtime.conf"; +const CONF_FILE_MEDIAMONITOR = "/etc/airtime/media-monitor.cfg"; function BypassMigrations($version) { @@ -68,8 +69,8 @@ function UninstallBinaries() function removeOldAirtimeImport(){ - exec('rm -f "/usr/lib/airtime/utils/airtime-import"'); - exec('rm -f "/usr/lib/airtime/utils/airtime-import.php"'); + exec('rm -rf "/usr/lib/airtime/utils/airtime-import"'); + exec('rm -rf "/usr/lib/airtime/utils/airtime-import.php"'); } function updateAirtimeImportSymLink(){ @@ -85,6 +86,8 @@ function execSqlQuery($sql){ echo "* Failed sql query: $sql".PHP_EOL; echo "* Message {$result->getMessage()}".PHP_EOL; } + + return $result; } function connectToDatabase(){ @@ -105,7 +108,6 @@ function connectToDatabase(){ /* In version 1.9.0 we have have switched from daemontools to more traditional * init.d daemon system. Let's remove all the daemontools files */ - exec("/usr/bin/airtime-pypo-stop"); exec("/usr/bin/airtime-show-recorder-stop"); @@ -137,9 +139,9 @@ foreach ($pathnames as $pn){ } +//update Airtime Server PHP files $values = parse_ini_file(CONF_FILE_AIRTIME, true); $phpDir = $values['general']['airtime_dir']; - InstallAirtimePhpServerCode($phpDir); //update utils (/usr/lib/airtime) folder @@ -407,27 +409,40 @@ execSqlQuery($sql); //create cron file for phone home stat AirtimeInstall::CreateCronFile(); + + +//Handle Database Changes. $stor_dir = realpath($values['general']['base_files_dir']."/stor")."/"; echo "* Inserting stor directory location $stor_dir into music_dirs table".PHP_EOL; $sql = "INSERT INTO cc_music_dirs (directory, type) VALUES ('$stor_dir', 'stor')"; echo $sql.PHP_EOL; execSqlQuery($sql); +$sql = "SELECT id FROM cc_music_dirs WHERE type='stor'" +echo $sql.PHP_EOL; +$rows = execSqlQuery($sql); + +echo "STORAGE ROW ID: $rows[0]"; + //old database had a "fullpath" column that stored the absolute path of each track. We have to //change it so that the "fullpath" column has path relative to the "directory" column. mkdir("/var/log/airtime/media-monitor/", 755, true); touch("/var/log/airtime/media-monitor/media-monitor.log"); +//create media monitor config: +if (!copy(__DIR__."/../../python_apps/media-monitor/media-monitor.cfg", CONF_FILE_MEDIAMONITOR)){ + echo "Could not copy media-monitor.cfg to /etc/airtime/. Exiting."; + exit(1); +} + $mediaMonitorUpgradePath = realpath(__DIR__."/../../../python_apps/media-monitor/media-monitor-upgrade.py"); exec("su -c \"python $mediaMonitorUpgradePath\"", $output); -print_r($output); +echo $output[0]; $oldAndNewFileNames = json_decode($output[0]); -print_r($oldAndNewFileNames); - foreach ($oldAndNewFileNames as $pair){ $relPathNew = pg_escape_string(substr($pair[1], strlen($stor_dir))); $absPathOld = pg_escape_string($pair[0]); From a2b7bd2a0bdd3cd6b8c3d93cf7f57e4b39544e56 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 15 Jul 2011 14:37:43 -0400 Subject: [PATCH 3/5] CC-2279: Upgrade script for converting stor directory to new format -further tweaks --- install/upgrades/airtime-1.9.0/airtime-upgrade.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/install/upgrades/airtime-1.9.0/airtime-upgrade.php b/install/upgrades/airtime-1.9.0/airtime-upgrade.php index 84a082a32..0b5b0e6a7 100644 --- a/install/upgrades/airtime-1.9.0/airtime-upgrade.php +++ b/install/upgrades/airtime-1.9.0/airtime-upgrade.php @@ -69,8 +69,9 @@ function UninstallBinaries() function removeOldAirtimeImport(){ + exec('rm -f "/usr/bin/airtime-import"'); + exec('rm -f "/usr/lib/airtime/utils/airtime-import.php"'); exec('rm -rf "/usr/lib/airtime/utils/airtime-import"'); - exec('rm -rf "/usr/lib/airtime/utils/airtime-import.php"'); } function updateAirtimeImportSymLink(){ @@ -418,11 +419,11 @@ $sql = "INSERT INTO cc_music_dirs (directory, type) VALUES ('$stor_dir', 'stor') echo $sql.PHP_EOL; execSqlQuery($sql); -$sql = "SELECT id FROM cc_music_dirs WHERE type='stor'" +$sql = "SELECT id FROM cc_music_dirs WHERE type='stor'"; echo $sql.PHP_EOL; $rows = execSqlQuery($sql); -echo "STORAGE ROW ID: $rows[0]"; +//echo "STORAGE ROW ID: $rows[0]"; //old database had a "fullpath" column that stored the absolute path of each track. We have to //change it so that the "fullpath" column has path relative to the "directory" column. @@ -431,7 +432,7 @@ mkdir("/var/log/airtime/media-monitor/", 755, true); touch("/var/log/airtime/media-monitor/media-monitor.log"); //create media monitor config: -if (!copy(__DIR__."/../../python_apps/media-monitor/media-monitor.cfg", CONF_FILE_MEDIAMONITOR)){ +if (!copy(__DIR__."/../../../python_apps/media-monitor/media-monitor.cfg", CONF_FILE_MEDIAMONITOR)){ echo "Could not copy media-monitor.cfg to /etc/airtime/. Exiting."; exit(1); } From 62b6d020bb64f92b4a5285907c98368ffd974182 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 15 Jul 2011 16:38:46 -0400 Subject: [PATCH 4/5] CC-2279: Upgrade script for converting stor directory to new format -testing fixes --- .../Version20110629143017.php | 14 ++----- .../Version20110711161043.php | 39 +++++++++++++++++++ .../airtime-1.9.0/airtime-upgrade.php | 7 ++-- 3 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 install/DoctrineMigrations/Version20110711161043.php diff --git a/install/DoctrineMigrations/Version20110629143017.php b/install/DoctrineMigrations/Version20110629143017.php index bc4e731c5..162a1772b 100644 --- a/install/DoctrineMigrations/Version20110629143017.php +++ b/install/DoctrineMigrations/Version20110629143017.php @@ -1,8 +1,6 @@ setPrimaryKey(array('id')); //end create cc_music_dirs table - - - //start cc_files modifications - $cc_files = $schema->getTable('cc_files'); - $cc_files->addColumn('directory', 'integer', array('default'=> -1)); - - //$cc_files->addNamedForeignKeyConstraint('cc_music_dirs_folder_fkey', $cc_music_dirs, array('directory'), array('id'), array('onDelete' => 'CASCADE')); - //end cc_files modifications } + + public function down(Schema $schema) { diff --git a/install/DoctrineMigrations/Version20110711161043.php b/install/DoctrineMigrations/Version20110711161043.php new file mode 100644 index 000000000..a0742178b --- /dev/null +++ b/install/DoctrineMigrations/Version20110711161043.php @@ -0,0 +1,39 @@ +_addSql("INSERT INTO cc_music_dirs (type, directory) VALUES ('stor', '/srv/airtime/stor');"); + + $this->_addSql("INSERT INTO cc_music_dirs (type, directory) VALUES ('upgrade', '');"); + } + + public function postUp(Schema $schema){ + $cc_music_dirs = $schema->getTable('cc_music_dirs'); + + //start cc_files modifications + $cc_files = $schema->getTable('cc_files'); + $cc_files->addColumn('directory', 'integer', array('default'=> 2)); + + $cc_files->addNamedForeignKeyConstraint('cc_music_dirs_folder_fkey', $cc_music_dirs, array('directory'), array('id'), array('onDelete' => 'CASCADE')); + //end cc_files modifications + } + + public function down(Schema $schema) + { + + } +} diff --git a/install/upgrades/airtime-1.9.0/airtime-upgrade.php b/install/upgrades/airtime-1.9.0/airtime-upgrade.php index 0b5b0e6a7..14d29cd06 100644 --- a/install/upgrades/airtime-1.9.0/airtime-upgrade.php +++ b/install/upgrades/airtime-1.9.0/airtime-upgrade.php @@ -415,7 +415,7 @@ AirtimeInstall::CreateCronFile(); //Handle Database Changes. $stor_dir = realpath($values['general']['base_files_dir']."/stor")."/"; echo "* Inserting stor directory location $stor_dir into music_dirs table".PHP_EOL; -$sql = "INSERT INTO cc_music_dirs (directory, type) VALUES ('$stor_dir', 'stor')"; +$sql = "UPDATE cc_music_dirs SET directory='$stor_dir' WHERE type='stor'"; echo $sql.PHP_EOL; execSqlQuery($sql); @@ -428,19 +428,20 @@ $rows = execSqlQuery($sql); //old database had a "fullpath" column that stored the absolute path of each track. We have to //change it so that the "fullpath" column has path relative to the "directory" column. +echo "Creating media-monitor log file"; mkdir("/var/log/airtime/media-monitor/", 755, true); touch("/var/log/airtime/media-monitor/media-monitor.log"); //create media monitor config: if (!copy(__DIR__."/../../../python_apps/media-monitor/media-monitor.cfg", CONF_FILE_MEDIAMONITOR)){ echo "Could not copy media-monitor.cfg to /etc/airtime/. Exiting."; - exit(1); } +echo "Reorganizing files in stor directory"; $mediaMonitorUpgradePath = realpath(__DIR__."/../../../python_apps/media-monitor/media-monitor-upgrade.py"); exec("su -c \"python $mediaMonitorUpgradePath\"", $output); -echo $output[0]; +print_r($output); $oldAndNewFileNames = json_decode($output[0]); From 36953e58cc2825de5315341f818b65fe22ba0b28 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 15 Jul 2011 17:00:54 -0400 Subject: [PATCH 5/5] CC-2279: Upgrade script for converting stor directory to new format -almost there... --- install/DoctrineMigrations/Version20110711161043.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/install/DoctrineMigrations/Version20110711161043.php b/install/DoctrineMigrations/Version20110711161043.php index a0742178b..d10c76c00 100644 --- a/install/DoctrineMigrations/Version20110711161043.php +++ b/install/DoctrineMigrations/Version20110711161043.php @@ -19,9 +19,7 @@ class Version20110711161043 extends AbstractMigration $this->_addSql("INSERT INTO cc_music_dirs (type, directory) VALUES ('stor', '/srv/airtime/stor');"); $this->_addSql("INSERT INTO cc_music_dirs (type, directory) VALUES ('upgrade', '');"); - } - - public function postUp(Schema $schema){ + $cc_music_dirs = $schema->getTable('cc_music_dirs'); //start cc_files modifications @@ -30,8 +28,9 @@ class Version20110711161043 extends AbstractMigration $cc_files->addNamedForeignKeyConstraint('cc_music_dirs_folder_fkey', $cc_music_dirs, array('directory'), array('id'), array('onDelete' => 'CASCADE')); //end cc_files modifications - } + } + public function down(Schema $schema) {