예제 #1
0
 function upgrade()
 {
     global $thisstaff, $ost;
     if (!$thisstaff or !$thisstaff->isAdmin() or !$ost) {
         Http::response(403, 'Access Denied');
     }
     $upgrader = new Upgrader($ost->getDBSignature(), TABLE_PREFIX, SQL_DIR);
     //Just report the next action on the first call.
     if (!$_SESSION['ost_upgrader'] || !$_SESSION['ost_upgrader'][$upgrader->getShash()]['progress']) {
         $_SESSION['ost_upgrader'][$upgrader->getShash()]['progress'] = $upgrader->getNextAction();
         Http::response(200, $upgrader->getNextAction());
         exit;
     }
     if ($upgrader->isAborted()) {
         Http::response(416, "We have a problem ... wait a sec.");
         exit;
     }
     if ($upgrader->getNumPendingTasks() && $upgrader->doTasks()) {
         //More pending tasks - doTasks returns the number of pending tasks
         Http::response(200, $upgrader->getNextAction());
         exit;
     } elseif ($ost->isUpgradePending()) {
         if ($upgrader->isUpgradable()) {
             $version = $upgrader->getNextVersion();
             if ($upgrader->upgrade()) {
                 //We're simply reporting progress here - call back will report next action'
                 Http::response(200, "Upgraded to {$version} ... post-upgrade checks!");
                 exit;
             }
         } else {
             //Abort: Upgrade pending but NOT upgradable - invalid or wrong hash.
             $upgrader->abort(sprintf('Upgrade Failed: Invalid or wrong hash [%s]', $ost->getDBSignature()));
         }
     } elseif (!$ost->isUpgradePending()) {
         $upgrader->setState('done');
         session_write_close();
         Http::response(201, "We're done!");
         exit;
     }
     if ($upgrader->isAborted() || $upgrader->getErrors()) {
         Http::response(416, "We have a problem ... wait a sec.");
         exit;
     }
     Http::response(200, $upgrader->getNextAction());
 }
예제 #2
0
 function upgrade()
 {
     global $thisstaff, $ost;
     if (!$thisstaff or !$thisstaff->isAdmin() or !$ost) {
         Http::response(403, 'Access Denied');
     }
     $upgrader = new Upgrader(TABLE_PREFIX, UPGRADE_DIR . 'streams/');
     if ($upgrader->isAborted()) {
         Http::response(416, __("We have a problem ... wait a sec."));
         exit;
     }
     if ($upgrader->getTask() && $upgrader->doTask()) {
         //More pending tasks - doTasks returns the number of pending tasks
         Http::response(200, $upgrader->getNextAction());
         exit;
     } elseif ($ost->isUpgradePending()) {
         if ($upgrader->isUpgradable()) {
             $version = $upgrader->getNextVersion();
             if ($upgrader->upgrade()) {
                 //We're simply reporting progress here - call back will report next action'
                 Http::response(200, sprintf(__("Upgraded to %s ... post-upgrade checks!"), $version));
                 exit;
             }
         } else {
             //Abort: Upgrade pending but NOT upgradable - invalid or wrong hash.
             $upgrader->abort(sprintf(__('Upgrade Failed: Invalid or wrong hash [%s]'), $ost->getDBSignature()));
         }
     } elseif (!$ost->isUpgradePending()) {
         $upgrader->setState('done');
         session_write_close();
         Http::response(201, __("We're done!"));
         exit;
     }
     if ($upgrader->isAborted() || $upgrader->getErrors()) {
         Http::response(416, __("We have a problem ... wait a sec."));
         exit;
     }
     Http::response(200, $upgrader->getNextAction());
 }
예제 #3
0
    Released under the GNU General Public License WITHOUT ANY WARRANTY.
    See LICENSE.TXT for details.

    vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
require_once 'admin.inc.php';
require_once INCLUDE_DIR . 'class.upgrader.php';
//$_SESSION['ost_upgrader']=null;
$upgrader = new Upgrader(TABLE_PREFIX, UPGRADE_DIR . 'streams/');
$errors = array();
if ($_POST && $_POST['s'] && !$upgrader->isAborted()) {
    switch (strtolower($_POST['s'])) {
        case 'prereq':
            if (!$ost->isUpgradePending()) {
                $errors['err'] = __('Nothing to do! System already upgraded to the current version');
            } elseif (!$upgrader->isUpgradable()) {
                $errors['err'] = __('The upgrader does NOT support upgrading from the current vesion!');
            } elseif (!$upgrader->check_prereq()) {
                $errors['prereq'] = __('Minimum requirements not met! Refer to Release Notes for more information');
            } elseif (!strcasecmp(basename(CONFIG_FILE), 'settings.php')) {
                $errors['err'] = __('Config file rename required to continue!');
            } else {
                $upgrader->setState('upgrade');
            }
            break;
        case 'upgrade':
            //Manual upgrade.... when JS (ajax) is not supported.
            if ($upgrader->getTask()) {
                $upgrader->doTask();
            } elseif ($ost->isUpgradePending() && $upgrader->isUpgradable()) {
                $upgrader->upgrade();